appnote:an002

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:

  • collegare gli azionamenti allo strumento QEM. Per i particolari inerenti la scelta del cavo di collegamento, lo struttura della rete etc. fare riferimento alle specifiche reperibili dal sito Can-Cia
  • progettare la topologia della rete
  • inserire le resistenze di terminazione sul primo e sull'ultimo nodo della rete. Per far ciò sul connettore dell'azionamento Danaher collegare una resistenza da 120 Ohm tra i pin 9 e 6, mentre per quanto riguarda lo strumento QEM, la resistenza è già prevista internamente ed è sufficiente quindi attivarla (consultare i manuali di installazione del prodotto QEM per le operazioni necessarie)
  • con l'ambiente di sviluppo Qview-5 creare un nuovo progetto con la definizione di un device di tipo CANOPEN che assolve a tutte le operazioni di configurazione, diagnostica e gestione 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

  • inserire nell'unità di configurazione, nella sezione di dichiarazione del BUS, una scheda di tipo C402A su uno degli slot disponibili per la rete CANOpen. L'esempio seguente riporta la configurazione per un prodotto 502BF collegato con un azionamento:
;----------------------
; Qmove Bus declaration
;----------------------
BUS
1 502BF 99
2 . .
3 . .
4 . .
5 . .
6 . .
7 C402A .
  • aggiungere una unità Qcl senza alcun codice aggiuntivo
  • impostare il rate di comunicazione. Per impostare il rate nel prodotto 502BF è necessario definire il valore in kbps nella definizione del device CANOPEN. I valori ammessi sono 1000, 500, 250 e 125.

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:

  • impostare il campo “indirizzo” al valore 1 ed il campo baudrate bus CAN al valore 500 kBaud:

  • dall'ambiente QView compilare ed eseguire il download dell'applicativo precedentemente creato. Verificare, aprendo la finestra di monitor CPU, che non sia presente un Bus Error o un Watchdog Error. Infine, aprendo la finestra monitor bus, verificare che il driver sia riconosciuto. La finestra BUS information dovrà apparire come segue:

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:

  • ripristinare i valori di default dell'azionamento in modo da iniziare la parametrizzazione da una situazione conosciuta e ripetibile. Per far ciò premere il pulsante indicato in figura:

  • impostare i dati relativi al motore. Premere il pulsante Motore:

  • impostare manualmente i parametri oppure caricare il valori mediante un file esterno fornito dal costruttore:

  • premere il pulsante velocità e settare le rampe di accelerazione e decelerazione a 1 ms:

  • nella videata principale AMPLIFICATORE settare OPMODE = 5) Posiz. Movim. Est:

  • aprire la videata TERMINALE premendo l'apposito pulsante:

  • inserire i seguenti comandi:

  1. AENA 0: definisce lo stato dell'abilitazione software all'accensione dell'azionamento, impostandolo a 0 l'abilitazione verrà fornita dal 502BF e non automaticamente
  2. PTBASE 16: definisce l'intervallo tra due messaggi di SYNC per l'attuazione del set-point di posizione e l'invio della posizione degli assi e si calcola con la formula: PTBASE = 4*(tcamp device CANOPEN)
  3. FPGA 3: abilita la gestione della sincronizzazione di più azionamenti via CANOpen
  4. SYNCSRC 3: abilita la sincronizzazione di più azionamenti via CANOpen
  5. BOOT 1: abilita il modo di Boot veloce all'accensione. L'azionamento impiegherà circa 2 secondi per essere pronto invece che 15 secondi
  6. PRBASE 16: imposta la risoluzione di posizione interna a 2^16 per essere compatibile con il prodotto 502BF
  7. PGEARI 65536: numeratore di risoluzione di posizione
  8. PGEARO 65536: denominatore di risoluzione di posizione
  • Salvare le impostazioni sull'azionamento:

Dopo aver impostato i parametri sull'azionamento possiamo eseguire la taratura dell'asse, che è consigliabile eseguire in due fasi :

  • taratura del loop di velocità (con l' azionamento non comunicante in CANOpen al 502BF)
  • taratura del loop di posizione eseguendo movimenti con il 502BF

Taratura del loop di velocità

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:

  • Kp: guadagno proporzionale di velocità
  • Tn: tempo di integrazione guadagno proporzionale di velocità

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.

Taratura del loop di posizione

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.

OperazioneVariabili QclDescrizioni
imposta l'azionamento in trajectory modenessunaquesta richiesta imposta l'azionamento in trajectory mode.
Da questo momento in poi la posizione è controllata dallo strumento 502BF.
avvia procedura di homingvariabili 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 motoreglCurrLimquesta procedura imposta il limite massimo di corrente nel motore al valore contenuto nella variabile glCurrLim
imposta limite di errore inseguimentoglMaxFErrquesta 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:

FattoreDescrizione
Tempo di campionamento devicead ogni tempo di campionamento vengono inviate le informazioni di movimento e viene letta la posizione effettiva del motore
velocità CAN busla velocità definisce la durata del messaggio in modo inversamente proporzionale
numero azionamentipiù azionamenti vi sono e più messaggi devono essere inviati nel tempo di campionamento
utilizzo di SDOl'utilizzo di SDO prevede l'invio di messaggi ulteriori fino ad un massimo di un messaggio per ogni tempo di campionamento
errori di comunicazionegli errori di comunicazione alterano il contenuto di un messaggio che verrà immediatamente ritrasmesso aumentando il traffico
  • Ultima modifica: 2019/08/29 17:00