MCD Modbus Module Instructions
AP ASCII Protocol
MG.17.F5.02 - VLT
® is a registered Danfoss trademark
11
10.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 1 0
or
02h 42h 31h 30h
ASCII
Hex
Binary
STX 02h
0000
0010
B
42h
0100 0010
1
31h
0011 0001
0
30h
0011 0000
A5h
1010
0101
SUM
(1)
A5h
1010 0101
MOD 256 (2)
5Ah
0101
1010
1's
COMPLEMENT
01h
0000 0001
+ 1 =
5Bh
0101 1011
2's COMPLEMENT (3)
ASCII
5 B ASCII
CONVERT
(4)
or 35h
42h
LRC
CHECKSUM
The complete command string becomes:
ASCII
STX
B
1
0
5
B
ETX
or
02h
42h 31h
30h
35h
42h
03h
To verify a received message containing an LRC:
1.
Convert last two bytes of message from ASCII to binary
2.
Left shift 2
nd
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 [d3]h [d4]h LRC1 LRC2 ETX
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
31h
46h
LRC1
LRC2
ETX