Page 150
Modbus Protocol
Double
A Double float value is 64-bits within the Anatel PAT700 TOC Analyzer. FC3 reads 16-bit
items at a time; therefore, four registers are required to read each Double float data item.
Note: The Modbus/TCP protocol follows Little Endian - byte swap format while transmitting Double
float data i.e. LSB byte should come first in a Register. The swapped data on Client side has to be
converted back to original format to read the correct value.
Example (Double Float): 1.0
Strings
A string is a group of 8-bit data items having a fixed length. The first character of a string
is transmitted first, followed by the remaining characters. FC3 reads 16-bit items at a
time; therefore, a single register contains two characters of the string. To simply string
storage/transfer, each string should be of an even-byte length.
Example (String): HachUltra
IP Address
An "IP Address" is transmitted similar to a 32-bit Word with the MOST significant byte
first, then the next MOST significant, until all the bytes are transmitted. FC3 reads 16-bit
items at a time; therefore, two registers are required to read each IP Address data item.
Example (Decimal): 192.168.0.1
1st Register 2nd Register 3rd Register 4th Register
Value (Hex) 1st 2nd 1st 2nd 1st 2nd 1st 2nd
1.0 (as in memory)
0x000000000000F03F
0x00 0x00 0x00 0x00 0x00 0x00 0xF0 0x3F
1st Register 2nd Register 3rd Register 4th Register
2nd 1st 2nd 1st 2nd 1st 2nd 1st
1.0 (after swapping)
0x0000000000003FF0
0x00 0x00 0x00 0x00 0x00 0x00 0x3F 0xF0
1st Register 2nd Register 3rd Register 4th Register 5th Register
Value (String) 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd
‘HachUltra’ 0x480x610x630x680x550x6C0x740x720x610x00
1st Register 2nd Register
Value (Hex) 1st 2nd 1st 2nd
0xC0A80001 0xC0 0xA8 0x00 0x01