Simply Modbus logo
← Previous: Read Inputs FC02

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 01 0013 0025 0E84

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.