2 Modbus-Protokollbeschreibung
2.7
Checksumme (CRC16)
Berechnungsschema
Anhand der Checksumme (CRC16) werden Übertragungsfehler erkannt. Wird bei der Auswertung ein
Fehler festgestellt, antwortet das entsprechende Gerät nicht.
CRC = 0xFFFF
while (nicht alle ByteOfMessage bearbeitet);
HINWEIS!
Das Low-Byte der Checksumme wird zuerst übertragen!
Beispiel: Die CRC16-Checksumme CC DD wird in der Reihenfolge DD CC übertragen und dargestellt.
Beispiel
Binärwert des Kalibrieralarms an Adresse 0x26A0 abfragen:
Anweisung: Lese ein Wort von Adresse 0x14E5
01
Slave
Antwort (CRC16 = 0x8479)
01
Slave
Wort 1 = 1 bedeutet, dass der Binärwert des Waschtimers 1 = 1 ist.
16
CRC = CRC XOR ByteOfMessage
For (1 bis 8)
CRC = SHR(CRC)
if (rechts hinausgeschobenes Flag = 1)
then
CRC = CRC XOR 0xA001
03
26 A0
Funktion
Adresse
03
02
Funktion
Anzahl Bytes
else
00 01
8F 60
Ein Wort lesen
CRC
00 01
79 84
Wort 1
CRC