Read coil status (function code 01) – ProSoft Technology 5201-MNET-ASCII User Manual
Page 56
Modbus Protocol Specification
MNET ♦ ProLinx Gateway
Driver Manual
Modbus TCP/IP Interface Module
Page 56 of 78
ProSoft Technology, Inc.
September 1, 2010
4.1
Read Coil Status (Function Code 01)
Query
This function allows the user to obtain the ON/OFF status of logic coils used to
control discrete outputs from the addressed Server only. Broadcast mode is not
supported with this function code. In addition to the Server address and function
fields, the message requires that the information field contain the initial coil
address to be read (Starting Address) and the number of locations that will be
interrogated to obtain status data.
The addressing allows up to 2000 coils to be obtained at each request; however,
the specific Server device may have restrictions that lower the maximum
quantity. The coils are numbered from zero; (coil number 1 = zero, coil number 2
= one, coil number 3 = two, and so on).
The following table is a sample read output status request to read coils 0020 to
0056 from Server device number 11.
Adr
Func
Data Start Pt Hi Data Start Pt Lo Data # Of Pts Ho Data # Of Pts Lo
Error Check Field
11
01
00
13
00
25
CRC
Response
An example response to Read Coil Status is as shown in Figure C2. The data is
packed one bit for each coil. The response includes the Server address, function
code, quantity of data characters, the data characters, and error checking. Data
will be 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 follow. For coil
quantities that are not even multiples of eight, the last characters will be filled in
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 Server interface device is serviced at the end of a controller's scan,
data will reflect coil status at the end of the scan. Some Servers will 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.
Adr Func Byte
Count
Data Coil
Status 20 to
27
Data Coil
Status 28 to
35
Data Coil
Status 36 to
43
Data Coil
Status 44 to
51
Data Coil
Status 52 to
56
Error
Check
Field
11 01
05
CD
6B
B2
OE
1B
CRC
The status of coils 20 to 27 is shown as CD(HEX) = 1100 1101 (Binary). Reading
left to right, this shows that coils 27, 26, 23, 22, and 20 are all on. The other coil
data bytes are decoded similarly. Due to the quantity of coil statuses requested,
the last data field, which is shown 1B (HEX) = 0001 1011 (Binary), contains the
status of only 5 coils (52 to 56) instead of 8 coils. The 3 left most bits are
provided as zeros to fill the 8-bit format.
- 5201-MNET-DFCM 5208-MNET-HART 5303-MBP-MNET 5204SE-MNET-PDPMV1 5202-MNET-ADM4 5201-MNET-BACNET 5210-MNET-RIO 5228-MNET-HART 5207-MNET-HART 5205-MNET-PDPS 5204-MNET-PDPMV1 5201-MNET-DH485 5201-MNET-104S 5201-MNET-EGD 5201-MNET-DFNT 5201-MNET-DNPSNET 5201-MNET-103M 5201-MNET-101S 5201-MNET-DNPS 5201-MNET-DNPM 5202-MNET-DFCM4 5202-MNET-ASCII4