Calculating The Checksum (Lrc) - Emerson Digistart CS User Manual

Modbus
Hide thumbs Also See for Digistart CS:
Table of Contents

Advertisement

6.4

Calculating the checksum (LRC)

Each command string sent to and from the starter includes a checksum. The form used is the longitudinal redundancy check (LRC) in
ASCII hex. This is an 8-bit binary number represented and transmitted as two ASCII hexadecimal characters.
To calculate LRC:
1. Sum all ASCII bytes
2. Mod 256
3. 2's complement
4. ASCII convert
For example Command String (Start):
ASCII
STX
B
or
02h
42h
ASCII
Hex
Binary
STX
02h
0000 0010
B
42h
0100 0010
1
31h
0011 0001
0
30h
0011 0000
A5h
1010 0101
A5h
1010 0101
5Ah
0101 1010
01h
0000 0001
5Bh
0101 1011
ASCII
5
B
or
35h
42h
The complete command string becomes:
ASCII
STX
B
or
02h
42h
To verify a received message containing an LRC:
1. Convert last two bytes of message from ASCII to binary
2. Left shift 2nd to last byte four bits
3. Add to last byte to get binary LRC
4. Remove last two bytes from message
5. Add remaining bytes of message
6. Add binary LRC
7. Round to one byte
8. The result should be zero
Response or status bytes are sent from the starter as an ASCII string:
STX
[d1]h
[d2]h
d1 =
30h
d2 =
30h
d3 =
30h plus upper nibble of status byte right shifted by four binary places
d4 =
30h plus lower nibble of status byte
For example status byte = 1Fh, response is:
STX
30h
30h
12
1
0
31h
30h
SUM (1)
MOD 256 (2)
1's COMPLEMENT
+ 1 =
2's COMPLEMENT (3)
ASCII CONVERT (4)
LRC CHECKSUM
1
0
5
31h
30h
35h
[d3]h
[d4]h
LRC1
31h
46h
LRC1
www.controltechniques.com
B
ETX
42h
03h
LRC2
ETX
LRC2
ETX
Modbus Module User Guide
Issue 1

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Digistart is

Table of Contents