1.PZEM-017
|
 |
|
モジュールの概要について説明します。このモジュールは直流の電圧、電流、有効電力、消費電力量の測定に使用されます。表示機能は備えておらず、データはRS485インターフェースを介して読み取られます。
RS485通信インターフェースのボーレートは9600、データビットは8ビット、ストップビットは2ビット、パリティはなしです。
電圧閾値を設定できます。高電圧閾値と低電圧閾値に分割でき、測定電圧が閾値を超えるとアラームを発します。デフォルトの高電圧閾値は300V、低電圧閾値は7Vです。
このモジュールは peacefair社のDC Communication Module PZEM-003/017で
私が購入したものは左写真の100Aのシャントが付属したものでPZEM-017と言います。
|
| 型 番 | PZEM-003 | PZEM-017 |
| 電流 | 測定範囲(A) | 0.01~10 | 0.02~50 | 0.02~100 | 0.02~200 | 0.02~300 |
| 検出シャント | 内蔵 | 外部 50A/75mV | 外部 100A/75mV | 外部 200A/75mV | 外部 300A/75mV |
| 分解能(A) | 0.01 |
| 精度(%) | 1 |
| 電圧 | 測定電圧(V) | 0.05~300 |
| 電圧分解能(V) | 0.01 |
| 電圧精度 | 1 |
| 電力 | 範囲(kW) | 0.1~3 | 0.2~90 |
| 解像度(W) | 0.1 |
| 精度(%) | 1 |
| 電力量 | 範囲(kWH) | 0~9999 |
| 解像度(Wh) | 1 |
| 精度(%) | 1 |
が有り、その他RS485に接続するUSBアダプターがついた物もあります。
|
|
 |
|
測定電圧 < 7(V)の場合は、USBポートを使用して電源を供給してください(PCのUSBポートの使用は禁止されています。PCが損傷する可能性があります)。
RS485インターフェースはパッシブ出力であり、外部に5V電源を接続する必要があり、外部電源は100mA以上である必要があります。
|
|
3.ModBus マスター
マスターは測定器に指示するパソコンを言います。
そのパソコンからの指示の後続から説明します。
|
★通常
| No Bytes | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 項目 | Device Address | Function | DataTop Address | DataLower Asddress | Top Register | Lower Register | Top CRC | Lower CRC |
★キャリブレーションの時は
| No Bytes | 0 | 1 | 2 | 3 | 4 | 5 |
| 項目 | 0xF8 | 0x41 | 0x37 | 0x21 | TopCRC | LowerCRC |
★電力量のリセット(アドレス0xXXは0x01〜0xF7)
| No Bytes | 0 | 1 | 2 | 3 |
| 項目 | 0xXX | 0x42 | TopCRC | LowerCRC |
|
(2)Device Address
|
アドレスは0xF8が汎用アドレスになっている。
キャリブレーション(ファンクションNo0x41)は汎用アドレスの時に実施することができます。
ブロードキャストアドレスは0x00です。
設定できるアドレスの範囲は0x01〜0xF7です。
|
(3)Function
|
| 値 | 概要 |
| 0x03 | 保持レジスタの読み取り |
| 0x04 | 入力レジスタの読み取り |
| 0x06 | 単一レジスタの書き込み |
| 0x41 | キャリブレーション |
| 0x42 | エネルギーリセットなど |
エネルギーリセットの0x42はDstaAddressとDataRegisterのデータは不要なので、信号は
0xxx(Device Address) + 0x42 + CRC(Lo) +CRC(Hi)
になります。
|
(4)DataAddress
|
a.保持レジスタ
| 値 | 概要 |
| 0x0000 | 高電圧閾値(5〜350V)ディフォルトは300V 1LSB=0.01V |
| 0x0001 | 低電圧閾値(1〜350V)ディフォルトは7V 1LSB=0.01V |
| 0x0002 | Modbusのデバイスアドレス(0x0001〜0x00F7) |
| 0x0003 | シャント 0x0000=100A 0x0001=50A 0x0002=200A 0x0003=300A |
b.入力レジスタ
| 値 | 概要 |
| 0x0000 | 電圧値 1LSB=0.01V |
| 0x0001 | 電流値 1LSB=0.01A |
| 0x0002 | 電力下位16but 1LSB=0.1W |
| 0x0003 | 電力上位16bit |
| 0x0004 | 電力量下位16bit 1LSB=1Wh |
| 0x0005 | 電力量上位16bit |
| 0x0006 | 高電圧警報状態 0xFFFFはアラーム、0x0000アラームなし |
| 0x0007 | 低電圧警報状態 0xFFFFはアラーム、0x0000アラームなし |
|
(5)DataRegister
|
ファンクション0x04の時はDataAddressを始めとして幾つのデータを送るか指定します。
1つのデータアドレスでデータは16bit = 2bytになります。
|
|
CRCは16bit=2Byte(2バイト)のバイナリ値で構成されています。
CRCは送信側が計算し、受信側が受信データのCRCを計算し受信データのCRCと比較して違っていればエラーになります。
|
4.ModBus スレーブ
| No Bytes | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 項目 | Device Address | Function | Data数 (単位はByte) | Top Register | Lower Register | Top CRC | Lower CRC |
Data数 n = 単位は1Byteです。
ModBusのレジスターのデータは通常2Byteなので通常最低値は n = 2 となります。
(2)保持レジスタ(書き込みは『単一レジスタ』で一括の書き込みは出来ません。)
|
a.スレーブ構造として全ての保持レジスタを読み取り指示を出した場合を示します。
|
マスターから 0x1 0x3 0x0 0x0 0x0 0x4 0x44 0x9 を送信すると
スレーブから 0x1 0x3 0x8 0x75 0x30 0x2 0xbc 0x0 0x1 0x0 0x0 0x63 0x36 が送られてきます。
内容は
| アドレス = | 0x0 | 0x1 | 0x2 | 0x3 |
| Data(Hex)= | 0x7530 | 0x2bc | 0x1 | 0x0 |
| 値 = | 300.00(V) | 7.00(V) | 0x1 | 0 |
となります。
|
b.スレーブのアドレスを変更する時は
|
アドレスを0x1→0x11へ変更する。
マスターから 0x1 0x6 0x0 0x2 0x0 0x11 0xe8 0x6
スレーブから 0x1 0x6 0x0 0x2 0x0
アドレスが変更になったか確認する
マスターから 0xf8 0x3 0x0 0x2 0x0 0x1 0x31 0xa3
スレーブから 0xf8 0x3 0x2 0x0 0x11 0xe4 0x5c
0x11に変更されていることが判る。
|
|
|
スレーブ構造として全ての入力レジスタを読み取り指示を出した場合を示します。
pzem-017に26(V)の電圧と10(A)の電流また今までの電力量1154(Wh)の場合
マスターから 0x1 0x4 0x0 0x0 0x0 0x8 0xf1 0xcc を送信すると
スレーブから 0x1 0x4 0x10 0xa 0x29 0x13 0x8a 0x32 0xd2 0x0 0x0 0x4 0x82 0x0 0x0 0x0 0x0 0x0 0x0 0x76 0x8a が送られてきます。
内容は
| アドレス = | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 |
| Data(Hex)= | 0xa29 | 0x138a | 0x32d2 | 0x0 | 0x482 | 0x0 | 0x0 | 0x0 |
| 値 = | 26.01(V) | 50.02(A) | 1301.0(W) | 0(W) [上位] | 1154(Wh) | 0(Wh) [上位] | 0[なし] [高電圧警報] | 0[なし] [低電圧警報] |
となります。
|
(4)電力量のリセット
|
現在の値を読み出します。
マスターから 0x1 0x4 0x0 0x4 0x0 0x2 0x30 0xa
スレーブから 0x1 0x4 0x4 0x4 0x89 0x0 0x0 0x2b 0x5e
データは 0x0489(下位) = 1161(Wh) 0x00(上位)=0
続いてリセット要求を送信
マスターから 0x1 0x42 0x80 0x11
スレーブから 0x1 0x42 0x80 0x11
※もしスレーブの信号を受信しない場合は0.2秒ほど待って、受信バッファーをリセットすること。
変更の確認
マスターから 0x1 0x4 0x0 0x4 0x0 0x2 0x30 0xa
スレーブから 0x1 0x4 0x4 0x0 0x0 0x0 0x0 0xfb 0x84
データがリセットされた事が判る。
|
(5)キャリブレーション
|
|
特性試験状況
|