Modbus protocol, 2 data representation – KROHNE UFC 400 Modbus EN User Manual
Page 9
MODBUS PROTOCOL
5
9
UFC 400
www.krohne.com
05/2013 - 4002744801 - AD Modbus UFC 400 R01 en
5.2 Data representation
There are two data types used to transmit information on a Modbus data bus, the "Bit" and the
"Register". The "Bit" represents a single binary state, whether as an output or an input condition.
The "Register" is a 16-bit integer transmitted as two 8-bit characters. Using multiple "Registers"
the Modbus interface can transmit higher accuracy values such as "Floating Point" and "Double
Precision Floating Point" numbers.
"Bit" variables are packed into a byte containing 8 bit, so each character, sent or received, can
contain up to 8 "Bit" variables. The master and slave devices use only as many 8 bit data
characters as are required to transmit the information. Any unused bits in the data characters
are ignored. The bit that is requested by the start address is transmitted in the LSB at bit 0. The
next "Bit" value is transmitted in the next bit (bit 1). This continues until the last bit location (bit 7)
of the LSB is reached. The next "Bit" value is then transmitted in the next data byte (LSB+1/MSB)
at bit 0. This continues until all of the requested values have been transmitted. Any unused bits in
the MSB are filled out with "0"s.
For simple single register variables the MSB of the register is transmitted first, with the LSB
following immediately after. However, for variables that require multiple registers, i.e. the
"Floating Point" and "Double Precision Floating Point" variables, the transmission order can be
selected in the RS485 settings. By default, those values will be transmitted in Big Endian.
5.2.1 8-bit values
5.2.2 16-bit values
5.2.3 32-bit values
Register Hi
Lo
N
0x00
Byte
Register Hi
Lo
N
MSB
LSB
Little Endian
Register Hi
Lo
N
LSB + 1
LSB
N + 1
MSB
LSB + 2
Big Endian
Register Hi
Lo
N
MSB
LSB + 2
N + 1
LSB + 1
LSB