
Reference MVI56-MCM
♦
ControlLogix Platform
Modbus Communication Module
ProSoft Technology, Inc.
Page 129 of 159
July 24, 2008
Due to the quantity of input statuses requested, the last data field which is shown
as 35 HEX = 0011 0101 (binary) contains the status of only 6 inputs (10213 to
102180) instead of 8 inputs. The two left-most bits are provided as zeros to fill
the 8-bit format.
8.9.3 Read Holding Registers (Function Code 03)
Query
Read holding registers (03) allows the user to obtain the binary contents of
holding registers 4xxxx in the addressed slave. The registers can store the
numerical values of associated timers and counters which can be driven to
external devices. The addressing allows up to 125 registers to obtained at each
request; however, the specific slave device may have restriction that lower this
maximum quantity. The registers are numbered form zero (40001 = zero, 40002
= one, etc.). The broadcast mode is not allowed.
The example below reads registers 40108 through 40110 from slave 584 number
11.
Adr Func Data Start Reg Hi Data Start Reg Lo Data #of Regs Hi Data #of Regs Lo Error Check Field
11 03 00
6B
00
03
CRC
Response
The addressed slave responds with its address and the function code, followed
by the information field. The information field contains 1 byte describing the
quantity of data bytes to be returned. The contents of the registers requested
(DATA) are two bytes each, with the binary content right justified within each pair
of characters. The first byte includes the high order bits and the second, the low
order bits.
Because the slave interface device is normally serviced at the end of the
controller's scan, the data will reflect the register content at the end of the scan.
Some slaves will limit the quantity of register content provided each scan; thus
for large register quantities, multiple transmissions will be made using register
content from sequential scans.
In the example below, the registers 40108 to 40110 have the decimal contents
555, 0, and 100 respectively.
Adr Func ByteCnt
Hi Data
Lo Data
Hi Data
Lo Data
Hi Data
Lo Data
Error Check
Field
11
03
06 02 2B 00 00 00 64 CRC
8.9.4 Read Input Registers (Function Code 04)
Query
Function code 04 obtains the contents of the controller's input registers at
addresses 3xxxx. These locations receive their values from devices connected to
the I/O structure and can only be referenced, not altered from within the
controller, The addressing allows up to 125 registers to be obtained at each
request; however, the specific slave device may have restrictions that lower this
maximum quantity. The registers are numbered for zero (30001 = zero, 30002 =
one, etc.). Broadcast mode is not allowed.