3 Modbus-Protokollbeschreibung
3.9
Fehlermeldungen
3.9.1
Modbus-Fehlercodes
Das Slave-Gerät antwortet nicht
In folgenden Fällen antwortet der Slave nicht:
•
Baudrate und/oder Datenformat von Master und Slave stimmen nicht überein
•
verwendete Geräteadresse stimmt nicht mit der im Protokoll enthaltenen Slave-Adresse überein
•
Checksumme (CRC) ist nicht korrekt
•
Anweisung des Masters ist unvollständig oder überdefiniert
•
Anzahl der zu lesenden Worte ist Null
In diesen Fällen sollte die Datenfrage nach Ablauf der Timeout-Zeit von ca. 1 s erneut gesendet werden.
Fehlercodes
Wurde die Datenanfrage des Masters vom Slave ohne Übertragungsfehler empfangen, konnte aber
nicht bearbeitet werden, antwortet der Slave mit einem Fehlercode. Folgende Fehlercodes können auf-
treten:
•
01 = ungültige Funktion
•
02 = ungültige Adresse oder zu große Zahl von Worten soll gelesen oder geschrieben werden
•
03 = Wert ist außerhalb des zulässigen Bereichs
•
08 = Wert ist schreibgeschützt
Antwort im Fehlerfall
Slave-Adresse
1 Byte
Der Funktionscode wird mit 0x80 verODERt. Dadurch wird das höchstwertige Bit (MSB) auf 1 gesetzt.
Beispiel
Datenanfrage:
01
Slave
Antwort:
01
Slave
Antwort mit Fehlercode 08, weil die Adresse 0x1099 schreibgeschützt ist.
22
Funktion XX OR 80h
1 Byte
06
1099
Wort
Wortadresse
schreiben
86
08
Funktion OR
Fehler
Fehlercode
1 Byte
0001
9CE5
Wort-Wert
CRC
43A6
CRC
Checksumme CRC
2 Byte