Fehler
Bei der Nutzung des Asycubes mit Modbus TCP können mehrere Arten von Fehlern auftreten. Die Bits des Holding Registers HR_MODBUS_STATUS (Adresse 64) repräsentieren den Status dieser Fehlertypen.
Wert (binär) |
Name |
Beschreibung |
---|---|---|
0b0001 |
Modbus-Fehlerstatus des Asycubes |
Ist der Wert 1, konsultieren Sie bitte den Abschnitt Wichtigste Modbus-Ausnahmecodes |
0b0010 |
Fehlerstatus interne Modbus-Kommunikation |
Ist der Wert 1, konsultieren Sie bitte den Abschnitt Holding Register: Fehlercodes |
0b0100 |
Status der Asycube-Warnungen |
Ist der Wert 1, konsultieren Sie bitte den Abschnitt Warnungen und Alarme des Asycubes |
0b1000 |
Status der Asycube-Alarme |
Ist der Wert 1, konsultieren Sie bitte den Abschnitt Warnungen und Alarme des Asycubes |
Der Fehlerstatus kann zurückgesetzt werden, indem das entsprechende Bit im Holding Register HR_MODBUS_CONTROL auf 1 gesetzt wird. Zum Beispiel wird durch das Schreiben des Wertes 0b0110
(entspricht dem Wert ‘6’ in dezimal) sowohl der Modbus-Fehlerstatus des Asycubes als auch der Warnungsstatus des Asycubes zurückgesetzt.
Wichtigste Modbus-Ausnahmecodes
Die Modbus-Ausnahmecodes sind in den Protokollspezifikationen definiert (http://www.modbus.org). Ein Teil dieser Ausnahmen ist im Asycube implementiert (vgl. Tab. 19). Das Modbus-Protokoll ist dafür verantwortlich, die Ausnahmen direkt in der Modbus-Nachricht zu übertragen und nicht in einem Holding Register zu speichern.
Wert (dezimal) |
Name |
Beschreibung |
1 |
Unzulässige Funktion |
Der in der Abfrage empfangene Funktionscode wird vom Slave nicht erkannt oder nicht zugelassen |
2 |
Unzulässige Datenadresse |
Die Datenadressen einiger oder aller benötigten Entitäten sind nicht zulässig oder existieren nicht im Slave |
3 |
Unzulässiger Datenwert |
Wert wird vom Slave nicht akzeptiert |
Holding Register: Fehlercodes
Das Register HR_MODBUS_ERROR_CODE gibt den aktuellen Modbus-Fehler des Asycubes an.
Das erste Byte (Maske 0x00FF
) gibt den mit der Implementierung von Modbus mit Asycube verbundenen Fehler an (vgl. Tab. 20).
Wert (hexadezimal) |
Name |
Beschreibung |
0x01 |
Schreibzugriff nicht gewährt |
Die Daten können nicht geschrieben werden, weil es unzulässig ist oder weil der Index ausserhalb des zulässigen Bereichs liegt. Ein Beispiel wäre die Auswahl einer Sequenz (HR_SELECT_VIBRATION_SET) mit einem Wert ausserhalb des Bereichs, wie z.B. 27. |
Das zweite Byte (Maske 0xFF00
) gibt den Fehlercode der internen Modbus-Kommunikation an (vgl. Wert Error Bit in Tab. 17). Der Fehler bei der internen Modbus-Kommunikation tritt typischerweise auf, wenn eine Vibration mit falschen Parameterwerten ausgelöst wird.
Ein Beispiel wäre das Auslösen einer Plattformzentrierung (HR_PLATFORM_CENTERING_TRIG), während der Wert der X-Position (HR_PLATFORM_CENTERING_X ) ausserhalb des Bereichs liegt, z. B. bei 120 %.
Warnungen und Alarme des Asycubes
Der Asycube verfügt über seine eigenen Warnungen und Alarme. Sie können jeweils in den Holding Registern HR_WARNINGS und HR_ALARMS gelesen werden.