C.8 Message Format
u
Message Content
In MEMOBUS/Modbus communications, the master sends commands to the slave, and the slave responds. The message
format is configured for both sending and receiving as shown below, and the length of data packets depends on the command
(function) content.
SLAVE ADDRESS
FUNCTION CODE
DATA
ERROR CHECK
u
Slave Address
The slave address in the message defines the note the message is sent to. Use addresses between 0 and FFH. If a message
with slave address 0 is sent (broadcast), the command from the master will be received by all slaves. The slaves do not
provide a response to a broadcast type message.
u
Function Code
The three types of function codes are shown in the table below.
Function
Code
Function Name
Data Length (bytes)
Command Message
Response Message
Minimum
Maximum
Minimum
Maximum
03H
Read MEMOBUS/Modbus registers
8
8
7
37
08H
Loopback test
8
8
8
8
10H
Write to multiple MEMOBUS/Modbus registers
11
41
8
8
u
Data
Configure consecutive data by combining the MEMOBUS/Modbus register address (test code in case of a loopback test)
and the data the register contains. The data length changes depending on the command details.
A drive MEMOBUS/Modbus register always has a data length of two bytes. Therefore data written into drive registers
must also always have a length of two bytes. Register data read out from the drive will always consist of two bytes.
u
Error Check
The drive uses a CRC-16 (cyclic redundancy check, checksum method) for checking data validity. Use the procedure
described below when calculating the CRC-16 checksum for command data or when verifying response data.
n
Command Data
When the drive receives data, it calculates the CRC-16 checksum from the data and compares it to the CRC-16 value
received within the message. Both must match before a command is processed.
An initial value of FFFFH (i.e., all 16 bits equal 1) must be used for CRC-16 calculations for the MEMOBUS/Modbus
protocol.
Calculate the CRC-16 checksum using the following steps:
• The starting value is FFFFH.
• Perform an XOR operation of this value and the slave address.
• Right shift the result.
• When the overflow bit of the shift operation becomes 1, perform an XOR operation of the result from step 3 above and
the fix value A001H.
• Repeat steps 3 and 4 until eight shift operations have been performed.
• After eight shift operations, perform an XOR operation with the result and the next data in the message (function code,
register address, data). Continue with steps 3 to 5 until the last data has been processed.
• The result of the last shift or XOR operation is the checksum.
The example in
Table C.3
shows the CRC-16 calculation of the slave address 02H and the function code 03H, yielding
the result D140H.
Note:
This example does not show the calculation for a complete MEMOBUS/Modbus command. Normally data would follow in the calculation.
C.8 Message Format
SIEP C710606 33A OYMC AC Drive – J1000 User Manual
195
C
MEMOBUS/Modbus Communications