140 CYCLIC REDUNDANCY CHECK The CYCLIC REDUNDANCY CHECK (CRC) algorithm checks the contents of the entire message. The CRC field consists of a 16–bit value, and is appended to the end of the message. When this is done, the low–order byte of the field is appended first, followed by the high–order byte. The CRC high–order byte is the last byte to be sent in the message. The CRC value is calculated by the sending device, which appends the CRC to the message. The receiving device recalculates a CRC using the same algorithm during receipt of the message, and as it receives the CRC field, compares the calculated value to the received value. If the two values are not equal, the message is discarded. A detailed description as well as sample code and a calculation example are given in the Modbus Serial Line Implementation Guide version 1.0 or the most current version, available at www.modbus.org. EXCEPTION RESPONSES Upon a parity or CRC error, the byte or message (respectively) is discarded. If neither of these errors occurs, the read/write status is checked. An EXCEPTION RESPONSE will be sent if there is a read/write error. If the register cannot be read from or written to at a particular time due to some application software state, it will not generate an Exception Response. Instead, the application layer will respond with data that is in the Fault Identifiers (FID) range. An Exception Response contains a function code that is related to the function code the EMCP 3 GSC is responding to; it’s value is [128 + Function Code for Query]. Any function code 128 ($80) or higher is an Exception Response. 128+ ($80 AND ABOVE) – EXCEPTION RESPONSE TO UNSUPPORTED QUERIES The EMCP 3 GSC does not support any function codes not listed above in the Supported Function Codes Chapter. Such queries will return an exception response with this exception code. EXCEPTION CODE 01
REASON Unsupported function code
131 ($83) – EXCEPTION RESPONSE TO READ REGISTERS QUERY The exception response contains only 1 byte of data, which is comprised of the exception code. EXCEPTION CODE 02 03 04
REASON Starting or ending (starting + count) register address invalid Register Count was less than 1 or greater than 123 Read error possibly due to some register(s) in the span not being Read registers
134 ($86) – EXCEPTION RESPONSE TO WRITE SINGLE REGISTER QUERY The exception response contains only 1 byte of data, which is comprised of the exception code. EXCEPTION CODE 02 03 04
REASON Register address invalid Register value out of range perhaps because longer than 2 bytes Write error possibly due to not being a Write register
18 SCADA (Modbus) Data Link (EMCP 3.2 & 3.3)