Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(ABB)
Fanny Ficuciello
IRB 120
Informazioni generali
L'IRB 120 fa parte dell'ultima generazione di robot industriali a 6 assi di ABB
Robotics, dal carico utile di 3 kg, concepiti in modo specifico per industrie
manufatturiere che utilizzano un'automazione flessibile.
Il robot è dotato di una struttura aperta particolarmente adatta per utilizzi flessibili
ed è in grado di comunicare ampiamente con sistemi esterni.
Sistema operativo
Il robot è dotato di controller IRC5 (Single Cabinet) e di software di controllo
del robot, Robotware. Il software Robotware supporta tutti gli aspetti del sistema
robotico, quali il controllo dello spostamento, lo sviluppo e l'esecuzione di
programmi applicativi.
Funzionalità aggiuntive
Per una funzionalità supplementare, il robot può essere attrezzato con software
supplementare per supporto di applicazioni: ad esempio, per incollaggio e
saldatura ad arco, e funzioni avanzate quali il multitasking, il controllo dei sensori,
etc.
Portate operative del robot
Hardware standard della cella di robot
IRC5
Calibrazione
• I dati di calibratura sono normalmente memorizzati sulla scheda di misurazione seriale SMB di ciascun
robot, indipendentemente dal fatto che sul robot venga eseguito o meno un sistema di misurazione
assoluta (che l'opzione Absolute Accuracy sia installata, AbsAcc che garantisce una precisione assoluta
del TCP migliore di ±1 mm nell'intera portata operativa) o no. Normalmente questi dati vengono
trasferiti automaticamente sul controller all'accensione del sistema: in tal caso non è richiesta alcuna
azione da parte dell'operatore.
• La scheda di misurazione seriale, SMB (Serial Measurement Board), raccoglie principalmente i dati del
resolver dai motori del robot. I dati vengono utilizzati per misurare la velocità e la posizione di ciascun
asse.
Calibrazione
Calibratura fine
• Per eseguire una calibratura fine del robot bisogna usare utilizzare i perni di calibratura e le tacche di
sincronizzazione sul robot.
• Questa calibratura può essere eseguita nei seguenti modi:
• gli assi 1, 2 e 3 contemporaneamente, tramite la FlexPendant;
• gli assi 4, 5 e 6 contemporaneamente, tramite la FlexPendant;
• ciascun asse separatamente.
Aggiornamento Contagiri
• Come eseguire una calibratura grossolana di ciascun asse del robot, vale a dire l'aggiornamento del
valore del contagiri per ciascun asse, utilizzando la FlexPendant.
Flex Pendant (TPU)
• Utilizzata per eseguire molte dei task correlati al funzionamento di un sistema robotico: esecuzione dei
programmi, movimento manuale del manipolatore, modifica di programmi, ecc.
• La FlexPendant consiste in una parte materiale ed una parte di programmi, e rappresenta un computer
completo di per sé stessa.
Flex Pendant (TPU)
MODULE MainModule
VAR num length;
VAR num width;
VAR num area;
PROC main()
length := 10;
width := 5;
area := length * width;
TPWrite "The area of the rectangle is " \Num:=area;
END PROC
ENDMODULE
• In questi esempi, reg1 e reg2 sono di tipo di dati num, mentre flag1 è bool.
• Negli esempi sottostanti, le variabili reg1, reg2 e reg3 sono del tipo di dati num.
Operatori di stringhe
Controllo del flusso di programma mediante istruzioni if con condizioni logiche
Esempio
Nel caso siano necessari più di 60 secondi per la produzione di un dato pezzo,
trascrivere un messaggio sulla FlexPendant. Se la variabile booleana full_speed
è FALSE, il messaggio indicherà all’operatore di incrementare la velocità del robot.
Se full_speed è TRUE, il messaggio richiederà all’operatore di esaminare il motivo
della lentezza della produzione.
VAR num time := 62.3;
VAR bool full_speed := TRUE;
PROC main()
IF time > 60 THEN
IF full_speed THEN
TPWrite "Examine why the production is slow";
ELSE
TPWrite "Increase robot speed for faster production";
ENDIF
ENDIF
ENDPROC
• Un altro modo di controllare il flusso del programma è quello di ripetere una
sequenza di codifica per un certo numero di volte mediante un ciclo for
• La sintassi della dichiarazione FOR è la seguente:
FOR counter FROM startvalue TO endvalue DO
program code to be repeated
ENDFOR
• Ripetizione con condizione
• La ripetizione di una sequenza di codifica può essere combinata con l’esecuzione
condizionata della sequenza stessa. Grazie al ciclo WHILE, il programma continuerà
a ripetere l’esecuzione della sequenza di codifica fino a quando la condizione
permarrà ’vera’.
Esempio
La codifica di programmazione seguente aggiungerà numeri (1+2+3+...), fino a che
la loro somma non raggiunga il valore 100.
VAR num sum := 0;
VAR num i := 0;
WHILE sum <= 100 DO
i := i + 1;
sum := sum + i;
ENDWHILE
MoveL
Una semplice istruzione di spostamento può apparire così:
MoveL ToPoint Speed Zone Tool;
MoveL è un’istruzione che sposta il robot linearmente (in linea retta) dalla sua
posizione corrente a quella specificata.
Un'istruzione di movimento è composta da:
• p10 un riferimento a un target
• dati di movimento, ad esempio, tipo di movimento, velocità e zona
• un riferimento a dati utensile
• un riferimento all'oggetto di lavoro
TPReadNum
TPReadNum consente all’operatore di scrivere un numero sulla FlexPendant, invece di compiere
una scelta.
VAR num answer;
TPReadNum answer, "How many times shall I draw the figure?";
FOR i FROM 1 TO answer DO
! code to draw figure
ENDFOR
Esempio
Se si desidera tracciare quattro quadrati di dimensioni differenti, potremo preparare quasi la stessa codifica di
programmazione per quattro volte. Il risultato sarà un'estesa quantità di codifica ed un programma difficile da capire.
Una maniera molto più efficiente di scrivere questo programma è rappresentata dalla preparazione di una procedura
che tracci il quadrato, e che sarà richiamata dalla procedura ‘main’ per quattro volte.
PERS tooldata tPen:= ...
CONST robtarget p10:= ...
PROC main()
! Call the procedure draw_square
draw_square 100;
draw_square 200;
draw_square 300;
draw_square 400;
ENDPROC
PROC draw_square(num side_size)
VAR robtarget p20;
VAR robtarget p30;
VAR robtarget p40;
! p20 is set to p10 with an offset on the y value
p20 := Offs(p10, 0, side_size, 0);
p30 := Offs(p10, side_size, side_size, 0);
p40 := Offs(p10, side_size, 0, 0);
MoveL p10, v200, fine, tPen;
MoveL p20, v200, fine, tPen;
MoveL p30, v200, fine, tPen;
MoveL p40, v200, fine, tPen;
MoveL p10, v200, fine, tPen;
ENDPROC
Definizione di un'istruzione
Un’istruzione RAPID agisce come una procedura prestabilita. Un richiamo ad un’istruzione assomiglia ad una
procedura, dove il nome d’istruzione è seguito dai valori dell’argomento.
Alcune istruzioni RAPID sono semplici, e avrebbero facilmente potuto essere state
scritte come una procedura in RAPID. Ad esempio, l’istruzione Add.
Add reg1, 3;
! The same functionality could be written:
reg1 := reg1 + 3;
Altre istruzioni RAPID eseguono processi complicati, che non avrebbero potuto essere programmati senza
queste istruzioni prestabilite. Ad esempio: MoveL,
Definizione di una funzione
Una funzione RAPID assomiglia ad un’istruzione, ma restituisce un valore.
! Calculate the cosine of reg2
reg1 : = Cos(reg2);
Dato che la funzione restituisce un valore, il risultato della funzione può essere attribuito ad una variabile.
Gli argomenti in un richiamo di funzione sono scritti entro parentesi, e sono separati
da virgole.
Semplificazione di calcoli complicati
Un singolo richiamo di funzione può spesso sostituire diverse dichiarazioni complesse.
Ad esempio:
p20 := Offs(p10, 100, 200, 300);
può sostituire la codifica seguente:
p20 := p10;
p20.trans.x := p20.trans.x + 100;
p20.trans.y := p20.trans.y + 200;
p20.trans.z := p20.trans.z + 300;
Sistemi di Coordinate
• I sistemi di coordinate sono correlati dal punto di vista gerarchico. L'origine di ciascun sistema di
coordinate viene definito come una posizione in uno dei suoi progenitori.
• In RobotStudio, si possono utilizzare i sistemi di coordinate:
• Sistema di coordinate universali RobotStudio RS-WCS (RobotStudio-World Coordinate System)
• Il sistema di coordinate universali RobotStudio rappresenta l'intera stazione o cella del
robot. Questa è la cima della gerarchia alla quale fanno riferimento tutti gli altri sistemi di
coordinate (quando si utilizza RobotStudio).
• Sistema di coordinate del TCP (Tool Center Point)
• Il sistema di coordinate del TCP (Tool Center Point) è il punto centrale dell'utensile. Si
possono definire differenti TCP per un singolo robot. Tutti i robot hanno un TCP predefinito
nel punto di montaggio dell'utensile, chiamato tool0. Durante l'esecuzione di un
programma, il robot sposta il TCP verso la posizione programmata.
• Base Frame (BF)
• Il sistema di cordinate di base si chiama Base Frame (BF). Ciascun robot nella stazione, che si
tratti di RobotStudio o del mondo reale, è dotato di un sistema di coordinate di base, che è
sempre situato alla base del robot.
• Task Frame (TF)
• Il Task Frame rappresenta l'origine del sistema di coordinate universali del controller del
robot in RobotStudio.
Sistemi di Coordinate dell’oggetto di lavoro
• Sistema di coordinate dell'oggetto di lavoro
• Normalmente l'oggetto di lavoro rappresenta il pezzo di lavoro fisico. È composto da due sistemi di
coordinate: il sistema di riferimento utente e il sistema di riferimento oggetto, dove il secondo è
figlio del primo. Quando si programma un robot, tutti i target (posizioni) sono correlati al sistema di
riferimento oggetto di un oggetto di lavoro. Se non è stato specificato un altro oggetto di lavoro, i
target saranno correlati al Wobj0 predefinito, che coincide sempre con il sistema di riferimento di
base del robot.
• Nella figura seguente il sistema di coordinate grigio è il sistema di coordinate universali e quelli neri
sono il sistema di riferimento oggetto e il sistema di riferimento utente dell'oggetto di lavoro. Qui il
sistema di riferimento utente è posizionato sul tavolo/attrezzatura e il sistema di riferimento
oggetto sull'oggetto
• Utilizzare il cavo Ethernet incrociato di categoria 5 con connettori RJ45 fornito in dotazione.
• Collegare il cavo di rete alla porta di rete del PC.
• Collegare il cavo di avvio alla porta di servizio del gruppo computer.
• La porta di servizio del controller è provvista di un server DHCP che consente di assegnare automaticamente un indirizzo IP al PC se
questo è configurato in modo appropriato.
• Il PC deve essere impostato su "Ottieni automaticamente un indirizzo IP.
• Per la connessione tramite un indirizzo IP fisso utilizzare le seguenti impostazioni:
•
Connessione al Controller
Assicurarsi che il PC sia connesso alla porta di servizio del controller e che il controller sia in esecuzione.
• Nel menu File, puntare su Online, quindi fare clic su Connessione mediante un solo clic.
• Fare clic su Aggiungi controller
• Fare clic su Richiedi accesso in scrittura.
Autorizzazioni dell’utente
• L'autorizzazione degli utenti viene gestita dal controller mediante il Sistema di autorizzazione degli utenti (UAS,
User Authorization System) del controller.
• Le impostazioni UAS rimangono nel controller indipendentemente dal sistema in esecuzione. Questo significa
anche che le impostazioni UAS vengono applicate a tutti gli strumenti per comunicare con il controller, quali
RobotStudio o la FlexPendant.
• Le impostazioni UAS definiscono gli utenti e i gruppi che possono accedere al controller, e le operazioni che
questi sono autorizzati a svolgere.
• In UAS gli utenti sono considerati sotto forma di account, tramite i quali le persone accedono al controller.
Inoltre, gli utenti vengono aggiunti a gruppi ai quali vengono assegnate autorizzazioni di accesso.
• Gli utenti vengono definiti nel controller tramite un nome utente e una password. Per accedere a un controller,
l'utente deve digitare un nome utente che è stato definito e una password corretta.
• Tutti i controller dispongono di un utente predefinito denominato Utente predefinito ed una password nota
pubblicamente: robotics. L'Utente predefinito non può essere rimosso, né la sua password potrà essere
modificata.
• Tutti i controller dispongono di un gruppo predefinito di nome Default Group, al quale vengono fornite tutte le
autorizzazioni e al quale appartiene l'utente predefinito Default User. Questo gruppo non può essere rimosso,
ma può essere modificato dall'utente che dispone dell'autorizzazione Gestione impostazioni UAS.
System Builder
• Un sistema è il software che viene eseguito su un controller. È composto da parti di RobotWare
specifiche per i robot collegati al controller, file di configurazione e programmi RAPID.
• I parametri di sistema descrivono la configurazione del sistema (relativa ai vari argomenti: protocolli di
comunicazione internet, canali seriali e dei protocolli di trasferimento file del controller, trasmissione dei
dati, parametri per la sicurezza e funzioni specifiche rapid, parametri per le schede e i segnali di I/O,
parametri associati al controllo dei movimenti) robotico e sono impostati conformemente all'ordine al
momento della consegna.
• Il SystemBuilder è lo strumento per la creazione, la modifica e la manutenzione di sistemi. Si può
utilizzare il SystemBuilder anche per scaricare i sistemi dal PC al controller.
• Il sistema che viene eseguito sui controller virtuali può essere un sistema reale basato su chiavi
RobotWare reali o un sistema virtuale basato su chiavi virtuali.
• Quando si utilizzano sistemi reali, le chiavi RobotWare definiscono quali opzioni e modelli di robot
dovranno essere utilizzati, agevolando così la configurazione corretta del sistema. I sistemi reali possono
essere eseguiti su controller virtuali e controller IRC5 reali.
• Quando si utilizzano chiavi virtuali, sono disponibili tutte le opzioni e i modelli di robot; ciò è utile a fini
di valutazione, ma richiede un maggior lavoro di configurazione quando si crea il sistema. I sistemi basati
su chiavi virtuali possono essere eseguiti solo su controller virtuali.
• Per creare un sistema da utilizzare su un controller reale, è necessario disporre di una relativa chiave RobotWare. La
chiave RobotWare è una chiave di licenza che determina quali modelli di robot utilizzare e quali opzioni di RobotWare
eseguire nel controller. La chiave di licenza viene consegnata con il controller.
• Se si desidera creare un sistema da impiegare solo in modo virtuale, è possibile utilizzare invece una
chiave virtuale. Le chiavi virtuali vengono generate dalla procedura guidata. Quando si utilizzano chiavi
virtuali, i modelli di robot e le opzioni da utilizzare vengono selezionati nella sezione Modifica opzioni
della procedura guidata.
• Per scaricare su un controller reale, si richiede la connessione diretta tra computer e porta di servizio o
Ethernet del controller.