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

Werten Sie die Emergency-Objekte aus!

Es 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: 0x00 oder 0x30*

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.

*) Wenn EC0 den Wert 0x30 hat, dann sind nur die ersten vier Byte des Emcy-Telegramms und eventuell das Emcy Trigger Byte auszuwerten. Die Daten von DevErr und Info0 und Info1 haben dann keine Bedeutung und sind zu ignorieren.

Parameter

Erläuterung

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 bis 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 Bit 7 gesetzt, das CAN Warning Limit ist weiterhin überschritten. Im Bitfeld 1 (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 Bitfeld 1 (0x01) ist der Klemmenfehler weiterhin vorhanden. Der EMCY Trigger (0x01) gibt das Rücksetzen des CAN Warning Limits als Sendegrund an, in Info 0 und Info 1 wird 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