2 Modbus-Protokollbeschreibung
2.8
Fehlermeldungen
2.8.1
Modbus-Fehlercodes
Voraussetzungen für die Modbus-Kommunikation
Folgende Bedingungen müssen erfüllt sein, damit ein Slave Anfragen empfangen, bearbeiten und be-
antworten kann:
•
Baudrate und Datenformat von Master und Slave müssen übereinstimmen.
•
In der Anfrage muss die korrekte Slave-Adresse verwendet werden.
•
Slave-Geräte antworten nur bei erfolgreichem Prüfsummen-Check der Anfrage durch den Slave.
Anderenfalls wird die Anfrage vom Slave verworfen.
•
Die Anweisung des Masters muss vollständig und konform zum Modbus-Protokoll sein.
•
Die Anzahl der zu lesenden Worte muss größer 0 sein.
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; Die Funktionscodes, die vom JUMO tecLine (20263x) unterstützt werden,
sind im Kapitel 2.4 „Funktionscodes", Seite 7 aufgeführt.
•
02 = ungültige Adresse oder eine zu große Anzahl von Worten bzw. Bits soll gelesen oder geschrie-
ben werden
•
03 = Das Format der Daten kann nicht gelesen werden.
•
255 = Es liegt ein Kommunikationsproblem vor.
Modbus-Fehlerantworten sind daran erkennbar, dass das MSB des Funktionscodes auf 1 gesetzt wur-
de.
Antwort im Fehlerfall
Slave-Adresse
Der Funktionscode wird mit 0x80 verODERt. Dadurch wird das höchstwertiges Bit (msb) auf 1 gesetzt.
Beispiel
Datenanfrage:
01
Slave
Antwort (mit Fehlercode 2):
01
Slave
Antwort mit Fehlercode 02, weil die Adresse 0x2345 nicht vorhanden ist.
14
Funktion XX OR 80h
1 Byte
06
Wort schrei-
ben
86
Funktion OR
1 Byte
23 45
00 01
Wortadresse
Wort-Wert
02
C3 A1
Fehler
CRC
Fehlercode
Checksumme CRC
1 Byte
52 5B
CRC
2 Bytes