capitolo 1 - unipv.it · pdf filecaso del robot smart-3 s2, gli assi sono 6 più 2...
TRANSCRIPT
CAPITOLO 1
IL SISTEMA ROBOTICO
INTRODUZIONE
Questo capitolo si propone di illustrare le caratteristiche del sistema robotico utilizzato nelle prove
di laboratorio, ovvero il robot COMAU SMART-3 S2, l’unità di governo C3G-900, la scheda di
interfacciamento BIT3, il software PC-C3LINK.
In particolare sarà posta attenzione sulla modalità di realizzazione del controllo di posizione della
COMAU.
Inoltre, sarà chiarito l’utilizzo del programma PC-C3LINK che consente la completa gestione del
robot mediante un Personal Computer al posto dell’unità C3G.
1.1 IL SISTEMA ROBOTICO
Si definisce sistema robotico l’insieme funzionale costituito da: unità di controllo, robot, unità
portatile di programmazione e/o di emergenza ed eventuali opzioni.
Il robot SMART-3 S2 di figura 1.1 è un robot a sei assi, dal peso estremamente contenuto, 300 kg
circa, realizzato dalla COMAU, per capacità di carico leggere, atto a soddisfare le esigenze di
applicazioni quali:
• saldatura ad arco;
• caricamento/scaricamento macchina;
• inserzione con controllo di forza;
• controllo/ispezione;
• applicazione di fluidi ad alta densità, come sigillanti o collanti;
• sbavatura;
• lavaggio e/o pulizia.
Le elevate prestazioni del robot si sintetizzano in:
2
• ampio volume di lavoro (sbraccio massimo orizzontale: 1458 mm, verticale: 2208 mm);
• polso con campo di lavoro molto esteso, che consente una maggiore azione nella zona di lavoro;
• capacità di carico massimo al polso di 8 kg;
• capacità di carico massimo supplementare di 10 kg;
• accelerazione e velocità estremamente elevate;
• freni su tutti gli assi;
• precisione di posizionamento e ripetibilità contenuta in un ristretto campo di tolleranza (± 0,10
mm);
• servizi elettrici e pneumatici già predisposti per l’allacciamento sull’avambraccio.
La movimentazione degli assi è comandata da motori sincroni a commutazione elettronica a
magneti permanenti della AEG che, oltre a ridurre gli interventi di manutenzione, offrono i vantaggi
di una minore inerzia e di una più facile dissipazione del calore, consentendo l’impiego del robot in
cicli di lavoro particolarmente gravosi. La trasmissione del moto avviene unicamente attraverso
riduttori meccanici ad ingranaggi, fatta eccezione per l’asse 6.
3
Figura 1.1: Robot SMART-3 S2
1.1.1 L’UNITÀ DI GOVERNO
L’unità di governo è denominata C3G-900 ed è contenuta (fig.1.2) in un armadio di dimensioni
ridotte: 918 x 1754 x 573 mm (escluse le parti sporgenti).
Figura 1.2: Unità di Governo C3G-900
Questa unità di governo consente di controllare i robot COMAU che abbiano al massimo 8 assi (nel
caso del robot SMART-3 S2, gli assi sono 6 più 2 aggiuntivi) e nella versione A in dotazione al
laboratorio, rende disponibile una potenza agli assi pari a 6 kVA per la gestione del robot con
leggera capacità di carico.
La sua struttura modulare può essere distinta nelle seguenti parti:
• Unità di Controllo (CU: Control Unit);
• Unità di Potenza (SAU: Servo Amplifier Unit);
4
• Circuiti di Alimentazione (PCA: Power Circuit Assembly);
• Circuiti di Distribuzione (SDA: Service Distribution Assembly);
• Interfaccia Operatore (IPA: Interface Panel Assembly);
• Modulo di Trasduzione Assoluta (RPT : Resolver Position Tracker).
La tensione di alimentazione necessaria è di 380 Vca trifase; il raffreddamento della cabina è ad aria
forzata.
La Control Unit è l’unità di controllo propriamente detta del sistema; ad essa sono affidati i
compiti di calcolo e di controllo delle traiettorie del robot, di acquisizione della posizione degli assi
in riferimento assoluto, di generazione dei riferimenti per i moduli di azionamento all’interno della
Servo Amplifier Unit, di gestione dei segnali di ingresso/uscita verso il robot e di quelli di allarme
provenienti dal robot o dalle protezioni dell’area di lavoro.
La Servo Amplifier Unit rappresenta l’unità di potenza del controllo COMAU, riceve in ingresso i
segnali per la gestione degli assi provenienti dalla Control Unit, a cui è collegata.
Queste due unità sono alimentate dai circuiti che ricevono la tensione di alimentazione trifase in
ingresso e la trasformano e la distribuiscono a tutti i sottosistemi del C3G-900.
L’operatore controlla il funzionamento del robot tramite il pannello frontale dell’armadio. I
comandi eseguibili per mezzo dell’interfaccia operatore consentono: l’attivazione dell’interruttore
generale, l’arresto in emergenza del robot e la selezione degli stati (Programming e Auto-Local).
La programmazione del controllo, l’attivazione dei cicli di lavoro e la visualizzazione dei messaggi
sullo stato del robot avvengono per mezzo del terminale di programmazione (PTU).
Gli algoritmi di controllo di posizione usati dalla COMAU sul C3G-900 sono di due tipi:
assegnamento dei poli e regolatori di tipo PI.
Per entrambi i tipi di algoritmi sono presenti delle precompensazioni di velocità, accelerazione e
coppia.
Il C3G-900 è dotato di una memoria, per contenere i programmi con le istruzioni dei cicli di lavoro,
con capacità di 1 Mbyte; la memoria è di tipo RAM CMOS con batteria tampone, per mantenere i
dati in assenza di tensione di alimentazione, con autonomia massima di 15 giorni circa (400 ore).
Il sistema di controllo COMAU, come verrà approfondito in seguito, è formato da un
multiprocessore con microprocessori a 32 bit e interfacciamento su bus VME della Motorola;
inoltre è integrato, nel sistema stesso, un PLC in grado di gestire fino a 1024 ingressi/uscite per la
programmazione di cicli accessori.
5
Il linguaggio di programmazione è chiamato PDL2 ed è simile al Pascal; esso è un linguaggio
testuale ‘compilato’, nel senso che le istruzioni vengono scritte in formato ASCII, tradotte in codice
oggetto dal microprocessore che governa l’apparecchiatura ed, infine, immesse in memoria.
Questo è importante soprattutto per la risoluzione in tempo reale di complicate operazioni, come
l’inversione della cinematica; inoltre con questo tipo di linguaggi è possibile generare un archivio
nel quale vengono individuati ed elencati tutti gli errori formali contenuti nei programmi.
Oltre alla programmazione testuale, attraverso il PDL2, è possibile anche la programmazione per
insegnamento diretto, tramite il linguaggio EZ, che avviene memorizzando i movimenti eseguiti dal
braccio del robot, guidato dal programmatore per mezzo del pannello mobile di comando (PTU).
Nella programmazione per apprendimento i segnali generati dal movimento vengono convertiti in
istruzioni in linguaggio PDL2 dall’unità di governo del robot.
Quest’ultimo tipo di programmazione è più immediato, ma ha lo svantaggio di permettere solo la
realizzazione di programmi semplici.
In entrambi i tipi di programmazione la traiettoria, cioè l’evoluzione descritta dal braccio durante
l’esecuzione di un movimento, può essere di due tipi:
1) traiettoria a livello di giunti: ogni movimento contiene dettagli sui singoli attuatori. Il
movimento dell’utensile, situato all’estremità del polso, sebbene ripetibile, non è prevedibile.
Questo, però, rappresenta il modo più rapido per spostamenti da una posizione all’altra.
2) traiettoria a livello di braccio o lineare: il centro dell’utensile (Tool Center Point-TCP), nello
spostamento da un punto all’altro, mantiene un movimento rettilineo e l’orientamento dell’utensile
varia in modo graduale, grazie al fatto che l’attuatore finale viene guidato attraverso l’uso delle
coordinate cartesiane.
Le istruzioni del movimento programmate dall’utente fanno riferimento alle posizioni x, y, z del
centro dell’utensile; queste vengono convertite automaticamente dall’unità di governo del robot,
tramite l’operazione di inversione della cinematica, in variabili dei singoli giunti. Questa
operazione, però, richiede tempo, rallentando le operazioni di spostamento fra due punti.
Il sistema di misura di posizione assi è realizzato con un solo resolver integrato in ciascun motore e
un modulo di trasduzione assoluta RPT (Resolver Position Tracker).
Il modulo RPT è costituito da una scheda alloggiata nella base del robot; esso rende il robot
assoluto perché i dati in essa memorizzati vengono mantenuti anche in assenza di alimentazione.
Ogni Resolver, con relativo modulo di conversione analogico/digitale, è accoppiato all’albero
motore e fornisce i 2 byte meno significativi della posizione assoluta rilevata, quindi un giro del
6
rotore viene discretizzato in 65536 posizioni diverse, mentre spetta al modulo RPT fornire i
rimanenti 2 byte più significativi rappresentanti il numero di giri del motore.
La tensione di eccitazione al resolver viene fornita da RPT stesso ed è pari a: V f te = 6 2sen( )π
volt, con f = 4.88 kHz, e quindi implica che ogni 200 microsecondi venga rilevata la posizione
angolare, ovvero ogni periodo di chiusura degli anelli di regolazione delle correnti degli
azionamenti brushless dei motori.
Il modulo RPT con l’unità di governo C3G-900, può funzionare in due modi:
• modo giorno: robot acceso;
• modo notte: robot spento, ciò significa che entra in funzione un alimentatore switching,
alimentato dalla batteria tampone, che continua ad eccitare il resolver e in questo modo si riesce
a rilevare la nuova configurazione del robot nel caso di movimento ad unità di governo spenta.
Inoltre il modulo RPT determina la velocità dell’albero motore tramite la derivazione numerica
della posizione e memorizza le informazioni caratteristiche del robot su cui è installato quali, ad
esempio, il numero di assi, le caratteristiche meccaniche ed elettriche ed il numero di serie. Ciò
consente all’unità di controllo di effettuare la verifica della congruenza del sistema.
1.2 GESTIONE DELLA POSIZIONE
Scopo di questo paragrafo è illustrare quali sono le componenti hardware che consentono di
realizzare la gestione e il controllo della posizione dei giunti del robot e quindi dell’effettore finale.
La CU si basa su un bus VME della Motorola e comprende due schede: la Robot CPU (RBC) e la
Servo Control CPU (SCC).
La RBC è dotata di una CPU 68020 della Motorola; essa gestisce l’interfaccia uomo-macchina,
traduce ed interpreta i programmi in PDL2.
Sulla RBC è alloggiata quell’area di memoria, detta memoria condivisa (shared memory), a cui
possono accedere tutte le schede connesse con il bus VME, compresa la RBC stessa.
La SCC, invece, è equipaggiata con una CPU 68020, una FPU 68882 (FPU : Floating Point Unit),
entrambe della Motorola, ed un DSP 320C25 della Texas TMS.
7
RBC SCC SIM IOM PLC
I/O
MC 68020 MC 68020MC 68882
DSP TMS 320C256 assi
(massima espansione: 8)
Ingressi /Uscite di sistema
Base:16 ingressi15 uscite
Massima espansione: 200 punti di ingresso/uscita
MC 68020
Ingressi / Uscite remoti
Massima espansione: 1024 punti
Linea ad alta velocità
(1 Mbit/s)
VME BUS
Figura 1.3: Architettura dell’elettronica del C3G-900.
La CPU 68020 e la FPU 68882 eseguono la generazione della traiettoria, sia in coordinate
cartesiane, che nelle coordinate di giunto, e la cinematica inversa; il DSP, invece, esegue la
microinterpolazione del riferimento di posizione ed il controllo della posizione a livello di giunto.
I riferimenti di posizione vengono aggiornati ogni 10 ms, mentre il periodo di campionamento
dell’anello del controllo d’asse è di 1 ms; per permettere la corretta sincronizzazione di questi due
sistemi è necessario il microinterpolatore, che provvede alla generazione di 10 valori di riferimento,
ogni 10 ms, da inviare in ingresso al controllo d’asse.
Interprete micro-interpolatorecinem.
inversa
generaz.traiettoria
controllod'asse
.PDL
interfacciauomo-macchina Xrif.j
TETArif.j
TETAj
RBC SCC
''
j=1,...,6: è ilgenerico giunto
j
Ij
100 Hz 1 kHz
Figura 1.4: Schema funzionale della CU.
Il valore di riferimento della corrente, che costituisce l’uscita del controllo d’asse, viene inviato in
ingresso all’unità di potenza dei servo-amplificatori (SAU), che è in grado di alimentare i motori
sincroni del robot ed ha una struttura modulare costituita da:
8
• DPS Drive Power Supply contiene l’alimentatore di potenza, il raddrizzatore a ponte di diodi, i
circuiti di comando della resistenza di frenatura ;
• SAM Servo Amplifier Module in cui risiede l’invertitore realizzato con IGBT che alimenta i
motori in base alla logica di comando PWM degli interruttori statici.
I moduli SIM e IOM (fig. 1.3) presenti nella CU, provvedono alle funzioni di sicurezza ed alla
connessione con eventuali dispositivi di ingresso ed uscita, sia digitali che analogici.
1.3 LA SCHEDA BIT3 403
La scheda BIT3 MODELLO 403, prodotta dalla Bit 3 Computer Corporation, è usata per
condividere memoria tra elaboratori IBM PC\AT e sistemi con bus di tipo VME, che nel caso in
esame sono rispettivamente: il PC con microprocessore Pentium della Intel ed il controllo C3G-900
della COMAU.
La scheda è costituita da 2 adattatori connessi da un cavo conduttore schermato: un adattatore è
alloggiato nel PC e l′altro nell’unità di governo. Questo apparato permette ai due sistemi, PC e
C3G-900, di condividere una porzione di memoria (shared memory), in modo che ognuno di essi
lavori e acceda ad essa come se fosse la propria.
La BIT3 sfrutta la mappatura in memoria; infatti attraverso la ponticellatura dei due adattatori, che
può essere variata in base alle esigenze dell’utente che usa la scheda, sono stabilite le zone di
partenza e di destinazione nello spazio di indirizzamento che permettere la comunicazione tra i due
sistemi. Il passaggio dei dati avviene attraverso degli interrupt la cui priorità viene definita dalle
ponticellature effettuate sulle schede.
I temporizzatori dei due bus (AT e VME) non sono collegati, in questo modo il sistema più veloce,
cioè il PC, lavora alla sua frequenza di 90 MHz e quindi non viene rallentato dal sistema più lento,
il C3G-900 che lavora, a seconda del modo di funzionamento, alle frequenze di 1 kHz oppure di 50
Hz. Infatti i due bus vengono connessi tra loro solo quando viene fatto riferimento ad un indirizzo
corrispondente all’area di memoria condivisa, che viene automaticamente tradotto in un indirizzo
dell’altra scheda.
Nella scheda presente all′interno del sistema PC\AT (fig.1.5), vengono definite delle zone di
memoria, attraverso la ponticellatura, che sono:
1) VMEbus RAM;
2) Remote bus RAM;
3) I/O range;
9
4) Interrupt Request (IRQ).
Figura 1.5: Scheda per il sistema PC\AT
1) VMEbus RAM
È una zona di memoria chiamata “memory window”, dedicata alla comunicazione tra i due sistemi;
l′accesso a quest’area è consentito al solo bus VME.
2) Dual Port RAM
La Dual Port RAM è una zona di memoria che permette il passaggio di dati dal sistema VME al
PC\AT sotto il controllo del processore presente sul primo sistema.
L′accesso è consentito a tutti e due i sistemi.
3) I/O Range
È usato per determinare quali delle uscite del sistema PC\AT devono essere dedicate alla scheda
presente sul sistema stesso.
4) Interrupt Request (IRQ)
Si tratta di stabilire quale interrupt, fra tutti quelli possibili della scheda VME, debba indirizzarsi
all’ingresso di richiesta di interrupt (IRQ) della scheda del sistema PC\AT. Anche in questo caso
l’ingresso scelto non deve essere condiviso con nessun altro sistema presente nell’architettura del
sistema.
10
Sulla scheda sono presenti anche la morsettiera di sistema (SYS) e il temporizzatore (Timing) che,
però, non devono essere modificate rispetto alla configurazione originale.
La scheda presente nel sistema con bus VME (fig.1.6), cioè il controllo C3G-900 della COMAU,
consente che le schede ad esso collegate vengano controllate dall’esterno. Nell’adattatore vengono
definite delle zone di memoria, attraverso la ponticellatura, che sono:
1) linee di Interrupt;
2) livelli del Bus Request (BREQ) e di Bus Grant (BGO-BGIN);
3) I/O range;
4) Dual Port Ram;
5) Address Bias.
Figura 1.6: Scheda per il sistema con bus VME.
1) Linee di Interrupt
La scheda può supportare due tipi diversi di interrupt chiamati: PT (per Interrupt programmato
verso il PC\AT), e PR (per Interrupt programmato verso il sistema con bus VME).
Nel caso in esame, per il fatto che si trasferisce il comando del C3G-900 al PC, è stato scelto il
primo tipo di Interrupt.
2) Livelli del Bus Request (BREQ) e di Bus Grant (BGO-BGIN)
11
Stabiliscono i livelli di richiesta (BREQ) e di rilascio (BGO-BGIN) del bus VME da parte dei
dispositivi esterni. La configurazione scelta corrisponde al caso in cui il sistema VME non comanda
il sistema.
3)I/O Range
È usato per determinare quali delle uscite del sistema VME devono essere dedicate alla scheda
presente sul sistema stesso.
4) Dual Port Ram
In questo caso deve essere determinata l’ampiezza degli indirizzi sul bus attraverso i quali si possa
leggere o scrivere sulla Dual Port RAM. In corrispondenza dei morsetti della PORT RAM LO si
fissa l’indirizzo di partenza sul bus VME, mentre tramite PORT RAM HI si sceglie l’indirizzo
finale.
5) Address Bias
Stabilisce una corrispondenza e aggiusta sul sistema VME gli indirizzi provenienti dal cavo di
connessione delle schede, in modo che vengano ripristinati gli indirizzi esatti di memoria all’interno
del sistema VME.
Anche su questa scheda è presente una morsettiera precisamente quella di sistema (SYS), che non
deve essere modificata rispetto alla configurazione di partenza.
Per l’uso della scheda, quindi ogni volta che si vuole comandare il robot attraverso il PC, è
necessario lanciare il programma che esegue l’inizializzazione della comunicazione tra i due diversi
sistemi. L’eseguibile di questo programma si chiama B3INIT.EXE e si trova nella directory:
PCC3LINK\SETUP.
1.4 PC-C3LINK
L′unità di governo C3G-900, normalmente, funziona in modo chiuso, cioè non consente di avere
accesso né ai parametri, né alle variabili di sistema.
Per poter realizzare il controllo del robot con il PC è stato realizzato il cosiddetto ‘controllo aperto’
(fig.1.7): sono stati inseriti gli adattatori BUS-to-BUS della BIT3 nell’unità di governo e
nell’elaboratore; con quest’ultimo, utilizzando un pacchetto software denominato PC-C3LINK,
viene attivata la comunicazione tra il PC ed il C3G-900 e l’utente può accedere alle variabili del
robot e sviluppare nuovi algoritmi di controllo, implementati in linguaggio ANSI C della Borland.
12
Il controllo è stato aperto connettendo il bus VME con quello del PC. Lo scambio dei dati avviene
sempre nella memoria condivisa, sull’RBC dell’unità di controllo del C3G-900.
La sincronizzazione tra i due sistemi è ottenuta attraverso dei segnali di interrupt generati dal C3G-
900, con frequenza prefissata, ed ogni volta che il PC riceve un segnale esso:
- legge i dati dalla memoria condivisa;
- elabora i dati (secondo l’algoritmo da eseguire);
- scrive i dati ottenuti all’interno della memoria condivisa (dati che poi vengono attuati dal
controllore C3G-900).
Figura 1.7: Configurazione del ‘controllo aperto’.
Il software PC-C3LINK mette a disposizione sette modi di funzionamento che differiscono tra di
loro per il livello di interazione con il controllo chiuso; questi modi sono:
Modo 0 :
Questo è, in realtà, il modo normale di funzionamento del controllore C3G-900. In questo modo
non viene inviato alcun segnale di interrupt al PC e non avviene nessuno scambio di dati tra i due
sistemi.
Modo 1:
In questo modo il PC può leggere i seguenti dati:
- riferimenti di posizione in coordinate cartesiane;
- riferimenti di posizione in coordinate del giunto;
- riferimenti di velocità;
13
- posizioni degli assi dei motori;
- riferimenti di corrente dei motori;
- indicatori di stato di sistema (flag) che forniscono informazioni sullo stato del C3G-900;
- dati del robot;
e può mandare al controllore COMAU:
- riferimenti di posizione in coordinate cartesiane;
- riferimenti di posizione in coordinate del giunto (sono consentite solo ‘piccole variazioni’);
- compensazioni di corrente da aggiungere ai riferimenti di corrente generati dal C3G-900
(precompensazione di corrente).
Modo 2:
In questo modo il PC può leggere gli stessi dati letti nel modo 1 e può inviare al controllore
COMAU:
- riferimenti di posizione in coordinate cartesiane;
- precompensazioni di corrente.
Modo 3:
In questo modo il PC può solo leggere i dati provenienti dal controllore C3G-900, che sono gli
stessi letti nel modo 1.
Modo 4:
Il PC può leggere i seguenti dati:
- posizioni degli assi dei motori;
e può inviare al C3G-900 i:
- riferimenti di corrente dei motori.
Modo 5:
È il duale del modo 2. Il PC può leggere gli stessi dati del modo 1, e può inviare al controllo
COMAU:
- riferimenti di posizione in coordinate di giunto;
- riferimenti di velocità;
- precompensazioni di corrente.
14
Modo 6:
È il duale del modo 4, infatti il PC può leggere i seguenti dati:
- posizioni degli assi dei motori;
- correnti di riferimento dei motori;
e può inviare al C3G-900 i:
- riferimenti di posizione dei motori.
I modi 1, 2, 3, e 5, interagiscono con il C3G-900 a livello di generazione della traiettoria, operando
ad una frequenza di 100 Hz.
Con questi modi di funzionamento il PC riceve un segnale di interrupt dall’unità di governo ogni 20
ms. Quando l’interrupt è rilevato dall’unità di controllo, si hanno 18 ms per realizzare le seguenti
operazioni:
- trasferimento dei dati dalla memoria condivisa all’interno del PC in una memoria tampone di
ingresso (buffer di input);
- preparazione dei dati che devono essere inviati alla C3G-900 e trasferimento di essi in una
memoria tampone di uscita (buffer di output) all’interno della scheda;
- trasferimento dei dati dalla memoria tampone di uscita alla memoria condivisa.
Tutto questo è schematizzato dalla fig1.8; più in dettaglio si hanno i seguenti passi:
Figura 1.8: Modalità di funzionamento 1, 2, 3, 5.
1) Il C3G-900 manda un interrupt al PC.
2) Il PC legge dalla memoria condivisa i dati scritti dalla C3G-900 e li mette in una memoria
tampone di ingresso.
3) Dopo che il PC ha preparato i dati per essere mandati alla C3G-900e li ha messi in una memoria
tampone di uscita, esso scrive il contenuto di questo memoria tampone nella memoria condivisa.
4) Il C3G-900 legge dalla memoria condivisa i dati scritti dal PC.
15
5) Il C3G-900 scrive un nuovo insieme di dati nella memoria condivisa.
Con questi modi rimangono attive tutte le funzioni del C3G-900 per la generazione della traiettoria
e le istruzioni di accensione (DRIVE ON) e di spegnimento (DRIVE OFF). I comandi di partenza e
di arresto del moto del robot vengono impartiti dall’utente attraverso la pressione di determinati
tasti della tastiera del PC, specificati nel programma in uso.
I modi 4 e 6 interagiscono con l’unità di governo a livello di controllo di giunti ed operano ad una
frequenza di 1 kHz.
Il PC riceve ad intervalli di 1 ms un segnale di interrupt dal C3G-900; dal momento in cui
l’interrupt viene rilevato l’elaboratore ha 0,7 ms per:
- acquisire le posizioni dei motori attraverso la lettura della memoria condivisa;
- calcolare, usando un opportuno algoritmo, i riferimenti di corrente dei motori;
- inviare i riferimenti calcolati al C3G-900 attraverso la scrittura nella memoria condivisa.
Durante i rimanenti 0,3 ms il controllo COMAU esegue le seguenti operazioni:
- acquisisce i riferimenti di corrente, tramite la lettura della memoria condivisa e invia questi dati al
DSP sulla SCC;
- legge dal resolver RPT le posizioni correnti dei motori;
- invia le posizioni al PC, scrivendole sulla memoria condivisa.
Tutto questo è schematizzato nella fig.1.9.
Figura 1.9: Modalità di funzionamento 4, 6.
A) Il PC legge la posizione dei motori.
B) Il PC realizza il controllo di posizione e prepara i riferimenti di corrente dei motori.
C) Il PC manda al C3G-900 i riferimenti di corrente dei motori.
16
D) Il C3G-900 manda i riferimenti di corrente dei motori al DSP e le posizioni dei motori al PC.
Con questi modi non rimangono attive tutte le funzioni del C3G-900 per la generazione della
traiettoria, e nemmeno le istruzioni di accensione (DRIVE ON) e di spegnimento (DRIVE OFF).
Infatti, l’utente trasmetterà all’unità di governo la traiettoria dei giunti che ha deciso di muovere e i
comandi di accensione e di spegnimento dei motori, direttamente dal PC.
L’utilizzo della versione del controllo aperto comporta rischi addizionali per la sicurezza, visto che
alcuni controlli (vedi Tab.1) non sono eseguiti dall’unità di governo.
Modi
Controlli 1 2 3 4 5 6
Sovravelocità X X X X X
Fine corsa X X X X
Errori di posizione dei motori X
Sovracorrenti X
Tab.1 Controlli da effettuare nelle varie modalità di funzionamento.
Il controllo di sovravelocità verifica che tutti i riferimenti di velocità dei giunti siano ,in valore
assoluto, minori dei seguenti limiti di velocità ( Tab.2 ):
Assi 1 2 3 4 5 6
Limiti di velocità [Deg/s] 160 115 200 430 360 300
Tab.2 Limiti di velocità.
Il controllo dei fine corsa verifica che tutti i riferimenti di posizione dei giunti rimangano all’interno
dei reali valori di corsa eseguibili dai giunti (questi valori compaiono nella tabella di caratteristiche
tecniche del robot).
Il controllo dell’errore di posizione dei motori verifica, per ogni giunto, che la differenza tra i
riferimenti di posizione dei motori e la posizione reale dei motori risulti, in valore assoluto, minore
della soglia fissata che è di uno o due giri di motore.
Il controllo delle sovracorrenti verifica che tutti i riferimenti di corrente siano inferiori, in valore
assoluto, dai seguenti limiti di corrente (Tab.3):
17
Assi 1 2 3 4 5 6
Limiti di corrente [A] 23 18 18 5.5 5.5 4
Tab. 3 Limiti di corrente.
Per questa ragione la Tecnospazio fornisce un pacchetto software di sicurezze, costituito da una
libreria di programmi in C (SAFETY.H).
Queste funzioni sono state preparate con lo scopo di controllare se certe soglie limite sono state
superate durante il movimento del robot con il controllo aperto. Tali funzioni devono essere
collegate al programma che l’utilizzatore vuole eseguire (il file SAFETY.H deve essere incluso).
Al termine del programma, se si sarà superata qualche soglia, la relativa procedura di verifica
emetterà un determinato codice, in modo che l’utente possa correggere l’errore da lui commesso
senza aver provocato danni al robot.
Un altro meccanismo di sicurezza che è sempre attivo in tutti i modi che si possono selezionare, è
quello chiamato WATCHDOG.
Lo scopo di questo meccanismo è doppio:
1) Controllare che il PC sia ”operativo” quando la comunicazione tra esso e il C3G-900 è stata
attivata. Infatti, se durante l’esecuzione di un programma sul PC, l’elaboratore andasse fuori uso
mentre il sistema si trova nello stato di DRIVE ON, ci si troverebbe in una situazione pericolosa
in cui non è possibile il governo del robot.
2) Controllare che il PC abbia completato il trasferimento dei dati all’unità di governo entro i limiti
di tempo (dall’arrivo del segnale di interrupt per i modi 1,2,3,5 il limite pari a 18 ms mentre per
i modi 4, 6 il limite è 0.7 ms).
Questo meccanismo di protezione utilizza un indicatore (flag) che può essere scritto e/o letto dai
due sistemi comunicanti e funziona come descritto in seguito.
Ad ogni segnale di interrupt il controllore verifica se il contenuto del flag è alto: in caso positivo
significa che il calcolatore lo ha posto precedentemente uguale ad 1 e di conseguenza l’unità di
controllo lo azzera; tutto questo fa supporre che il PC stia mantenendo il comando del robot e che
l’algoritmo di controllo sia attivo. In caso contrario il C3G-900 blocca il robot, frenando
meccanicamente tutti i giunti ed invia un segnale di ‘SYSTEM FATAL ERROR’, che attiva
automaticamente l’allarme sul pannello di programmazione del robot. L’utente in questo caso dovrà
sbloccare i giunti, utilizzando la procedura descritta nel manuale utente del PC-C3LINK.
18
Un altro flag utile per controllare il corretto svolgimento del programma implementato dall’utente è
quello chiamato INTACTIVE; esso è gestito dal programma e dagli interrupt che lo pongono
rispettivamente a 0 e a 1, ed è importante per la sincronizzazione del PC con il C3G-900.
Per passare dalla modalità normale di funzionamento (modo 0) del C3G-900 alle altre, è necessario
seguire la seguente procedura:
1. Entrare nell’ambiente di sviluppo del robot lanciando il programma PCCRT.EXE situato
all’interno della directory C:\ROBOT\EMULATOR.
2. Dare il segnale di invio dopo avere selezionato l’opzione PROGRAM dal menù che compare sul
video.
3. Dare il segnale di invio dopo aver scelto l’opzione GO.
4. Digitare INI e premere invio.
5. Ripetere l’operazione fatta al punto 3.
6. Digitare CNR1 e premere invio.
7. Scegliere il modo di funzionamento desiderato.
8. Se è stato scelto uno dei due modi 4 o 6, selezionare gli assi da abilitare al moto che verranno
sbloccati.
Al termine di questa procedura è necessario inizializzare il PC-C3LINK con l’istruzione B3INIT
situata nella directory C:\PCC3LINK\SETUP, che abilita la comunicazione tra i due sistemi.