Modbus read value problem

Eduardo Rosa 2 years ago in Devices / Modbus updated 2 years ago 7


I am working on an energy measurement project for a customer, in which I intend to implement Comfortclick/bOS as the management system.

I have established a modbus connection between an energy measurement device from Finder and the bOS. I simultaneously noticed that the measurement (voltage, current and power) shown on the Finder display differs from the reading obtained by the bOS which is slightly higher.


Connection Type: Serial

Serial Transmission Mode: RTU

Low Word First: False

Low Byte First: False

Data Format: LittleEndian

Write Function Type: WriteSingle

Read Function Type: ReadSingle

Modbus Table: InputRegisters

Data Format: Signed32Bit (to power) and Unsigned32Bit (to voltage and current)

Scale Factor: 1

Use Status Address: False

Readcyclically: True

Please, could you help me with the configuration in order to get the correct reading?



Could it be that you dont show the correct decimal place so it rounds the value in bOS? How much does it differ? 

Read voltage value:

Shown in Finder display: 243.62

Read by bOS: 4278192516 (discarding 427819 and making the appropriate decimal adjustment, the value is 251.6)

This value for bOS seems wrong to me. Why would it display 427819 in front of the real value? Try different data formats. 

Also bOS starts counting its addresses from 0. So also try -1 for registers.

Regarding the Data Format, there is no way to change it, as it is unsigned32. Changing Low Word or Low Byte first doesn't work either. About try -1 for registers, which field should I change? I couldn't find it on bOS.

This is the modbus register address. 

Image 4319

Or you can use this option. Turn it on and see if the value is correct. Either way i dont think it should have anything before the correct meters value.

Image 4320


Hi Jürgen

Following your recommendation regarding the data format, I decided to access the records individually and, as a result, I changed them from unsigned32 to unsigned16. After that, the reading error problem was solved. Thank you so much!