Emergency-Objekt
Um anderen Teilnehmern am CANopen-Bus interne Gerätefehler oder CAN-Busfehler mitteilen zu können verfügen der CANopen Buskoppler über das Emergency-Objekt. Es ist mit einer hohen Priorität versehen und liefert wertvolle Informationen über den Zustand des Gerätes und des Netzes.
Struktur der Emergency-Nachricht
Das Emergency-Objekt ist stets 8 Byte lang; es enthält zunächst den 2-Byte Error Code, dann das 1-Byte Error Register und schließlich den 5 Byte großen Additional Code. Dieser teilt sich in ein 2-Byte Bitfeld und ein 3-Byte Parameterfeld auf:
Legende
Beispiel zum Emergency-Verhalten
- 1.
- Der CAN-Fehlerzähler eines Buskopplers überschreitet das Warning Limit (zu viele Error Frames). Er sendet ein Emergency-Telegramm mit dem Identifier 0x80 + Knotenadresse (Default-Einstellung) mit folgendem Inhalt:
00 81 91 80 00 01 00 00
Die ersten drei Bytes (0x00 81 91) kennzeichnen einen Kommunikationsfehler, das Bitfeld0 (0x80) signalisiert CAN Warning Limit überschritten. Der EMCY Trigger (0x01) zeigt, dass das Emergency wegen des Überschreiten des Warning Limits ausgelöst wurde.
- 2.
- Gleich anschließend tritt am zweiten Kanal der 4-20 mA Analogeingangsklemme, die an der zehnten Stelle gesteckt ist, ein Kabelbruch auf. Der Buskoppler sendet ein erneutes Emergency-Telegramm mit folgendem Inhalt:
00 50 91 80 01 10 0A 82
Die ersten beiden Bytes (0x00 50) zeigen einen Hardware Fehler, im Error Register (0x91) sind die Bits 0 (Generic Error), 4 (Communication) und 7 (Manufacturer Specific) gesetzt. Im Bitfeld0 (0x80) ist Bit7 gesetzt, das CAN Warning Limit ist weiterhin überschritten. Im Bitfeld1 (0x01) ist Bit 0 gesetzt, also Klemmenfehler. Der EMCY Trigger (0x10) zeigt, dass dieser Klemmenfehler das Emergency-Telegramm ausgelöst hat. Schließlich zeigt Info0 (0x0A) die Klemmennummer (10) und Info1 (0x82) mit Bit1 und Bit7, dass Kanal2 einen Fehler hat.
- 3.
- Wenn nun der Fehlerzähler das Warning Limit wieder unterschreitet, sendet der Koppler das folgende Emergency-Telegramm:
00 00 81 00 01 01 0A 82
Der Error Code (00 00) der ersten beiden Bytes zeigt an, dass ein Fehler zurückgesetzt wurde. Das Error Register (0x81) zeigt weiterhin einen Gerätefehler, da der Kabelbruch ja weiterhin aktuell ist. Das Bitfeld0 (0x00) zeigt, dass der Kommunikationsfehler nicht mehr ansteht. Nach Bitfeld1 (0x01) ist der Klemmenfehler weiterhin vorhanden. Der EMCY Trigger (0x01) gibt das Rücksetzen des CAN Warning Limits als Sendegrund an, in Info0 und Info1wird weiterhin der Diagnose Status Code der Klemmen angezeigt.
- 4.
- Nachdem der Kabelbruch behoben wurde wird auch dieser Fehler zurückgesetzt und der Koppler sendet folgendes Emergency-Telegramm:
00 00 00 00 00 00 00 00