Modbus TCP/IP- und Modbus SL-Ausnahmecodes
Ausnahmecodes
Vom Client oder einem Server ausgegebene Ausnahmeantworten können das Ergebnis von Datenverarbeitungsfehlern sein. Nach einem Request vom Client kann eines der folgenden Ereignisse auftreten:
-
Wenn der Server den Request des Clients ohne Kommunikationsfehler empfängt und den Request ordnungsgemäß verwaltet, sendet er eine normale Antwort zurück.
-
Wenn der Server den Request des Clients aufgrund eines Kommunikationsfehlers nicht empfängt, sendet er keine Antwort zurück. Das Client-Programm wird beendet, indem eine Zeitverzögerungsbedingung auf den Request angewendet wird.
-
Wenn der Server den Request des Clients erhält, jedoch einen Kommunikationsfehler erkennt, sendet er keine Antwort zurück. Das Client-Programm wird beendet, indem eine Zeitverzögerungsbedingung auf den Request angewendet wird.
-
Wenn der Server den Request des Clients ohne Kommunikationsfehler empfängt, jedoch den Request nicht verwalten kann (der Request besteht z. B. im Lesen eines Registers, das nicht vorhanden ist), sendet der Server eine Ausnahmeantwort zurück, um den Client über die Art des Fehlers zu informieren.
Ausnahme-Frame
Der Server sendet einen Ausnahme-Frame an den Client, um eine Ausnahmeantwort anzugeben. Eine Ausnahmeantwort besteht aus 4 Feldern:
Feld |
Definition |
Größe |
---|---|---|
1 |
Servernummer |
1 Byte |
2 |
Ausnahmefunktionscode |
1 Byte |
3 |
Ausnahmecode |
n Bytes |
4 |
Kontrolle |
2 Bytes |
Verwalten von Modbus-Ausnahmen
Der Ausnahmeantwort-Frame besteht aus zwei Feldern, die ihn von einem normalen Antwort-Frame unterscheiden:
-
Der Funktionscode der Ausnahme entspricht dem ursprünglichen Funktionscode des Requests plus 128 (0x80).
-
Der Ausnahmecode ist von dem vom Server erkannten Kommunikationsfehler abhängig.
Die folgende Tabelle beschreibt die Ausnahmecodes, die von den Wireless-Geräten des EcoStruxure Panel Server verwaltet werden:
Ausnahmecode |
Bezeichnung |
Beschreibung |
---|---|---|
01 |
Ungültige Funktion |
Der im Request empfangene Funktionscode ist kein zulässiger Vorgang für den Server. Der Server befindet sich möglicherweise in einem zur Verarbeitung eines bestimmten Requests ungeeigneten Zustand. |
02 |
Ungültige Datenadresse |
Die vom Server empfangene Datenadresse ist keine zulässige Adresse für den Server. |
03 |
Ungültiger Datenwert |
Der Wert des Request-Datenfelds ist kein zulässiger Wert für den Server. |
04 |
Ausfall des Servergeräts |
Der Server ist aufgrund eines nicht behebbaren Fehlers nicht in der Lage, eine bestimmte Aktion auszuführen. |
06 |
Servergerät bereits aktiv |
Der Server ist mit der Ausführung eines anderen Befehls ausgelastet. Der Client sollte den Request senden, wenn der Server frei ist. |
Zugriff auf Variablen
Eine Modbus-Variable kann die folgenden Attribute aufweisen:
-
Nur Lesen (Schreibgeschützt)
-
Lesen/Schreiben
-
Nur Schreiben