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

Inizializzazione: dopo l'accensione, il nodo passa attraverso questo stato. A questo punto, l'applicazione del dispositivo e la comunicazione del dispositivo (bit rate e indirizzo del nodo) vengono inizializzate. Successivamente, il nodo passa in modo indipendente allo stato "Pre-Operational".
Pre-operativo: la comunicazione con il nodo è possibile tramite SDO. Tuttavia, il nodo non è in grado di eseguire la comunicazione PDO.
Operativo: il nodo CANopen è completamente operativo. Può inviare e ricevere autonomamente i dati di processo.
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 (esempio: avvia nodo).
Registro degli errori
Secondo CiA 301, ogni dispositivo CANopen ha un registro degli errori (oggetto 16#1001). Questo registro può essere letto tramite SDO e in caso di errore fornisce informazioni aggiuntive sull'errore.
Nel registro degli errori è richiesto solo il bit 0 (errore generico). Gli altri bit sono opzionali e non sono impostati da tutti gli slave. Non appena un dispositivo rileva un errore, viene impostato almeno il bit 0 di questo oggetto.
Morso | Descrizione |
---|---|
0 | Errore generico |
1 | Attuale |
2 | Voltaggio |
3 | Temperatura |
4 | Errore di comunicazione (stato di errore di overrun) |
5 | Profilo dispositivo specifico |
6 | Riservato (sempre 0) |
7 | Specifico del produttore |
Emergenza e campo di errore predefinito (EMCY)
CANopen definisce il protocollo di emergenza opzionale (EMCY) per indicare gli errori. Un'emergenza è un messaggio CAN che viene trasmesso in base alla connessione predefinita impostata 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. Segue il valore attuale del registro di errore 0x1011 (ER: registro di errore) e 5 byte specifici del produttore (MEF: campo di errore specifico del produttore).
La rispettiva interpretazione dei codici di errore deve essere presa dal manuale del produttore. Il protocollo di emergenza non è supportato da tutti gli slave e deve essere configurato di conseguenza dal CANopen Manager.
La cronologia delle emergenze avvenute (cronologia errori) può essere letta dall'oggetto 16#1003 tramite SDO. Qui il sottoindice 0 contiene il numero di errori memorizzati e i seguenti sottooggetti contengono il contenuto dei dati delle emergenze trasmesse.
Meccanismi di monitoraggio: Heartbeat e Node Guarding
Il monitoraggio di un nodo CAN è necessario se non invia continuamente messaggi (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 remoti CAN) vengono inviati dal master NMT agli slave CANopen esistenti. Gli slave devono rispondere a questi messaggi entro un tempo specifico. Se non c'è risposta, questa viene registrata dal master NMT. Poiché in generale i frame remoti CAN dovrebbero essere evitati, è preferibile il monitoraggio tramite heartbeat.
Heartbeat: il protocollo heartbeat è stato rilasciato con CANopen versione 4.0 ed è il metodo di monitoraggio preferito. Qui, ogni nodo invia indipendentemente un messaggio a intervalli ciclici. Questo messaggio può essere monitorato da qualsiasi altro abbonato nella rete.