In questa “application note” è spiegato come comandare degli azionamenti Danaher collegati con un dispositivo MicroQMove utilizzando il bus di campo CANOpen. In questo modo l'utente potrà capire come orientarsi al momento della costruzione di una rete di comunicazione. Il prodotto MicroQMove preso qui in considerazione è un R502BF.
Il prodotto 502BF è un sistema programmabile costituito da una unità principale di elaborazione (CPU) e da una serie di schede che gestiscono ingressi ed uscite locali connesse internamente tramite un bus dati. Su questo bus interno si individuano un numero (che dipende dal prodotto utilizzato) di alloggiamenti delle schede definiti con il nome “slot” e numerati a partire da 2. Ad esempio il prodotto 502BF consente di installare un massimo di 5 quindi la numerazione degli slot sul bus sarà da 2 a 6.
Quando si crea una rete CANOpen in cui il master è il prodotto in questione, il numero degli slot viene esteso fino a 12 rendendo quindi disponibili ulteriori I/O presenti su dispositivi che implementano i profili di comunicazione DS-401 “Communication profile for generic I/O modules” e DS-402 “Device Profile Drives and Motion Control”. La rete CANOpen supporta solamente una configurazione con dispositivi appartenenti allo stesso profilo, quindi non è possibile far coesistere moduli I/O generici con azionamenti nella stessa rete. Inoltre quando si utilizza una rete configurata per dispositivi di tipo DS-402 (azionamenti), questi devono essere tutti dello stesso costruttore. In questo documento verrà trattato il collegamento e la configurazione di una rete nella quale tutti i dispositivi sono azionamenti Danaher.
Il prodotto è equipaggiato con una porta CANbus che implementa una comunicazione con protocollo CANOpen standard. Questo protocollo è utilizzato per realizzare una comunicazione di processo che possiamo definire semplicisticamente una “espansione del bus interno”. Con questa affermazione si intende che a tutti gli effetti sono utilizzati i dati della comunicazione di processo per presentare al sistema informazioni di I/O provenienti dal bus di campo CANOpen e queste informazioni vengono indirizzate come se appartenessero a degli slot di schede aggiuntive presenti “virtualmente” sulla posizione da 7 a 12. Questa soluzione rende molto semplice ed intuitiva la configurazione della rete CANOpen.
Il CANOpen è un protocollo di comunicazione basato sul sistema bus seriale CAN. Il CANOpen prevede che l'hardware di un apparecchio connesso abbia un ricevitore CAN (CAN-transceiver) ed un controllore CAN come stabilito dalla specifica ISO 11898. Il profilo di comunicazione CANOpen, CiA DS-301, implementa sia comunicazioni cicliche che comunicazioni orientate ad eventi, consentendo così di ridurre il carico del bus mantenendo tempi di reazione bassi. È possibile ottenere elevate prestazioni in termini di quantità di scambio dati anche a velocità relativamente basse, riducendo così i problemi legati alle norme EMC ed i costi di cablaggio. Il mezzo fisico utilizzato dal protocollo CANOpen è una linea bus doppino differenziale con ritorno comune conforme alla ISO 11898. La lunghezza del bus è limitata dalla velocità di comunicazione come segue:
Bitrate | Lunghezza massima del bus |
---|---|
1 Mbps | 25 m |
500 kbps | 100 m |
250 kbps | 250 m |
125 kbps | 1000 m |
Sono riportate di seguito le operazioni necessarie alla realizzazione e configurazione di una rete:
;------------------------------ ; Internal device declaration ;------------------------------ INTDEVICE FieldB1 CANOPEN 0004 500 0
Nell'esempio di cui sopra è stato dichiarato un device con tempo di campionamento 4ms e rate di comunicazione 500kbps
;---------------------- ; Qmove Bus declaration ;---------------------- BUS 1 502BF 99 2 . . 3 . . 4 . . 5 . . 6 . . 7 C402A .
Nell'esempio abbiamo scelto la velocità di 500 kbps. Esiste anche un'altra modalità di impostazione del rate da utilizzare quando si pensa possa essere necessario modificare la velocità anche senza un intervento nell'applicativo Qcl. In questo caso si imposta zero nel campo speed durante la dichiarazione del device e si sceglie quindi la velocità attraverso i dip-switch:
Dip 5 | Dip 7 | Bitrate |
---|---|---|
off | off | 125 kbps |
off | on | 250 kbps |
on | off | 500 kbps |
on | on | 1 Mbps |
* utilizzare il software fornito dal costruttore dell'azionamento per l'impostazione dei parametri. Aprire la finestra di regolazione base cliccando sull'apposito bottone:
Per poter essere gestito correttamente dal prodotto QEM, l'azionamento Danaher deve essere opportunamente configurato. Di seguito vengono riportate le operazioni necessarie a questo scopo, ci si riferisce all'utilizzo del software di configurazione che è fornito con l'azionamento:
Dopo aver impostato i parametri sull'azionamento possiamo eseguire la taratura dell'asse, che è consigliabile eseguire in due fasi :
Per tarare il loop di velocità è necessario: impostare sulla videata OPMODE 0 = Velocità Digitale. Aprire la videata VELOCITA e impostare le rampe di accelerazione e decelerazione ad un valore di circa 100ms (a seconda del carico collegato al motore). Far eseguire dei movimenti al motore usando dalla videata OSCILLOSCOPIO le funzioni Velocità F6 o F8 cliccando sul pulsante Avvio nel riquadro Servizio.
A questo punto cliccare sul pulsante Avvio Oscilloscopio che mostrerà il posizionamento del motore. Agire sui parametri della videata VELOCITA:
Aumentare il guadagno Kp fino a quando il motore comincia a vibrare, quindi ridurlo ad un valore in cui è stabile (un valore troppo basso equivale ad una risposta lenta del motore, mentre un valore troppo alto rende il motore troppo brusco ed oscillante). Il parametro Tn, in millisecondi, rappresenta il tempo di azione integrale del guadagno proporzionale di velocità: questo valore cresce con l'aumentare della taglia del motore e con l'aumentare dell'inerzia del carico. Valori troppo bassi di Tn con grosse inerzie comportano movimenti bruschi del motore e forti overshoot, mentre valori troppo alti comportano una risposta lenta del motore. Se modificando Kp e Tn non si ottiene una buona taratura si può usare il parametro PID-T2: un filtro passa basso sul guadagno proporzionale di velocità: un valore troppo basso o troppo alto rende la risposta dell'asse rispettivamente troppo rapida o troppo lenta.
Al termine della taratura dell'anello di velocità si passa alla taratura dell'anello di posizione, impostando i parametri Rampa di Accelerazione e Decelerazione a 1ms e OPMode al valore 5)Posiz. Movim.Est. per lavorare in modalità CanOpen con il 502BF.
Aprire in Qview l'applicativo DEMO_CANOPEN_DRIVE. Questo applicativo controlla un drive con indirizzo nr.1 con rate 500 kbps. Scaricare l'applicativo e dare RUN alla CPU.
Impostando la variabile gbtest = 3, l'azionamento inizia a fare una serie di movimenti tra due quote. Per modificare i tempi di accelerazione fare riferimento al device an01 (EANPOS) mentre per le quote di posizionamento fare riferimento al codice nella unità MOVEMENT.
Nota:
Se la direzione di movimento non è corretta agire sul comando ASCII DIR dell'azionamento. Non agire sul comando CNTREV del device che deve rimanere nello stato di default (st_cntrev = 0).
Aprire la videata Posizione e andare a modificare i parametri dell'anello di posizione Kv (guadagno proporzionale di posizione) e Ff (fattore di Feed Forward) in modo da verificare il comportamento dell'asse.
Il fattore di Feed Forward determina la percentuale con cui il fattore di velocità viene considerato nel calcolo della retroazione di posizione.
Anche in questo caso è possibile verificare i valori di errore con lo strumento Oscilloscopio.
Queste indicazioni per la taratura devono essere intese solo come traccia. Fare riferimento alla documentazione ufficiale dell'azionamento per indicazioni più precise.
Questo applicativo di esempio implementa tutto il codice necessario per la gestione di un drive comandato via CANOpen. Può essere utilizzato come codice di esempio o come punto di partenza per sviluppare la propria applicazione.
L'applicativo è composto da due unità: CANOPEN e MOVEMENT.
MOVEMENT è una semplice unità che implementa una sequenza di movimenti. La variabile gbtest a seconda del valore può implementare le seguenti sequenze:
0 = nessuna operazione
1 = movimento continuo tra due quote (0 e 50000). Verso quota zero movimento normale, verso quota 50000 movimento in limitazione di coppia e con errore inseguimento disabilitato
2 = avvio procedura di homing
3 = movimento continuo tra due quote (0 e 10000)
CANOPEN è destinato alla gestione della rete CANOpen. È l'unica unità che fa uso del device; essa esegue le seguenti macro operazioni:
La parte gestione operazioni continue è implementata nella procedura Qcl chiamata DR_GET_VALUES, è utilizzata per leggere alcuni valori dal drive attraverso degli SDO. Questi valori vengono messi su delle variabili e resi disponibili per le altre unità. Sono sempre operazioni di lettura. Più variabili vengono lette e più bassa sarà la frequenza di aggiornamento del dato.
La parte gestione operazioni a richiesta è implementata nella procedura QCL DR_REQUEST, è utilizzata per tutte quelle operazioni che devono essere eseguite ad evento (per esempio una scrittura di un parametro). L'evento deve essere scatenato in un'altra unità.
Per scatenare l'evento bisogna impostare un valore nella variabile gbDrRequest, per attendere la conclusione dell'operazione bisogna attendere che lo stesso valore venga impostato nella variabile gbDrAnswer. Ogni operazione può avere una o più variabili di scambio valore. Vediamo una tabella riassuntiva delle operazioni ora implementate.
Operazione | Variabili Qcl | Descrizioni |
---|---|---|
imposta l'azionamento in trajectory mode | nessuna | questa richiesta imposta l'azionamento in trajectory mode. Da questo momento in poi la posizione è controllata dallo strumento 502BF. |
avvia procedura di homing | variabili di impostazione: gbHomType, gbHomDir, glHomVel, glHomAcc, glHomDec, glHomOff variabili di stato: gfHomActive, gfHomOk, gfHomError | questa richiesta avvia una procedura di homing. Prima di avviare questa richiesta impostare le variabili corrispondenti. Durante la procedura la variabile di stato gfHomActive viene posta a 1. Al termine della procedura se gfHomOk viene posta a 1 la procedura si è conclusa correttamente, se invece gfHomError viene posta ad 1 allora la procedura si è conclusa in modo errato. La procedura utilizza l'homing del drive implementato dal parametro ASCII NREF. Fare riferimento alla descrizione di questo comando. |
imposta limite di corrente motore | glCurrLim | questa procedura imposta il limite massimo di corrente nel motore al valore contenuto nella variabile glCurrLim |
imposta limite di errore inseguimento | glMaxFErr | questa procedura imposta il limite massimo di errore inseguimento con il valore contenuto nella variabile glMaxFErr |
L'azionamento viene comandato mediante l'invio via CANOpen delle informazioni di posizione. Questo significa che all'azionamento è delegato il compito di realizzare la regolazione di corrente, velocità e posizione.
Le informazioni che transitano via CANOpen sono sempre in forma relativa e non assoluta. Questo significa che l'azionamento muove il motore senza conoscere la posizione assoluta e quindi senza avere dei limiti software (che sono invece implementati nel device del prodotto 502BF).
La posizione reale del motore viene letta via CANOpen e resa disponibile nei parametri encoder e posit del device stesso. La risoluzione di questa informazione dipende dal trasduttore utilizzato nell'azionamento. Se si utilizza un resolver con il parametro PRBASE al valore 16, ad ogni giro del motore verrà contato un valore pari a 65536. In pratica però per default esiste un fattore di divisione pari a 4 tra l'informazione fornita dal drive e quella letta dal 502BF. Questo fattore è programmabile attraverso un comando QDO del device CANOPEN. Il fattore di divisione è stato inserito per evitare effetti di overflow durante la lettura. È infatti necessario (come per tutti gli altri device interni) che ad ogni tempo di campionamento del device la posizione non sia modificata per un valore maggiore di 2^15 (32768) bit encoder.
E' importante per il corretto funzionamento che il tempo di campionamento del device CANOPEN coincida con tempo di campionamento di tutti i device che utilizzano questo bus di campo. A causa di restrizioni nell'azionamento Danaher il tempo di campionamento deve essere pari ad uno dei seguenti valori: 2,3,4,5,8,10,20 msec.
Gli errori di comunicazione possono essere monitorati con i parametri errflags, maxrxerr, maxtxerr, busload e maxtraffic del device CANOPEN.
I parametri busload e maxtraffic devono essere utilizzati per verificare l'effettivo utilizzo del bus. Il valore non deve mai superare 80.0%. Questo dato determina anche il numero di azionamenti che è possibile utilizzare. L'utilizzo del bus dipende dai seguenti fattori:
Fattore | Descrizione |
---|---|
Tempo di campionamento device | ad ogni tempo di campionamento vengono inviate le informazioni di movimento e viene letta la posizione effettiva del motore |
velocità CAN bus | la velocità definisce la durata del messaggio in modo inversamente proporzionale |
numero azionamenti | più azionamenti vi sono e più messaggi devono essere inviati nel tempo di campionamento |
utilizzo di SDO | l'utilizzo di SDO prevede l'invio di messaggi ulteriori fino ad un massimo di un messaggio per ogni tempo di campionamento |
errori di comunicazione | gli errori di comunicazione alterano il contenuto di un messaggio che verrà immediatamente ritrasmesso aumentando il traffico |