How do I select the Modbus data format used with ProVU or EC44?

If you want to read or write values to/from a ProVU or EC44 via Modbus, you must first check which data format(s) are supported by the Modbus master device on your network.

Data formats support by the ProVU and EC44 are: “Integer Only”, “Integer +1 Decimal Place”, or “Floating Point” Most parameters are available in each of these formats simply by reading/writing from a different register address in the controller. Data from each format is located at a different address. The Int+1 and float addresses are calculated from the integer only address. The calculations are as follows:

  • When working in Hexadecimal, the format calculations are:
  • Address for Integer with 1 Decimal Place = Integer address plus 0x4000
    Address for Floating Point = Integer address multiplied by 2, plus 0x8000
  • When working in Decimal, the format calculations are:
  • Address for Integer with 1 Decimal Place = Integer address plus 16384
    Address for Floating Point = Integer address multiplied by 2, plus 32768
  •  
  • Here is an example of a parameter with the 3 addresses already calculated (and shown in both decimal and hexadecimal format). This parameter is main Local setpoint, but others are similar.

 

Integer

Int +1

Float

Dec

3960

20344

40688

Hex

0F78

4F78

9EF0

  •  
  • Imagine that the Local setpoint is currently set to 567.8
  • To read this value as an integer you would send a Modbus read request (function code 03 or 04) to address 3960, but you would receive back only the integer part of that number, 567.
  • If you sent the same request to address 20344, the unit would respond with 5678. This is the decimal +1 decimal place form of the number (you should configure your master device to display this with the decimal point inserted “567.8”)
  • If you sent the same request to address 40688 you would receive the IEEE (“Motorola big endian”) 32-bit floating point equivalent of 567.8. As long as you have setup your master device so that it knows the format of the response will be a floating point number, it will display it correctly.
  • It is a similar process when writing to the unit. If your master is sending a new local setpoint value as an integer only, you would use Modbus function 06 to write to address 3960.
  • To write an integer +1 dec place number the setpoint, the message should be sent to address 20344.
  • To write it as a floating point number, the address should be 40688
  • NOTE: Some devices may not support the floating point format, but most do. The supplier of the master device should be able to help setting up parameter formatting.