CANopen netwerk node Bewaking & Hartstlag
CANopen Apparaat Monitoring
Om de continuïteit van het netwerk van nodes te waarborgen, biedt CANopen twee alternatieven:
- Node Guarding door het cyclische opvragen van de node-status door de zogenaamde "NMT-master"; of
- Automatische transmissie van een "Heartbeat Message" - hartslag bericht- vanuit de netwerk nodes.
Éé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.
Node Guarding
Hierbij verzoekt de NMT-master de andere CANopen nodes in het netwerk - de NMT-slaves'- één voor één middels een CAN-Remote Frame en om een bericht met de actuele communicatie status terug te sturen. Dit gebeurt op regelmatige intervallen, de zogenaamde "guard time". Een node reageert met een "NodeGarding-bericht, zie hieronder, dat van een Toggle-bit voorzien is. Dit bit wisselt van waarde bij iedere transmissie. Dit is bedoeld als eenvoudige controle of een bericht gemist is.
Als een node binnen een bepaalde tijd - de "Node Life Time" - niet reageert op het verzoek van de NMT-master, wordt dit als een node-storing gezien. De host-controller van de NMT-master wordt geïnformeerd met een "Node Guarding Event". Het is verder aan de applicatiesoftware daar actie op te ondernemen.
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" intern door.
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. Echter ook door de centralisatie van de apparaat monitoring van CANopen nodes op de NMT-master wordt als minder gewenst gezien.
Heartbeat
Met node monitoring op basis van het hartslagprincipe zendt een CANopen node automatisch en regelmatig een bericht met de communicatiestatus als bewijs dat de node kan communiceren. Het interval tussen twee hartslagboodschappen - de "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 bepaalt de maximaal acceptabele periodetijd tot de ontvangst van een hartslagbericht in de gemonitorde node.
NodeGarding- of Heartbeat-bericht
In een bewakings- of hartslagbericht wordt de communicatie status verzonden in de vorm van een een-byte waarde:
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 Node Gurading-berichten dient het om te schakelen, dat is de Toggle-bit in bovenstaand figuur. Bij Heartbeat-berichten dient het constant 0 te zijn, de Rsvrd in dit figuur. Het node statusbericht heeft een bijzondere betekenis tijdens het opstarten van de node. Dit opstartbericht - de eerder genoemde "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.






