
MVI56-MCM
♦
ControlLogix Platform
Reference
Modbus Communication Module
Page 128 of 159
ProSoft Technology, Inc.
July 24, 2008
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.
8.9.2 Read Input Status (Function Code 02)
Query
This function allows the user to obtain the ON/OFF status of discrete inputs in the
addressed slave PC Broadcast mode is not supported with this function code. In
addition to the slave address and function fields, the message requires that the
information field contain the initial input 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 inputs to be obtained at each request;
however, the specific slave device may have restrictions that lower the maximum
quantity. The inputs are numbered form zero; (input 10001 = zero, input 10002 =
one, input 10003 = two, etc., for a 584).
The following table is a sample read input status request to read inputs 10197 to
10218 from slave number 11.
Adr
Func
Data Start Pt Hi
Data Start Pt Lo Data #of Pts Hi Data #of Pts Lo Error Check Field
11
02
00 C4 00 16 CRC
Response
An example response to Read input status is as shown in Figure C4. The data is
packed one bit for each input. The response includes the slave address, function
code, quantity of data characters, the data characters, and error checking. Data
will be packed with one bit for each input (1=ON, 0=OFF). The lower order bit of
the first character contains the addressed input, and the remainder follow. For
input 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 a 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 will reflect input status at the end of the scan. Some slaves will limit the
quantity of inputs provided each scan; thus, for large coil quantities, multiple PC
transactions must be made using coil status for sequential scans.
Adr Func Byte
Count
Data Discrete Input
10197 to 10204
Data Discrete Input
10205 to 10212
Data Discrete Input
10213 to 10218
Error Check Field
11
02
03
AC DB 35 CRC
The status of inputs 10197 to 10204 is shown as AC (HEX) = 10101 1100
(binary). Reading left to right, this show that inputs 10204, 10202, and 10199 are
all on. The other input data bytes are decoded similar.