0% found this document useful (0 votes)
42 views

PM210 Modbus Reference-2.6.1e

Uploaded by

Carlos Torres
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

PM210 Modbus Reference-2.6.1e

Uploaded by

Carlos Torres
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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
Table of Contents
General Information! 3
Register 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! 10
Read 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! 23
Definition! 23

Usage! 23

Notes on Modscan! 24
Additional Resources! 25

PM210 Modbus Reference 2.6.1e! 2/25


General Information

General Information
The 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.

Read/
Register Modscan Parameter Range Scale Unit Applies To
Write

0 03:0001 Phase A Voltage (VA)


0~65535,
1 03:0002 Phase B Voltage (VB) no PT 0.1 V R 3p3w/3p4w
factor
2 03:0003 Phase C Voltage (VC)

3 03:0004 Line A-B Voltage (VAB)


0~65535,
4 03:0005 Line B-C Voltage (VBC) no PT 0.1 V R 3p3w/3p4w
factor
5 03:0006 Line C-A Voltage (VCA)

6 03:0007 Phase A Current (IA)


0~65535,
7 03:0008 Phase B Current (IB) no CT 0.001 A R 3p3w/3p4w
factor
8 03:0009 Phase C Current (IC)

9 03:0010 Total Active Power (P) 0.001 kW


0~65535,
no PT/CT R 3p3w/3p4w
10 03:0011 Total Reactive Power (Q) factor 0.001 kVAr

11 03:0012 Total Apparent Power (S) 0.001 kVA

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.

Read/
Register Word Modscan Parameter Range Scale Unit Applies To
Write
20 low 03:0021 Phase A Voltage
21 high 03:0022 (VA)

22 low 03:0023 Phase B Voltage


0~1,400,000 0.1 V R 3p3w/3p4w
23 high 03:0024 (VB)

24 low 03:0025 Phase C Voltage


25 high 03:0026 (VC)

26 low 03:0027 Line A-B Voltage


27 high 03:0028 (VAB)

28 low 03:0029 Line B-C Voltage


0~2,424,800 0.1 V R 3p3w/3p4w
29 high 03:0030 (VBC)

30 low 03:0031 Line C-A Voltage


31 high 03:0032 (VCA)

32 low 03:0033
Phase A Current (IA)
33 high 03:0034

34 low 03:0035
Phase B Current (IB) 0~5,000,000 0.001 A R 3p3w/3p4w
35 high 03:0036

36 low 03:0037
Phase C Current (IC)
37 high 03:0038

38 low 03:0039 Total Active Power


0~999,999,999 1 W
39 high 03:0040 (P)

40 low 03:0041 Total Reactive Power


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

42 low 03:0043 Total Apparent


0~999,999,999 1 VA
43 high 03:0044 Power (S)

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

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

48 low 03:0049 Total Active Energy


0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w
49 high 03:0050 (EP)

50 low 03:0051 Total Reactive


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

52 low 03:0053 15 minute block


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

54 low 03:0055 1 minute block


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

56 low 03:0057 Generator Total


0~1,000,000,000 0.01 kWh R/W 3p3w/3p4w
57 high 03:0058 Active Energy (GEP)

PM210 Modbus Reference 2.6.1e! 5/25


Read/
Register Word Modscan Parameter Range Scale Unit Applies To
Write
58 low 03:0059 Generator Total
Reactive Energy 0~1,000,000,000 0.01 kVArh R/W 3p3w/3p4w
59 high 03:0060 (GEQ)

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

Main (Utility) Energy Data

Read/ Applies
Register Word Modscan Parameter Range Scale Unit
Write To
80 low 03:0081 Phase A Active Energy
81 high 03:0082 (EPA)

82 low 03:0083 Phase B Active Energy


3p4w
83 high 03:0084 (EPB)
0~1,000,000,000 0.01 kWh R
84 low 03:0085 Phase C Active Energy
85 high 03:0086 (EPC)

86 low 03:0087 3p3w/


Total Active Energy (EP)
87 high 03:0088 3p4w

88 low 03:0089 Phase A Reactive Energy


89 high 03:0090 (EQA)

90 low 03:0091 Phase B Reactive Energy


3p4w
91 high 03:0092 (EQB)
0~1,000,000,000 0.01 kVArh R
92 low 03:0093 Phase C Reactive Energy
93 high 03:0094 (EQC)

94 low 03:0095 Total Reactive Energy 3p3w/


95 high 03:0096 (EQ) 3p4w

96 low 03:0097 Phase A Active Power


97 high 03:0098 (PA)

98 low 03:0099 Phase B Active Power


3p4w
99 high 03:0100 (PB)
0~999,999,999 1 W R
100 low 03:0101 Phase C Active Power
101 high 03:0102 (PC)

102 low 03:0103 3p3w/


Total Active Power (P)
103 high 03:0104 3p4w

104 low 03:0105 Phase A Reactive Power


105 high 03:0106 (QA)

106 low 03:0107 Phase B Reactive Power


3p4w
107 high 03:0108 (QB)
0~999,999,999 1 VAr R
108 low 03:0109 Phase C Reactive Power
109 high 03:0110 (QC)

110 low 03:0111 3p3w/


Total Reactive Power (Q)
111 high 03:0112 3p4w

112 low 03:0113 Phase A Apparent Power


113 high 03:0114 (SA)

114 low 03:0115 Phase B Apparent Power


3p4w
115 high 03:0116 (SB)
0~999,999,999 1 VA R
116 low 03:0117 Phase C Apparent Power
117 high 03:0118 (SC)

118 low 03:0119 3p3w/


Total Apparent Power (S)
119 high 03:0120 3p4w

PM210 Modbus Reference 2.6.1e! 6/25


Read/ Applies
Register Word Modscan Parameter Range Scale Unit
Write To
Phase A Power Factor
120 1 word 03:0121
(PFA)

Phase B Power Factor


121 1 word 03:0122 3p4w
(PFB)
0~1000 0.001 --- R
Phase C Power Factor
122 1 word 03:0123
(PFC)

3p3w/
123 1 word 03:0124 Total Power Factor (PF)
3p4w

Generator Energy Data


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

Read/ Applies
Register Word Modscan Parameter Range Scale Unit
Write To
144 low 03:0145 Generator Phase A Active
145 high 03:0146 Energy (GEPA)

146 low 03:0147 Generator Phase B Active


3p4w
147 high 03:0148 Energy (GEPB)
0~1,000,000,000 0.01 kWh R
148 low 03:0149 Generator Phase C Active
149 high 03:0150 Energy (GEPC)

150 low 03:0151 Generator Total Active 3p3w/


151 high 03:0152 Energy (GEP) 3p4w

152 low 03:0153 Generator Phase A


153 high 03:0154 Reactive Energy (EQA)

154 low 03:0155 Generator Phase B


3p4w
155 high 03:0156 Reactive Energy (EQB)
0~1,000,000,000 0.01 kVArh R
156 low 03:0157 Generator Phase C
157 high 03:0158 Reactive Energy (EQC)

158 low 03:0159 Generator Total Reactive 3p3w/


159 high 03:0160 Energy (EQ) 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

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

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

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

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

0=1200, 1=2400, 2=4800,


132 03:0133 Baud Rate 3=9600 1 bauds R/W
default = 9600

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

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

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

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

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

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

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

0=5A Yes (standard 5A CT),


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

High Byte: 0~100,


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

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

0=n/a,
1=PM210-P,
2=n/a,
240 03:0241 Product Code 1 --- R
3=PM210-X,
4=PM210-4
* see table table for feature matrix

PM210 Modbus Reference 2.6.1e! 8/25


Demand
Model Model Code DO Dual Mode Pulse Out
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/No Use PTCT


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

No no --- --- ---

No yes pre-multiply by PT --- pre-multiply by PT

Yes no --- --- ---

Yes yes pre-multiply by PT pre-multiply by CT pre-multiply by PT & CT

DO Control
The 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
6 3 0 22 0 2 36 120

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
37 3 0 36 0 2 130 228

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
124 3 0 38 0 2 47 237

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
124 3 0 44 0 2 15 239

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
210 3 0 46 0 2 183 161

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
196 3 0 48 0 2 213 81

Reply
PM210 Function Byte Read Data (low word) Read Data (high word) CRC
Address Code 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

Number of Write Data


PM210 Function Register Address Byte
Registers low word high word CRC
Address Code Count
high (XH) low (XL) high low high (Y1) low (Y2) high (Y3) low (Y4) low high
79 16 0 48 0 2 4 187 245 0 9 101 66

Reply
PM210 Function Register Address Number of Registers CRC
Address Code high (XH) low (XL) high low low high
79 16 0 48 0 2 78 41

Read DO Status
Note 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
19 3 0 142 0 1 231 83

Reply
PM210 Function Byte Read Data (low word) CRC
Address Code 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 Function Starting Register Force Data CRC
Address 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 Function Starting Register Force Data CRC
Address 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 Function Starting Register Force Data CRC
Address 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 Function Starting Register Force Data CRC
Address 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
55 3 0 128 0 1 128 116

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
88 3 0 52 0 1 201 13

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Address
This 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
255 3 0 131 0 1 96 60

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Address
This 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 Function Register Address Number of Registers Byte Write Data CRC
Address Code high (XH) low (XL) high low Count high (Y1) low (Y2) low high
68 16 0 131 0 1 2 0 243 247 117

Reply
PM210 Function Register Address Number of Registers CRC
Address 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 Rate
This 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
78 3 0 132 0 1 202 28

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Rate


This 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 Function Register Address Number of Registers Byte Write Data CRC
Address Code high (XH) low (XL) high low Count high (Y1) low (Y2) low high
101 16 0 132 0 1 2 0 1 227 22

Reply
PM210 Function Register Address Number of Registers CRC
Address 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
97 3 0 133 0 1 156 67

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Function Register Address Number of Registers Byte Write Data CRC
Address Code high (XH) low (XL) high low Count high (Y1) low (Y2) low high
47 16 0 133 0 1 2 7 208 111 200

Reply
PM210 Function Register Address Number of Registers CRC
Address 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
33 3 0 134 0 1 98 131

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Function Register Address Number of Registers Byte Write Data CRC
Address Code high (XH) low (XL) high low Count high (Y1) low (Y2) low high
77 16 0 134 0 1 2 0 60 221 36

Reply
PM210 Function Register Address Number of Registers CRC
Address 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
216 3 0 140 0 1 86 232

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Function Register Address Number of Registers Byte Write Data CRC
Address Code high (XH) low (XL) high low Count high (Y1) low (Y2) low high
70 16 0 140 0 1 2 0 0 174 175

Reply
PM210 Function Register Address Number of Registers CRC
Address 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 Temperature
This reads the temperature of the metering IC chip.

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

PM210 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
11 3 0 139 0 1 244 138

Reply
PM210 Function Byte Read Data CRC
Address Code 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 Function Register Address Number of Points CRC


Address Code high (XH) low (XL) high low low high
99 3 0 141 0 1 28 99

Reply
PM210 Function Byte Read Data CRC
Address Code 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

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:

PM210 Modbus Reference 2.6.1e! 24/25


Additional Resources

Additional Resources
Although 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

You might also like