IAMMETER Series Three-Phase Meter Modbus/RTU Protocol
IAMMETER Series Three-Phase Meter Modbus/RTU Protocol
All IAMMETER meters, except for the WEM3050T which lacks an RS485 interface, support the Modbus/RTU protocol. The protocol details are as follows:
Register Map
No. | Definition | Register Address | R/W | Data Type and Calculation Description |
---|---|---|---|---|
1 | Voltage of Phase A | 0048H | Read | Unsigned, Value = DATA/100, Unit: V |
2 | Current of Phase A | 0049H | Read | Unsigned, Value = DATA/100, Unit: A |
3 | Active Power of Phase A | 004AH | Read | Unsigned, Value = DATA, Unit: W |
4 | Active Energy (Forward) | 004BH 004CH | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
5 | Power Factor of Phase A | 004DH | Read | Unsigned, Value = DATA/1000 |
6 | Active Energy (Reverse) | 004EH 004FH | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
7 | Power Direction Indicator | 0050H | Read | High byte 0 for forward, 1 for reverse |
8 | Voltage of Phase B | 0051H | Read | Unsigned, Value = DATA/100, Unit: V |
9 | Current of Phase B | 0052H | Read | Unsigned, Value = DATA/100, Unit: A |
10 | Active Power of Phase B | 0053H | Read | Unsigned, Value = DATA, Unit: W |
11 | Active Energy (Forward) | 0054H 0055H | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
12 | Power Factor of Phase B | 0056H | Read | Unsigned, Value = DATA/1000 |
13 | Active Energy (Reverse) | 0057H 0058H | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
14 | Power Direction Indicator | 0059H | Read | High byte 0 for forward, 1 for reverse |
15 | Voltage of Phase C | 005AH | Read | Unsigned, Value = DATA/100, Unit: V |
16 | Current of Phase C | 005BH | Read | Unsigned, Value = DATA/100, Unit: A |
17 | Active Power of Phase C | 005CH | Read | Unsigned, Value = DATA, Unit: W |
18 | Active Energy (Forward) | 005DH 005EH | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
19 | Power Factor of Phase C | 005FH | Read | Unsigned, Value = DATA/1000 |
20 | Active Energy (Reverse) | 0060H 0061H | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
21 | Power Direction Indicator | 0062H | Read | High byte 0 for forward, 1 for reverse |
23 | Total Active Energy (Forward) | 0063H 0064H | Read | 4 bytes, Unsigned, Value = DATA/800, Unit: kWh |
24 | Frequency | 0065H | Read | Unsigned, Value = DATA/100, Unit: Hz |
25 | Total Active Energy (Reverse) | 0066H 0067H | Read | Unsigned, Value = DATA/800, Unit: kWh |
26 | Active Energy of Phase A (Forward) | 0068H 0069H | Read | Unsigned, Value = DATA/1000, Unit: kWh |
27 | Active Energy of Phase A (Reverse) | 006AH 006BH | Read | Unsigned, Value = DATA/1000, Unit: kWh |
28 | Active Energy of Phase B (Forward) | 006CH 006DH | Read | Unsigned, Value = DATA/1000, Unit: kWh |
29 | Active Energy of Phase B (Reverse) | 006EH 006FH | Read | Unsigned, Value = DATA/1000, Unit: kWh |
30 | Active Energy of Phase C (Forward) | 0070H 0071H | Read | Unsigned, Value = DATA/1000, Unit: kWh |
31 | Active Energy of Phase C (Reverse) | 0072H 0073H | Read | Unsigned, Value = DATA/1000, Unit: kWh |
32 | Total Active Energy (Forward) | 0074H 0075H | Read | Unsigned, Value = DATA/1000, Unit: kWh |
33 | Total Active Energy (Reverse) | 0076H 0077H | Read | Unsigned, Value = DATA/1000, Unit: kWh |
34 | Total Power | 0078H 0079H | Read | Signed, Value = DATA, Unit: W |
35 | Active Power of Phase A | 007AH 007BH | Read | Signed, Value = DATA, Unit: W |
36 | Active Power of Phase B | 007CH 007DH | Read | Signed, Value = DATA, Unit: W |
37 | Active Power of Phase C | 007EH 007FH | Read | Signed, Value = DATA, Unit: W |
38 | Reactive Power of Phase A | 0080H 0081H | Read | Signed, Value = DATA, Unit: var |
39 | Reactive Power of Phase B | 0082H 0083H | Read | Signed, Value = DATA, Unit: var |
40 | Reactive Power of Phase C | 0084H 0085H | Read | Signed, Value = DATA, Unit: var |
41 | Forward Reactive Energy (Inductive) of Phase A | 0086H 0087H | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
42 | Reverse Reactive Energy (Capacitive) of Phase A | 0088H 0089H | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
43 | Forward Reactive Energy (Inductive) of Phase B | 008AH 008BH | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
44 | Reverse Reactive Energy (Capacitive) of Phase B | 008CH 008DH | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
45 | Forward Reactive Energy (Inductive) of Phase C | 008EH 008FH | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
46 | Reverse Reactive Energy (Capacitive) of Phase C | 0090H 0091H | Read | Unsigned, Value = DATA/1000, Unit: kvarh |
Notes:
- This protocol applies to all IAMMETER meters except for WEM3050T. For single-phase meters, use the data for Phase A in the list.
- Regarding power direction registers (7, 14, 21): In earlier versions, power was unsigned (registers 3, 10, 17), so additional registers were introduced to store the power direction. If you use the signed power registers (35, 36, 37), you do not need to separately consider the values in the power direction registers.
Usage Examples
Reading Values
For example: If the host wants to read data from 2 slave registers with address 01 starting from 0048H,
The host sends: 01 03 00 48 00 02 CRC
- Address: 01
- Function code: 03
- Starting address: 00 48
- Data length: 00 02
- CRC code: CRC
Slave response: 01 03 04 12 45 56 68 CRC
- Address: 01
- Function code: 03
- Bytes returned: 04
- Register Data 1: 12 45
- Register Data 2:
56 68
- CRC Code: CRC
Reset Kwh Value
Modbus/RTU commands also provide instructions for resetting the Kwh value, which is the only method to reset the Kwh value on IAMMETER meters.
01 10 00 0C 00 02 04 00 00 00 00 F3 FA
(reset both forward and reverse kwh in 3080)01 10 00 63 00 02 04 00 00 00 00 B5 92
(reset the forward kwh in 3080T)01 10 00 66 00 02 04 00 00 00 00 75 AD
(reset the reverse kwh in 3080T)
Set/Read Slave ID
The default slave ID of IAMMETER meters is 1.
Slave ID 0x00 can be used as a broadcast address (the WiFi module also uses 0x00 to communicate with the metering module).
If you need to set other slave IDs (e.g., for use in a PLC system), you can refer to the following commands:
Read Slave ID
Command: 00 03 00 04 00 01 C4 1A
(00: Broadcast address)
Reply: 01 03 02 01 06 39 D6
(01: slave ID, 06: Baudrate 9600)
Set Slave ID
Command: 00 10 00 04 00 01 02 05 06 29 16 00
00
: Broadcast address10
: Fixed (set command)00 04
: Fixed (start address)00 01
: Fixed (length of register)02
: Fixed (length of byte)05
: New address06
: Fixed29 16
: CRC16
Reply: 01 10 00 04 00 01 40 08
Recommended Methods
Although we have listed the Modbus/RTU protocol, we do not recommend using Modbus/RTU to retrieve meter data due to the following reasons:
- It requires complex RS485 wiring.
- It cannot leverage the advantages of Wi-Fi data transmission.
Compared to the traditional Modbus/RTU, we recommend using Modbus/TCP or REST API modes to directly retrieve data through the Wi-Fi network.
Modbus/TCP
Modbus/TCP Manual for IAMMETER Products
Modbus TCP is a common protocol used in industrial systems such as ICS, DCS, SCADA. After the latest firmware update, IAMMETER energy meters now support the Modbus TCP protocol.
REST API: /api/monitorjson
IAMMETER products also provide a REST API interface. You can directly access the API address with a simple HTTP GET request to obtain all real-time measurement data (updated every second). For more details, see the following link:
https://www.iammeter.com/newsshow/blog-fw-features#apimonitorjson-return-the-measurement-result
The definition of the JSON data is as follows:
JSON Data Definition of IAMMETER's Product
Reference Documents
How to utilize the WEM3050T, excluding IAMMETER-cloud