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).