7828 Density Transmitter Technical Manual Modbus Communications
78285000_AA D-3
D.3 MODBUS IMPLEMENTATION
D.3.1 REGISTER SIZE AND CONTENT
All registers are 32 bits (whether they are integer or floating point types), although the
Modbus specification states that registers are 16 bits and addresses and ‘number of
register’ fields assume all registers are 16 bits long. All floating point values are in IEEE
single precision format.
Registers are contiguous in the Modbus register ‘address space’. There is a one-to-one
mapping of 32-bit 7828 register numbers to 16-bit Modbus register numbers. Therefore,
only the full 32 bits of any register can be accessed. The upper and lower 16-bit
segments have the same Modbus register number and consequently cannot be
individually read.
Registers 47 and 48 within the 7828 allow the Modbus ‘dialect’ to be changed to suit the
communicating device if it cannot easily be re-programmed. This is most easily done
using ADView’s Register Read/Write tool (see Section 4).
Their usage is as follows:
Modbus Byte Ordering
Register 47 contents Modbus Byte Ordering
00000000
16
Big Endian (i.e. MSB first)
FFFFFFFF
16
Little Endian (i.e. LSB first)
Modbus Register Size
Register 48 contents Modbus Register size
00000000
16
16 bits
FFFFFFFF
16
32 bits
16 bit Register Size (Register 48 = 00000000
16
)
In order to read 32-bit registers when Modbus registers are dealt with in units of 16 bits,
you must specify twice the number of 32-bit register you want to read in the ‘number of
registers’ field. E.g., to read one 32-bit register, use '2'. If an attempt is made to read an
odd number of registers, the command will fail.
32 bit Register Size (Register 48 = FFFFFFFF
16
)
In order to read 32-bit registers when Modbus registers are dealt with in units of 32 bits,
you specify the actual number of registers you want in the ‘number of registers’ field. (E.g.
to read two 32-bit register in this mode, use '2'.