Section 8. Operation
8.10.3.2.4 Supported Modbus Function Codes
Modbus protocol has many function codes. CR800 commands support the
following.
Supported Modbus Function Codes
Code Name Description
01
Read coil/port status Reads the on/off status of discrete
output(s) in the ModBusSlave
02
Read input status Reads the on/off status of discrete
input(s) in the ModBusSlave
03
Read holding registers Reads the binary contents of holding
register(s) in the ModBusSlave
04
Read input registers Reads the binary contents of input
register(s) in the ModBusSlave
05
Force single coil/port Forces a single coil/port in the
ModBusSlave to either on or off
06
Write single register Writes a value into a holding register in
the ModBusSlave
15
Force multiple coils/ports Forces multiple coils/ports in the
ModBusSlave to either on or off
16
Write multiple registers Writes values into a series of holding
registers in the ModBusSlave
8.10.3.2.5 Reading Inverse Format Modbus Registers
Some Modbus devices require reverse byte order words (CDAB vs. ABCD).
This can be true for either floating point, or integer formats. Since a slave CR800
uses the ABCD format, either the master has to make an adjustment, which is
sometimes possible, or the CR800 needs to output reverse-byte order words. To
reverse the byte order in the CR800, use the MoveBytes() instruction as shown in
the sample code below.
for i = 1 to k
MoveBytes(InverseFloat(i),2,Float(i),0,2)
MoveBytes(InverseFloat(i),0,Float(i),2,2)
next
In the example above, InverseFloat(i) is the array holding the inverse-byte
ordered word (CDAB). Array Float(i) holds the obverse-byte ordered word
(ABCD).
See Endianness
(p. 559).