PM210 Modbus Reference-2.6 - daeinstrument.com Modbus Reference-2.6.1e… · The PM210 communicates...

26
DAE Instrument Corp. PM210 v312–11 Multi-Function Panel Meter Modbus Reference Revision 2.6.1e Updated 2015/1/22 Prepared By: David Ling Firmware: v312

Transcript of PM210 Modbus Reference-2.6 - daeinstrument.com Modbus Reference-2.6.1e… · The PM210 communicates...

DAE Instrument Corp.

PM210 v312–11

Multi-Function Panel Meter

Modbus Reference

Revision 2.6.1eUpdated 2015/1/22

Prepared By: David Ling

Firmware: v312

Table of ContentsGeneral Information! 3Register Tables! 4

Real Time Data (One Word Sized)! 4

Real Time Data (Two Word Sized)! 5

Utility Energy Data! 6

Generator Energy Data! 7

Setup Data! 8

DO Control! 9

Examples! 10Read Phase Voltage! 10

Read Phase Current! 10

Read Power! 11

Read Frequency! 11

Read Power Factor! 12

Read Total Active Energy (kWh)! 12

Write Total kWh! 13

Read DO Status! 13

Control DO! 14

Read Phase/Wire! 15

Read BD15 (15 minute block demand)! 15

Read Device Address! 16

Write Device Address! 17

Read Baud Rate! 18

Write Baud Rate! 18

Read PT Ratio! 19

Write PT Ratio! 19

PM210 Modbus Reference 2.6.1e! 1/25

Read CT Ratio! 20

Write CT Ratio! 20

Read Standard/Dedicated CT! 21

Write Standard/Dedicated CT! 21

Read Temperature! 22

Read Firmware Version! 22

CRC Computation! 23Definition! 23

Usage! 23

Notes on Modscan! 24Additional Resources! 25

PM210 Modbus Reference 2.6.1e! 2/25

General Information

General InformationThe PM210 communicates using the Modbus/RTU protocol. The communications interface is RS485. The default baud rate is 9600. The data format is 8 bits, no parity, 1 stop bit. The default address of the PM210 can either be zero, one or the same as the last 2 digits of the serial number, except 00 which resolves to 100. The actual device address can be found through the front panel by entering the settings mode.

All numerical data is in integer form and must be scaled by multiplying/dividing with its indicated unit to get the final data value.

Reading is done through function code 3. Most writing is done using function code 16. All numerical values are in decimal unless otherwise specified or appended with an ʻhʼ, in which case the data is in hexadecimal. Control is done using function code 5.

The PM210 uses the address 255 instead of zero as the broadcast address.

The default address is the serial number last 2 digits or 100 when it is 00. It is possible that the defaults have been changed from the original factory settings. To find out the address and baud rate, enter the settings mode through the front panel controls. To find out the same information through Modbus, query using the broadcast address 255, but make sure that only the given PM210 is connected to the host PC, no other devices must be on the same bus network.

When a command is in error, the PM210 will not respond and simply allow the host PC doing the reading to time out. The PM210 should have a maximum latency of 300 milliseconds, this is the guaranteed time in which the PM210 should respond, if this time is exceeded, the host PC should issue a time out.

A command is in error in any of these conditions:

1. The function code is not supported.

2. The data is malformed or out of range.

3. The CRC is wrong.

This version of the Modbus registers apply to PM210 with versions 312 and up. Note especially the accumulated energy registers at locations 48~51, these are writable in this version, but in older versions, it may be writable only at locations 86~87 and 94~95.

PM210 Modbus Reference 2.6.1e! 3/25

Register Tables

Register Tables

Real Time Data (One Word Sized)

The data in this table is mostly the same data that can be found in the table for the Two Word Sized Real Time Data, but is only one word in size and is thus less precise. This table remains for backwards compatibility with older models. This table can also be used as short form table of the most relevant data and is provided for convenience when the entire table is desired to be read as one block. For more comprehensive data, use the two word sized real time data table.

Register Modscan Parameter Range Scale Unit Read/Write Applies To

0 03:0001 Phase A Voltage (VA)0~65535,

no PT factor

0.1 V R 3p3w/3p4w1 03:0002 Phase B Voltage (VB)0~65535,

no PT factor

0.1 V R 3p3w/3p4w

2 03:0003 Phase C Voltage (VC)

0~65535, no PT factor

0.1 V R 3p3w/3p4w

3 03:0004 Line A-B Voltage (VAB)0~65535,

no PT factor

0.1 V R 3p3w/3p4w4 03:0005 Line B-C Voltage (VBC)0~65535,

no PT factor

0.1 V R 3p3w/3p4w

5 03:0006 Line C-A Voltage (VCA)

0~65535, no PT factor

0.1 V R 3p3w/3p4w

6 03:0007 Phase A Current (IA)0~65535,

no CT factor

0.001 A R 3p3w/3p4w7 03:0008 Phase B Current (IB)0~65535,

no CT factor

0.001 A R 3p3w/3p4w

8 03:0009 Phase C Current (IC)

0~65535, no CT factor

0.001 A R 3p3w/3p4w

9 03:0010 Total Active Power (P)0~65535, no PT/CT

factor

0.001 kW

R 3p3w/3p4w10 03:0011 Total Reactive Power (Q)

0~65535, no PT/CT

factor 0.001 kVArR 3p3w/3p4w

11 03:0012 Total Apparent Power (S)

0~65535, no PT/CT

factor

0.001 kVA

R 3p3w/3p4w

12 03:0013 Frequency (F) 0~65535 0.1 Hz R 3p3w/3p4w

13 03:0014 Power Factor (PF) 0~65535 0.01 --- R 3p3w/3p4w

14 03:0015 DO Status 0=off, 1=on 1 --- R 3p3w/3p4w

15 03:0016 DI Status 0=off, 1=on 1 --- R 3p3w/3p4w

PM210 Modbus Reference 2.6.1e! 4/25

Real Time Data (Two Word Sized)

Certain parameters in this table are affected by the PT, CT or both depending a combination of the Use PTCT flag (see page 7 for details) and the 5A YES/NO settings. For the dual source mode, DI Off indicates city mains power and DI On indicates generator power.

Register Word Modscan Parameter Range Scale Unit Read/Write Applies To

20 low 03:0021 Phase A Voltage (VA)

0~1,400,000 0.1 V R 3p3w/3p4w

21 high 03:0022Phase A Voltage

(VA)

0~1,400,000 0.1 V R 3p3w/3p4w22 low 03:0023 Phase B Voltage

(VB)0~1,400,000 0.1 V R 3p3w/3p4w

23 high 03:0024Phase B Voltage

(VB)0~1,400,000 0.1 V R 3p3w/3p4w

24 low 03:0025 Phase C Voltage (VC)

0~1,400,000 0.1 V R 3p3w/3p4w

25 high 03:0026Phase C Voltage

(VC)

0~1,400,000 0.1 V R 3p3w/3p4w

26 low 03:0027 Line A-B Voltage (VAB)

0~2,424,800 0.1 V R 3p3w/3p4w

27 high 03:0028Line A-B Voltage

(VAB)

0~2,424,800 0.1 V R 3p3w/3p4w28 low 03:0029 Line B-C Voltage

(VBC)0~2,424,800 0.1 V R 3p3w/3p4w

29 high 03:0030Line B-C Voltage

(VBC)0~2,424,800 0.1 V R 3p3w/3p4w

30 low 03:0031 Line C-A Voltage (VCA)

0~2,424,800 0.1 V R 3p3w/3p4w

31 high 03:0032Line C-A Voltage

(VCA)

0~2,424,800 0.1 V R 3p3w/3p4w

32 low 03:0033Phase A Current (IA)

0~5,000,000 0.001 A R 3p3w/3p4w

33 high 03:0034Phase A Current (IA)

0~5,000,000 0.001 A R 3p3w/3p4w34 low 03:0035

Phase B Current (IB) 0~5,000,000 0.001 A R 3p3w/3p4w35 high 03:0036

Phase B Current (IB) 0~5,000,000 0.001 A R 3p3w/3p4w

36 low 03:0037Phase C Current (IC)

0~5,000,000 0.001 A R 3p3w/3p4w

37 high 03:0038Phase C Current (IC)

0~5,000,000 0.001 A R 3p3w/3p4w

38 low 03:0039 Total Active Power (P) 0~999,999,999 1 W

R 3p3w/3p4w

39 high 03:0040Total Active Power

(P) 0~999,999,999 1 W

R 3p3w/3p4w40 low 03:0041 Total Reactive Power

(Q) 0~999,999,999 1 VAr R 3p3w/3p4w41 high 03:0042

Total Reactive Power (Q) 0~999,999,999 1 VAr R 3p3w/3p4w

42 low 03:0043 Total Apparent Power (S) 0~999,999,999 1 VA

R 3p3w/3p4w

43 high 03:0044Total Apparent

Power (S) 0~999,999,999 1 VA

R 3p3w/3p4w

44 low 03:0045Frequency (F) 450~650 0.1 Hz R 3p3w/3p4w

45 high 03:0046Frequency (F) 450~650 0.1 Hz R 3p3w/3p4w

46 low 03:0047Power Factor (PF) 0~1000 0.001 --- R 3p3w/3p4w

47 high 03:0048Power Factor (PF) 0~1000 0.001 --- R 3p3w/3p4w

48 low 03:0049 Total Active Energy (EP) 0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w

49 high 03:0050Total Active Energy

(EP) 0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w

50 low 03:0051 Total Reactive Energy (EQ) 0~1,000,000,000 0.01 kVArh R/W 3p3w/3p4w

51 high 03:0052Total Reactive Energy (EQ) 0~1,000,000,000 0.01 kVArh R/W 3p3w/3p4w

52 low 03:0053 15 minute block demand (BD15) 0~999,999,999 0.1 W R 3p3w/3p4w

53 high 03:005415 minute block demand (BD15) 0~999,999,999 0.1 W R 3p3w/3p4w

54 low 03:0055 1 minute block demand (BD1) 0~999,999,999 0.1 W R 3p3w/3p4w

55 high 03:00561 minute block demand (BD1) 0~999,999,999 0.1 W R 3p3w/3p4w

56 low 03:0057 Generator Total Active Energy (GEP) 0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w

57 high 03:0058Generator Total

Active Energy (GEP) 0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w

PM210 Modbus Reference 2.6.1e! 5/25

Register Word Modscan Parameter Range Scale Unit Read/Write Applies To

58 low 03:0059 Generator Total Reactive Energy

(GEQ)0~1,000,000,000 0.01 kVArh R/W 3p3w/3p4w

59 high 03:0060

Generator Total Reactive Energy

(GEQ)0~1,000,000,000 0.01 kVArh R/W 3p3w/3p4w

* Note: Register 56~57 GEP is valid only for the dual source model (PM210-X)

Main (Utility) Energy Data

Register Word Modscan Parameter Range Scale Unit Read/Write

Applies To

80 low 03:0081 Phase A Active Energy (EPA)

0~1,000,000,000 0.01 kWh R

3p4w

81 high 03:0082Phase A Active Energy

(EPA)

0~1,000,000,000 0.01 kWh R

3p4w82 low 03:0083 Phase B Active Energy

(EPB)0~1,000,000,000 0.01 kWh R

3p4w83 high 03:0084

Phase B Active Energy (EPB)

0~1,000,000,000 0.01 kWh R

3p4w

84 low 03:0085 Phase C Active Energy (EPC)

0~1,000,000,000 0.01 kWh R

3p4w

85 high 03:0086Phase C Active Energy

(EPC)

0~1,000,000,000 0.01 kWh R

3p4w

86 low 03:0087Total Active Energy (EP)

0~1,000,000,000 0.01 kWh R

3p3w/3p4w87 high 03:0088

Total Active Energy (EP)

0~1,000,000,000 0.01 kWh R

3p3w/3p4w

88 low 03:0089 Phase A Reactive Energy (EQA)

0~1,000,000,000 0.01 kVArh R

3p4w

89 high 03:0090Phase A Reactive Energy

(EQA)

0~1,000,000,000 0.01 kVArh R

3p4w90 low 03:0091 Phase B Reactive Energy

(EQB)0~1,000,000,000 0.01 kVArh R

3p4w91 high 03:0092

Phase B Reactive Energy (EQB)

0~1,000,000,000 0.01 kVArh R

3p4w

92 low 03:0093 Phase C Reactive Energy (EQC)

0~1,000,000,000 0.01 kVArh R

3p4w

93 high 03:0094Phase C Reactive Energy

(EQC)

0~1,000,000,000 0.01 kVArh R

3p4w

94 low 03:0095 Total Reactive Energy (EQ)

0~1,000,000,000 0.01 kVArh R

3p3w/3p4w95 high 03:0096

Total Reactive Energy (EQ)

0~1,000,000,000 0.01 kVArh R

3p3w/3p4w

96 low 03:0097 Phase A Active Power (PA)

0~999,999,999 1 W R

3p4w

97 high 03:0098Phase A Active Power

(PA)

0~999,999,999 1 W R

3p4w98 low 03:0099 Phase B Active Power

(PB)0~999,999,999 1 W R

3p4w99 high 03:0100

Phase B Active Power (PB)

0~999,999,999 1 W R

3p4w

100 low 03:0101 Phase C Active Power (PC)

0~999,999,999 1 W R

3p4w

101 high 03:0102Phase C Active Power

(PC)

0~999,999,999 1 W R

3p4w

102 low 03:0103Total Active Power (P)

0~999,999,999 1 W R

3p3w/3p4w103 high 03:0104

Total Active Power (P)

0~999,999,999 1 W R

3p3w/3p4w

104 low 03:0105 Phase A Reactive Power (QA)

0~999,999,999 1 VAr R

3p4w

105 high 03:0106Phase A Reactive Power

(QA)

0~999,999,999 1 VAr R

3p4w106 low 03:0107 Phase B Reactive Power

(QB)0~999,999,999 1 VAr R

3p4w107 high 03:0108

Phase B Reactive Power (QB)

0~999,999,999 1 VAr R

3p4w

108 low 03:0109 Phase C Reactive Power (QC)

0~999,999,999 1 VAr R

3p4w

109 high 03:0110Phase C Reactive Power

(QC)

0~999,999,999 1 VAr R

3p4w

110 low 03:0111Total Reactive Power (Q)

0~999,999,999 1 VAr R

3p3w/3p4w111 high 03:0112

Total Reactive Power (Q)

0~999,999,999 1 VAr R

3p3w/3p4w

112 low 03:0113 Phase A Apparent Power (SA)

0~999,999,999 1 VA R

3p4w

113 high 03:0114Phase A Apparent Power

(SA)

0~999,999,999 1 VA R

3p4w114 low 03:0115 Phase B Apparent Power

(SB)0~999,999,999 1 VA R

3p4w115 high 03:0116

Phase B Apparent Power (SB)

0~999,999,999 1 VA R

3p4w

116 low 03:0117 Phase C Apparent Power (SC)

0~999,999,999 1 VA R

3p4w

117 high 03:0118Phase C Apparent Power

(SC)

0~999,999,999 1 VA R

3p4w

118 low 03:0119Total Apparent Power (S)

0~999,999,999 1 VA R

3p3w/3p4w119 high 03:0120

Total Apparent Power (S)

0~999,999,999 1 VA R

3p3w/3p4w

PM210 Modbus Reference 2.6.1e! 6/25

Register Word Modscan Parameter Range Scale Unit Read/Write

Applies To

120 1 word 03:0121 Phase A Power Factor (PFA)

0~1000 0.001 --- R3p4w121 1 word 03:0122 Phase B Power Factor

(PFB)0~1000 0.001 --- R

3p4w

122 1 word 03:0123 Phase C Power Factor (PFC)

0~1000 0.001 --- R3p4w

123 1 word 03:0124 Total Power Factor (PF)

0~1000 0.001 --- R

3p3w/3p4w

Generator Energy DataThis Generator Energy Data table is valid only for the dual source model (PM210-X).

Register Word Modscan Parameter Range Scale Unit Read/Write

Applies To

144 low 03:0145 Generator Phase A Active Energy (GEPA)

0~1,000,000,000 0.01 kWh R

3p4w

145 high 03:0146Generator Phase A Active

Energy (GEPA)

0~1,000,000,000 0.01 kWh R

3p4w146 low 03:0147 Generator Phase B Active

Energy (GEPB)0~1,000,000,000 0.01 kWh R

3p4w147 high 03:0148

Generator Phase B Active Energy (GEPB)

0~1,000,000,000 0.01 kWh R

3p4w

148 low 03:0149 Generator Phase C Active Energy (GEPC)

0~1,000,000,000 0.01 kWh R

3p4w

149 high 03:0150Generator Phase C Active

Energy (GEPC)

0~1,000,000,000 0.01 kWh R

3p4w

150 low 03:0151 Generator Total Active Energy (GEP)

0~1,000,000,000 0.01 kWh R

3p3w/3p4w151 high 03:0152

Generator Total Active Energy (GEP)

0~1,000,000,000 0.01 kWh R

3p3w/3p4w

152 low 03:0153 Generator Phase A Reactive Energy (EQA)

0~1,000,000,000 0.01 kVArh R

3p4w

153 high 03:0154Generator Phase A

Reactive Energy (EQA)

0~1,000,000,000 0.01 kVArh R

3p4w154 low 03:0155 Generator Phase B

Reactive Energy (EQB)0~1,000,000,000 0.01 kVArh R

3p4w155 high 03:0156

Generator Phase B Reactive Energy (EQB)

0~1,000,000,000 0.01 kVArh R

3p4w

156 low 03:0157 Generator Phase C Reactive Energy (EQC)

0~1,000,000,000 0.01 kVArh R

3p4w

157 high 03:0158Generator Phase C

Reactive Energy (EQC)

0~1,000,000,000 0.01 kVArh R

3p4w

158 low 03:0159 Generator Total Reactive Energy (EQ)

0~1,000,000,000 0.01 kVArh R

3p3w/3p4w159 high 03:0160

Generator Total Reactive Energy (EQ)

0~1,000,000,000 0.01 kVArh R

3p3w/3p4w

Notes:• BD15 = 15 minute sliding block demand, data updated every 3 seconds, this is available only in the • BD1 = 1 minute sliding block demand, data updated every 3 seconds• Registers 56 to 59 and 144 to 159 are the second set of energy accumulator registers that is available only for the dual

source model (PM210-X-STD). This set is used when the generator power is active. The data read from registers 56~57 are the same as 150~151, while registers 58~59 are the same as 158~159, the difference being that only the registers 56~59 are writable.

PM210 Modbus Reference 2.6.1e! 7/25

Setup Data

Register Modscan Parameter Range Scale Unit Read/Write

128 03:0129 Phase/Wire: 3p3w or 3p4w 0=3p4w, 1=3p3w-2CT, 2=1p3w, 3=3p3w-3CT 1 --- R

129 03:0130 --- --- --- --- ---

130 03:0131 --- --- --- --- ---

131 03:0132 Device Address 1~254default = 1 1 --- R/W

132 03:0133 Baud Rate0=1200, 1=2400, 2=4800,

3=9600default = 9600

1 bauds R/W

133 03:0134 PT ratio 1~40,000default = 1.00 0.01 --- R/W

134 03:0135 CT ratio 1~1000default = 1 1 --- R/W

135 03:0136 --- --- --- --- ---

136 03:0137 --- --- --- --- ---

137 03:0138 --- --- --- --- ---

138 03:0139 --- --- --- --- ---

139 03:0140 Temperature 0~100 1 ˚C R

140 03:0141 Standard 5A or Dedicated CT 0=5A Yes (standard 5A CT), 1=5A No (dedicated CT) 1 --- R/W

141 03:0142 Firmware Version High Byte: 0~100, Low Byte: 0~9 1 --- R

142 03:0143 DO status 0=off, 1=on 1 --- R

143 03:0144 DI status 0=off, 1=on 1 --- R

Notes:• The product of the PT ratio and CT ratio should not exceed 300,000. After changing either or both the PT and CT ratio,

be sure to read back the value written to make sure that it was accepted by the PM210.

• Register 142 and 143 for the DO and DI status respectively are duplicates of registers 14 and 15.

• Writing to the DO is a separate command and uses a different register address. See the DO Control section for details.

• For the dual source model (PM210-X-STD), the DI is used to determine whether the current power source is from the utility mains or generator. When used as such, DI Off indicates utility mains power and DI On indicates generator power.

Register Modscan Parameter Range Scale Unit Read/Write

240 03:0241 Product Code

0=n/a,1=PM210-P,

2=n/a,3=PM210-X,4=PM210-4

* see table table for feature matrix

1 --- R

PM210 Modbus Reference 2.6.1e! 8/25

Model Model Code DO Dual Mode Pulse Out Demand Response

PM210-STD none --- --- --- ---

PM210-P 1 --- --- YES ---

PM210-X 3 --- YES YES ---

PM210-4 4 YES --- --- YES

Register Modscan Parameter Range Scale Unit Read/Write

241 03:0242 Use PTCT 0=no, 1=yes 1 --- R/W

The table below indicates whether the given parameter (Voltage, Current, etc) is to be pre-multiplied by the PT, CT or both. The Use PTCT flag is the same as that which can be set from the front panel display. Both the displayed value and value read through Modbus are affected.

5A Yes/Nosetting

Use PTCT setting Voltage Current kW, kVA, kVAr, kWh, kVArh

No no

No yes

Yes no

Yes yes

--- --- ---

pre-multiply by PT --- pre-multiply by PT

--- --- ---

pre-multiply by PT pre-multiply by CT pre-multiply by PT & CT

DO ControlThe PM210 can be optionally be equipped with a DO (dry contact digital output), available on the PM210-4 model. The corresponding Modbus registers below are effective only when the optional DO is available. Writing to the DO requires the use of the Modbus function code 5.

Register Description Range

1 Control DO, remember state and restore after a power on reset 255= ON, 0= OFF

2 Control DO, DO is always off after a power on reset 255= ON, 0= OFF

PM210 Modbus Reference 2.6.1e! 9/25

Examples

Examples

Read Phase Voltage

Query• Register Address = 22 (Phase B Voltage)• XH = 22 div 256 = 0• XL = 22 mod 256 = 2

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

6 3 0 22 0 2 36 120

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

6 3 4 153 224 0 3 227 152

Assume that the Use PTCT ratio is set to yes and the PT ratio is set to 20, then the value obtained herein is already the voltage on the primary side of the PT and there is no need to manually multiply the PT ratio.• Voltage (primary) = (0 * 16,777,216 + 3 * 65,536 + 153 * 256 + 224) * 0.1 V = 23600.0 V

Read Phase Current

Query• Register Address = 36 (Phase C Current)• XH = 36 div 256 = 0• XL = 36 mod 256 = 0

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

37 3 0 36 0 2 130 228

Reply

PM210Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

37 3 4 72 217 0 2 17 171

Assume that the Use PTCT ratio is set to yes and the CT ratio is set to 40, then the value obtained herein is already the current on the primary side of the CT and there is no need to manually multiply the CT ratio.• Current (primary) = (0 * 16,777,216 + 2 * 65,536 + 72 * 256 + 217) * 0.001 A= 149.721 A

PM210 Modbus Reference 2.6.1e! 10/25

Read Power

Query• Register Address = 38 (Total Active Power)• XH = 38 div 256 = 0• XL = 38 mod 256 = 38

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

124 3 0 38 0 2 47 237

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

124 3 4 62 16 1 36 90 146

Assume that the Use PTCT ratio is set to yes and the PT ratio is set to 10 and the CT ratio is set to 40 , then the value obtained herein is already the power as measured on the primary side, and there is no need to manually multiply either the PT or CT ratio.• Power = (1 * 16,777,216 + 36 * 65,536 + 62 * 256 + 16) * 1 W = 19,152,400 Watts

Read Frequency

Query• Register Address = 44• XH = 44 div 256 = 0• XL = 44 mod 256 = 44

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

124 3 0 44 0 2 15 239

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

124 3 4 2 88 0 0 215 95

• Frequency = (0 * 16,777,216 + 0 * 65,536 + 2 * 256 + 88) * 0.1 Hz = 60 Hz

PM210 Modbus Reference 2.6.1e! 11/25

Read Power Factor

Query• Register Address = 46• XH = 46 div 256 = 0• XL = 46 mod 256 = 46

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

210 3 0 46 0 2 183 161

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

210 3 4 3 102 0 0 248 165

• Data = (Y3 * 16,777,216 + Y4 * 65,536 + Y1 * 256 + Y2) * unit• Frequency = (0 * 16,777,216 + 0 * 65,536 + 3 * 256 + 102) * 0.001 = 0.87

Read Total Active Energy (kWh)

Query• Register Address = 48• XH = 48 div 256 = 0• XL = 48 mod 256 = 48

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

196 3 0 48 0 2 213 81

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) Read Data (high word)Read Data (high word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) high (Y3) low (Y4) low high

196 3 4 187 245 0 9 155 239

Assume that the Use PTCT ratio is set to yes, then the value obtained herein is already the total active energy, and there is no need to manually multiply the PT or CT ratio. • Frequency = (0 * 16,777,216 + 9 * 65,536 + 187 * 256 + 245) * 0.01 kWh = 6379.41 kWh

PM210 Modbus Reference 2.6.1e! 12/25

Write Total kWh

Query• Register Address = 48• XH = 48 div 256 = 0• XL = 48 mod 256 = 48• Total kWh = 6379.41 kWh• Y3 = (6379.41 kwh / 0.01 kWh) div 16,777,216 = 0• Y4 = ((6379.41 kwh / 0.01 kWh) mod 16,777,216) div 65,536 = 9• Y1 = ((6379.41 kwh / 0.01 kWh) mod 65,536) div 256 = 187• Y2 = (6379.41 kwh / 0.01 kWh) mod 256 = 245

PM210 Address

Function Code

Register AddressRegister AddressNumber of RegistersNumber of Registers Byte

Count

Write DataWrite DataWrite DataWrite DataPM210

AddressFunction

Code

Register AddressRegister AddressNumber of RegistersNumber of Registers Byte

Countlow wordlow word high wordhigh word CRCCRCPM210

AddressFunction

Codehigh (XH) low (XL) high low

Byte Count

high (Y1) low (Y2) high (Y3) low (Y4) low high

79 16 0 48 0 2 4 187 245 0 9 101 66

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

79 16 0 48 0 2 78 41

Read DO StatusNote that the DO status can be read from either register 14 or 142, while the DI status can be read from either register 15 or 143.

Query• Register Address = 142• XH = 142 div 256 = 0• XL = 142 mod 256 = 142

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

19 3 0 142 0 1 231 83

Reply

PM210 Address

Function Code

Byte Count

Read Data (low word)Read Data (low word) CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

19 3 2 0 1 193 135

• DO Status = {0 => Off, 1 => On}.index(1) = On

PM210 Modbus Reference 2.6.1e! 13/25

Control DO

Example 1 (Turn DO on and restore after a Power On Reset)

Input• PM210 Address = 1• DO = ON, restore after a Power on Reset

Query / Reply

PM210 Address

Function Code

Starting RegisterStarting Register Force DataForce Data CRCCRCPM210 Address

Function Code high low high low low high

1 5 0 1 255 0 221 250

Output• none

Example 2 (Turn DO off and restore after a Power On Reset)

Input• PM210 Address = 1• DO = OFF, restore after a Power on Reset

Query / Reply

PM210 Address

Function Code

Starting RegisterStarting Register Force DataForce Data CRCCRCPM210 Address

Function Code high low high low low high

1 5 0 1 0 0 156 10

Example 3 (Turn DO on but donʼt restore after a Power On Reset, DO will always be off after a Power On Reset)

Input• PM210 Address = 1• DO = ON, donʼt restore after a Power on Reset

Query / Reply

PM210 Address

Function Code

Starting RegisterStarting Register Force DataForce Data CRCCRCPM210 Address

Function Code high low high (Y1) low low high

1 5 0 2 255 0 45 250

Example 4 (Turn DO off but donʼt restore after a Power On Reset, DO will always be off after a Power On Reset)

Input• PM210 Address = 1• DO = OFF, donʼt restore after a Power on Reset

Query / Reply

PM210 Address

Function Code

Starting RegisterStarting Register Force DataForce Data CRCCRCPM210 Address

Function Code high low high (Y1) low low high

1 5 0 2 0 0 108 10

PM210 Modbus Reference 2.6.1e! 14/25

Read Phase/Wire

Query• Register Address = 128• XH = 128 div 256 = 0• XL = 128 mod 256 = 128

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

55 3 0 128 0 1 128 116

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

55 3 2 0 1 177 128

• Index = (Y1 * 256 + Y2) * Unit = (0 * 256 + 1) * 1 = 1• Phase/Wire = {0 => 3p4w, 1 => 3p3w-2CT, 2 => 1p3w, 3=3p3w-3CT} [1] = 3p3w-2CT

Read BD15 (15 minute block demand)

Query• Register Address = 52• XH = 52 div 256 = 0• XL = 52 mod 256 = 52

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

88 3 0 52 0 1 201 13

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

88 3 2 48 212 176 22

• BD15 = (48 * 256 + 212) * 0.1 W = 1250.0 Watts

PM210 Modbus Reference 2.6.1e! 15/25

Read Device AddressThis command reads the PM210 Modbus slave address. Note that in order to read this address data, you should already know the PM210 address to query or use the broadcast address (255). Therefore the address you read should be the same as the slave address you queried from, unless you use the broadcast address.

This command is useful for when you donʼt already know the existing address of the PM210. In which case, you should use the broadcast address to compel the PM210 to reply regardless of its slave address. But note that this will only work when there is a one to one connection between the host PC and the PM210, there must not be any other device on the bus network; otherwise the other slave devices will also respond to the broadcasted command and the replies from the various devices will collide.

Query• Register Address = 131• XH = 131 div 256 = 0• XL = 131 mod 256 = 131

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

255 3 0 131 0 1 96 60

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

255 3 2 0 42 16 79

• Device Address = (Y1 * 256 + Y2) * Unit = (0 * 256 + 42) * 1 = 42

PM210 Modbus Reference 2.6.1e! 16/25

Write Device AddressThis command overwrites the PM210 Modbus slave address. Once you issue this command, the original address is lost. Therefore, the next time that you issue commands to the same PM210, you must use the new address, it will no longer respond to the old address, unless of course the new address is the same as the old.

Note that the slave address can also be changed through the front panel. This command can be used with the broadcast address 255, if the original address of the PM210 is unknown. But the PM210 must be in a one to one connection with the host PC, no other devices must be on the same bus network; otherwise the other slave devices will also be changed and their simultaneous replies will collide.

Query• Current PM210 adddress = 68• Register Address = 131• XH = 131 div 256 = 0• XL = 131 mod 256 = 131• New PM210 Address = 241• Y1 = (243 / 1) div 256 = 0• Y2 = (243 / 1) mod 256 = 243

PM210 Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers Byte Count

Write DataWrite Data CRCCRCPM210 Address

Function Code high (XH) low (XL) high low

Byte Count high (Y1) low (Y2) low high

68 16 0 131 0 1 2 0 243 247 117

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

68 16 0 131 0 1 254 180

PM210 Modbus Reference 2.6.1e! 17/25

Read Baud RateThis command reads the baud rate setting of the PM210. Obviously to read this value, you should already know the correct baud rate in order to communicate in the first place.

Query• Register Address = 132• XH = 132 div 256 = 0• XL = 132 mod 256 = 132

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

78 3 0 132 0 1 202 28

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

78 3 2 0 2 108 75

• Data = (Y1 * 256 + Y2) * Unit• Index = (0 * 256 + 2) * 1 = 2• Baud Rate = {0 => 1200, 1 => 2400, 2 => 4800, 3 => 9600} [Index]• Baud Rate = {0 => 1200, 1 => 2400, 2 => 4800, 3 => 9600} [2] = 4800 bauds

Write Baud RateThis command overwrites the existing baud rate setting of the PM210. When issuing this command, the original baud rate setting is lost. Therefore, the next time that you issue commands to the same PM210, make sure to use the new baud rate, it will no longer respond to the old baud rate, unless of course the new baud rate is the same the old.

Query• XH = 132 div 256 = 0• XL = 132 mod 256 = 132• Baud Rate = 4800 bauds• Index = {0 => 1200, 1 => 2400, 2 => 4800, 3 => 9600} .value(2400) = 1• Y1 = Index div 256 = 1 div 256 = 0• Y2 = Index mod 256 = 1 div 256 = 1

PM210 Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers Byte Count

Write DataWrite Data CRCCRCPM210 Address

Function Code high (XH) low (XL) high low

Byte Count high (Y1) low (Y2) low high

101 16 0 132 0 1 2 0 1 227 22

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

101 16 0 132 0 1 73 196

PM210 Modbus Reference 2.6.1e! 18/25

Read PT Ratio

Query• Register Address = 133• XH = 133 div 256 = 0• XL = 133 mod 256 = 133

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

97 3 0 133 0 1 156 67

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

97 3 2 7 208 59 224

• Device Address = (Y1 * 256 + Y2) * Unit = (7 * 256 + 208) * 0.01 = 20.00

Write PT Ratio

Query• Register Address = 133• XH = 133 div 256 = 0• XL = 133 mod 256 = 133• PT Ratio = 20• Y1 = (20 / 0.01) div 256 = 7• Y2 = (20 / 0.01) mod 256 = 208

PM210 Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers Byte Count

Write DataWrite Data CRCCRCPM210 Address

Function Code high (XH) low (XL) high low

Byte Count high (Y1) low (Y2) low high

47 16 0 133 0 1 2 7 208 111 200

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

47 16 0 133 0 1 22 110

PM210 Modbus Reference 2.6.1e! 19/25

Read CT Ratio

Query• Register Address = 134• XH = 134 div 256 = 0• XL = 134 mod 256 = 134

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

33 3 0 134 0 1 98 131

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

33 3 2 0 80 57 191

• Device Address = (Y1 * 256 + Y2) * Unit = (0 * 256 + 80) * 1 = 80

Write CT Ratio

Query• Register Address = 134• XH = 134 div 256 = 0• XL = 134 mod 256 = 134• CT Ratio = 60• Y1 = (60 / 1) div 256 = 0• Y2 = (60 / 1) mod 256 = 60

PM210 Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers Byte Count

Write DataWrite Data CRCCRCPM210 Address

Function Code high (XH) low (XL) high low

Byte Count high (Y1) low (Y2) low high

77 16 0 134 0 1 2 0 60 221 36

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

77 16 0 134 0 1 238 44

PM210 Modbus Reference 2.6.1e! 20/25

Read Standard/Dedicated CT

Query• Register Address = 140• XH = 140 div 256 = 0• XL = 140 mod 256 = 140

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

216 3 0 140 0 1 86 232

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

216 3 2 0 1 100 87

• Index = (Y1 * 256 + Y2) * Unit = (0 * 256 + 1) * 1 = 1• Standard/Dedicated CT = {0 => Standard 5A, 1 => Dedicated CT} [Index]• Standard/Dedicated CT = {0 => Standard 5A, 1 => Dedicated CT} [1] = Dedicated CT

Write Standard/Dedicated CT

Query• Register Address = 140• XH = 140 div 256 = 0• XL = 140 mod 256 = 140• Standard/Dedicated CT = Standard • Index = {0 => Standard 5A, 1 => Dedicated CT}.value(Standard 5A) = 0• Y1 = Index div 256 = 0 div 256 = 0• Y2 = Index mod 256 = 0 div 256 = 0

PM210 Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers Byte Count

Write DataWrite Data CRCCRCPM210 Address

Function Code high (XH) low (XL) high low

Byte Count high (Y1) low (Y2) low high

70 16 0 140 0 1 2 0 0 174 175

Reply

PM210Address

Function Code

Register AddressRegister Address Number of RegistersNumber of Registers CRCCRCPM210Address

Function Code high (XH) low (XL) high low low high

70 16 0 140 0 1 207 85

PM210 Modbus Reference 2.6.1e! 21/25

Read TemperatureThis reads the temperature of the metering IC chip.

Query• Register Address = 139• XH = 139 div 256 = 0• XL = 139 mod 256 = 139

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

11 3 0 139 0 1 244 138

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

11 3 2 0 45 224 88

• Firmware Version = (Y1 * 256 + Y2) = (0 * 256 + 45) * 1˚C = 45˚C

Read Firmware Version

Query• Register Address = 141• XH = 141 div 256 = 0• XL = 141 mod 256 = 141

PM210 Address

Function Code

Register AddressRegister Address Number of PointsNumber of Points CRCCRCPM210 Address

Function Code high (XH) low (XL) high low low high

99 3 0 141 0 1 28 99

Reply

PM210 Address

Function Code

Byte Count

Read DataRead Data CRCCRCPM210 Address

Function Code

Byte Count high (Y1) low (Y2) low high

99 3 2 1 56 65 206

• Firmware Version = (Y1 * 256 + Y2) = (1 * 256 + 56) = 312

PM210 Modbus Reference 2.6.1e! 22/25

CRC Computation

CRC Computation

The PM210 conforms to the Modbus/RTU protocol and thus uses CRC16 for its error checking. The computed CRC is appended to the end of the message with the LSB first and then the MSB. Below is the pseudo code for computing the CRC as used by the standard Modbus/RTU. The pseudo code is written in the Ruby language and can be directly used as such.

Definition

def get_crc (*byte_array) sum = 0xFFFF byte_array.each do |byte| sum ^= byte 8.times do carry = (1 == sum & 1) sum = 0x7FFF & (sum >> 1) sum ^= 0xA001 if carry end end return [sum & 0xFF, sum >> 8]end

Usage

>> crc = get_crc(1,3,0,141,0,5)=> [21, 226] <---- [CRC low byte, CRC high byte]

PM210 Modbus Reference 2.6.1e! 23/25

Notes on Modscan

This is not a manual of Modscan, but only a short note describing its manual commands capability.

Most users are familiar with Modscanʼs ability to read and continuously poll a designated device using Modbus commands 1 to 4. But in addition, Modscan also has the ability to issue other commands as well.

For the DEM, function code 5 and 16 needs to be issued as well. To issue them, first make sure that the connection has already been established and running then go to the menu and run the dialog box “User Defined Command String” from [Setup->Extended->User Msg] as shown in the screen captures below:

Notes on Modscan

PM210 Modbus Reference 2.6.1e! 24/25

Additional Resources

Additional ResourcesAlthough every effort has been taken to ensure that this document is free from errors, some may still remain. If found please send an email to: [email protected], in the subject line write “Errata” and please indicate the name of this document “PM210 Modbus Reference”, revision number, page number and indicate the error with its correction. Thank you.

We have made sure that this document is as clear and useful to you as possible, but any suggestions on improving this document to serve you even better would be welcome. Send comments and suggestions to: [email protected], in the subject line, write “Comments” and please indicate the name of this document “PM210 Modbus Reference”. Questions are also welcome.

This document only covers the Modbus protocol registers as used by the PM210, for interfacing and other information please refer to the PM210 userʼs manual.

PM210 Modbus Reference 2.6.1e! 25/25