Introduzione
Permette di pilotare una linea di dispositivi mediante il protocollo EtherCAT CoE (CANOpen over EtherCAT).
I canali Ethernet di cui sono dotati i controlli Robox possono gestire come master una linea EtherCAT con protocollo CoE (CANopen over Ethernet) e SoE (Servodrive over ethernet) nella modalità Sync mode o Distribuited Clock.
Possono essere gestiti fino a 1024 terminali.
Segnalibri
Argomenti correlati
Configurazione
Per poter comunicare via EtherCAT il controllo Robox ha bisogno di due file, configurabili da progetto RDE, che devono essere presenti nella compact flash (o SD) e che contengono tutte le specifiche riguardanti la linea:
•Il file ECATn.CFGX: In questo file è contenuta la configurazione di un canale della rete EtherCAT. "n" rappresenta il numero del canale, quindi ECAT1.CFGX contiene la configurazione del primo canale ethernet. Si tratta di un file XML che viene assunto da RTE solo all'accensione del controllo e che viene utilizzato sia per parametrizzare la rete sia per conoscere i pacchetti dati scambiati con ciascun dispositivo presente
•Il file FB.CFG: Questo file contiene l'associazione tra i dati scambiati nella rete EtherCAT, descritti nel file ETHn.CFGX, e le variabili Robox. Si tratta di un file Ascii che viene assunto da RTE solo all'accensione del controllo. Questo file viene generato da RDE sulla base delle variabili globali definite, dei dispositivi remoti e degli assi configurati
NOTA: Da RTE 34.28.2 è stato aggiunto anche il file opzionale ausiliario FB2.CFG.
La generazione di tali file viene gestita da progetto RDE:
Aprire Progetto RTE -> Proprietà -> Configurazione -> Fieldbus, assicurarsi che sia abilitata la generazione del file fb.cfg (sotto Generali) e della configurazione EtherCAT (sotto EtherCAT).
Rete EtherCat (File ECATn.CFGX)
Dal workspace premere File -> Nuovo File... (o dare comando rapido Ctrl+N), inserire il nome e dare come estensione .fbc (Fieldbus Configuration Files). Crearlo quindi sotto la cartella di progetto.
Una volta creato il file, si aprirà automaticamente la finestra dell'apposito configuratore RFBCED (Robox fieldbus configurator Editor), dalla quale è possibile aggiungere i dispositivi connessi alla linea EtherCAT
NOTA: La configurazione del controllo come nodo slave EtherCAT è disponibile da RTE 34.30.0 solo per controllo RP-2 AS1018.012.
NOTA: Da RTE 34.5.1 è possibile configurare tutti i dispositivi e poi segnalare quelli non connessi tramite la keyword ECAT_SLAVE_OFF.
Dopo aver inserito tutti i dispositivi, salvare e poi chiudere la finestra.
Aprire il progetto RTE -> Configurazione -> premere due volte su "EtherCAT" -> spuntare "Abilitare configurazione delle reti EtherCAT" -> premere due volte su ecat1 -> selezionare il file .fbc appena creato sotto "File di configurazione".
NOTA: Con RDE < 3.50 bisogna linkare il file di output CFGX ottenuto dal configuratore esterno.
Una volta dato conferma, da configuratore di progetto premere il tasto destro del mouse e selezionare Genera -> Solo configurazione EtherCAT (oppure genera tutto). A questo punto, il file ECATn.CFGX è stato creato sotto la cartella di progetto e al prossimo Make o Rebuild verrà caricato nella cartella corrispondente all'alias ECAT_DIR.
Dati scambiati in EtherCat (File FB.CFG)
Come già accennato, il contenuto di questo file dipende dall'utilizzo di variabili globali, dai dispositivi remoti connessi via EtherCAT e dagli assi, anch'essi connessi via EtherCAT, presenti nel progetto.
Il file FB.CFG deve trovarsi nell'alias di cartella FB_DIR.
FB2.CFG
Da RTE 34.28.2 è stato aggiunto il file opzionale FB2.CFG ausiliario a FB.CFG. Questo file non è legato a ECAT2.CFGX e può contenere qualsiasi mappatura (come FB.CFG).
FB2.CFG è caricato solo se è presente anche il file FB.CFG (può essere anche un file vuoto) e quest'ultimo non ha un errore al suo interno.
Il file FB2.CFG deve trovarsi nell'alias di cartella FB_DIR.
Gestione dispositivi remoti
Da progetto RTE -> Configurazione premere il tasto destro del mouse e selezionare Nuovo -> Dispositivo Remoto. Selezionare quindi il tipo di dispositivo remoto da utilizzare.
Per legare il dispositivo remoto alla linea EtherCAT, selezionare il relativo Link sotto Collegamento a Risorse.
Impostare quindi tutti gli altri parametri relativi al dispositivo remoto.
Gestione assi
Da progetto RTE -> Configurazione premere il tasto destro del mouse e selezionare Nuovo -> Asse.
Per legare l'asse alla linea EtherCAT, selezionare Bus di campo -> Dispositivo -> spuntare "Associa l'asse a un dispositivo remoto" -> selezionare il Robox ID -> linkare il dispositivo relativo all'asse, la status word e la control word. Sotto Bus di campo -> Collegamenti linkare le ulteriori informazioni contenute nei PDO alle variabili di asse.
Impostare quindi tutti gli altri parametri relativi all'asse (generale, trasduttore, attuatore...).
ATTENZIONE: Fino a RTE 3.52 non era presente la finestra "Bus di campo", e tutte le informazioni presenti in essa venivano invece inserite creando un dispositivo remoto (Drive CAN402), il quale veniva quindi associato all'asse. Questo metodo può essere tuttora utilizzato.
Variabili globali
Da progetto RTE -> Configurazione, selezionare "Variabili globali" per associare le variabili contenute nei PDO alle variabili del controllo assi (variabili globali).
Una volta configurate la variabili globali, gli assi e i dispositivi remoti, generare la configurazione da progetto RTE in modo da aggiornare il file FB.CFG per poi caricarlo in flash attraverso un'operazione di make o rebuild.
NOTA: Da RTE 34.27.5 il numero di variabili definibili connesse ad ethercat è aumentato da 3000 a 6000 solo per cpu arm-a9.
Variabili di stato
Per ogni rete EtherCAT creata sono disponibili le seguenti variabili di stato:
•DevState: maschera a bit che descrive lo stato del dispositivo
•0x0001 = Link error alla porta primaria
•0x0002 = I/O bloccati a seguito di un link error (richiesto un reset degli I/O)
•0x0004 = Link error alla porta ridondante (redundancy mode)
•0x0008 = Frame mancante (redundancy mode)
•0x0010 = Out of send resources (I/O reset required)
•0x0020 = Watchdog triggered
•0x0040 = Ethernet driver (miniport) non trovato
•0x0080 = I/O reset active
•0x0100 = Almeno un dispositivo nello stato INIT
•0x0200 = Almeno un dispositivo nello stato PRE-OP
•0x0400 = Almeno un dispositivo nello stato SAFE-OP
•0x0800 = Almeno un dispositivo indica uno stato di errore
•0x1000 = Distributed Clock non in sync
•Frm0WcState
•0x0001 = working counter sbagliato di 1
•0x0002 = working counter sbagliato di 2
•0x0004 = working counter sbagliato di 3
•...
•0x4000 = working counter sbagliato di 15
•0x8000 = frame completamente mancante
•SlaveCount: numero effettivo di slave EtherCAT rilevati sulla rete
Per poterle mappare in una risorsa Robox seguire questa procedure: da progetto RTE -> Variabili globali -> Inserimento nuova variabile (Ins) (figura 1) -> inserire almeno il campo "Tipologia" -> cliccare sulla lente di ingrandimento sulla riga del campo "Sorgente" -> ETHn ->Status (figura 2)
Figura 1:
Figura 2:
Funzioni/istruzioni
co_statusword() |
Funzione che rende il contenuto della statusword della ws indicata |
co_controlword_state() |
Funzione che scrive i bit della control_word (oggetto 6040H) |
co_controlword_om() |
Funzione per imporre lo stato agli azionamenti (Operation mode specific, halt , manufacturer specific) |
co_rerr() |
Funzione per leggere l'ultimo emergency message generato dalla ws indicata |
co_par_download() |
Istruzione per caricare su un dispositivo connesso via can i parametri contenuti in un file presente nella flash del controllo Robox |
co_par_upload() |
Istruzione per aggiornare nella flash del controllo Robox un file parametri leggendo i valori dal dispositivo connesso via can |
co_rnmt() |
Funzione che rende lo stato NMT della ws indicata |
co_wnmt() |
Funzione che impone lo stato NMT alla ws indicata |
co_robj() |
Funzione per leggere oggetti da fieldbus |
co_wobj() |
Funzione per scrivere oggetti da fieldbus |
coe_robj() |
Funzione per leggere oggetti da fieldbus |
coe_woj() |
Funzione per scrivere oggetti da fieldbus |
co_send_sdo() |
Scrittura SDO |
co_asw_sdo() |
Lettura SDO |
ecat_dev_on_off() |
Abilita/disabilita un dispositivo su linea EtherCAT |
ecat_get_state() |
Legge lo stato della linea EtherCAT |
ecat_probe() |
Legge le informazioni di un dispositivo su linea EtherCAT |
ecat_set_state() |
Impone lo stato della linea EtherCAT |
Keyword
Stato della status word (oggetto 6041H) |
|
Stato della control word (oggetto 6040H) |
|
Visualizza informazioni circa il trasduttore |
|
Permette di specificare come estrapolare il numero di sub-device dal messaggio di emergency |
|
Numero dei riferimenti definiti |
|
Numero dei trasduttori definiti |
|
Maschera reti EtherCAT con meno nodi del desiderato |
|
Stato operativo dei nodi |
|
Numero di nodi realmente presenti |
|
Numero di nodi configurati |
|
Numero di nodi di cui si prevede la disconnessione |
|
Numero di nodi che devono essere presenti |
|
Stato operativo del master |
|
Numero di frame sincroni persi |
|
Maschera reti EtherCAT per forzare la lettura dello stato |
|
Maschera diagnostica allarmi fieldbus |
|
Maschera dei canali fieldbus master configurati |
|
Maschera degli assi che hanno il riferimento definito di tipo fieldbus |
|
Parametro per configurare il numero massimo di frame EtherCAT che possono essere persi consecutivamente prima che il sistema generi un allarme 8x ECAT xx No Communic. |
|
Parametro per sapere il numero di frame EtherCAT consecutivi che al momento risultano persi |
|
SYS_CFG_2.21 |
Imposta a tutti gli slave EtherCAT la modalità SAFE-OP quando la modalità operativa è cambiata in loading |
Per altre keyword EtherCAT Slave vedi Configurazione EtherCAT Slave.
Comandi SHELL
Visualizza delle informazioni dei messaggi di emergency |
|
Visualizza i messaggi di emergency della stazione specificata |
|
Visualizza lo stato NMT della stazione specificata |
|
Visualizza il valore dell'oggetto specificato |
|
Visualizza lo stato della macchina CAN402 della stazione specificata |
|
Visualizza lo stato NMT della stazione specificata |
|
Scrittura dell'oggetto specificato |
|
Visualizza la diagnostica della stazione specificata |
Comandi dispositivo
Permette di inviare messaggi SDO (service data object) verso le workstation presenti sulla rete |
|
Permette di leggere oggetti su fieldbus COE |
|
Permette di scrivere oggetti su fieldbus COE |
|
Serve per abilitare/disabilitare timeout smodato su attesa risposta su gestione oggetti Coe via mailbox (es. risposta drive su cambio oggetto per selezione tipo di trasduttore) |
|
Visualizza l'attuale error message presente sulla workstation specificata |
|
Visualizza lo stato NMT corrente della workstation specificata |
|
Visualizza codice di stato della workstation specificata |
|
Disabilita emissione messaggi di Emergency |
|
Comando per imporre il comando NMT alla stazione specificata |
|
Effettua la lettura dei registri interni di un dispositivo ethercat usando indirizzo incrementale |
|
Effettua la scrittura dei registri interni di un dispositivo ethercat usando indirizzo incrementale |
|
Effettua la lettura dei registri interni di un dispositivo ethercat usando indirizzo assoluto |
|
Effettua la scrittura dei registri interni di un dispositivo ethercat usando indirizzo assoluto |
|
Visualizza lo stato NMT della linea EtherCAT |
|
Effettua il rilevamento dei dispositivi su una linea ethercat |
|
Imposta lo stato NMT della linea EtherCAT |
|
Imposta il numero di nodi che possono essere scollegati da una linea EtherCAT senza generare allarmi |
|
Imposta un tempo di filtro per gli allarmi dopo il comando ECAT_SLAVE_DISCON=0 |
|
Imposta presenza/assenza dei nodi nella linea EtherCAT |
|
Abilita/disabilita i nodi presenti sulla linea EtherCAT |
|
Imposta lo stato di un nodo nella linea EtherCAT |
|
Visualizza il valore della variabile FIELDBUS specificata |
|
Visualizza il tipo di trasduttore configurato per gli assi |
|
Visualizza il tipo di riferimento di posizione configurato per gli assi |
|
Visualizza il tipo di riferimento di velocità configurato per gli assi |
|
Visualizza il tipo di riferimento di coppia configurato per gli assi |