Modbus Register Maps – GW04

Packet Power Monitoring Node Modbus Register Maps

The Modbus register map defines the way monitoring node readings are mapped onto Modbus register values. Modbus registers are always 16 bits in size, so in some cases larger values are mapped onto sets of multiple registers.

A value mapping requires four elements:

  1. Register number: the address of the Modbus register (if one register) or first of multiple consecutive registers (if mapping onto multiple registers)
  2. Monitoring node data channel: the data channel from which the value being mapped is taken
  3. Scale factor: a multiplier applied to the value; sometimes used to scale the value to avoid using floating point numbers which are not directly supported by Modbus
  4. Value mapping: the binary byte-level mapping of the scaled value onto one or more 16-bit Modbus registers

Data channels

The data channels are usually self-explanatory (e.g. Voltage [V]). Special, Packet Power-specific data channels are listed below:

  • Node type [0-2]: type of monitoring node: 0=unknown, 1=power monitoring node, 2=environmental monitoring node)
  • Node OK: node communication status indicator: 0=node is not transmitting, most recent readings or 0 values are reported; 1=node is transmitting OK

Scale factor

The reading value is multiplied by the scale factor before being mapped onto registers. Note that the default values may be smaller than expected. For example, voltage is reported in tenths of a volt, so if your monitoring application expects to see values in full volts, you would need to scale the reading by a factor of 10. Similarly, the scale for energy readings is Watt-hours. If your application expects kilowatt hours, you will need to scale the reading by a factor of 1000.

Mapping

The reading value is converted to a specified binary format, then mapped onto the specified set of 16-bit Modbus registers. The letters in the mapping denote bytes.

Example: “int ABCD (32b) => DC,BA (2 registers)”

The above mapping will take a reading value, scale it, convert it to a 32 bit signed integer, then map it onto 2 consecutive Modbus registers while swapping bytes in each register.

Monitor Specific Register Maps

The Ethernet Gateway Version 4 (EG4) with firmware version 1.12.x or higher has the following register maps resident on the Gateway. For Gateways where the register map is not pre-loaded the register maps can be downloaded and imported onto the Gateway or the Gateway firmware can be updated to 1.12.x where register maps are resident. As noted this is a dynamic map and register numbers can be modified along with custom expressions.  

Power Monitoring Registers

Note: not all registers will be applicable to all power monitoring devices.

RegisterExpressionSyntaxMultiplierUnitDescriptionMeasurementValue
100R(Energy) * 1Energy1WhTotal Energy Use1Wh4 register, big-endian
102R(EnergyA) * 1EnergyA1WhPhase A Energy Use1Wh4 register, big-endian
104R(EnergyB) * 1EnergyB1WhPhase B Energy Use1Wh4 register, big-endian
106R(EnergyC) * 1EnergyC1WhPhase C Energy Use1Wh4 register, big-endian
202R(EnergyExportA) * 1EnergyExportA1WhPhase A net energy export1Wh4 register, big-endian
204R(EnergyExportB) * 1EnergyExportB1WhPhase B net energy export1Wh4 register, big-endian
206R(EnergyExportC) * 1EnergyExportC1WhPhase C net energy export1Wh4 register, big-endian
300R(Ah) * 10Ah10AhAmp Hours Total0.1Ah4 register, big-endian
302R(AhA) * 10AhA10AhAmp Hours Channel A0.1Ah4 register, big-endian
304R(AhB) * 10AhB10AhAmp Hours Channel B0.1Ah4 register, big-endian
306R(AhC) * 10AhC10AhAmp Hours Channel C0.1Ah4 register, big-endian
308R(AhD) * 10AhD10AhAmp Hours Channel D0.1Ah4 register, big-endian
310R(AhE) * 10AhE10AhAmp Hours Channel E0.1Ah4 register, big-endian
312R(AhF) * 10AhF10AhAmp Hours Channel F0.1Ah4 register, big-endian
402R(VAhA) * 10VAhA10VAhAmp Hours Channel A0.1Ah4 register, big-endian
404R(VAhB) * 10VAhB10VAhAmp Hours Channel B0.1Ah4 register, big-endian
406R(VAhC) * 10VAhC10VAhAmp Hours Channel C0.1Ah4 register, big-endian
408R(VAhD) * 10VAhD10VAhAmp Hours Channel D0.1Ah4 register, big-endian
410R(VAhE) * 10VAhE10VAhAmp Hours Channel E0.1Ah4 register, big-endian
412R(VAhF) * 10VAhF10VAhAmp Hours Channel F0.1Ah4 register, big-endian
450R(Power) * 1Power1WTotal Power1Wh1 register, big-endian
451R(PowerA) * 1PowerA1WPower Phase A1Wh1 register, big-endian
452R(PowerB) * 1PowerB1WPower Phase B1Wh1 register, big-endian
453R(PowerC) * 1PowerC1WPower Phase C1Wh1 register, big-endian
454R(PowerD) * 1PowerD1WPower Channel D1W1 register, big-endian
455R(PowerE) * 1PowerE1WPower Channel E1W1 register, big-endian
456R(PowerF) * 1PowerF1WPower Channel F1W1 register, big-endian
500R(Current) * 10Current10ATotal Current0.1A1 register, big-endian
501R(CurrentA) * 10CurrentA10ACurrent Phase A0.1A1 register, big-endian
502R(CurrentB) * 10CurrentB10ACurrent Phase B0.1A1 register, big-endian
503R(CurrentC) * 10CurrentC10ACurrent Phase C0.1A1 register, big-endian
504R(CurrentD) * 10CurrentD10ACurrent Channel D0.1 A1 register, big-endian
505R(CurrentE) * 10CurrentE10ACurrent Channel E0.1 A1 register, big-endian
506R(CurrentF) * 10CurrentF10ACurrent Channel F0.1 A1 register, big-endian
550R(CurrentN) * 10CurrentN10ACurrent Neutral0.1 A1 register, big-endian
600R(Voltage) * 10Voltage10VAverage Voltage0.1V1 register, big-endian
601R(VoltageA) * 10VoltageA10VVoltage Phase A0.1V1 register, big-endian
602R(VoltageB) * 10VoltageB10VVoltage Phase B0.1V1 register, big-endian
603R(VoltageC) * 10VoltageC10VVoltage Phase C0.1V1 register, big-endian
604R(VoltageD) * 10VoltageD10VVoltage Channel D0.1V1 register, big-endian
605R(VoltageE) * 10VoltageE10VVoltage Channel E0.1V1 register, big-endian
606R(VoltageF) * 10VoltageF10VVoltage Channel F0.1 V1 register, big-endian
651R(VoltageAB) * 10VoltageAB10VVoltage A-B0.1V1 register, big-endian
652R(VoltageCA) * 10VoltageCA10VVoltage C-A0.1V1 register, big-endian
653R(VoltageBC) * 10VoltageBC10VVoltage B-C0.1V1 register, big-endian
700R(VAR) * 1VAR1VAApparent Power Total1VA1 register, big-endian
701R(VARA) * 1VARA1VAApparent Power Phase A1VA1 register, big-endian
702R(VARB) * 1VARB1VAApparent Power Phase B1VA1 register, big-endian
703R(VARC) * 1VARC1VAApparent Power Phase C1VA1 register, big-endian
704R(VARD) * 1VARD1VARReactive Power Channel D1 VAR1 register, big-endian
705R(VARE) * 1VARE1VARReactive Power Channel E1 VAR1 register, big-endian
706R(VARF) * 1VARF10VARReactive Power Channel F1 VAR1 register, big-endian
801R(THDiA) * 10THDiA10THDI Phase A0.10%1 register, big-endian
802R(THDiB) * 10THDiB10THDI Phase B0.10%1 register, big-endian
803R(THDiC) * 10THDiC10THDI Phase C0.10%1 register, big-endian
851R(THDvA) * 10THDvA10THDV Phase A0.10%1 register, big-endian
852R(THDvB) * 10THDvB10THDV Phase B0.10%1 register, big-endian
853R(THDvC) * 10THDvC10THDV Phase C0.10%1 register, big-endian
900R(PhaseAngleA) * 10PhaseAngleA10DegreesPhase Angle Phase A0.1 VA1 register, big-endian
901R(PhaseAngleB) * 10PhaseAngleB10DegreesPhase Angle Phase B0.1 VA1 register, big-endian
902R(PhaseAngleC) * 10PhaseAngleC10DegreesPhase Angle Phase C0.011 register, big-endian
951R(PowerFactorA) * 100PowerFactorA100PFPower Factor Phase A0.011 register, big-endian
952R(PowerFactorB) * 100PowerFactorB100PFPower Factor Phase B0.011 register, big-endian
953R(PowerFactorC) * 100PowerFactorC100PFPower Factor Phase C0.011 register, big-endian
954R(PowerFactorD) * 100PowerFactorD100PFPower Factor Channel D0.011 register, big-endian
955R(PowerFactorE) * 100PowerFactorE100PFPower Factor Channel E0.011 register, big-endian
956R(PowerFactorF) * 100PowerFactorF100PFPower Factor Channel F0.011 register, big-endian
1000R(Frequency) * 10Frequency10HzFrequency (phase A)0.1 VA1 register, big-endian
1001R(Temperature) * 10Temperature10DegreesTemperature (internal)0.1°C1 register, big-endian
1002R(VMax) * 10Vmax10VMaximum Voltage0.1V1 register, big-endian
1003R(IMax) * 10Imax10AMaximum Current0.1A1 register, big-endian

Environmental Monitoring and Dry Contact Registers

1200R(Temperature0) * 10Temperature010DegreesTemperature (internal)0.1°C1 register, big-endian
1201R(Temperature1) * 10Temperature110DegreesTemperature Channel 10.1°C1 register, big-endian
1202R(Temperature2) * 10Temperature210DegreesTemperature Channel 20.1°C1 register, big-endian
1203R(Temperature3) * 10Temperature310DegreesTemperature Channel 30.1°C1 register, big-endian
1204R(Temperature4) * 10Temperature410DegreesTemperature Channel 40.1°C1 register, big-endian
1205R(Temperature5) * 10Temperature510DegreesTemperature Channel 50.1°C1 register, big-endian
1206R(Temperature6) * 10Temperature610DegreesTemperature Channel 60.1°C1 register, big-endian
1207R(Temperature7) * 10Temperature710DegreesTemperature Channel 70.1°C1 register, big-endian
1208R(Temperature8) * 10Temperature810DegreesTemperature Channel 80.1°C1 register, big-endian
1209R(Temperature9) * 10Temperature910DegreesTemperature Channel 90.1°C1 register, big-endian
1210R(Temperature10) * 10Temperature1010DegreesTemperature Channel 100.1°C1 register, big-endian
1211R(Temperature11) * 10Temperature1110DegreesTemperature Channel 110.1°C1 register, big-endian
1212R(Temperature12) * 10Temperature1210DegreesTemperature Channel 120.1°C1 register, big-endian
1250R(Humidity) * 10Humidity10%Humidity0.10%1 register, big-endian
1251R(Humidity1) * 10Humidity110%Humidity Channel 10.10%1 register, big-endian
1252R(Humidity2) * 10Humidity210%Humidity Channel 20.10%1 register, big-endian
1253R(Humidity3) * 10Humidity310%Humidity Channel 30.10%1 register, big-endian
1254R(Humidity4) * 10Humidity410%Humidity Channel 40.10%1 register, big-endian
1255R(Humidity5) * 10Humidity510%Humidity Channel 50.10%1 register, big-endian
1256R(Humidity6) * 10Humidity610%Humidity Channel 60.10%1 register, big-endian
1257R(Humidity7) * 10Humidity710%Humidity Channel 70.10%1 register, big-endian
1258R(Humidity8) * 10Humidity810%Humidity Channel 80.10%1 register, big-endian
1259R(Humidity9) * 10Humidity910%Humidity Channel 90.10%1 register, big-endian
1260R(Humidity10) * 10Humidity1010%Humidity Channel 100.10%1 register, big-endian
1261R(Humidity11) * 10Humidity1110%Humidity Channel 110.10%1 register, big-endian
1262R(Humidity12) * 10Humidity1210%Humidity Channel 120.10%1 register, big-endian
1300R(Contact1) * 1Contact110/1Contact Status Port 1open / closed1 register, big-endian
1301R(Contact2) * 1Contact210/1Contact Status Port 2open / closed1 register, big-endian
1302R(Contact3) * 1Contact310/1Contact Status Port 3open / closed1 register, big-endian
1303R(Contact4) * 1Contact410/1Contact Status Port 4open / closed1 register, big-endian
1304R(Contact5) * 1Contact510/1Contact Status Port 5open / closed1 register, big-endian
1305R(Contact6) * 1Contact610/1Contact Status Port 6open / closed1 register, big-endian
1306R(Contact7) * 1Contact710/1Contact Status Port 7open / closed1 register, big-endian
1307R(Contact8) * 1Contact810/1Contact Status Port 8open / closed1 register, big-endian
1308R(Contact9) * 1Contact910/1Contact Status Port 9open / closed1 register, big-endian
1309R(Contact10) * 1Contact1010/1Contact Status Port 10open / closed1 register, big-endian
1310R(Contact11) * 1Contact1110/1Contact Status Port 11open / closed1 register, big-endian
1311R(Contact12) * 1Contact1210/1Contact Status Port 12open / closed1 register, big-endian
1350R(ProbeStatus1) * 1ProbeStatus11VProbe Status Port 1open / closed1 register, big-endian
1351R(ProbeStatus2) * 1ProbeStatus210/1Probe Status Port 2open / closed1 register, big-endian
1352R(ProbeStatus3) * 1ProbeStatus310/1Probe Status Port 3open / closed1 register, big-endian
1353R(ProbeStatus4) * 1ProbeStatus410/1Probe Status Port 4open / closed1 register, big-endian
1354R(ProbeStatus5) * 1ProbeStatus510/1Probe Status Port 5open / closed1 register, big-endian
1355R(ProbeStatus6) * 1ProbeStatus6100/1Probe Status Port 6open / closed1 register, big-endian
1356R(ProbeStatus7) * 1ProbeStatus710/1Probe Status Port 7open / closed1 register, big-endian
1357R(ProbeStatus8) * 1ProbeStatus8100/1Probe Status Port 8open / closed1 register, big-endian
1358R(ProbeStatus9) * 1ProbeStatus9100/1Probe Status Port 9open / closed1 register, big-endian
1359R(ProbeStatus10) * 1ProbeStatus10100/1Probe Status Port 10open / closed1 register, big-endian
1360R(ProbeStatus11) * 1ProbeStatus11100/1Probe Status Port 11open / closed1 register, big-endian
1361R(ProbeStatus12) * 1ProbeStatus12100/1Probe Status Port 12open / closed1 register, big-endian
1400R(DewPoint) * 10DewPoint10°CDew Point0.1°C1 register, big-endian
1450R(Pressure) * 10000Pressure10000%Differential Pressure0.1mBar1 register, big-endian

Diagnostic Registers

2000R(AllReportRate) * 10AllReportRate10Radio Reports per Minute1 register, big-endian
2001R(UniqueReportRate) * 10UniqueReportRate10Unique Reports Per Minute1 register, big-endian
2010R(Battery) * 1Battery1%Battery Percentage1%1 register, big-endian
2011R(VDD) * 10VDD10VBattery Voltage0.1V1 register, big-endian
2020R(FirmwareImage) * 1FirmwareImage1Firmware Image1 register, big-endian
2021R(FirmwareVersion) * 1FirmwareVersion1Firmware Version1 register, big-endian
2030R(ICBExpected) * 1ICBExpected11 register, big-endian
2031R(ICBImage) * 1ICBImage11 register, big-endian
2032R(ICBReceived) * 1ICBReceived11 register, big-endian
2033R(ICBVersion) * 1ICBVersion11 register, big-endian

Dry Contact and Leak Detection Applications

Environmental Monitors can be used for dry contact sensing by placing a dry contact based device on an external temperature port. In the event a temperature port is open i.e. contact closure is open, it will return a temperature of -270°C. If the temperature port has a shorted or closed contact it will return a value of 300°C.

Dry Contact StatusTemp. Port Value
Open-270°C
Closed+300°C

Using a Modbus expression “OPEN” != R(ProbeStatusx) where x= the probe port number on the monitor will return a “0” value when the port is open and a “1” value when the port is closed or shorted.

Register #(0-based)Probe PortReading value expressionValue returned when dry contact openValue returned when dry contact closedRegister mapping
11“OPEN” != R(ProbeStatus1)011 register, big-endian
22“OPEN” != R(ProbeStatus1)011 register, big-endian
33“OPEN” != R(ProbeStatus3)011 register, big-endian
44“OPEN” != R(ProbeStatus4)011 register, big-endian
55“OPEN” != R(ProbeStatus5)011 register, big-endian
66“OPEN” != R(ProbeStatus6)011 register, big-endian
77“OPEN” != R(ProbeStatus7)011 register, big-endian
88“OPEN” != R(ProbeStatus8)011 register, big-endian
99“OPEN” != R(ProbeStatus9)011 register, big-endian
1010“OPEN” != R(ProbeStatus10)011 register, big-endian
1111“OPEN” != R(ProbeStatus11)011 register, big-endian
1212“OPEN” != R(ProbeStatus12)011 register, big-endian

Depending on the environmental monitor used there will be 2 to 12 temperature ports available for use with dry contacts. No additional configuration is needed.  

E302: Ports 1-2

E306: Ports 1-6

E312: Ports 1-12

7. Power and Environmental Monitoring
  • PACKET POWER