Error Checking - GE Multilin MM3 Motor Manager 3 Instruction Manual

Hide thumbs Also See for Multilin MM3 Motor Manager 3:
Table of Contents

Advertisement

CHAPTER 8: COMMUNICATIONS
8.1.5

Error Checking

MM3 MOTOR MANAGER 3 – INSTRUCTION MANUAL
from the slave is a 1 (i.e. if the function code is > 127) then the slave did not perform
the function as requested and is sending an error or exception response.
Data: This will be a variable number of bytes depending on the function code. This
may be actual values, setpoints, or addresses sent by the master to the slave or by the
slave to the master. See Supported Modbus Functions on page 8–5 for a description of
the supported functions and the data required for each.
CRC: This is a two byte error checking code.
The RTU version of Modbus includes a two byte CRC-16 (16 bit cyclic redundancy check)
with every transmission. The CRC-16 algorithm essentially treats the entire data stream
(data bits only; start, stop and parity ignored) as one continuous binary number. This
number is first shifted left 16 bits and then divided by a characteristic polynomial
(11000000000000101B). The 16 bit remainder of the division is appended to the end of the
transmission, the most significant byte (MSB) first. The resulting message including CRC,
when divided by the same polynomial at the receiver will give a zero remainder if no
transmission errors have occurred.
If a MM3 Motor Manager 3 Modbus slave device receives a transmission in which an error
is indicated by the CRC-16 calculation, the slave device will not respond to the
transmission. A CRC-16 error indicates than one or more bytes of the transmission were
received incorrectly and thus the entire transmission should be ignored in order to avoid
the MM3 Motor Manager 3 performing any incorrect operation.
The CRC-16 calculation is an industry standard method used for error detection. An
algorithm is included here to assist programmers in situations where no standard CRC-16
calculation routines are available.
CRC-16 Algorithm:
Once the following algorithm is complete, the working register "A" will contain the CRC
value to be transmitted. Note that this algorithm requires the characteristic polynomial to
be reverse bit ordered. The most significant bit of the characteristic polynomial is dropped
since it does not affect the value of the remainder. The following symbols are used in the
algorithm:
: data transfer
—>
: 16 bit working register
A
: low order byte of A
AL
: high order byte of A
AH
: 16-bit CRC-16 value
CRC
,
: loop counters
i
j
: logical exclusive or operator
(+)
: i-th data byte (i = 0 to N-1)
Di
: 16 bit characteristic polynomial = 1010000000000001 with the most significant
G
bit dropped and bit order reversed
: shift right (the least significant bit of the low order byte of x shifts into a
shr(x)
carry flag, a '0' is shifted into the most significant bit of the high order byte of x, all
other bits shift right one location
MM3 MOTOR MANAGER 3 MODBUS PROTOCOL
8–3

Advertisement

Table of Contents
loading

Table of Contents