Díl 1 - Čtení dlouhého SDO, vyžadování jednotlivých segmentů
Díl 2 - Mapování objektů do PDO
Díl 7 - Nodeguarding a Heartbeat
Lifeguarding
Pomocí služeb "heartbeat" a "nodeguarding" které se označují jako lifeguarding lze na CAN sběrnici s protokolem CANopen detekovat zařízení, která jsou vypnuta nebo z nejrůznějších důvodů přestala pracovat. Jsou možné dvě varianty, NMT master cyklicky vyžaduje stav jednotlivých slave nodů (uzlů). Druhou variantou je, že slave uzly odesílají zprávu heartbeat.
V jeden okamžik se může používat jen jeden způsob pro jeden node. Kombinace obou způsobů pro jeden node není přípustná. Je doporučováno použití varianty heartbeat. Důvodem je menší zatížení CAN sběrnice.
Nodeguarding
U této varianty NMT master obesílá uzly zprávou RTR s CAN identifikátorem 700h + ID uzlu. Následně musí slave odpovědět zprávou se stejným identifikátorem avšak nesoucí v odpovědi data. Tato data obsahují jediný bajt. Dolních 7 bitů obsahuje NMT stav. Horní bit je nazýván jako toggle bit a střídá se v něm hodnota 0 a 1.
Master kontroluje odezvu a NMT stav jednotlivých uzlů. V případě, že některý uzel neodpovídá, nebo vrátí neočekávanou odezvu (NMT stav), master musí spustit proceduru podle chybového scénáře.
Pokud slave neobdrží požadavek RTR od mastera v rámci nastaveného času life time, slave předpokládá, že master selhal. V tomto případě nastaví slave výstupy do chybového stavu, odešle emergency zprávua vrátí se do stavu pre-operational.
Zde malá odbočka, zamýšleli jste se někdy nad funkcí toggle bitu? Pokud ne, zde je jeden z důvodů. Mnohé FullCAN řadiče CANu dovolují nastavit u bufferu funkci, kdy zpráva z tohoto bufferu je automaticky odeslána na CAN bus, pokud je z CANu přijata RTR zpráva se stejným identifikátorem. Pokud by nebyl použit toggle bit (střídání stavu bitu 0 a 1), mohlo by dojít k tomu, že FW ve slave uzlu má nastaven buffer na automatickou odpověď na RTR nodeguard zprávu. Pokud by MCU/CPU přestal pracovat, řadič by automaticky odpovídal a chyba uzlu by se nedala detekovat. Tím že software v MCU/CPU musí po každém odeslání odpovědi na RTR (klidně automatickém) změnit stav toggle bitu, je zabezpečeno že k tomu nemůže dojít.
Samozřejmě toggle bit je vhodné používat i v jiných případech, například u návrhu vlastního protokolu. Dokonce nástroj HW Sync v programu PP2CAN dovoluje nastavit u jednotlivých generovaných zpráv automatické střídání zvoleného toggle bitu.
Heartbeat
V tomto případě se nerozlišuje mezi master a slave uzlem ale používá se označeni producer(producent) a consumer (spotřebitel). V praxi producentem jsou jak slave uzly, které pak monitoruje master, ale i master a slave uzly tak mohou monitorovat stav mastera. Samozřejmě je možné pro rychlejší reakci při vhodné konfiguraci i varianta, kdy se slave uzly monitorují navzájem.
Simulovat nodeguard a heartbeat zprávy je možné v programu PP2CAN v nástroji CANopen na stránce NODEGUARD.
V režimu Node guard Master->Slave je možné periodicky generovat RTR request na zvolený node-uzel nebo odesílat požadavek ručně. V režimu Slave->Master je pak možné odpověď generovat ručně nebo při zapnutí Auto response nechat generovat odpověď na požadavek automaticky. Toggle bit je možno nastavovat manuálně nebo při aktivaci volby Auto se bude přepínat stav toggle bitu s každou zprávou sám.