32 bit ieee floating and modbus drivers


Thread Starter



I have a device I am communicating with via modbus serial rs-485 HD. I have a register map of the device and it goes something like this:

MODBUS REG - Alias Low - Alias High - Actual
1 � COIL BIT - 7500 7550 7500
2 � 16Bit Unsigned (0-255) - 0 0 0
3 � 16Bit Unsigned (0-65535) - 7300 7350 7300
4 � 16Bit Signed (Twos Compliment) - 0 0 0
5 � 16Bit Signed (15bit + 1 sign bit) - 0 0 0
6 � 16Bit Unsigned(BCD 0-9999) - 0 0 0
7 � 32Bit ICIS Format - 0 0 0
8 � 32Bit IEEE Float (Standard) - 7000 7210 7000

Parameter - Register
SO2 ppm Raw Inst. 7000
SO2 ppm Corrected Inst. 7001
SO2 T\Day Inst. 7002
SO2 T\Hr Inst. 7003

Any of these parameters listed are supposed to be 32 bit ieee floating points, but the registers are consecutive numbers and I thought one 32 bit number is two consecutive 16 bit registers. I am trying to access the device using a kepware opc modbus driver, and have found a certain driver model (ex: Omni) that can access 32 bit ieee fp
but the decimal address range is only 4 digits long, where I would think the address that would work would be something like 87000, for the first parameter.

If anyone has any insight into this problem or needs more details than my babble can cover, please reply. thanks.
Automated Solutions' Modbus OPC Server implements a generic form of flow computer support.

The most significant digit indicates the register type. The server allows you to specify the register type for each item, so you can drop the most significant digit and use the server's zero-based addressing option, i.e. 87000 becomes 7000

A fully functioning 30 day trial version can be downloaded using the link below:

Hi Larry,

The modbus test program at http://www.simplymodbus.ca should give you some insight into what data is stored in which registers in what format. The map you list is not really clear. I'd poll the register numbers listed. If anything comes back, change the datatypes until the results make sense.