Feldbusanschaltung CANopen CX1500-FB510

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.

 
Hinweis
AchtungEs wird dringend empfohlen, die Emergency-Objekte auszuwerten - sie stellen eine wertvolle Informationsquelle dar.

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:

 
11-bit Identifier
8 Byte Nutzdaten
0x80 (128dez) + Node-ID
EC0
EC1
EReg
Bitfeld0: Comm
Bitfeld1: DevErr
EMCY Trigger
Info0
Info1
Legende
Parameter
Erläuterung
EC0
Error Code Low-Byte. Nicht genutzt (stets null)
EC1
Error Code High-Byte. 0x50 = Gerätefehler, 0x81 = Kommunikationsfehler, 0x00 = Error Reset
EReg
Error Register. 0x81 = Gerätefehler, 0x91 = Kommunikationsfehler
Bitfeld 0: Comm
Bitfeld Kommunikations-Fehler:
0x01
Guarding verzögert od. ausgefallen
0x02
Sync verzögert oder ausgefallen
0x04
Falsche PDO-Länge parametriert
0x08
Timeout Event-Timer: RxPDO nicht rechtzeitig empfangen
0x10
Receive Queue Overrun
0x20
Transmit Queue Overrun
0x40
CAN Bus OFF
0x80
CAN Warning Limit überschritten
Bitfeld 1: DevErr
Bitfeld Geräte-Fehler:
0x01
Klemmenfehler
0x02
K-Bus-Fehler / IP-Link Fehler
0x03
-
0x04
EEPROM-Fehler
0x10
Nicht unterstützte Klemme gesteckt (BK5110, LC5100)
0x80
Geänderte HW-Konfiguration.
EMCY Trigger
Das Byte Emergency Trigger enthält jeweils den Code des Fehlers, der das Emergency-Telegramm ausgelöst hat. Wenn ein Fehler beseitigt wird, so wird ein Emergency-Telegramm mit dem Error Code 0x0000 gesendet und der Emergency Trigger enthält die Beschreibung des Fehlers, der beseitigt wurde. Dabei werden noch aktuelle Fehler in den Bitfeldern signalisiert. Nachdem der Buskoppler fehlerfrei ist, sendet er ein Emergency-Telegramm, das außer im Emergency Trigger nur Nullen enthält.
0x01
CAN Warning Limit überschritten (zu viele Error Frames)
0x02
CAN Bus OFF Zustand wurde erreicht. Da der Koppler dann kein Emergency mehr senden kann, wird nach Verlassen des Bus-Off Zustandes (erneute CAN Controller Initialisierung) ein Emergency mit Trigger 0x40 gesendet
0x03
Transmit Queue Overrun Sende-Puffer Überlauf: CAN Nachrichten gingen verloren
0x04
Receive Queue Overrun: Empfangs-Puffer Überlauf: CAN Nachrichten gingen verloren
0x06
Falsche PDO-Länge parametriert (Mapping überprüfen).
Info 0: parametrierte (erwartete) PDO-Länge in Bytes
Info 1: aktuelle PDO-Länge (ergibt sich aus den addierten Längen der gemappten Objekte)
0x07
Sync verzögert (Time-Out nach Communication Cycle Period, Index 0x1006) oder ausgefallen
0x08
Guarding bzw. Heartbeat verzögert (Time-Out nach Guard-Time x Life Time Factor bzw. nach Consumer Heartbeat Time) oder ausgefallen
0x09
Geänderte HW-Konfiguration. Seit dem letzten Abspeichern wurde die Klemmenbestückung bzw. Zusammensetzung der Erweiterungsmodule geändert.
0x0A
Timeout Event Timer : RxPDO nicht rechtzeitig empfangen
0x0B
logischer" Tx-Queue Überlauf: SYNC Intervall zu kurz.
Der Koppler konnte vor dem nächsten SYNC Telegramm nicht alle TxPDOs absetzen. Die TxPDOs werden dann z.B. jedes zweite SYNC Intervall abgesetzt.
Abhilfe: SYNC Intervall verlängern oder Transmission Type erhöhen. Ggf. I/O Anzahl an dieser Busstation reduzieren (z.B. I/Os zur Nachbarstation verschieben)
0x0C
Nicht unterstützte Klemme gesteckt (BK5110 oder LC5100). Info 1: Klemmennummer (1...64)
0x0E
EEPROM-Fehler; Beim Speichern der Konfiguration in das EEPROM ist ein Fehler aufgetreten
0x0F
K-Bus-Fehler
Info 0: Fehlertyp:
  0x03: Kommandofehler (ohne Angabe Klemmennummer), 
  0x04: K-Busunterbrechung bzw. IP-Link Unterbrechung
  0x05: Fehler bei Register-Kommunikation
  0x0B: Time-Out auf Erweiterungsbox
  0x0C: Mehr als 120 Module im IP-Link Ring
  0x0D: K-Bus Kommandofehler bzw. IP-Link: Unbekannte Erweiterungsbox
  0x0E: Alignment Fehler
  0x0F: Anzahl Klemmen geändert
  0x10: K-Bus Reset: Bitlänge des K-Bus geändert
  0x11: K-Bus Reset: Anzahl Klemmen geändert
  0x12: K-Bus Reset: Typ einer Klemme geändert
Info 1: Klemmennummer (1...64)
0x10
Klemmenfehler
Info 0: Klemmennummer (1...64)
Info 1: allgemeiner Diagnose Statuscode der Klemme:
  Bit 0,1: Kanal-Nummer (00: Kanal 1;  01: Kanal 2;  10: Kanal 3;  11: Kanal 4)
  Bit 2...6: reserviert
  Bit 7: Fehler (=1: aufgetreten; =0: behoben).
  Nähere Info zur Fehlerart siehe Statusregister der Klemme bzw. des Erweiterungsmoduls.
Info 0, Info 1
Enthält zusätzliche Fehler-Info; Bedeutung hängt von Emergency Trigger ab (siehe oben)

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