Modbus Functions 489
Communications Guide
http://www.GEindustrial.com/multilin 3
GE Multilin
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 MSbit of the characteristic polynomial is
dropped since it does not affect the value of the remainder.
The symbols used in the algorithm are shown below:
--> data transfer
A; Alow; Ahigh 16-bit working register; low and high order bytes of A (the 16-bit
working register)
CRC 16 bit CRC-16 result
i, j loop counters
(+) logical EXCLUSIVE-OR operator
Ntotal number of data bytes
Dii-th data byte (i = 0 to N – 1)
G16 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. Di (+) Alow --> Alow
5. j + 1 --> j
6. shr (A)
7. Is there a carry? No: go to step 8.
Yes: G (+) A --> A and continue.
8. Is j = 8? No: go to 5.; Yes: continue.
9. i + 1 --> i
10. Is i = N? No: go to 3.; Yes: continue.
11. A --> CRC
Timing Data packet 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 packet,
then the communication link must be reset (i.e. all slaves start listening for a new
transmission from the master). Thus at 9600 baud a delay of greater than 3.5 ×1/
9600 ×10 = 3.65 ms will cause the communication link to be reset.
Modbus Functions
Supported Functions The following functions are supported by the 489:
Function Codes 03 and 04: Read Setpoints and Actual Values
Function Code 05: Execute Operation
Function Code 06: Store Single Setpoint
Function Code 07: Read Device Status
Function Code 08: Loopback Test
Function Code 16: Store Multiple Setpoints
A detailed explanation of how the 489 implements these function codes is shown in
the following sections.