CANopen Emergency Nachrichten

CANopen Emergency (EMCY) Nachrichten sind ein optionaler Bestandteil des CANopen Protokolls um Fehler in den Geräten zu signalieren.

CANopen Emergency Protokoll

Producer

Als Producer werden die Geräte bezeichnet, welche in der Lage sind Emergency Nachrichten zu versendet. Damit können Fehler des Gerätes selbst,des CANopen-Stacks und der CAN-Kommunikation signalisiert werden. Die CANopen Spezifikation 301 definiert eine Menge an vordefinierten Fehlercodes und jedes CANopen-Geräte- oder Applikationsprofil kann weitere Fehlercodes definieren. Darüber hinaus ist es auch möglich herstellerspezifische Fehlercodes zu definieren. Zusätzlich können in den Nachrichten bis zu 5 Bytes hersteller-spezifischer Daten übertragen werden.

Consumer

Consumer sind die Geräte, welche die EMCY-Nachrichten andere Geräte empfangen können. Dies sind meist nur CANopen-Master-Geräte oder Diagnose- und Konfigurationstools.

Telegrammaufbau und CAN-IDs

CANopen Emergency Message
Die Länge einer Emergency-Nachricht ist immer 8 Byte. In den ersten beiden Byte wird der jeweilige EMCY Error Code des Fehlers übertragen. Danach folgt der aktuelle Wert des Error Registers (0x1011) und 5 hersteller-spezifische Bytes.

Die CAN-ID ist entsprechend dem Pre-defined Connection Set 0x80 + die Knotennummer des Producers.

Inhibit Time

Das optionale Inhibit Time Objekt (0x1015) definiert eine minimale Zeitspanne zwischen 2 Fehlernachrichten. Der Defaultvalue des Objekts ist 0 (keine Inhibitzeit) und der Wert kann in Vielfachen von 100µs definitiert werden. Mit einer entsprechenden Konfiguration des Objekts kann der Netzwerk-Master oder Systemintegrator verhindern, dass das CANopen-Netzwerk mit EMCY-Telegrammen geflutet wird.

Fehlerhistorie – Objekt 0x1003

Bei jedem EMCY-Producer kann optional das Objekt 0x1003 mit 1 bis 254 Subindizes implementiert werden. Ist das Objekt vorhanden, so dient es als Fehlerhistorie, welche die Fehlercodes alle vom Gerät gesendeten. Dabei wird immer der Error Code und ersten beiden hersteller-spezifischen Bytes in die Fehlerhistorie eingetragen, so dass der jeweils neueste Fehler auf Subindex 1 abgelegt wird.
CANopen Emergency Error History

Vordefinierte Fehlercodes aus CiA 301

CANopen Emergency Errror Codes[/caption]

Verbreitung

Obwohl die Emergency-Funktionalität optional ist, unterstützen die meisten CANopen-Stacks die entsprechende Producer und Consumer Funktionalität. Aufgrund dessen ist die Emergency-Producer-Funktion auch in vielen CANopen-Geräten implementiert. Auf Protokollebene ist die Implementierung der Producer-Funktionalität nicht sonderlich kompiliziert. Aufwändiger ist dagegen, dass die Erkennung der unterschiedlichen möglichen Fehler in der Applikation.

Tipps

  • Implementieren Sie die Emergency-Funktionalität in Ihren CANopen-Geräten.
  • Dokumentieren Sie alle Error Codes, welches das Gerät senden kann. Ohne eine Dokumentation unterstützter Fehlercodes, weiß der Anwender z.B. nicht ob ein Fehler nicht auftrat oder nur nicht signalisiert werden kann.
  • Implentieren Sie das Inhibit Time Objekt.

CANopen LSS – Dynamische Knotennummervergabe durch Layer Setting Services

CANopen-Geräte benötigen zur eindeutigen Adressierung für viele CANopen-Dienste eine Knotennummer im Wertebereich von 1 bis 127. Die in CiA-305 definierten Layer Setting Services (LSS) bieten eine Möglichkeit diese Knotennummer dynamisch über CANopen zu vergeben. Dieser Artikel gibt einen Überblick über LSS und stellt die Vorteile von LSS gegenüber anderen Verfahren heraus. „CANopen LSS – Dynamische Knotennummervergabe durch Layer Setting Services“ weiterlesen

CANopen Routing (Multi-Level-Networking)

CANopen Routing – Überblick

CANopen Routing – oder CANopen Multi-Level-Networking – beschreibt die CANopen-Kommuniktion über mehrere verbundene CANopen-Netze. Diese Netzwerke können hierarchisch strukturiert oder vermascht sein und es gibt vielfältige Konfigurationsmöglichkeiten hinsichtlich des Routings, so dass beispielsweise unterschiedliche Routen mit unterschiedlichen Kostenfaktoren belegt werden können. Dabei können jedoch nur einzelne CANopen Dienste, wie SDOs, PDOs und Emergency-Nachrichten geroutet werden.
„CANopen Routing (Multi-Level-Networking)“ weiterlesen