Data Packet Format; Error Checking; Crc-16 Algorithm - GE 350 Communications Manual

Protective relay platform
Hide thumbs Also See for 350:
Table of Contents

Advertisement

MODBUS PROTOCOL

Data Packet Format

Error Checking

CRC-16 Algorithm

6-2
A complete request/response sequence consists of the following bytes (transmitted as
separate data frames):
Master Request Transmission:
SLAVE ADDRESS: 1 byte
FUNCTION CODE: 1 byte
DATA: variable number of bytes depending on FUNCTION CODE
CRC: 2 bytes
Slave Response Transmission:
SLAVE ADDRESS: 1 byte
FUNCTION CODE: 1 byte
DATA: variable number of bytes depending on FUNCTION CODE
CRC: 2 bytes
SLAVE ADDRESS: This is the first byte of every transmission. This byte represents the user-
assigned address of the slave device that is to receive the message sent by the master.
Each slave device must be assigned a unique address and only the addressed slave will
respond to a transmission that starts with its address. In a master request transmission the
SLAVE ADDRESS represents the address of the slave to which the request is being sent. In a
slave response transmission the SLAVE ADDRESS represents the address of the slave that is
sending the response.
FUNCTION CODE: This is the second byte of every transmission. Modbus defines function
codes of 1 to 127.
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.
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, MSByte 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 3 Series relay 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 3
Series relay 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.
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 following symbols are used in the algorithm:
—>: data transfer
SR3 SERIES PROTECTIVE RELAY PLATFORM – COMMUNICATIONS GUIDE
CHAPTER 6: USB INTERFACE

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

339345

Table of Contents