B-2 G60 Generator Management Relay GE MultilinB.1 MODBUS RTU PROTOCOL APPENDIX BBï FUNCTION CODE: This is one of the supported functions codes of the unit which tells the slave what action to per-form. See the Supported Function Codes section for complete details. An exception response from the slave is indi-cated by setting the high order bit of the function code in the response packet. See the Exception Responses sectionfor further details.ï DATA: This will be a variable number of bytes depending on the function code. This may include actual values, set-tings, or addresses sent by the master to the slave or by the slave to the master.ï CRC: This is a two byte error checking code. The RTU version of Modbus Æ includes a 16-bit cyclic redundancy check(CRC-16) with every packet which is an industry standard method used for error detection. If a Modbus slave devicereceives a packet in which an error is indicated by the CRC, the slave device will not act upon or respond to the packetthus preventing any erroneous operations. See the CRC-16 Algorithm section for details on calculating the CRC.ï DEAD TIME: A packet is terminated when no data is received for a period of 3.5 byte transmission times (about 15 msat 2400 bps, 2 ms at 19200 bps, and 300 μs at 115200 bps). Consequently, the transmitting device must not allow gapsbetween bytes longer than this interval. Once the dead time has expired without a new byte transmission, all slavesstart listening for a new packet from the master except for the addressed slave.B.1.4 CRC-16 ALGORITHMThe CRC-16 algorithm essentially treats the entire data stream (data bits only; start, stop and parity ignored) as one contin-uous 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 packet, MSByte first. Theresulting packet including CRC, when divided by the same polynomial at the receiver will give a zero remainder if no trans-mission errors have occurred. This algorithm requires the characteristic polynomial to be reverse bit ordered. The most sig-nificant bit of the characteristic polynomial is dropped, since it does not affect the value of the remainder.A C programming language implementation of the CRC algorithm will be provided upon request.Table Bñ2: CRC-16 ALGORITHMSYMBOLS: --> data transferA 16 bit working registerAlow low order byte of AAhigh high order byte of ACRC 16 bit CRC-16 resulti,j loop counters(+) logical EXCLUSIVE-OR operatorN total number of data bytesDi i-th data byte (i = 0 to N-1)G 16 bit characteristic polynomial = 1010000000000001 (binary) with MSbit dropped and bit order reversedshr (x) right shift operator (th LSbit of x is shifted into a carry flag, a '0' is shifted into the MSbit of x, all other bitsare shifted right one location)ALGORITHM: 1. FFFF (hex) --> A2. 0 --> i3. 0 --> j4. Di (+) Alow --> Alow5. j + 1 --> j6. shr (A)7. Is there a carry? No: go to 8; Yes: G (+) A --> A and continue.8. Is j = 8? No: go to 5; Yes: continue9. i + 1 --> i10. Is i = N? No: go to 3; Yes: continue11. A --> CRC