Uploaded by Marco Malagutti

PB-IRC5 Slides clienti

advertisement
Training Center ABB Robotica
Materiale formativo: PB-IRC5 – Programmazione Base
Obiettivi del corso
•
Requisiti di sicurezza per la programmazione e le funzionalità di base
•
Introduzione al sistema Robot-Controllore
•
Conoscenza delle principali funzioni Robotware
•
Configurazione delle impostazioni di sistema
•
Definizione ed uso ToolData (TCP)
•
Definizione ed uso WobjData (sistemi di coordinate)
•
Aggiornamento Counter
•
Basi per la programmazione del robot (linguaggio RAPID)
•
Programmazione strutturata
March 27, 2019
Slide 2
Informativa
Le informazioni contenute nel presente manuale sono soggette a modifiche senza preavviso e non devono essere
considerate vincolanti per ABB. ABB non si assume alcuna responsabilità per eventuali errori nel presente manuale.
Salvo quanto espressamente indicato nel presente manuale, ABB non concede alcuna altra garanzia in relazione al
Prodotto in merito a eventuali perdite, danni a persone o beni, idoneità per uno scopo specifico o altro.
In nessun caso ABB potrà essere ritenuta responsabile per eventuali danni accidentali o consequenziali dovuti
all'utilizzo del presente manuale e dei prodotti in esso descritti.
Né questo manuale, né alcuna sua parte possono essere riprodotti o ricopiati senza il consenso scritto da parte di
ABB.
©Copyright 2019 ABB All rights reserved - Tutti i diritti riservati.
Titolare esclusiva del diritto d’autore sui materiali del corso (di seguito anche definiti “l’Opera”) è ABB Spa con sede
legale in Milano, via Vittor Pisani, 16, la quale è l’unica titolare dei diritti esclusivi di riproduzione con qualsiasi mezzo,
come la copiatura a mezzo stampa, la fotografia, o con qualsiasi altro procedimento attuale o futuro adatto alla
riproduzione dei segni, di trascrizione, di esecuzione, rappresentazione e recita in pubblico, di diffusione con
qualsiasi mezzo di diffusione a distanza, quali la radio, la telefonia, la televisione o altri ritrovati anche futuri, di
messa in commercio o ritiro dal commercio stesso, di traduzione , elaborazione dell’Opera, modifica della stessa con
facoltà di riduzione, adattamento e trascrizione, di esercizio delle più ampie facoltà rispetto alle traduzioni
elaborazioni e modifiche di cui sopra, di utilizzazione economica dell’Opera in ogni forma e modo (inclusa la
destinazione a scopi di pubblicità commerciale) in tutti i Paesi del mondo, in virtù delle leggi interne, delle
convenzioni e dei trattati internazionali in materia di diritto d’autore. I diritti di utilizzazione di cui sopra riguardano
l’Opera nella sua integrità come pure parti dell’Opera.
March 27, 2019
Slide 3
—
Sicurezza
Linee guida
Sicurezza durante il corso
Prestare la massima attenzione quando si movimentano i Robot
Prestare attenzione alle dita quando si utilizza la pinza del Robot
Tenersi ad una distanza adeguata quando il Robot è in movimento
Testare i programmi step-to-step prima di eseguirli in ciclo continuo
Prestare la massima attenzione quando si rilasciano i freni
Organizzare l’ambiente di lavoro in modo adeguato per evitare inciampi
Indossare il gilet di sicurezza al di fuori dell’aula training
Seguire le istruzioni del personale ABB all’interno dello stabilimento
March 27, 2019
Slide 5
Sicurezza durante il corso
March 27, 2019
Slide 6
Sicurezza durante il corso
Le zone di sicurezza
sono marcate in
verde
Per la vostra
incolumità non
oltrepassare la linea
gialla
March 27, 2019
Slide 7
Sicurezza durante il corso
March 27, 2019
Slide 8
Sicurezza durante il corso
March 27, 2019
Slide 9
—
Descrizione del Sistema Robotico
Robot, controllore, Flexpendant
Sistema Robotico
Unità meccanica
March 27, 2019
Slide 11
Controllore IRC5
FlexPendant ABB
Robot: assi e movimenti – 6 assi
Asse 4
Asse 6
Asse 3
Asse 2
Asse 1
March 27, 2019
Slide 12
Asse 5
Robot: assi e movimenti – 4 assi
Asse 3
Asse 6
Asse 2
Asse 1
March 27, 2019
Slide 13
Robot: assi e movimenti – Flexpicker
Asse 3
Asse 2
Asse 1
Asse 4
March 27, 2019
Slide 14
Robot: assi e movimenti – YuMi
2
1
7
4
3
5
March 27, 2019
Slide 15
6
Controllore IRC5: Tipologie & Hardware Upgrade
Single Controller
con UPS upgrade
•
•
UPS utilizzato per problemi
legati all’alimentazione
Fornisce tensione «purificata»
da linee disturbate
March 27, 2019
Slide 16
Compact Controller
•
•
•
Dual Controller
Poco spazio richiesto
Alimentato da rete
domestica
Adatto per robot di
piccola taglia
©Copyright 2019 ABB All rights reserved - Tutti i diritti riservati.
Le specifiche ed i contenuti sono soggetti a modifiche senza preavviso.
•
Può comandare più
unità allo stesso
tempo (Multimove)
Controller: elementi e varianti
A – Interruttore generale
B – Fungo emergenza
C – Pulsante «Motor On»
D – Selettore a chiave (auto, man, man 100% [opz.])
E – Led status emergenze (opz.)
F – Presa USB
G – Presa LAN Service
H – Connettore FlexPendant
I – Pulsante HotPlug (opz.)
J – Conta ore (opz.)
K – Presa 220V
A
B
C
D
E
F
H
J
K
March 27, 2019
Slide 17
G
I
FlexPendant: Caratteristiche & Hardware upgrade
Standard
•
Schermo tattile
resistente all’acqua,
all’olio e a spruzzi
accidentali di saldature
•
•
•
March 27, 2019
Slide 18
Hardware upgrade:
Avvolgicavo
Hardware upgrade:
Bumper Protettivo
Rapida installazione
Resistente a lubrificanti,
liquidi refrigeranti e di
taglio
Protezione assorbi urto
•
•
•
•
Sicurezza sul luogo di lavoro
Minor spreco di tempo nel
riavvolgere il cavo
Minor esposizione ai rischi
Configurabile per ambienti
ad alte temperature
©Copyright 2019 ABB All rights reserved - Tutti i diritti riservati.
Le specifiche ed i contenuti sono soggetti a modifiche senza preavviso.
FlexPendant
A – Connettore
B – Touch Screen
C – Pulsante di emergenza
D – Pulsante Dead Man Handle
(Uomo morto)
E – Joystick
F – Pennino per il Touch Screen
G – Porta USB
C
F
A
B
E
F
D
G
March 27, 2019
Slide 19
FlexPendant
A – Nr. 4 tasti programmabili
B – Selezione unità meccanica (Assi esterni/Robot)
C – Tipo movimento (Orientativo/Lineare)
D – Movimento per giunti (giunti 1, 2, 3/giunti 4, 5, 6)
E – Movimento incrementale
F – Passo precedente
G – Start programma
H – Passo successivo
I – Stop programma
A
B
C
D
E
G
H
F
I
March 27, 2019
Slide 20
Touch Screen: elementi
B
A – Menu ABB
B – Finestra operatore
C – Barra di stato
D – Pulsante «Chiudi»
E – Barra dei task
F – Quick Menu
D
A
C
E
March 27, 2019
Slide 21
F
Touch Screen: Menu ABB
March 27, 2019
Slide 22
Menu ABB: Input e Output
Questa pagina consente di verificare lo stato dei segnali di input
e output del sistema, connessi ad apparecchiature esterne.
Consente inoltre di forzarne lo stato.
I segnali possono essere digitali (0 oppure 1),
analogici (valori positivi o negativi con virgola)
o binari (positivi e assoluti).
L’operazione di modifica dei valori deve essere
svolta in fase di test, solamente da personale
formato, poiché potrebbe azionare macchinari
provocando danni a persone e cose.
March 27, 2019
Slide 23
Menu ABB: Input e Output
Tramite il pulsante «Visualizza» (A) si possono filtrare i segnali.
- Bus I/O o reti industriali : indirizzo dei protocolli installati
- Dispositivi di I/O: schede installate con indirizzo
- Tutti i segnali: tutti i segnali parametrizzati
- Input/output digitali: tutti gli in/out digitali
- Input/output analogici: tutti gli in/out analogici
- Gruppi input/output: tutti i gruppi binari di in/out
- Più comuni: selezione configurabile da pannello di
controllo di segnali
- Segnali sicurezza: segnali delle schede sicurezza
(solo consultabili, non modificabili)
- Segnali simulati: segnali con simulazione attiva
B – Imposta il segnale a 0 o 1 (solo se out digitale)
C – Consente di simulare il segnale senza pilotare
l’attuatore collegato, o simulando l’ingresso
D – Consente di vedere i segnali definiti virtuali
E – Imposta il valore del segnale analogico o binario
F – Applica filtri di visualizzazione
March 27, 2019
Slide 24
A
B
F
E
C
D
Sistemi di coordinate
Sono riferimenti di posizione e orientamento nello spazio,
rappresentati per mezzo di una terna destra.
A – TCP (Tool Center Point) con asse z positivo uscente,
x e y definiti dall’utente, «Tool0» di default definito al centro della flangia,
da definire sull’utensile con il metodo dei 4 punti.
B – Sistema di coordinate «Base»,
coincidente con «Wobj0», posizionato al centro
della base del robot, con piano x-y orizzontale e z
verticale.
A
C – Sistema Workobject utente
definisce il piano di lavoro,
da definire sul piano di lavoro con il metodo dei 3 punti.
E
D – Sistema Workobject oggetto
definisce l’oggetto di lavoro, da definire sull’oggetto
di lavoro con il metodo dei 3 punti.
E – Sistema di coordinate «World»
definito dall’utente, normalmente coincidente
con il riferimento «base».
Slide 25
D
C
B
March 27, 2019
A
Sistemi di coordinate
March 27, 2019
Slide 26
Menu ABB: Movimento manuale (Jogging)
Consente di muovere manualmente il robot, selezionando l’unità meccanica, scegliendo la modalità,
il sistema di riferimento e le caratteristiche dell’utensile e del carico.
A – Attivazione unità meccanica
B – Modalità movimento manuale
(Lineare, Riorientamento, Assi 1-3 , Assi 4-6)
C – Sistema di coordinate
(Base, World, Oggetto, Utensile)
D – Utensile montato sulla flangia
E – Workobject in uso
F – Carico utensile
G – Visualizzazione coordinate robot
H – Blocco direzione Joystick
J – Attivazione movimento incrementale
K – Direzione movimento Joystick
L – Allinea il robot ad un sistema di coordinate
M – Attiva unità meccanica se esistente
March 27, 2019
Slide 27
A
B
C
D
E
F
H
J
L
G
K
M
Menu ABB: Movimento manuale (Quick menu)
Tramite il «Quick menu» è possibile selezionare rapidamente le impostazioni di movimento
manuale, ed è raggiungibile da qualsiasi finestra della FlexPendant.
A – Modalità movimento manuale
B – Incrementi
C – Modalità di esecuzione
D – Modalità passo
E – Velocità
F – Task
A
B
C
D
E
F
March 27, 2019
Slide 28
Menu ABB: Movimento manuale (Quick menu)
Cliccando sull’ icona movimento manuale si possono vedere rapidamente tutte le informazioni di
movimento.
A – Tool in uso
B – Workobject in uso
C – Modulazione della finestra del
Joystick analogico
D – Sistema di riferimento secondo cui
si sta muovendo il robot (World, Base,
Tool, Workobject)
E – Modalità di movimento (Assi 1-3,
Assi 4-6, Lineare, Riorientamento)
A
B
C
D
E
March 27, 2019
Slide 29
Menu ABB: Movimento manuale (Quick menu)
Cliccando sull’ icona incremento si può selezionare quello desiderato.
A – Nessun incremento
B – Incremento piccolo (0,05 mm)
C – Incremento medio (1 mm)
D – Incremento grande (5 mm)
E – Incremento utente (incremento
personalizzabile)
A
B
C
D
E
March 27, 2019
Slide 30
Menu ABB: Movimento manuale (Quick menu)
Cliccando sulle icone Modalità di esecuzione e Modalità passo si può scegliere la tipologia di
esecuzione del programma.
March 27, 2019
Slide 31
Menu ABB: Movimento manuale (Quick menu)
Cliccando sull’ icona Velocità si può modificare
la velocità di esecuzione del programma.
March 27, 2019
Slide 32
Cliccando sull’ icona Task si possono visualizzare
tutti i task memorizzati nel controllore, attivarli
e disattivarli.
Esercizio – Movimento manuale (Jogging)
Per muovere manualmente il robot: nella scheda movimento manuale selezionare la modalità di
movimento, il sistema di coordinate e l’utensile montato sulla flangia; premere il pulsante uomo
morto al primo scatto e muovere il joystick, facendo attenzione ad evitare eventuali ostacoli.
2
1
Esercizio:
movimento
manuale
3
March 27, 2019
Slide 33
Menu ABB: Finestra Produzione
Visualizza il codice del programma in esecuzione. Viene visualizzata automaticamente quando il
controller viene posto in modalità «automatica».
A – Carica un programma
B – PP in main: porta il puntatore di programma
alla prima istruzione della procedura «main»,
facendo partire il programma dall’inizio.
C – Modifica la posizione puntata dal cursore
D – Mostra il puntatore di movimento
E – Mostra il puntatore di programma
F – Passa alla schermata «Editor di programma»
C
D
E
F
A
March 27, 2019
Slide 34
B
Menu ABB: Editor di programma
E’ il contesto in cui vengono creati o modificati i programmi. E’ possibile aprire più finestre
dell’editor di programma (ad esempio quando si lavora con l’opzione «Multitasking» installata).
Il pulsante dell’editor di programma nella barra dei task visualizza il nome del task aperto.
A – Menu per le operazioni sul programma
B – Mostra tutti i moduli
C – Mostra tutte le routine
D – Apre il menu aggiungi istruzioni
E – Apre il menu di modifica
F – Apre il menu di debug
G – Modifica della posizione (ModPos)
H – Nasconde le dichiarazioni al di fuori della
routine selezionata per facilitare
la lettura del codice di programma
A
D
March 27, 2019
Slide 35
C
B
E
F
G
H
Editor di programma: Task e Programmi
A – Crea nuovo programma
B – Carica un programma dall’hard disk
C – Salva il programma nell’hard disk
D – Rinomina il programma in memoria
E – Elimina il programma in memoria
F – Visualizza il modulo/programma
da modificare
G – Mostra il «main» del programma
A
B
C
D
E
March 27, 2019
Slide 36
F
G
Editor di programma: Moduli
I moduli possono essere di due tipi.
- Di sistema: rimangono in memoria qualsiasi
programma venga creato o caricato.
Vengono sostituiti solo dal restore di un backup.
- Di programma: si cancellano alla creazione o
caricamento di un programma, al restore di
un backup.
A – Crea nuovo modulo di sistema o programma
B – Carica nuovo modulo dall’hard disk
C – Salva il modulo evidenziato (con nome)
nell’ hard disk
D – Cambia dichiarazione modulo
(sistema/programma)
E – Elimina il modulo evidenziato
F – Aggiorna, rilegge la memoria
G – Mostra le routine nel modulo
H – Esce dal modulo
March 27, 2019
Slide 37
F
A
B
C
D
E
G
H
Editor di programma: Routine
Le routine contengono le effettive istruzioni di programma. Ne esistono di tre tipi:
- Procedura (PROC): routine normale,
con o senza passaggio di parametri.
- Funzione (FUNC): routine con dato di ritorno,
con o senza passaggio di parametri.
- Trap routine (TRAP): chiamate dagli interrupt,
non accettano parametri in ingresso e non
possono contenere istruzioni di movimento.
A – Crea nuova routine
B – Copia routine, con le stesse istruzioni
C – Sposta di modulo la routine evidenziata
D – Cambia nome, tipo, assegnazione
di parametri, cambia modulo o aggiunge
gestore degli errori
E – Rinomina la routine
F – Elimina la routine
G – Filtra le routine
H – Mostra le istruzioni della routine
I – Torna ai moduli
March 27, 2019
Slide 38
A
B
C
D
E
F
G
H
I
Editor di programma: Debug
Dal menu «Debug» è possibile avviare il programma. L’esecuzione partirà dalla posizione in cui si
trova il puntatore. Per iniziare da una posizione diversa, spostare il puntatore di programma.
Avviando l’esecuzione, il robot
si sposterà verso la prima posizione
indicata dal programma. Verificare
l’assenza di ostacoli sul percorso.
A – Puntatore di programma (PP)
B – Cursore
C – Sposta il puntatore alla prima riga del main
D – Sposta il puntatore al cursore
E – Sposta il puntatore nella routine selezionata
F – Riporta la visualizzazione al puntatore
G – Chiama le routine di servizio
H – Annulla la chiamata alla routine di servizio
I – Mostra il valore del dato evidenziato
J – Verifica la presenza di errori di sintassi
March 27, 2019
Slide 39
A
B
C
E
D
F
G
I
H
J
Editor di programma: Modifica posizione (ModPos)
Consente di modificare la posizione memorizzata in un’istruzione, muovendo manualmente il robot
nella nuova posizione. La modifica avviene sull’istruzione evidenziata dal cursore, acquisendo i valori
della posizione effettiva del robot.
E’ possibile:
- Eseguire il programma un’istruzione alla volta,
modificando di volta in volta la posizione;
Oppure
- Muovere il robot in una posizione desiderata
e modificare la posizione di un’istruzione
scegliendola dall’editor di programma
(metodo dello spostamento)
Sebbene il secondo metodo
sia più rapido, è necessario
conoscere perfettamente il
programma, per poterne
prevedere il comportamento.
March 27, 2019
Slide 40
Menu ABB: Dati Programma
Consente di visualizzare e modificare il valore delle variabili presenti nel programma RAPID,
visualizzandole suddivise per tipo di dato memorizzato.
Da questa pagina, scegliendo i rispettivi tipi
di dato, è inoltre possibile avviare le procedure:
•
Apprendimento TCP
•
Apprendimento Payload
•
Apprendimento Workobject
March 27, 2019
Slide 41
Menu ABB: Backup e Ripristino
Consente di creare un backup di programmi e parametri di sistema, o di ripristinarne uno esistente.
- Per effettuare un backup scegliere «Backup», indicare
percorso e nome del file. E’ possibile memorizzare il file
sul disco del controller o su una memoria USB esterna
connessa alla porta della FlexPendant.
- Per ripristinare un backup selezionare «Ripristina», quindi
scegliere il file d backup. Tutti i programmi e parametri
esistenti saranno eliminati e sostituiti!
Si raccomanda la creazione sistematica di un
backup, ogni volta che vengono modificati
programmi o parametri di sistema.
March 27, 2019
Slide 42
Menu ABB: Backup e Ripristino
120_100980_BACKUP
CS
TASKS
March 27, 2019
Slide 43
Menu ABB: Calibrazione
Effettua l’aggiornamento dei counter dei resolver o la calibrazione fine.
- Aggiornamento counter: definisce la posizione di zero
del robot. Si effettua quando questi vengono persi
(reboot, calo di tensione in movimento, batteria SMB scarica).
- Calibrazione fine: ricava gli offset di montaggio dei motori.
Si effettua solo in caso di sostituzione di organi di movimento
(motori, riduttori) e deve essere effettuata da personale ABB.
La calibrazione modifica la posizione di zero
del robot, modificando la posizione nello spazio
dei punti memorizzati!
March 27, 2019
Slide 44
Menu ABB: Pannello di controllo
Consente di modificare le impostazioni del sistema.
•
Supervisione: modifica il comportamento del supervisore di movimento.
•
I/O: definisce i segnali I/O più comuni.
•
Language: Imposta la lingua del sistema.
•
ProgKeys: modifica il comportamento dei tasti
programmabili.
•
Configuration: modifica la configurazione dei dispositivi
di comunicazione e dei segnali I/O.
Esempio:
creazione
crossconnection
March 27, 2019
Slide 45
—
RAPID – Programmazione di base
Struttura dei programmi, tipi di dati
Tasks e Moduli
Un task si compone di:
•
Moduli di programma: moduli contenenti dati e routine che vengono sostituiti ogni volta che
viene caricato un nuovo programma. In ogni task può esserci un’unica procedura di «Main»;
•
Moduli di sistema: moduli contenenti istruzioni comuni al sistema (es. posizione di Calibrazione)
Tutti i moduli di programma sono
memorizzati con l'estensione «.mod»,
assieme ad un file di descrizione che
comprende un elenco di tutti i moduli
contenuti nel programma avente come
estensione «.pgf».
March 27, 2019
Slide 47
Routines
Esistono tre tipi di routine: procedure, funzioni e trap.
•
Le procedure non restituiscono un valore e vengono utilizzate nel contesto delle istruzioni.
PROC nome_procedura(tipo_di_dato1 dato1)
!codice
ENDPROC
•
Le funzioni restituiscono un valore di tipo specifico e vengono utilizzate nel contesto delle
espressioni.
FUNC nome_funzione (tipo_di_dato1 dato1)
!codice
Return dato2
ENDFUNC
•
Le routine trap consentono di interagire con gli interrupt. È possibile associare una routine trap a
un interrupt specifico. Se tale interrupt si verifica in una fase successiva, la routine trap verrà
eseguita automaticamente. In nessun caso è possibile chiamare in maniera esplicita una routine
trap dal programma.
TRAP nome_trap
!codice
ENDTRAP
March 27, 2019
Slide 48
Tipi di dati: visibilità e dichiarazioni
La visibilità denota l’area in cui un oggetto è visibile, e dipende dal contesto e dalla posizione della
dichiarazione.
•
Module data object: è dichiarato fuori dalle routine. Può essere locale (visibile all’interno del
modulo in cui è dichiarato), o globale (visibile in tutto il task).
•
Routine data object: è dichiarato all’interno della routine e la visibilità è limitata alla routine.
Anche i parametri delle routine sono di questo tipo. Nasconde inoltre la visibilità di un data
object con lo stesso nome predefinito o definito dall’utente.
Un data object può essere dichiarato in tre modi:
•
Variabile (VAR): il valore memorizzato viene perso se il puntatore di programma viene spostato.
VAR <datatype> <variable definition>;
Es:
VAR num altezza; (dichiara una variabile di tipo numerico)
•
Persistente (PERS): mantiene il valore memorizzato anche se il programma viene riavviato.
PERS <datatype> <persistent definition>;
Es:
PERS num offset; (dichiara una variabile di offset di una coordinata)
•
Costante (CONST): si comporta come una variabile, ma il valore assegnato con la dichiarazione
non può essere modificato.
CONST <datatype> <constant definition> := <value>;
Es:
CONST num hPallet := 500; (dichiara una misura fissa nella cella)
March 27, 2019
Slide 49
Tipi di dati: esempi (1)
Tipi di dati primitivi:
•
Numerico (num): intero o decimale, con segno.
•
Booleano (bool): TRUE o FALSE.
•
Stringa di testo (string): massimo 80 caratteri, definito es. "stringa".
Tipi dati derivati:
•
pose: definisce posizione e orientamento tramite coordinate nello spazio e quaternioni.
[[x, y, z], [q1, q2, q3, q4]]
x, y, z: coordinate del sistema di riferimento
q1, q2, q3, q4: coefficienti dei quaternioni di orientamento
•
loaddata: definisce le caratteristiche del carico
[mass, cog, aom, ix, iy, iz]
mass: massa del carico (kg)
cog: posizione del baricentro ([x, y, z])
aom: orientamento degli assi d’inerzia ([q1, q2, q3, q4])
ix, iy, iz: valore del momento d’inerzia lungo i tre assi
March 27, 2019
Slide 50
Tipi di dati: esempi (2)
•
jointtarget: definisce la posizione del robot nello spazio dei giunti (ax1, …, ax6) e di assi esterni.
[robax, extax]
PERS jointtarget calib_pos := [[0,0,0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
robax: configurazione assoluta degli assi del robot ([ax1,ax2,ax3,ax4,ax5,ax6])
extax: posizione degli assi esterni ([eax_a, eax_b...eax_f])
•
robtarget: definisce la posizione del robot nello spazio di lavoro (x-y-z) e di assi esterni.
[trans, rot, robconf, extax]
PERS robtarget p10 := [[600,500,225.3],[1,0,0,0],[1,1,0,0],[11,12.3,9E9,9E9,9E9,9E9]];
trans: posizione del TCP ([x, y, z])
rot: orientamento del sistema di coordinate TCP ( [q1, q2, q3, q4])
robconf: configurazione degli assi del robot ([cf1, cf4, cf6, cfx])
extax: posizione degli assi esterni ([eax_a, eax_b...eax_f])
La posizione è definita rispetto al workobject in uso. Se questo è diverso dal workobject
indicato nelle istruzioni di movimento si otterrà un comportamento inatteso
Assicurarsi di utilizzare lo stesso workobject per evitare di causare danni.
March 27, 2019
Slide 51
Tipi di dati: esempi (3)
•
wobjdata: descrive l’oggetto di lavoro elaborato dal robot.
[robhold, ufprog, ufmec, uframe, oframe]
PERS wobjdata wobj0 := [FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
robhold: definisce se il robot sostiene il workobject (bool)
ufprog: definisce se è utilizzato un sistema di coordinate fisso (bool)
ufmec: unità meccanica che coordina i movimenti (solo in caso di Multimove)
uframe: sistema di coordinate utente (pose)
oframe: sistema di coordinate oggetto (pose)
•
tooldata: definisce l’utensile (posizione e orientamento del TCP, caratteristiche del carico).
[robhold, tframe, tload];
PERS tooldata tool0 := [TRUE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],[0,0,0]];
robhold: definisce se il robot sostiene l’utensile (bool)
tframe: sistema di coordinate del tool (pose)
tload: caratteristiche del carico (loaddata)
E’ importante definire sempre il carico effettivo dell’utensile e,
se utilizzato, il carico utile del robot.
Dichiarazioni errate del carico possono risultare in prestazioni
non ottimali del robot o sovraccarico della struttura meccanica
March 27, 2019
Slide 52
Esercizio:
creazione
tool e wobj
Esercizio: Creazione del Tool
•
La posizione e l’orientamento del robot sono sempre riferite al TCP attivo;
•
Possono essere definiti più TCP all’interno del programma, ma solo uno alla volta può essere
attivato
•
I dati del TCP possono essere definiti manualmente, ma solo se i dati sono accurati ( si consiglia
comunque di usare sempre la procedura dedicata)
•
Se non sono stati definiti TCP, il robot utilizza il tool0 (corrispondente alla flangia del robot)
•
La z del sistema di riferimento del tool è sempre uscente.
Sistema di
coordinate del
Tool
+Y
Sistema di
coordinate del
Polso
March 27, 2019
Slide 53
+X
+Z
Esercizio: Creazione del Tool
Ø Menu ABB
Ø Dati programma
Ø ToolData
Ø Mostra dati
Ø Nuovo
Ø Scegliere il nome del tool
Ø Cliccare su “Valore iniziale”
Ø Inserire una massa in kg
Ø Inserire il COG rispetto al Tool0
Ø Premere OK
Ø Cliccare sul tool
Ø Modifica
Ø Definisci
March 27, 2019
Slide 54
Esercizio: Creazione del Tool – Metodo dei 4 punti
Allungamento in Z
Ø Selezionare nella casella «Metodo», TCP & Z,X
Ø Scegliere i 4 punti con quattro configurazioni
differenti e cliccare su modifica posizione per ogni
punto
5
Ø L’orientamento del tool è definito dalle direzioni di X e
Z che andiamo a specificare:
•
Far combaciare il TCP con il punto selezionato ed
allineare quello che sarà l’asse z del tool con l’asse
z del robot. Allo stesso modo fare anche con l’asse
x.
4
6
3
Ø Salvare i punti
Allungamento in X
March 27, 2019
Slide 55
1
2
Esercizio: Creazione del Tool – Loadidentify
E’ presente una routine chiamata Loadidentify che viene utilizzata per definire la massa e il centro di
gravità di un tool e/o le parti che vengono prese dal robot (carichi sollevati/vestizione).
Arm Load
PayLoad
Tool Load
March 27, 2019
Slide 56
Esercizio: Creazione del Tool – Loadidentify
Nota bene: prima di chiamare la procedura Loadidentify assicurarsi che le seguenti condizioni sono
soddisfatte:
•
Il tool è montato correttamente
•
L’asse 6 è posizionato a «0»
•
L’asse 4 è posizionato a «0»
•
Il carico sul braccio del robot è definito
•
La velocità di esecuzione è 100%
NB: attivare ToolData prima di lanciare la procedura di Loadidentify
NB2: attivare LoadData prima di lanciare la procedura di Loadidentify
March 27, 2019
Slide 57
Esercizio: Creazione del Tool – Loadidentify
Attivare il tool nella finestra movimento manuale, poi nel program editor chiamare la routine
Loadidentify e seguire le istruzioni a schermo.
March 27, 2019
Slide 58
Esercizio: Creazione del Tool – Loadidentify
March 27, 2019
Slide 59
Esercizio: Creazione del Tool – Loadidentify
March 27, 2019
Slide 60
Esercizio: Creazione del Tool – Loadidentify
March 27, 2019
Slide 61
Esercizio: Creazione del Tool – Loadidentify
March 27, 2019
Slide 62
Esercizio: Creazione di un Workobject
•
Tutti i punti presenti all’interno di un programma sono riferiti rispetto ad un workobject (sistema
di riferimento).
•
Il sistema di riferimento di default è il Wobj0 ed è coincidente al sistema di riferimento presente
alla base del robot (frame).
•
E’ fortemente consigliato creare e utilizzare workobject personalizzati
pSafe
TCP
wobjBox
Wobj0/ Base
March 27, 2019
Slide 63
Esercizio: Creazione di un Workobject
Ø Menu ABB
Ø Dati programma
Ø WobjData
Ø Mostra dati
Ø Nuovo
Ø Scegliere il nome del Workobject
Ø Modifica
Ø Definisci
Ø User method: 3 Points
wobjBox
Wobj0/ Frame
March 27, 2019
Slide 64
Esercizio: Creazione di un Workobject
Y1
Y1
X1
wobjBox
Base
Wobj0/ Frame
March 27, 2019
Slide 65
X1
X2
X2
Esercizio: Creazione di un Workobject
Il centro del sistema di riferimento è individuato dall’intersezione degli assi x e y, secondo la regola
della mano destra.
y1
Origin
Work object axis Y
x1
x2
wobjA4
wobjBox
Work object axis X
Wobj0/ Frame
March 27, 2019
Slide 66
—
RAPID – Programmazione di base
Istruzioni di movimento, programmazione strutturata
Introduzione alle istruzioni di movimento
Le istruzioni di movimento più comuni sono:
•
MoveL: Movimento lineare verso un punto
•
MoveJ: Movimento libero verso un punto
•
MoveAbsJ: Movimento verso una posizione assoluta degli assi
•
MoveC: Movimento circolare per 3 punti
Le istruzioni di movimento necessitano di diversi tipi di dati (posizione, velocità…) , che andremo ad
analizzare caso per caso.
March 27, 2019
Slide 68
Istruzioni di movimento: MoveL e MoveJ
L’istruzione Move* sposta il TCP ad un punto designato (target).
MoveL Target_10, v1000, z50, tool_Penna \Wobj:=wobj_Tavolo
MoveJ Target_20, v1000, z50, tool_Penna \Wobj:=wobj_Tavolo
A
B
C
D
E
Tipi di dati:
A - Destinazione (robtarget)
B - Velocità desiderata
C - Zona di raccordo [mm]
D - Tool in uso
E - Workobject in uso
MoveL sposta il TCP lungo una
traiettoria lineare.
MoveJ sposta il TCP senza vincoli sulla
traiettoria, seguendo il percorso più
breve tra il punto iniziale e finale dal
punto di vista dei giunti.
March 27, 2019
Slide 69
MoveL
MoveJ
Zonedata
Le zonedata descrivono quanto vicino deve arrivare il TCP/gli assi alla posizione programmata,
prima di passare a quella successiva.
Zona
Punto_1
Punto_2
MoveL Punto_1, v100, fine, tool0;
MoveL Punto_2, v100, z10, tool0;
MoveL Punto_3, v100, fine, tool0;
Punto_3
March 27, 2019
Slide 70
Zonedata
Nota Bene!
La zonedata di tipo fine utilizzata per:
•
Arrivare in un punto con la massima precisione possibile
•
Proseguire con l’esecuzione del programma solo dopo aver completato l’istruzione di movimento.
In particolare, prestare attenzione quando:
§
Si gestiscono segnali di input e output (es: apri/chiudi pinza) dopo un’istruzione di
movimento per evitare che questi segnali vengano processati anzitempo
§
L’istruzione di movimento è posta alla fine di una routine, per evitare che il puntatore inizi a
processare altre istruzioni prima di aver terminato il movimento
MoveL Punto_1, v100, fine, tool0;
March 27, 2019
Slide 71
Istruzioni di movimento: MoveAbsJ
L’istruzione MoveAbsJ sposta ciascun giunto nella posizione designata.
MoveAbsJ Target_30, v1000, z50, tool_Penna
A
B
C
D
Tipi di dati:
A - Destinazione (jointtarget)
B - Velocità desiderata
C - Zona di raccordo [mm]
D - Tool in uso
Dal punto di vista del movimento, MoveJ e MoveAbsJ sono simili, l’unica differenza riguarda il tipo di
dato che viene fornito come Target:
•
Nel caso di MoveJ, si fornisce un punto (in coordinate x,y,z e orientamento) [robtarget]
•
Nel caso di MoveAbsJ si fornisce la posizione in gradi di ciascun asse [jointtarget]
March 27, 2019
Slide 72
Istruzioni di movimento: MoveC
L’istruzione MoveC crea una traiettoria circolare passante per tre punti (posizione attuale + 2).
MoveC P_intermedio, P_fine, v100, z10, tool0, \WObj:=wobjxxx
A
B
P_intermedio
D
E
F
Tipi di dati:
A - Punto intermedio (robtarget)
B - Punto finale (robtarget)
C - Velocità desiderata
D - Zona di raccordo [mm]
E - Tool in uso
F - Workobject in uso
MoveL P_Start, v100, fine, tool0, \WObj:=wobjxxx
MoveC P_intermedio, P_fine, v100, z10, tool0
P_Start
P_fine
March 27, 2019
C
Slide 73
Esercizio:
creazione
di path
Funzioni RAPID (1)
Routine di base
•
Chiamata di una procedura (ProcCall):
nome_procedura;
•
Lettura della posizione degli assi del robot:
CJointT()
•
Lettura della posa del robot nello spazio di lavoro:
CRobT(\Tool:=tool1 \WObj:=wobj0)
Routine di gestione dell’interfaccia
•
TPWrite, TPErase: presenta un messaggio e lo cancella;
•
UIMessageBox: presenta un messaggio all’utente, il quale può interagire con il flusso di
programma.
•
UINumEntry: chiede all’utente di inserire un valore numerico tramite tastierino.
•
UINumTune: chiede all’utente di regolare un valore numerico tramite i tasti «+» e «-».
March 27, 2019
Slide 74
Funzioni RAPID (2)
Routine di gestione dei segnali di Output
•
Set, Reset: imposta il segnale rispettivamente a 1 o 0
Set Segnale / Reset Segnale
•
SetDO: è l’istruzione unificata di Set e Reset
SetDO Segnale, 1 / SetDO Segnale, 0
•
SetAO, SetGO: corrispondono a SetDO per segnali analogici o gruppi.
•
PulseDO: Imposta il segnale DO alto per un periodo di tempo, poi lo imposta basso.
Routine di attesa
•
WaitTime: attende un tempo fisso (secondi).
•
WaitUntil: attende fino a che si verifica una condizione.
•
WaitAI, WaitAO, WaitDI, WaitDO: Attende che un segnale assuma il valore specificato.
March 27, 2019
Slide 75
Funzioni RAPID (3)
Routine sui sistemi di riferimento
•
Aggiunta di un offset al robtarget rispetto al workobject:
Offs(Point,XOffset,YOffset,ZOffset)
•
Aggiunta di un offset rispetto al sistema di riferimento del Tool:
RelTool(Point,Dx,Dy,Dz,[\Rx],[\Ry],[\Rz])
March 27, 2019
Slide 76
Funzioni RAPID (4)
Esempio con « UIMessageBox » e ritorno in home
MODULE MainModule
VAR btnres Risposta;
! btnres corrisponde al tipo di dato restituito dalla
! Funzione UIMessageBox
PROC main()
Risposta:=UIMessageBox( \Header:="Inserire intestazione",
\Message:="Inserire il messaggio",
\BtnArray:=["Scelta 1","Scelta 2","Scelta 3",
"Scelta 4","Scelta 5"] );
IF Risposta=1 THEN
MoveAbsJ Home,…;
! ... E' stato premuto "Scelta 1"
ELSE
EXIT;
! ... E' stato premuto altro
ENDIF
ENDPROC
ENDMODULE
March 27, 2019
Slide 77
Funzioni RAPID (5)
MODULE Presa_e_Deposito
VAR num riga;
VAR num colonna;
PROC main()
riga:=UINumEntry(\Header:="Inserimento riga deposito"
\Message:="Inserire la riga di deposito"
\MinValue:=Valore_Minimo \MaxValue:=Valore_Massimo);
colonna:=UINumEntry(\Header:="Inserimento colonna deposito"
\Message:="Inserire la colonna di deposito"
\MinValue:=Valore_Minimo \MaxValue:=Valore_Massimo);
! Procedura di presa e deposito
MoveL Offs(P_ref,riga*100,colonna*100,0),v1000,z50,tool0\WObj:=WObj_Tavola;
! Porta il provino sopra la sede
MoveL Offs(P_ref,riga*100,colonna*100,z),v1000,z50,tool0\WObj:=WObj_Tavola;
! Pallettizza il pezzo nella sede
ENDPROC
ENDMODULE
March 27, 2019
Slide 78
Funzioni RAPID (6)
Inserire delle funzioni da TeachPendant
•
Inserire un assegnamento « := », comparirà « <DATA>:=<EXP>; »
•
In <DATA> inserire una variabile dello stesso tipo di quello restituito dalla funzione
•
Consiglio: per visualizzare il tipo di dato restituito consultare il manuale RAPID
•
Cliccare la voce «cambia tipo di dato» per scegliere dataobject di altro tipo
•
Una volta selezionato il dataobject cliccando su «funzioni» sono disponibili le funzioni che
restituiscono lo stesso tipo di dato della variabile. Cliccare la funzione desiderata
•
Esempio: « Risposta := UIMessageBox(); »
Aggiungere argomenti opzionali
Selezionare la funzione e quindi cliccare per editarla
Quindi tramite «edita» à «argomenti facoltativi» inserire quelli desiderati selezionando «usa»
Risposta:=UIMessageBox(\Header:=<EXP>,\Message:=<EXP>,\Buttons:=<EXP>);
March 27, 2019
Slide 79
Programmazione strutturata: istruzioni
•
Assegnazione: definisce il valore.
•
If: esegue una o più istruzioni solo qualora siano
verificate una o più condizioni.
•
While: esegue le istruzioni al suo interno in modo
ciclico, fino a che è verificata una condizione.
•
For: esegue le istruzioni al suo interno per un numero
di volte definito da un contatore incrementale.
•
Test: esegue istruzioni diverse in base al valore
assunto da un’espressione.
<DATA> := <VALUE>;
IF <EXP> THEN
ELSEIF <EXP> THEN
ELSE
ENDIF
WHILE <EXP> DO
ENDWHILE
FOR <ID> FROM <EXP> TO <EXP> DO
ENDFOR
Esercizio:
creazione
programma
March 27, 2019
Slide 80
TEST <EXP>
CASE <EXP>:
DEFAULT:
ENDTEST
Esempio di flusso di programma
Di seguito un esempio di programma annidato.
La procedura di main gestisce il flusso dell’intero programma. Le sotto routine gestiscono invece le
istruzioni, questo per avere una maggiore chiarezza e ordine durante la lettura.
March 27, 2019
Slide 81
Connessione PC - Controllore
E’ possibile connettersi al controllore tramite le porte Service (X2) e WAN (X6):
SERVICE
•
La porta Service viene solitamente utilizzata per
connettersi direttamente al controllore tramite PC.
La porta ha un indirizzo IP statico (192.168.125.1)
•
La porta WAN viene utilizzata solitamente per connettere WAN
il robot ad una rete industriale interna.
E’ possibile assegnare un indirizzo IP a piacere.
March 27, 2019
Slide 82
Connessione PC - Controllore
•
•
Per connettersi alla porta Service è possibile configurare un IP statico.
Tramite il Control Panel, Wireless Network Connection Status, cliccare su Properties.
Selezionare Internet Protocol Version 4 (TCP/IPv4) e impostare i seguenti:
IP ADDRESS:
192.168.125.[2…255] (la porta ha indirizzo .1)
SUBNET MASK:
255.255.255.0
Per connettersi alla porta WAN è necessario impostare un IP maggiore a tutti i Robot presenti
nella rete. Per vedere (e modificare l’IP) del singolo robot andare sulla Flexpendant:
Menu ABB; Pannello di controllo; Rete, Data e Ora; Impostazioni; Rete.
Una volta configurato correttamente l’IP in base alla tipologia di connessione utilizzata, è possibile
connettersi al controllore tramite Robotstudio.
Nella pagina controller, cliccare sotto l’icona Add Controller, e poi su Add Controller…
In automatico verrà rilevato il controllore.
March 27, 2019
Slide 83
—
Connected Services
Connected Services
Composizione della suite
March 27, 2019
Slide 85
CS
Connected Services
CMD
Condition Monitoring & Diagnostics
BM
Backup Management
AO
Asset Optimization
FA
Fleet Assessment
RA
Remote Access
Connected Services
Soluzioni Disponibili
3 tipologie di connessione :
S4C+, S4P
IRC5, IRC5P
• Mobile Service Box
Connessione 3G con SIM a carico del
cliente
• Service Box via cavo o wi-fi
Connessione via cavo o wi-fi tramite
rete del cliente
• via cavo : S4C+, S4P+, IRC5, IRC5P
wi-fi :
IRC5, IRC5P
• IRC5 e IRC5P con RobotWare > 6.04 e DSQC1018 (Nov 2016)
• Embedded
Connessione via cavo tramite rete del
cliente
N.B. Nessun hardware aggiuntivo
richiesto
March 27, 2019
• S4C+, S4P+, IRC5, IRC5P
Slide 86
Connected Services
Condition Monitoring & Diagnostics
Servizio di monitoraggio e diagnostica sicuro 24 ore su 24, 7 giorni su 7, che identifica i sistemi robotizzati che non
stanno funzionando in modo ottimale, fornisce informazioni su potenziali problemi e dati per una più rapida risoluzione
dei problemi.
Numero
di allarmi
Matricola
Robot
Trend degli
errori
March 27, 2019
Slide 87
Connected Services
Condition Monitoring & Diagnostics
Servizio di monitoraggio e diagnostica sicuro 24 ore su 24, 7 giorni su 7, che identifica i sistemi robotizzati che non
stanno funzionando in modo ottimale, fornisce informazioni su potenziali problemi e dati per una più rapida risoluzione
dei problemi.
Situazione Attuale
Vantaggi con Connected Services
•
Chiamata al call center o per spiegare cosa è successo
•
GRATUITO per il periodo di garanzia
•
Necessarie competenze per interpretare il log degli
•
Tempi di reazione più rapidi e maggiore efficienza nelle
allarmi
attività di assistenza
•
Difficile assistere al manifestarsi del problema
•
Supporto tecnico ottimizzato
•
Rischio di fornire informazioni errate ai tecnici
•
Notifica istantanea e identificazione rapida della causa
del guasto
•
Rilevamento tempestivo di errori su ventole,
alimentatori, connettività, risorse software, cavi e
componenti meccanici
March 27, 2019
Slide 88
Connected Services
Backup management
Assicura che sia sempre disponibile un backup completo del programma robot. I backup automatici possono essere
pianificati in qualsiasi momento e memorizzati nel cloud o su qualsiasi server.
March 27, 2019
Slide 89
Connected Services
Backup management
Assicura che sia sempre disponibile un backup completo del programma robot. I backup automatici possono essere
pianificati in qualsiasi momento e memorizzati nel cloud o su qualsiasi server.
Situazione Attuale
Vantaggi con Connected Services
•
Impiego di tempo per il backup di ogni macchina
•
Backup automatico salvato su server ABB o del cliente
•
Schedulazione non costante e periodica
•
Schedulazione giornaliera, settimanale o mensile
•
Richiesto operatore dedicato
•
Richiesta di backup da remoto
•
Archiviazione problematica
March 27, 2019
Slide 90
Connected Services
Asset Optimization
Può aiutare a identificare i robot, i componenti e il software che non funzionano a livelli ottimali e fornisce
regolarmente raccomandazioni proattive su come migliorare le prestazioni ed evitare eventi che possono causare
tempi di inattività.
March 27, 2019
Slide 91
Connected Services
Asset Optimization
Può aiutare a identificare i robot, i componenti e il software che non funzionano a livelli ottimali e fornisce
regolarmente raccomandazioni proattive su come migliorare le prestazioni ed evitare eventi che possono causare
tempi di inattività.
Situazione Attuale
Vantaggi con Connected Services
•
Richiesto fermo macchina
•
Nessun fermo macchina richiesto
•
Intervento di 2 tecnici : meccanico + softwarista
•
•
Impegno del cliente nel raccogliere costantemente
l’error log
Report periodico ogni mese, trimestre o
quadrimestre
•
Raccolta automatica dei dati necessari
•
Segnalazione azioni miglioramento e lista ricambi
consigliata
•
Nessun intervento tecnico necessario
•
Necessario l’impiego di un tecnico per elaborazione
dati raccolti
March 27, 2019
Slide 92
Connected Services
Fleet Assessment
Confronta i robot con l’intera popolazione di robot ABB connessi, consentendo l’identificazione dei robot con carichi di
lavoro maggiore e la definizione delle priorità in fase di manutenzione
March 27, 2019
Slide 93
Connected Services
Fleet Assessment
Confronta i robot con l’intera popolazione di robot ABB connessi, consentendo l’identificazione dei robot con carichi di
lavoro maggiore e la definizione delle priorità in fase di manutenzione
Situazione attuale
Vantaggi con Connected Services
•
Nessun confronto possibile tra il robot e la
popolazione ABB
•
Attività di manutenzione dettata dai manuali
March 27, 2019
Slide 94
•
Incremento del ciclo di vita delle parti del robot
•
Comparazione automatica con l’intera popolazione
ABB
•
Definizione ottimizzata delle attività di manutenzione
e di service
Connected Services
Remote Access
Consente un accesso rapido e sicuro ai controllori e ai robot collegati. L’accesso è consentito su richiesta e
supervisione del cliente protetto da sicurezza hardware e software.
March 27, 2019
Slide 95
Connected Services
Remote Access
Consente un accesso rapido e sicuro ai controllori e ai robot collegati. L’accesso è consentito su richiesta e
supervisione del cliente protetto da sicurezza hardware e software.
Situazione Attuale
Vantaggi con Connected Services
•
Necessario intervento tecnico per l’analisi del
problema
•
Richiesta la presenza del programmatore per attuare
eventuali modifiche
March 27, 2019
Slide 96
•
Possibilità di agire come se presenti sul posto
•
Accesso al controller del robot ed agli altri dispositivi
connessi
•
Risoluzione dei problemi più rapidi
Connected Services
Per qualsiasi richiesta fare riferimento al seguente recapito:
IT-connectedservices.robotics@abb.com
March 27, 2019
Slide 97
Contatti utili
training.robot@it.abb.com
Training robotica
+39 3669061246
Simone Romeo (Training Coordinator)
ricambi.service@it.abb.com
Ricambi
marco.buffa@it.abb.com
Avvolgicavo, bumper Flexpendant, UPS
IT-myabbaccess@abb.com
Accesso al portale MyABB (Documentazione tecnica)
IT-supporto-tecnico@abb.com
Supporto tecnico per le applicazioni
supporto-robot@it.abb.com
Assistenza tecnica service (interventi)
IT-robotsupportovendite@abb.com
Supporto vendite
+02 24150000
Contact center
March 27, 2019
Slide 98
Download