Modbus Read Coils (FC01)
Function Code 01
Request
This command is requesting the ON/OFF status of discrete coils # 20 to 56
from the slave device with address 17.
11: The SlaveID
(11 hex = address 17 )
01
: The Function Code 1 (read Coil Status)
0013
: The Data Address of the first coil to read.
(
0013 hex = 19 , + 1
offset = coil #20 )
0025: The total number
of coils requested. (
25
hex = 37, inputs 20 to 56 )
0E84
: The CRC (cyclic redundancy check) for error checking.
Response
11 01 05 CD6BB20E1B 45E6
11: The SlaveID
(11 hex = address 17 )
01
: The Function Code 1 (read Coil Status)
05
: The number of data bytes to follow (37 Coils / 8 bits per byte = 5 bytes)
CD
: Coils 27 - 20 (1100 1101)
6B
: Coils 35 - 28 (0110 1011)
B2
: Coils 43 - 36 (1011 0010)
0E
: Coils 51 - 44 (0000 1110)
1B
: 3 space holders & Coils 56 - 52 (
0001 1011)
45E6
: The CRC (cyclic redundancy check).
The more significant bits contain the higher coil variables.
For example, The third data byte in the response is
B2
It shows the first (most significant) bit for coil 43 is on (
1)
and the last (least significant) bit for coil 36 is off (
0).
Due to the number of coils requested, the last data byte
1B
contains the status of only 5 coils.
The first three (most significant) bits in this byte are filled in with zeroes.