Technical FAQs

Ask a Question

Modbus Mastering CM4000 Energy Registers with ION Meters

Referring to CM4000 register map, energy registers are Modulo 10000 (Mod10) format consisting of 4x16 bit registers.  However, the formats supported by Modbus Master Map module only consists of 2x32 bit M10k (Mod10) formats which can only be manipulated in 4321 or 2143 order.

Product Line
ION meters

Modbus Master Map module
Modbus Master Device module

Modbus mastering a CM4000 device with an ION meter and format incompatibility.


Step 1: ION meter reads the four registers from CM4000
Same rules for Modbus mastering using ION meters is followed; Modbus Master Map and Modbus Master Device modules need to be created and setup.

The string used for Device Map setup register takes the form:
LbkWh in1,SR41716,FSINT16,NR1,S1,O0,
LbkWh in2,SR41717,FSINT16,NR1,S1,O0,
LbkWh in3,SR41718,FSINT16,NR1,S1,O0,
LbkWh in4,SR41719,FSINT16,NR1,S1,O0,

Where 41716 register refers to Energy, Real Total.

Here is what Modbus Master Map module will look like using the above string:

Here is an example of what Modbus Master Device module output registers could look like:

Step 2: Convert the four registers
To convert a 64-bit signed or unsigned value returned in four consecutive 16-bit registers to a decimal value use the formula:
R4*10,000^3 + R3*10,000^2 + R2*10,000 + R1

Now an Arithmetic module can be used to convert the registers to a single decimal value.

Input of Arithmetic module:

Setup (formula) and output registers of Arithmetic module:

Comparison of results:
Output of Arithmetic module:

CM4000 register (Energy, Real Total) read in ION Setup:

The factor 1000 difference is because the one calculated in the Arithmetic module is Wh (refer to CM4000 register list) while the one in ION Setup is kWh.

For additional information refer to:
  • CM4000 Register List (attached)
  • FA235162: Example of setting up Modbus Master Map module's Device Map setup register
  • FA235176: Supported Modbus formats used in Modbus Master Map module
  • FA212766: How to convert Mod10 (modulo 10000) registers to decimal

Was this helpful?
What can we do to improve the information ?