Diagnosi CANopen
Il capitolo descrive le possibilità di diagnosi offerte dal protocollo CANopen .
Stato CANopen
Una rete CANopen è composta da un master NMT (gestione di rete) e da slave NMT. In questo caso, il master NMT controlla tutti i dispositivi e può modificarne lo stato di comunicazione. Un dispositivo CANopen si trova in uno dei quattro possibili stati:

Inizializzazione: dopo l'accensione, il nodo attraversa questo stato. In questa fase, l'applicazione del dispositivo e la comunicazione del dispositivo (bit rate e indirizzo del nodo) vengono inizializzate. Successivamente, il nodo passa autonomamente allo stato "Pre-Operativo".
Pre-operativo: la comunicazione con il nodo è possibile tramite SDO. Tuttavia, il nodo non è in grado di effettuare comunicazioni PDO .
Operational: il nodo CANopen è completamente operativo. Può inviare e ricevere dati di processo in modo indipendente.
Arrestato: il nodo è completamente separato dalla rete. Non è possibile alcuna comunicazione SDO o PDO . Il nodo può passare a un altro stato di rete solo tramite un comando di rete corrispondente (ad esempio: avvia nodo).
Registro degli errori
Secondo CiA 301, ogni dispositivo CANopen ha un registro di errore (oggetto 16#1001). Questo registro può essere letto tramite SDO e, in caso di errore, fornisce informazioni aggiuntive sull'errore stesso.
Solo il bit 0 (errore generico) è richiesto nel registro degli errori. Gli altri bit sono opzionali e non vengono impostati da ogni slave. Non appena un dispositivo rileva un errore, almeno il bit 0 di questo oggetto viene impostato.
Morso | Descrizione |
|---|---|
0 | Errore generico |
1 | Attuale |
2 | Voltaggio |
3 | Temperatura |
4 | Errore di comunicazione (stato di errore di superamento) |
5 | Profilo dispositivo |
6 | Riservato (sempre 0) |
7 | Specifico del produttore |
Campo di emergenza e di errore predefinito (EMCY)
CANopen definisce il protocollo di emergenza opzionale (EMCY) per indicare gli errori. Un'emergenza è un messaggio CAN trasmesso secondo il set di connessioni predefinito con CAN-ID 16#80 + NODE-ID.
Il telegramma ha la seguente struttura:

La lunghezza di un messaggio di emergenza è sempre di 8 byte. Il rispettivo codice di errore di emergenza (EEC) viene trasmesso nei primi due byte. Seguono il valore corrente del registro di errore 0x1011 (ER: registro di errore) e 5 byte specifici del produttore (MEF: campo di errore specifico del produttore).
L'interpretazione dei codici di errore deve essere consultata nel manuale del produttore. Il protocollo di emergenza non è supportato da tutti gli slave e deve essere configurato di conseguenza tramite il CANopen Manager.
La cronologia delle emergenze verificatesi (cronologia degli errori) può essere letta dall'oggetto 16#1003 tramite SDO. Qui, il sottoindice 0 contiene il numero di errori memorizzati e i sottooggetti successivi contengono i dati delle emergenze trasmesse.
Meccanismi di monitoraggio: Heartbeat e Node Guarding
Il monitoraggio di un nodo CAN è necessario se non invia messaggi in modo continuativo ( PDO ciclici). A tale scopo sono previsti i meccanismi "heartbeat" e "node guarding", che possono essere utilizzati in alternativa.
Node Guarding: con questo protocollo, i messaggi (frame CAN remoti) vengono inviati dal master NMT agli slave CANopen esistenti. Gli slave devono rispondere a questi messaggi entro un tempo specifico. In assenza di risposta, il master NMT registra la mancata risposta. Poiché i frame CAN remoti dovrebbero essere generalmente evitati, è preferibile il monitoraggio tramite heartbeat.
Heartbeat: il protocollo heartbeat è stato rilasciato con CANopen versione 4.0 ed è il metodo di monitoraggio preferito. In questo caso, ogni nodo invia in modo indipendente un messaggio a intervalli ciclici. Questo messaggio può essere monitorato da qualsiasi altro utente della rete.