
CHAPTER 2: MODBUS PROTOCOL
MESSAGE TIMING
750/760 FEEDER MANAGEMENT RELAY – COMMUNICATIONS GUIDE
2 - 3
CRC
16 bit CRC-16 result
i, j
loop counters
(+)
logical Exclusive OR operator
N
total number of data bytes
D
i
i-th data byte (i = 0 to N-1)
G
16-bit characteristic polynomial = 1010000000000001(binary) with
MSbit dropped and bit order reversed
shr (x)
right shift operator (the LSbit of x is shifted into a carry flag, a '0' is
shifted into the MSbit of x, all other bits are shifted right one
location)
The CRC algorithm is shown below.
1.
FFFF (hex) --> A
2.
0 --> i
3.
0 --> j
4.
D
i
(+) A
low
--> A
low
5.
j + 1 --> j
6.
shr (A)
7.
Is there a carry?
If No: go to step 8; if Yes: G (+) A --> A and continue.
8.
Is j = 8? If No: go to 5; if Yes: continue.
9.
i + 1 --> i
10. Is i = N? If No: go to 3; if Yes: continue.
11. A --> CRC
GE Multilin will provide a C programming language implementation of this algorithm upon
request.
Message Timing
Communication message synchronization is maintained by timing constraints. The
receiving device must measure the time between the reception of characters. If three and
one half character times elapse without a new character or completion of the message,
then the communication link must be reset (i.e. all slaves start listening for a new query
message from the master). Thus at 1200 baud a delay of greater than 3.5
×
1 /
1200
×
10 = 29.2 ms will cause the communication link to be reset. At 9600 baud a delay
of greater than 3.5
×
1 / 9600
×
10 = 3.6 ms will cause the communication link to be reset.
Most master query messages will be responded to in less than 50 ms.