Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il...

13
Comau Smart NS 12-1.85: una breve introduzione Ivan Lazzero 1 Introduzione Il presente mini-manuale ha lo scopo di introdurre lo studente ad un primo utilizzo del Robot industriale Smart NS 12-1.85 presente presso il Ladispe - sez. Automa- tica del Politecnico di Torino. Il secondo capitolo, dopo una descrizione generale del sistema, contiene una analisi pi` u dettagliata delle parti. Nel terzo capitolo sar`a descritto il linguaggio di programmazione utilizzato dal controllore. Si precisa che in questo contesto, anche se di notevole importanza, le problematiche relative alla sicurezza non verranno trattate. Figura 1: Comau NS 12-1.85 1

Transcript of Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il...

Page 1: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Comau Smart NS 12-1.85: una breve introduzione

Ivan Lazzero

1 Introduzione

Il presente mini-manuale ha lo scopo di introdurre lo studente ad un primo utilizzodel Robot industriale Smart NS 12-1.85 presente presso il Ladispe - sez. Automa-tica del Politecnico di Torino. Il secondo capitolo, dopo una descrizione generaledel sistema, contiene una analisi piu dettagliata delle parti. Nel terzo capitolo saradescritto il linguaggio di programmazione utilizzato dal controllore. Si precisa chein questo contesto, anche se di notevole importanza, le problematiche relative allasicurezza non verranno trattate.

Figura 1: Comau NS 12-1.85

1

Page 2: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

2 Descrizione del sistema

Il robot Smart NS 12, costruito dalla Comau S.p.A., e un robot destinato a scopitipicamente industriali. Il suo utilizzo e specifico per lavorazioni in celle industriali,linee di montaggio, etc. Dalla Comau esso viene fornito pronto all’uso, ovverocompleto del controllore esterno C4G. Tale controllore contiene gli azionamentielettrici, l’hardware e il software necessario alla programmazione e movimentazionedel robot, il Teach Pendant Wifi (d’ora in poi WiTP), ovvero l’interfaccia conl’utente, e ovviamente l’algoritmo di controllo (di posizione) del robot. Il WiTPpermette di impostare le variabili di sistema, di creare, visualizzare e debuggareprogrammi, di visualizzare gli output del robot (misurati da appositi sensori) e ingenerale di effettuare ogni tipo di operazione prevista per il robot. Vi e inoltrela possibilita di collegare il controllore ad un PC, tramite collegamento ethernet.In tal modo il computer acquisisce (quasi) tutte le funzionalita del WiTP, con ilvantaggio di avere una tastiera e uno schermo piu comodi da usare!

2.1 Il robot

Si tratta di un robot antropomorfo a 6 gradi di liberta. I sei giunti, tutti rotoidali,possono essere divisi in due gruppi: i primi tre rappresentano la spalla, i seconditre il polso. Alla flangia, ovvero la parte terminale del braccio, puo essere attaccatoqualunque attrezzo per i vari tipi di lavorazione. In questo caso, a scopo puramentedidattico, e stato attaccato un sistema di riferimento, su cui si ritornera in seguito.Il fissaggio a terra e realizzato mediante una piastra in acciaio fissata munita ditasselli oppure e disponibile un gruppo opzionale composto da una piastra fissataal robot tramite viti e da quattro piastre sottostanti ancorate a terra tramitetasselli che vengono saldati alla piastra stessa. La piastra consente il livellamentodel robot tramite quattro viti. La base del robot e fissa e su essa ruota attornoall’asse verticale (asse 1), la colonna che porta il motoriduttore dell’asse 2. Unbraccio collega l’asse 2 all’avambraccio ed include i motoriduttori degli assi 3-4-5-6;all’estremita dell’avambraccio si trova il polso. Gli assi dei robot sono dotati di finecorsa software (programmabili) e meccanici ammortizzati in fornitura standard.

2.2 Il controllore

Come gia accennato, l’algoritmo di controllo realizza un controllo di posizione.Questo vuol dire che non sara possibile avere un’interazione o contatto del robotcon l’ambiente, ma solo un posizionamento della punta operativa nello spazio libe-ro. Il compito dell’utente sara quindi quello di fornire in qualche modo i punti finaliper ogni movimento. Sul controllore e installato il software, creato appositamen-te dal costruttore, per permettere la creazione dei vari programmi di movimento.

2

Page 3: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Il linguaggio di programmazione, il PDL2, e simile al Pascal, con, ovviamente,opportune modifiche. Nel prossimo capitolo sara descritto tale linguaggio. In ge-nerale e possibile creare, debuggare ed eseguire un programma PDL2 direttamentesul WiTP, anche se tale operazione risulta molto laboriosa, data la limitatezzadella tastiera. Utilizzando invece il collegamento ethernet con un PC, tale lavorosi semplifica molto, avendo l’utente disponibili gli stessi tool presenti sul WiTP. Epossibile inoltre creare un programma direttamente sul PC, con un normale edi-tor di testo, e scaricarlo in seguito sul controllore, sempre tramite collegamentoethernet, per poi compilarlo ed eseguirlo. E possibile anche editare un program-ma e compilarlo direttamente sul PC, utilizzando l’apposito software WinC4G, escaricare solo il file eseguibile. C’e da notare che nella creazione di un program-ma direttamente sul controllore, l’editor fornisce una correzione della sintassi lineaper linea, in modo da avere un programma sintatticamente corretto, ancora primadi compilarlo. Il pannello del controllore presenta gli interruttori indicati in fig.2. In particolare il selettore modale (E) consente di operare in diverse modalita,selezionabili tramite l’apposita chiave, tra cui:

• La posizione PROG e utilizzata per la programmazione del robot, ovvero permovimenti manuali, creazione dei programmi di movimento e debug. Ognimovimento in questa modalita avviene a velocita ridotta.

• La posizione AUTO LOCAL e utilizzata per l’esecuzione in automaticodi programmi funzionanti, con possibilita di debug e piccole modifiche delprogramma.

2.3 WiTP

Tasto COORD seleziona il sistema di riferimento:

JOINT modalita giunti. I tasti risultano associati a ciascuno degli assi delbraccio selezionato; gli assi ausiliari, eventualmente presenti, seguonoquelli del braccio. La pressione di uno dei tasti determina lo spostamen-to del corrispondente asse nella direzione positiva o negativa secondo ledirezioni indicate dalle targhette poste sul braccio.

UFRAME modalita di spostamento lineare secondo la terna di riferimentox, y, z dell’utente (ad esempio la terna che descrive il pezzo in lavora-zione). I primi tre tasti consentono spostamenti di tipo lineare nelladirezione dei tre assi del sistema di riferimento utente (definito dallavariabile $UFRAME); i successivi tre tasti consentono rotazioni dell’at-trezzo intorno agli stessi assi mantenendo invariata la posizione dellapunta operativa (Tool Center Point - TCP).

3

Page 4: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Figura 2: Controllore C4G

BASE modalita di spostamento lineare secondo la terna di riferimento x,y, z del mondo (la terna di riferimento dell’officina). I primi tre tasticonsentono spostamenti di tipo lineare nella direzione dei tre assi delsistema di riferimento mondo; i successivi tre tasti consentono rotazionidell’attrezzo intorno agli stessi assi mantenendo invariata la posizionedel TCP. Si ricordi che la terna mondo non e definita direttamenteda alcuna variabile di sistema; infatti e la base del robot che vienerappresentata rispetto al mondo mediante la variabile $BASE.

TOOL modalita di spostamento lineare secondo la terna di riferimento x, y,z dell’utensile (o terna TCP). I primi tre tasti consentono spostamenti ditipo lineare nella direzione dei tre assi del sistema di riferimento dell’u-

4

Page 5: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Figura 3: Vista anteriore del controllore WiTP

tensile (definito dalla variabile $TOOL); i successivi tre tasti consentonorotazioni dell’attrezzo intorno agli stessi assi mantenendo invariata laposizione del TCP (punto di lavoro dell’utensile).

Tasti +% e -% servono per modificare l’OVERRIDE ovverosia per modularepercentualmente la velocita del braccio. Combinati con il tasto SHIFT, per-mettono di ottenere i seguenti valori: SHIFT -% → 25% SHIFT +% →100%

Tasto START (verde) in stato PROGR consente l’esecuzione del movimento(da ambiente di editing/debug o da comando Execute) per tutto il tempoin cui viene mantenuto premuto. In stato LOCAL avvia i programmi dimovimento che si trovano nello stato READY, cioe in attesa di questo tasto.

Tasto HOLD (giallo) la pressione di questo tasto arresta tutti i programmiHOLDable ed il movimento per tutti i bracci. Alla successiva pressione,lo stato di HOLD viene rimosso.

5

Page 6: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Figura 4: Vista posteriore del controllore WiTP

Tasto di abilitazione Il pulsante di destra ed il pulsante di sinistra funzionanoin modo assolutamente identico. Lo scopo e quello di avere un pulsante diEnabling Device per gli operatori destri ed uno per gli operatori mancini.Ognuno di essi e un dispositivo di sicurezza a tre posizioni che deve esse-re tenuto premuto nella posizione intermedia, per permettere movimenti inautomatico o in manuale, quando il sistema e in stato di Programmazione.Quando questo pulsante e premuto i motori sono attivati automaticamente(DRIVE ON)

Il tipo di funzionamento, per ognuno di essi e il seguente:

1. rilasciato - DRIVE OFF

2. pressione intermedia - DRIVE ON

3. pressione a fondo - DRIVE OFF (antipanico)

La pressione contemporanea di questi due pulsanti e considerata un erroreda parte del sistema, quindi e necessario utilizzarne uno solo per volta.

6

Page 7: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Figura 5: Schema di pressione dei tasti di abilitazione

3 Programma WinC4G

Il programma WinC4G e l’interfaccia stile Windows su PC verso l’Unita di Con-trollo. Il programma fornito di serie con l’Unita di Controllo e la versione base.

Il collegamento tra il PC e il controllore avviene tramite una connessione TCPsu ethernet.

Raggruppa al suo interno una serie di funzionalita quali:

• La visualizzazione dei files presenti sul Robot

• La possibilita di tradurli ed editarli

• La ricerca e la visualizzazione degli errori

• La possibilita di aprire una finestra “Terminale” per inoltrare comandi di-rettamente all’Unita di Controllo

• La trasformazione di programmi gia esistenti in funzione di nuovi punti diriferimento.

7

Page 8: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

4 Il linguaggio PDL2

Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi:

1. Controllare che il selettore sul C4G sia sulla modalita manuale PROG

2. Selezionare la finestra Prog (L3)(tastiera virtuale sulla sinistra dello schermodel WiTP)

3. Selezionare il menu Prog (F1) → Crea

4. Inserire il nome del programma e premere ok

5. Selezionare tramite le frecce il programma creato e premendo il tasto bluENTER portare il manipolatore nella posa di interesse

6. Premere il tasto REC: compare cosı l’istruzione di MOVE TO posxxxx nellafinestra di editor del programma nome programma.cod. I dati della po-sa vengono registrati nel file nome programma.var associato al programmanome programma.cod che state editando.

E’ possibile impostare il tipo di movimento che si vuole registrare effettuandole seguenti operazioni:

(a) premere Selezione (F4)

(b) Selezionare Impostazioni tasto REC

(c) Utilizzare le frecce per scorrere tra e nei menu a tendina che compaiono

(d) Premere OK

7. Continuare fino alla fine del programma.

8. Per salvare premere il tasto Prog → Salva

9. Impostare il selettore del C4G su AUTO LOCAL

10. Premere Drive ON(R5)

11. Selezionare la finestra Prog (L3)

12. Selezionare il programma creato

13. Premere Esecuzione(F2) → Attiva

14. Premere START

8

Page 9: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

ATTENZIONE!!!!!Se il programma funziona, esso puo essere eseguito ad una qualunque velocita.Prima bisogna essere sicuri che funzioni correttamente, per cui si consiglia di ri-durre la velocita di esecuzione a circa il 20% della velocita massima almeno per laprima volta. La regolazione della velocita avviene con i tasti “+% -%” osservandoil valore modificato sulla barra di stato, in alto sullo schermo.

4.1 I sistemi di riferimento

Prima di passare a descrivere la struttura di un programma, occorre soffermarsisui vettori ed i sistemi di riferimento utilizzati dal PDL2. Un vettore nello spaziodei giunti rappresenta ovviamente le posizioni angolari di ciascuno dei 6 giunti. Isistemi di riferimento cartesiani sono invece 3. Il primo, indicato con $BASE e ilsistema di riferimento fisso alla base del robot. Il secondo, indicato con $TOOL,coincide con l’attrezzo alla punta. Poiche l’attrezzo puo cambiare, anche la variabi-le $TOOL puo essere modificata di conseguenza. Il terzo, indicato con $UFRAME,e il sistema di riferimento del piano di lavorazione. Per default coincide con $BA-SE, ma puo essere spostato a piacimento. Il sistema $TOOL e specificato rispettoal sistema di riferimento del braccio 6, ovvero rispetto alla flangia del robot, men-tre il sistema di riferimento $UFRAME e specificato rispetto a $BASE. Comedetto in precedenza, l’attrezzo attualmente montato sulla flangia e un sistema diriferimento ed e quindi “ragionevole” assegnare alla variabile $TOOL proprio talesistema di riferimento. La variabile $TOOL dovra contenere la posizione (x, y, z)dell’origine del sistema di riferimento e la terna di angoli di Eulero (z - y - z) chene definiscono l’orientamento rispetto al sistema di riferimento del braccio 6.

L’immagine 6 e la rappresentazione grafica, presente sul manuale Comau delrobot, dei tre sistemi di riferimento: Il sistema di riferimento indicato col numero5 e il riferimento $BASE; esso e per convenzione centrato all’ancoraggio del pavi-mento e l’asse Z e l’asse di rotazione del primo giunto. Il sistema di riferimento6 e il sistema di riferimento del mondo e coincide per definizione con il sistema$BASE. Il sistema di riferimento 4 e $UFRAME ed e il sistema di riferimento delpiano di lavoro. Il sistema di riferimento 1 e il riferimento alla flangia solidale conl’ultimo braccio del robot e presenta l’asse Z uscente dalla flangia, diretto lungol’ase di rotazione dell’ultimo giunto, secondo quanto previsto dalle convenzioni diDenavit-Hartenberg. Infine il sistema di riferimento 2 e il sistema di riferimentoalla punta operativa e rappresenta quindi $TOOL; l’asse Z per questo sistema diriferimento e diretto lungo la direzione di approccio della punta.

9

Page 10: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

Figura 6: Terne di riferimento

5 Il programma

La struttura generale di un programma PDL2 e la seguente: �PROGRAM prog_name

<dichiarazione variabili >

BEGIN <CYCLE >

<corpo del programma >

END�Listing 1: Struttura di un programma PDL

< dichiarazione variabili > contiene la dichiarazione delle variabili secondo laseguente sintassi: �VAR var_name : <identificatore >�

dove il campo identificatore puo essere uno fra:

• INTEGER: numero intero

• REAL : numero reale

• BOOLEAN : variabile booleana

10

Page 11: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

• POSITION : variabile di posizione cartesiana

• JOINTPOS : variabile di posizione giunto

• ecc...

NOTA: Le variabili POSITION sono variabili di posizione cartesiana espressenel sistema di riferimento $UFRAME. E bene quindi definire tale sistema di riferi-mento quando si intende utilizzare questo tipo di variabili. Se non e definito verrautilizzato quello presente in memoria. Una variabile POSITION contiene quindila posizione cartesiana (x, y, z) e la terna di angoli di Eulero (z - y - z) che nedefiniscono l’orientamento, rispetto al sistema di riferimento $UFRAME.

L’opzione CYCLE di BEGIN, se presente, indica che il programma dovra essereeseguito ciclicamente.

Nel corpo del programma sono presenti, oltre alle varie inizializzazioni e settaggidi variabili, le funzioni per il movimento del robot. La funzione principale per ilmovimento e la MOVE.

5.0.1 La funzione MOVE

Poiche e possibile eseguire solo movimenti di tipo punto-punto, per ogni movimen-to, e quindi per ogni MOVE, occorre specificare sempre il punto di arrivo e il tipodi traiettoria da seguire per raggiungere tale punto.

E inoltre possibile specificare la traiettoria da seguire durante il movimento.In generale la sintassi per il comando MOVE e la seguente: �MOVE <traiettoria > <destinazione > <opzioni >�

Esistono tre tipi di traiettorie:

• JOINT Il movimento dei giunti e coordinato, ovvero tutti i giunti iniziano eterminano il loro movimento contemporaneamente. Questo implica che none controllato il movimento del TOOL ma quello dei giunti. Il TOOL quindiseguira una traiettoria non prevedibile, sebbene ripetibile.

• LINEAR Il movimento e lineare nello spazio cartesiano, sia in posizione chein assetto, ovvero il TOOL eseguira un movimento lungo una linea rettae l’assetto variera linearmente tra inizio e fine. In questo caso i giunti simuoveranno non-linearmente.

• CIRCULAR Il movimento tra inizio e fine e lungo un arco di circonferenza.E necessario quindi specificare un terzo punto, detto punto di VIA, dal qualedovra passare il TOOL. Questo tipo di traiettoria non consente di specificareil punto finale di arrivo in uno dei tanti modi disponibili, ma solo nel seguentemodo:

11

Page 12: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

�MOVE CIRCULAR TO P1 VIA P2�

In ogni tipo di traiettoria, la legge temporale del movimento e sempre di tipo“trapezoidale in velocita”.

Se in una istruzione MOVE la traiettoria e omessa, viene seguita quella didefault (JOINT). Segue ora un elenco di modi per specificare il punto finale di unmovimento. Questi modi si applicano alle traiettorie di tipo JOINT e LINEAR.

• MOVE TO {α1, α2, α3, α4, α5, α6}si muove alla posizione giunti ′α1, α2, α3, α4, α5, α6′ I valori α sono angoli ingradi.

• MOVE TO POS (x, y, z, e1, e2, e3)si muove alla posizione cartesiana x, y , z con assetto e1 , e2 , e3.

• MOVE BY{α1, α2, α3, α4, α5, α6}Si muove nella posizione giunti {α1, α2, α3, α4, α5, α6} relativa a quella cor-rente, ovvero l’ i-esimo giunto incrementa la sua posizione attuale di αgradi.

• MOVE NEAR PO BY distSi muove verso la posizione PO, ma si ferma dist millimetri rispetto l’asse -zdel TOOL dalla posizione PO.

• MOVE AWAY distSi muove via dalla posizione attuale di dist millimetri lungo l’asse -z delTOOL .

• MOVE RELATIVE VEC(x, y, z) IN BASESi muove di un vettore VEC (x, y , z) dalla posizione corrente. Il vettoree espresso nel sistema di riferimento BASE. Al posto di BASE puo esserciTOOL, o UFRAME.

• MOVE ABOUT VEC(x, y, z) BY a IN TOOLLa punta ruota attorno al vettore VEC (x, y , z) di una quantita in gradi. Ilvettore e espresso nel sistema di riferimento TOOL. Al posto di TOOL, puoesserci BASE o UFRAME.

• MOVE FOR dist to POSi muove verso PO ma si ferma dopo aver percorso dist mm lungo la traiet-toria.

12

Page 13: Comau Smart NS 12-1.85: una breve introduzione4 Il linguaggio PDL2 Per creare nuovi programmi con il WiTP e necessario eseguire i seguenti passaggi: 1. Controllare che il selettore

In alternativa alla funzione MOVE vi e la funzione MOVEFLY ... ADVANCE cheha la stessa sintassi della MOVE, ma con l’aggiunta dell’opzione ADVANCE. Que-sta funzione fa sı che il movimento non si fermi al raggiungimento del punto finalema venga raccordato’ al movimento successivo, ottenendo quindi un movimentocontinuo.

5.0.2 Esempio di programma PDL2 �PROGRAM test

--Questa e’ una linea di commento

VAR p0 : POSITION --Variabile di posizione cartesiana

j0 : JOINTPOS --Variabile di posizione giunti

i, j : INTEGER --Variabili intere

BEGIN

--dichiarazione del sistema di riferimento UserFrame

$UFRAME := POS(0, 0, 0, 0, 0, 0, ’ ’)

--dichiarazione del sistema di riferimento TooL

--posizione (0,0,120) in mm e assetto (63.64 ,0 ,0) in gradi

$TOOL := POS(0, 0, 120, 63.64 , 0, 0, ’ ’)

$PROG_ACC_OVR := 80 --Settaggio Accelerazione massima al 80\%

$PROG_DEC_OVR := 70 --Settaggio Decelerazione massima al 70\%

$PROG_SPD_OVR := 100 --Settaggio Velocita ’ massima al 100\%

MOVE TO $CAL_SYS -- move verso la posizione di home

DELAY 1000 -- Attesa 1000 ms

--Assegnazione variabile cartesiana pO Posizione (900 ,0 ,1350) in

mm e assetto del TOOL (-45,90,-90) in gradi

p0 := POS(900, 0, 1350, -45, 90, -90, ’ ’)

FOR i := 1 TO 6 DO -- ciclo for

j0[i] : = 0 -- istruzione del ciclo

ENDFOR -- fine ciclo for

MOVE JOINT TO p0 --Movimento di tipo JOINT verso la posizione p0

p0.Y := 100 --Modifica componente Y della posizione p0

MOVE LINEAR TO p0 -- Movimento di tipo LINEAR verso la nuova P0

j := 4 -- Assegnazione variabile intera j

j0[j] := 30 -- Cambiamento della quarta componente del vettore j0

MOVE BY {, , ,30} -- Movimento di tipo JOINT del solo giunto 4 di

+30 gradi

MOVE TO j0 -- Movimento di tipo JOINT verso la posizione giunti j0

MOVE TO $CAL_SYS -- Ritorno alla posizione di home

END test -- fine del programma�Listing 2: Struttura di un programma PDL

13