Node bewaking & hartstlag

CANopen Apparaat Monitoring

Om de continuïteit van het netwerk van nodes te waarborgen, biedt CANopen twee alternatieven:

  • Cyclische opvragen van de node-status door een hogere orde bijvoorbeeld door de zogenaamde CANopen NMT-master, het "Node Guarding"-principe (Node Bewaking); of
  • Automatische transmissie van een "Heartbeat Message" (hartslag bericht ) door de netwerk nodes, het "heartbeat"-principe.

Één CAN-ID per node is nodig om de communicatie status van het apparaat te volgen. Hiervoor zijn lage prioriteit bericht id's, met een waarde van 1792 + node-ID, gereserveerd voor.

Node Guarding

De NMT-master verzoekt de andere CANopen nodes in het netwerk (de NMT-slaves) éen voor één middels een CAN-remote frame en op bepaalde intervallen ("guard time") om een bericht met de actuele communicatie status terug te sturen samen met een toggle-bit. Als een node niet reageert op het verzoek van de NMT-master, binnen een bepaalde tijd (“Node Life Time”), wordt dit als een node-storing gezien en aan de host-controller van de NMT-master als een "Node Guarding Event" doorgegeven. Tegelijkertijd controlerende de NMT-slaves ook of zij een verzoek van de NMT-master hebben ontvangen binnen deze "Node Life Time". Indien een dergelijk verzoek binnen de bepaalde tijd uitbleef, gaat de NMT-slave ervan uit dat de NMT-master zelf gefaald heeft en geeft deze gebeurtenis als "Life Guarding Event" door aan de host controller. Tegenwoordig is Node Guarding wat op de achtergrond geraakt. Dit komt vooral door de hogere bus belasting, immers er zijn twee CAN-berichten per controle-interval nodig, maar ook door de minder gewenste centralisatie van de gezondheidscontrole van CANopen nodes op de NMT-master.

Heartbeat

Met node monitoring op basis van het hartslagprincipe zendt een CANopen node automatisch en regelmatig een bericht met de communicatiestatus als bewijs dat e node kan communiceren. Het interval tussen twee hartslagboodschappen ("hartslag interval") van een zogenaamde hartslag producent wordt geconfigureerd via het Object Directory item [1017]. Een waarde van 0 schakelt het hartslag mechanisme uit. De zogenaamde "Heartbeat Consumer Time" van tot 127 netwerkknooppunten wordt in de OD vermelding [1016]. Dit tijdinterval bepaald de maximaal acceptabele periodetijd tot de ontvangst van een hartslagbericht in de gemonitorde node.

bewakings- of hartslagbericht

In een bewakings- of hartslagbericht wordt de communicatie status verzonden in de vorm van een een-byte waarde:

Formaat van een CANopen heartbeat bericht

De volgende waarden zijn gedefinieerd voor de node status:

Waarde (hex)Status
0x00 Boot-up
0x04 Gestopt
0x05 Operationeel
0x7F Pre-operationeel

Het MSB heeft een speciale rol - bij bewakingsberichten dient het om te schakelen (Toggle, in bovenstaand figuur), en bij hartslagberichten dient het constant 0 te zijn (Rsvrd in dit figuur). Het node statusbericht heeft een bijzondere betekenis tijdens het opstarten van de node. Dit opstartbericht ("bootup message") wordt automatisch door een CANopen node verzonden zodra haar toestand verandert van "initialisatie" status naar de "pre-operationele" toestand. Hiermee worden alle reeds aanwezige nodes in een CANopen netwerk geïnformeerd over de aanwezigheid van een nieuwe node. Daarnaast wordt een configuratie-node (de NMT-master) op de hoogte gebracht dat het kan beginnen met de configuratie van deze node.