2 Modbus-Protokollbeschreibung
2.8
Checksumme (CRC16)
Anhand der Checksumme (CRC16) werden Übertragungsfehler erkannt. Wird bei der Auswertung ein
Fehler festgestellt, antwortet das entsprechende Gerät nicht.
Berechnungsschema
CRC = 0xFFFF
while (nicht alle ByteOfMessage bearbeitet);
HINWEIS!
Das Low-Byte der Checksumme wird zuerst übertragen!
Beispiel: Die CRC16-Checksumme 0x1234 wird in der Reihenfolge 0x3412 übertragen und dargestellt.
Beispiel
Binärwert 1 auf Wortadresse 0x37A1 schreiben:
Anweisung (CRC16 = 9C17):
01
Slave
Antwort:
01
Slave
16
CRC = CRC XOR ByteOfMessage
For (1 bis 8)
CRC = SHR(CRC)
if (rechts hinausgeschobenes Flag = 1
then
CRC = CRC XOR 0xA0001
06
Funktion
06
Funktion
37 A1
00 01
Wortadresse
Wert
37 A1
00 01
Wortadresse
Wert
else
17 9C
CRC
17 9C
CRC