PortDock

When power meter Modbus values look wrong — CT ratio, primary/secondary, scale, word order, sign

Power meter readings over Modbus off by tens of times, nonsense or negative? Check CT ratio, primary vs secondary values, scale, 32-bit word order and sign.

Tools for this guideModbus Master Windows program · freeModbus Float Converter web · no installCT Ratio & Burden Calculator web · no install

With power meters, communication often works but the values look wrong. The symptom narrows the cause: off by a constant factor means CT ratio or scale, complete nonsense means word order or data type, negative means direction or sign. The examples below are manufacturer manual contents collected in this site's device maps.

Causes by symptom

SymptomCheck first
Current or power off by a constant factor (e.g. 40×)CT ratio: the meter setting, and whether the register holds primary or secondary values
Off by 10, 100 or 1000Scale (÷10 kWh, ÷100 Hz, ÷1000 PF, …): the manual's conversion table
Nonsense values (huge or tiny numbers, floats like 1e-40)32-bit word order (ABCD, CDAB), integer vs float
Value from the neighbouring register0-based vs 1-based (40001) addresses, table 03 vs 04
Negative active power or PFSign convention (import/export, leading/lagging), CT direction
Energy suddenly smallerRollover past the maximum, or a value cleared over communication

1. Primary or secondary values?

It depends on the meter. The LS ELECTRIC GIMAC1000 device map says «all measurements are Float32 in actual units with PT/CT ratios applied», and Rootech Accura states that PT/CT multipliers are not applied separately. The Accuenergy Acuvim-L word table from 0130h, on the other hand, holds secondary values that must be multiplied as in the manual's Table 4-27.

Acuvim-L from 0130h (Table 4-27)
Voltage U = Rx × (PT1 / PT2) / 10   [V]
Current I = Rx × (CT1 / CT2) / 1000 [A]
Power   P = Rx × (PT1 / PT2) × (CT1 / CT2) [W]

CT 200/5, I1 register = 3750 → 3.750 A × 40 = 150 A

So «40 times too big after multiplying by the CT ratio» means you multiplied a register that was already primary, and «40 times too small» means you used a secondary value as is. If the meter's own CT setting differs from the real CT, both the display and the Modbus values are off by that ratio; use the CT ratio calculator for the ratio.

2. Scale and units

Integer registers drop the decimal point. On the Acuvim-L, frequency is ÷100 (1388h = 50.00 Hz), power factor ÷1000 (−1000 to 1000) and energy ÷10 kWh. Use the manual's conversion table or the scale column in the device map. Some meters have both an integer table and a float table; decide which one you read first.

3. Word order of 32-bit values

Energy and float values take two registers, and the wrong order gives nonsense. Eastron SDM meters send floats as ABCD (high word first); the GIMAC1000 switches between ABCD and CDAB with its Swap setting. The Acuvim-L puts energy Dwords high word first: the manual's write example puts 0A9D 4089h into 0156h/0157h, which is 178077833, ÷10 = 17807783.3 kWh. Some devices, such as the Fuji Electric PXH, send the low word first. If unsure, put both registers into the float converter to see all four orders at once.

4. Sign: import/export, leading/lagging

5. When energy goes down

Accumulated energy has a maximum (the Acuvim-L energy register range is 0 to 999999999, i.e. 99999999.9 kWh); past it, counting starts over. The Acuvim-L energy registers are also writable with FC16, so another program may have cleared or preset them. In logging, treat «smaller than the previous value» as a rollover.

6. If it still differs

Compare the meter display and the Modbus value at the same moment. If the display is wrong too, it is the meter setup (CT ratio, wiring type 3LN, 3LL, …); if the display is right and only Modbus is wrong, it is the address, type, scale or word order. Off-by-one addresses are covered in the address notation guide, 32-bit values in the word order guide.

Sources

Published 2026-10-30