Trasmissione e monitoraggio CANopen

Introduzione

CANopen è un protocollo di comunicazione aperto standard del settore e di specifica del profilo dispositivo (EN 50325-4) basato sul protocollo Controller Area Network (CAN). Il protocollo "Layer 7” è stato sviluppato per le applicazioni di rete integrate e definisce le comunicazioni e le funzioni del dispositivo per sistemi CAN.

CANopen supporta sia le comunicazioni cicliche sia dettate da eventi, consentendo di ridurre al minimo il carico del bus e di mantenere tempi di reazione brevi.

PDO (Process Data Object, Oggetto dati di processo)

I PDO sono oggetti che forniscono l'interfaccia di comunicazione con i dati di processo, permettendone lo scambio in tempo reale. Il set di PDO di un dispositivo CANopen descrive gli scambi impliciti tra questo dispositivo e i suoi partner di comunicazione sulla rete. Lo scambio dei PDO è autorizzato quando il dispositivo è in modalità "OPERATIONAL".

Sono disponibili due tipi di PDO:

  • PDO di trasmissione (TPDO): PDO trasmesso dal dispositivo

  • PDO di ricezione (RPDO): PDO ricevuto dal dispositivo

Modalità di trasmissione

Il Accoppiatore bus TM3 CANopen supporta tre tipi di modalità di trasmissione PDO:

Tipo codice trasferimento

Modalità di trasmissione

Descrizione

0

Aciclica - Sincrona

Invio PDO sul primo messaggio SYNC a seguito di un evento

1-240

Ciclica - Sincrona

Invio PDO ogni x messaggi SYNC, dove x può essere configurato da 1 a 240

255 (Predefinito)

Asincrona

Invio PDO su evento

Ai PDO attivati da evento sono associate due ulteriori opzioni:

  • Inhibit Time: l'utility Inhibit Time consente di definire un ritardo minimo prima della trasmissione di un nuovo PDO. Si evita così di sovraccaricare il bus laddove si verifica un significativo numero di eventi in rapida successione. L'Inhibit Time viene espresso in multipli di 100 μs.

    Questa funzionalità è disponibile per il trasferimento di Tipo 255 (Asincrono).

Questa tabella mostra un esempio di valori:

Valore (dec)

Tempo (ms)

0

0

10

1

100

10

1000

100

10000

1000

65535

6553,5

  • Tempo evento il Tempo evento consente di definire una scadenza laddove la trasmissione di un PDO viene forzata, anche in assenza di modifiche di stato. Il Tempo evento è espresso in millisecondi.

    Questa funzionalità è disponibile per il trasferimento di Tipo 255 (Asincrono).

Questa tabella mostra un esempio di valori:

Valore (dec)

Tempo (ms)

0

0 (disattiva il temporizzatore)

10

10

100

100

1000

1000

10000

10000

65535

65535

SDO (Service Data Object)

Uno SDO consente di accedere ai dati del dispositivo tramite richieste esplicite. Il servizio SDO è disponibile quando il dispositivo si trova nello stato "OPERATIONAL" o "PRE-OPERATIONAL".

Sono disponibili due tipi di SDO:

  • SDO di lettura (SDO di download)

  • SDO di scrittura (SDO di caricamento)

Il protocollo SDO si basa su un modello client/server. Per uno SDO di download, il client (in genere il controller) invia una richiesta che indica l'oggetto da leggere. Il server (in questo caso, l'accoppiatore bus) restituisce i dati contenuti nell'oggetto. Per uno SDO di caricamento, il client (in genere il controller) invia una richiesta che indica l'oggetto in cui scrivere e il valore desiderato. Dopo l'aggiornamento dell'oggetto, il server (in questo caso, l'accoppiatore bus) restituisce un messaggio di conferma.

Se uno SDO non può essere elaborato dal server (accoppiatore bus), il server restituisce un codice di errore (Codice di annullamento). Questa situazione è valida per SDO di download e caricamento. Se il server non risponde entro un periodo di tempo pre-configurato (Timeout SDO), il client emette un codice di annullamento di timeout SDO.

Protocolli di controllo errori

I protocolli di controllo errori consentono di rilevare gli errori di comunicazione sulla rete. Sono disponibili due protocolli: node guarding ed heartbeat. Questi due meccanismi di monitoraggio sono particolarmente importanti nel sistema CANopen. I dispositivi collegati al bus non indicano regolarmente la loro presenza in modalità operativa, in particolare se comandati da Evento.

NOTA: un dispositivo CANopen non può supportare il monitoraggio tramite entrambi i metodi di monitoraggio, Guarding e Heartbeat, contemporaneamente. Il dispositivo, se riceve entrambe le configurazioni, utilizzerà solo il metodo di monitoraggio Heartbeat.

Node Guarding

In questo protocollo, il master NMT (in genere, il controller) interroga ciascun dispositivo NMT (accoppiatore bus, ad esempio) a intervalli di tempo regolari, denominati Guard Time. Il dispositivo risponde con il proprio stato NMT. Il dispositivo, se non riceve un'interrogazione dopo un periodo definito denominato Lifetime, passa allo stato configurato nell'oggetto 1029H e genera un evento life guarding. L'accoppiatore bus, invece, passa allo stato configurato nell'oggetto 1029H (se l'oggetto 1029H viene lasciato come predefinito), viene attivata la gestione del posizionamento di sicurezza e generato l'evento guarding. Lifetime è definito come segue: Lifetime = Guard Time x Lifetime Factor. L'oggetto 100CH contiene il parametro Guard time espresso in millisecondi. L'oggetto 100DH contiene il parametro Lifetime factor. Guard Time e Lifetime possono essere configurati in modo diverso per dispositivi differenti.

Quando uno dei due parametri Lifetime Factor o Guard Time è impostato a 0 (configurazione predefinita), il dispositivo non effettua il monitoraggio. Per attivare il monitoraggio nel tempo, occorre immettere un valore (minimo 2) nell'oggetto 100DH e specificare una durata in millisecondi nell'oggetto 100CH.

I valori tipici del parametro Guard Time sono compresi tra 200 ms e 2 s.

Per mantenere un funzionamento più affidabile e sicuro, occorre specificare un Lifetime Factor (oggetto 100DH) con un valore pari a 2 o superiore. Se si utilizza il valore 1 e si verificasse un ritardo dovuto all'elaborazione di messaggi ad alta priorità o all'elaborazione interna sul master node-guarding, il dispositivo può passare inavvertitamente allo stato configurato nell'oggetto 1029H.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELLA MACCHINA
Impostare il Lifetime Factor (oggetto 100DH) a un valore non inferiore a 2 quando si attiva Node Guarding.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

Il monitoraggio viene effettuato nel modo seguente:

Phase

Descrizione

1

Il master imposta Remote-Frames (o messaggi di richiesta Remote-Transmit-Request) sul Guarding-CobID dei dispositivi da monitorare.

2

I dispositivi interessati rispondono inviando il messaggio Guarding. Questo messaggio contiene lo StatusCode- del dispositivo e il Toggle-Bit, che cambia dopo ogni messaggio.

3

Il master NMT (Network Management Telegram) confronta le informazioni di Status e Toggle-Bit: se non sono nello stato previsto o se non viene ricevuta alcuna risposta, il master NMT considera che sia stato rilevato un errore sul dispositivo.

NOTA: anche se la funzione di monitoraggio nel tempo è disattivata (registri Guard Time e Lifetime-Factor impostati a 0), il dispositivo risponde a una richiesta remota dal master. Per il messaggio Guarding, il valore iniziale del Toggle-Bit inviato nel primo messaggio Guarding è 0. Quindi, il Toggle Bit cambia in ogni successivo messaggio Guarding, consentendo di indicare se è stato perso un messaggio.

Lo stato di rete del dispositivo è indicato nei sette bit residui:

Stato di rete

Risposta (hex)

‘STOPPED’

04H oppure 84H

‘PRE-OPERATIONAL’

7FH oppure FFH

‘OPERATIONAL’

05H oppure 85H

Meccanismo Heartbeat

In questo protocollo, il generatore trasmette periodicamente un messaggio Heartbeat, in base al parametro Producer Heartbeat Time (in millisecondi) configurato nell'oggetto 1017H. I dispositivi responsabili del monitoraggio di questo messaggio avranno un parametro Consumer Heartbeat Time (in millisecondi), configurato nell'oggetto 1016H. Se il messaggio Heartbeat del generatore non viene ricevuto entro il tempo configurato dei dispositivi utilizzatori, i dispositivi generano un evento Heartbeat. Per l'accoppiatore bus, invece, passa allo stato CANopen configurato nell'oggetto 1029H, viene attivata la gestione del posizionamento di sicurezza e generato l'evento Heartbeat.

Il messaggio Heartbeat indica lo stato del dispositivo su un byte, composto da:

  • Il bit più significativo è riservato e sempre a 0

  • I 7 bit meno significativi forniscono lo stato per il dispositivo che genera il messaggio Heartbeat

I valori possibili sono:

Stato del generatore Heartbeat

Valore (Decimale)

BOOT-UP

0

STOPPED

4

OPERATIONAL

5

PRE-OPERATIONAL

127