132
Rockwell Automation Publication 5069-UM003B-EN-P - January 2020
Appendix B
Modbus Command Codes
Response
An example response to Read Coil Status is as shown in the following table. The
data is packed one bit for each coil. The response includes the slave address,
function code, quantity of data characters, the data characters, and error
checking. Data is packed with one bit for each coil (1 = ON, 0 = OFF). The low-
order bit of the first character contains the addressed coil, and the remainder
follows. For coil quantities that are not even multiples of eight, the last characters
are completed with zeros at high-order end. The quantity of data characters is
always specified as quantity of RTU characters, that is, the number is the same
whether RTU or ASCII is used.
Because the slave interface device is serviced at the end of a controller's scan, data
reflects coil status at the end of the scan. Some slaves limit the quantity of coils
provided each scan; thus, for large coil quantities, multiple PC transactions must
be made using coil status from sequential scans.
The status of coils 20…27 is shown as CD (HEX) = 1100 1101 (Binary).
Reading from left to right, this status shows that coils 27, 26, 23, 22, and 20 are all
on. The other Data Coil Status bytes are decoded similarly. Due to the quantity
of coil statuses that are requested, the last data field, which is shown 1B (HEX) =
0001 1011 (Binary), contains the status of only five coils (52…56) instead of
eight coils. The three left-most bits are provided as zeros to fill the 8-bit format.
Node Address
Function Code
Byte Count
Data Coil
Status 20…27
Data Coil
Status 28…35
Data Coil
Status 36…43
Data Coil
Status 44…51
Data Coil
Status 52…56
Error Check
Field
(2 bytes)
0B
01
05
CD
6B
B2
OE
1B
CRC