Da man sich ständig fragt, ob Array oder Record als Objektcode die 8 oder 9 haben, beschreibt der engl. Artikel die CANopen Object Code Definitionen.
CANopen Object Code Definitionen
- 7 – Variable
- 8 – Array
- 9 – Record
Da man sich ständig fragt, ob Array oder Record als Objektcode die 8 oder 9 haben, beschreibt der engl. Artikel die CANopen Object Code Definitionen.
Mit PDO-Linking wird der Vorgang der Verknüpfung von Prozessdatenobjekten (PDOs) bei CANopen bezeichnet. Dabei werden „CANopen PDO Linking“ weiterlesen
Die CANopen Netzwerkmanagement (NMT) – Dienste umfassen Funktionen um die CANopen-Slave-Zustandsmaschine zu steuern und um die Zustände der Geräte zu überwachen.
„CANopen Netzwerkmanagement – NMT“ weiterlesen
CANopen Emergency (EMCY) Nachrichten sind ein optionaler Bestandteil des CANopen Protokolls um Fehler in den Geräten zu signalieren.
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 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.
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.
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.
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.
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.