Hi
I have tested connect between Zenon with meter MK6E from EDMI and I have some problem.
The MK6E has meters registers are 32 bits the meter software will utilise 2 ModBus addresses. The Mk6 Genius meter accepts valid ModBus messages with function code 3- Read Holding Register. The register address ranges from 0001 to 9999 which corresponds to 40001 to 49999. Each register address represents a 16 bit word (2 bytes), so to read a float (4 bytes) requires 2 registers.
When a request is received the meter will translate that register address into an internal EDMI register. Each ModBus register address refers to a 16 bit word (2 bytes). When reading other data types, like floating point numbers that are 32 bits (4 bytes) wide, there is no standard. ModBus is big-endian, MSB transmitted first, but the 32 and 64 bit numbers are undefined. Most ModBus reading programs have a big-endian or little-endian option, although not all do. To cope with this, the meter also has a big-endian / little-endian option.
I use the neter to make modbus address to register map (Ex: 9071 to 40169). With the meter software I check the register value (see picture meter). With the modbus poll software, I poll the address 9070 get the right value (see picture modbus) (I tried on different time so the value see not match but it is correctly between software and meter).
I use zenon to connect with meter, but the Modbus driver only polling with address 9071, at the start-up runtime, the value received seem right , but the value do not update ( variable display spontaneous , global time in driver is 1000 ms..). Other register with type "Float" are worked fine.
Could you give me some suggestion?
Thanks.