omron — Error Check

C.8 Message Format 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. 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. MEMOBUS/Modbus Communications Note:

This example does not show the calculation for a complete MEMOBUS/Modbus command. Normally data would follow in the calculation. C SIEP C710606 33A OYMC AC Drive – J1000 User Manual 195 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