ABB Meter Energy value mismatch

Hello,

Am trying to read the ABB M4M30 energy meter in Modbus poll the strange is the address for active energy is 20480 but its reads 20482 what is the problem?
1699252664617.png
1699252694204.png


Thank you
 
Two things:
  1. The Active energy register is a 64-bit unsigned integer. The value spans 4 registers (as indicated in the Nr of registers column), which would be registers 20480 - 20483. Try selecting one of the 64 Bit Unsigned options (probably the Big-endian option) in the Display menu in Modbus Poll.
  2. The 20480 address is 0-based. So in your Read/Write Definition in Mobus Poll, make sure that the "PLC Addresses (Base 1)" option is unchecked (it appears you may have already done this).
 
My guess is that the value is a 64 bit integer (four, 16 bit Modbus registers) with the highest order register at 20480 and the lowest order register at 20483.

Modpoll displays the 4 registers as
- the value of the high order 32 bits in 20480/20481 as 0,
- the value of the low order 32 bits in 20482/20483 as 653081 decimal, a 32 bit integer value.

Since the high order value is 0, the working value is 653081 decimal, the value in the contents of the low order registers.

I've seen another device that offered 64 bit integers that allowed separate reads of the two high order registers separate from the two low order registers so that the master/client can "re-assemble" the 32 bit values, or as they pointed out, just reading the 2 low order registers for those applications where the user's working values do not go above the maximum that 32 bits can represent.

I'm open to correction.
 
I had never noticed that Modpoll has the Enron/Daniel mode (64 bit) check box in the setup>read/write definitions group. Thanks for mentioning the Display>64-bit view.
 
Top