C.7 Message Format
172
YASKAWA ELECTRIC
TOEP C710656 10B YASKAWA Power Regenerative Unit - R1000 Instruction Manual
◆
Error Check
The regenerative unit 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.
■
Command Data
When the regenerative unit 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 in the MEMOBUS/Modbus
protocol.
Calculate the CRC-16 checksum using the following steps:
1.
The starting value is FFFFH.
2.
Perform an XOR operation of this value and the slave address.
3.
Right shift the result.
4.
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.
5.
Repeat steps 3 and 4 until eight shift operations have been performed.
6.
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.
7.
The result of the last shift or XOR operation is the checksum.
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.
Table C.4 CRC-16 Checksum Calculation Example
■
Response Data
Perform a CRC-16 calculation on the response message data as described above as a validation check. The result should
match the CRC-16 checksum received within the response message.
Description
Calculation
Overflow
Description
Calculation
Overflow
Initial Value (FFFFH)
1111 1111 1111 1111
Function Code 03H
0000 0011
Address 02H
0000 0010
XOR w result
1000 0001 0011 1101
XOR w initial value
1111 1111 1111 1101
Shift 1
0100 0000 1001 1110
1
Shift 1
0111 1111 1111 1110
1
XOR w A001H
1010 0000 0000 0001
XOR w A001H
1010 0000 0000 0001
XOR result
1110 0000 1001 1111
XOR result
1101 1111 1111 1111
Shift 2
0111 0000 0100 1111
1
Shift 2
0110 1111 1111 1111
1
XOR w A001H
1010 0000 0000 0001
XOR w A001H
1010 0000 0000 0001
XOR result
1101 0000 0100 1110
XOR result
1100 1111 1111 1110
Shift 3
0110 1000 0010 0111
0
Shift 3
0110 0111 1111 1111
0
Shift 4
0011 0100 0001 0011
1
Shift 4
0011 0011 1111 1111
1
XOR w A001H
1010 0000 0000 0001
XOR w A001H
1010 0000 0000 0001
XOR result
1001 0100 0001 0010
XOR result
1001 0011 1111 1110
Shift 5
0100 1010 0000 1001
0
Shift 5
0100 1001 1111 1111
0
Shift 6
0010 0101 0000 0100
1
Shift 6
0010 0100 1111 1111
1
XOR w A001H
1010 0000 0000 0001
XOR w A001H
1010 0000 0000 0001
XOR result
1000 0101 0000 0101
XOR result
1000 0100 1111 1110
Shift 7
0100 0010 1000 0010
1
Shift 7
0100 0010 0111 1111
0
XOR w A001H
1010 0000 0000 0001
Shift 8
0010 0001 0011 1111
1
XOR result
1110 0010 1000 0011
XOR w A001H
1010 0000 0000 0001
Shift 8
0111 0001 0100 0001
1
XOR result
1000 0001 0011 1110
XOR w A001H
1010 0000 0000 0001
Perform operations with next data (function code)
XOR result
1101 0001 0100 0000
CRC-16
1101 0001 0100 0000
D
1
4
0
Lower Upper
Continue from here with next data.
TOEP_C710656_10B_1_0.book 172 ページ 2015年1月8日 木曜日 午後8時55分