Knotenüberwachung

Damit Ausfälle der CANopen-Teilnehmer überwacht werden, stehen die Mechanismen Heartbeat und Guarding zur Verfügung. Diese Mechanismen sind bei CANopen besonders wichtig, da sich die Teilnehmer in der ereignisgesteuerten Betriebsart nicht regelmäßig melden. Beim Guarding werden die Teilnehmer mit einem Datenanforderungstelegramm (Remote Frame) zyklisch nach ihrem Status gefragt, beim Heartbeat senden die Knoten ihren Status von selbst.

Guarding: Node Guarding und Life Guarding

Über Node-Guarding werden die Slaves überwacht, die ihrerseits über Life-Guarding einen ausgefallenen Guarding-Master erkennen.

Beim Node-Guarding setzt der Master Anforderungstelegramme, sogenannte Remote Frames (remote transmit requests) auf die Guarding-Identifier der Slaves ab, die überwacht werden sollen. Die Slaves antworten mit einer Guarding-Nachricht. Die Nachricht enthält den Node-State des Slaves und ein Toggle-bit, welches nach jeder Nachricht wechseln muss. Falls der Node-State oder das Toggle-bit nicht mit den Werten übereinstimmen, die vom Master erwartet werden oder generell keine Antwort erfolgt, geht der Master von einem Fehler aus.

Knotenüberwachung 1:


Bei der ersten Guarding-Nachricht des Slaves hat das Toggle-bit den Wert 0. Anschließend wechselt das Toggle-bit nach jeder Guarding-Nachricht und ermöglicht es festzustellen ob eine Nachricht verloren ging. Die restlichen sieben Bit enthalten den Node-State und übertragen damit den Status des Slaves an den Master.

Node-State

Status

4 = 0x04

Stopped

5 = 0x05

Operational

127 = 0x7F

Pre-Operational

 

Beispiel

Die Guarding Nachricht des Knotens 27 (0x1B) muss mit einem Remote Frame mit Identifier 0x71B (1819dez) angefragt werden. Wenn der Knoten Operational ist, wechselt das erste Datenbyte der Antwort-Nachricht zwischen 0x05 und 0x85, im Zustand Pre-Operational wechselt es zwischen 0x7F und 0xFF.

Guard Time und Life Time Factor

Wenn der Master die Guard-Nachrichten streng zyklisch anfordert, kann der Slave den Ausfall des Masters erkennen. Falls der Slave in diesem Fall innerhalb des eingestellten Node Life Time keine Nachrichtenanforderung vom Master erhält (Guarding-Fehler), geht der Slave von einem Masterausfall aus (Watchdog-Funktion).

In diesem Fall setzt der Slave seine Ausgänge in den Fehlerzustand, sendet ein Emergency-Telegramm und wechselt in den Zustand Pre-Operational zurück. Das Verfahren kann nach einem Guarding Time-Out wieder durch eine neue Guarding-Nachricht angeregt werden.

Die Node Life Time berechnet sich aus den Parametern:

  • Guard-Time (Objekt 0x100C) und
  • Life-Time-Factor (Objekt 0x100D)

Life-Time = Guard-Time x Life-Time-Factor

Falls einer der beiden Parameter 0 ist (Standardeinstellung), erfolgt keine Überwachung des Masters (kein Life-Guarding) (siehe: Registerkarte CAN Node).

Heartbeat: Knotenüberwachung ohne Remote Frame

Beim Heartbeat-Verfahren senden die Teilnehmer selbsttätig zyklisch ihre jeweilige Statusmeldung. Anders als beim Guarding-Verfahren werden beim Heartbeat-Verfahren keine Remote Frames verschickt und es wird weniger Buslast erzeugt. Auch der Master sendet sein Heartbeat-Telegramm zyklisch und die Slaves können dadurch den Ausfall des Masters erkennen (siehe: Registerkarte CAN Node).

Knotenüberwachung 2:


Beim Heartbeat-Verfahren wird auf das Toggle-bit verzichtet und die Teilnehmer senden zyklisch Ihren Status.