Indice

Manipolatore

Il video mostra il manipolatore che svolge la funzione di carico scarico su una linea. Il programma è quello sviluppato nel 2013 quando sono stati acquistati i due trainer Fischertechnik per PLC.

Il manipolatore è dotato di una scheda di interfaccia per poterlo collegare al PLC (qui sono indicati ingressi e uscite). La scheda può essere alimentata direttamente dal PLC (con i 24V DC disponibili ai morsetti ''L+'' e ''M'') e ha ingressi e le uscite a 24V.

scheda di interfaccia per PLC

Sulla scheda 8 relè SPDT (singolo polo doppio contatto, come i deviatori) comandano i quattro motori nei due versi di rotazione. Lo schema di principio per ognuno dei motori è il seguente:

azionamento motore nelle due direzioni con due relè SPDT

Comandando opportunamente i due relè si riesce ad azionare il motore nelle due direzioni.

Nozioni di base sulla robotica (dal modulo 17 del testo)

L'unità 2 del modulo 17 del libro di testo, sulla robotica industriale, fornisce un'utile base teorica per il campo di applicazione del manipolatore.

La robotica industriale si inquadra nel contesto più generale dell'automazione e si prefigge gli stessi scopi:

La differenza sostanziale tra una semplice macchina automatica e un robot è la maggiore flessibilità operativa.

Dal punto di vista meccanico un robot manipolatore è fatto di:

La parte elettrica/elettronica comprende:

I campi di impiego tipici dei robot sono:

I giunti di un robot (vedi fig. 2 e 3) possono essere:

Il numero di giunti presenti definisce il gradi di libertà di un robot; questi sono al massimo 6: rotazione intorno a tre assi e spostamento lungo gli assi stessi (la fig. 7 mostra due robot con quattro e tre gradi di libertà). Lo spazio di lavoro è invece l'insieme dei punti raggiungibili dalla mano del robot (figura 8b).

I robot possono essere classificati in base al tipo di giunti che adottano (vedi figure da 8 a 15). Secondo questa classificazione il manipolatore che utilizzeremo è un robot cilindrico (RTT) con 4 gradi di libertà (un giunto di rotazione, due di traslazione più la pinza).

I robot possono vantare una grande flessibilità operativa ma presentano dei difetti; il principale è il costo elevato, dovuto all'uso di materiali pregiati e componenti sofisticati e oltre alle difficoltà di progettazione sia di natura elettronica (programmazione, gestione e azionamento) che meccanica (sollecitazioni statiche e dinamiche in una struttura a sbalzo).

Gli attuatori usati nei robot sono i servomotori, motori con prestazioni elevate accoppiati a sistemi di controllo elettronico (si parla di azionamenti, in questo caso), che permettono il controllo preciso di posizione, velocità e accelerazione.

La trasmissione del movimento tra gli organi meccanici può essere:

Quando è necessario convertire un moto rotatorio in uno lineare si sfruttano:

accoppiamento vite madrevite per il movimento avanti-indietro

La trasmissione del movimento rotatorio da un asse ad un altro si ottiene con:

Gli organi meccanici dedicati alla riduzione della velocità di rotazione sono detti riduttori. Il loro impiego è molto diffuso perché i motori elettrici tipicamente hanno velocità nominali piuttosto elevate mentre alcune applicazioni richiedono movimenti lenti e precisi. I riduttori sfruttano accoppiamenti con ruote dentate o rute e viti senza fine per ottenere velocità ridotte e coppie elevate.

L'immagine seguente mostra gli accoppiamenti con coppia conica e ruota-vite senza fine tra braccio e motore per il movimento di rotazione.

accoppiamenti meccanici per il movimento di traslazione

Lo studio analitico dei robot è piuttosto complicato e non sarà trattato in questa sede. Le discipline coinvolte sono:

Motori e sensori

Il manipolatore monta due motori DC semplici e due motori DC con encoder a 24V (datasheet motore con encoder).

Nei due motori senza encoder il sensore di posizione è esterno e piuttosto primitivo: una ruota con quattro sporgenze azionata dal motore preme un contatto mentre ruota generando degli impulsi (qui il datasheet dei contatti di scambio usati nella scheda anche per i finecorsa).

L'immagine seguente mostra motore e riduttore (neri) e la ruota (a sinistra) che preme il contatto generando gli impulsi.

Sensore ad impulsi per il movimento orizzontale

Il segnale prodotto non permette di stabilire il verso di rotazione ma può essere utilizzato per calcolare la velocità di rotazione e il movimento (relativo) del motore. Nel programma il segnale dal sensore ad impulsi fa incrementare un contatore dopo averlo azzerato con un finecorsa che indica il raggiungimento di una posizione ben precisa. In questo caso il valore del contatore indica la posizione assoluta mentre il movimento procede in un verso prestabilito, con il valore zero che corrisponde alla posizione iniziale.

Gli altri due motori hanno a bordo un encoder in quadratura (vedi pagina 41 del paragrafo 5 modulo 14 nel libro di testo). Ai morsetti di questi motori, oltre ai due terminali per l'alimentazione, troviamo un connettore a quattro fili per l'encoder, due per l'alimentazione del sensore e due per i segnali impulsivi prodotti dal sensore. I due segnali permettono di stabilire direzione, velocità e movimento relativo del motore. Se si accoppia all'encoder un finecorsa che segnali la posizione iniziale è possibile stabilire anche la posizione assoluta del motore.

Encoder e PLC

I segnali generati dall'encoder sono impulsivi e in quadratura (sfasati di un quarto di periodo); la loro frequenza dipende dalla velocità di rotazione ma può essere anche piuttosto elevata (fino a 1kHz). Nella figura seguente i due segnali, solitamente detti fase A e fase B:

segnali encoder in quadratura

Da questi segnali si ricava:

I segnali generati dall'encoder non possono essere gestiti utilizzando semplicemente due ingressi del PLC e un contatore CTUD perché potrebbero alternarsi con una velocità troppo elevata rispetto al tempo di esecuzione del PLC (il tempo di ciclo può arrivare a decine di millisecondi). Per usare un encoder è necessario utilizzare i contatori veloci (HSC high speed counter) del PLC configurando l'hardware della CPU e caricando la nuova configurazione. I contatori veloci HSC () si abilitano dalle Proprietà della CPU.

Configurazione CPU

Per una CPU serie 30 la configurazione hardware è la seguente:

L'indirizzamento dei contatori è predefinito:

Collegamenti alle morsettiere

Il manipolatore è controllato da una scheda a relè per il controllo dei quattro motori e la gestione dei sensori di posizione (due encoder e due generatori di impulsi). La scheda è collegata agli ingressi e alle uscite (digitali del PLC) con dei cavi. I cavi sono marcati con dei numeri che corrispondono all'indirizzo degli ingressi e delle uscite (per gli ingressi la numerazione non è a byte (I0.1 … I0.7 poi I1.1 …) ma progressiva fino a 11. All'ingresso I1.3 del PLC è collegato il pulsante di avvio.

Morsettiera della scheda di controllo del manipolatore:

morsettiera manipolatore

Uscite del PLC:

morsettiera di uscita del PLC

Ingressi del PLC (alla scheda manipolatore e al pulsante di start I1.3):

Morsettiera di ingresso del PLC

NB Per testare il programma con una CPU diversa conviene estrarre le morsettiere dal PLC in uso e inserirle nella seconda CPU.

Scaricare il programma dal PLC

E' stato complicato Non ho capito come farlo in maniera semplice:

Per portarlo su TIA 13 ho copiato il main, rcreato i contatori con i loro blocchi dati, ricreato la tabella delle variabili e la configurazione hardware (facile per i merker di stato, di tentativo per i contatori veloci per gli encoder)Più semplice come indicato sotto.

Si può scaricare il programma da PLC a Tia Portal:

Problemi e particolarità della soluzione 2013

Particolarità:

Difetti:

Indirizzamento

L'indirizzamento di ingressi e uscite - pur usando nomi diversi - segue lo stesso schema del programma creato nel 2013 per poter utilizzare entrambi i programmi con lo stesso PLC senza modificare i collegamenti nelle morsettiere.

indirizzo nome variabile commento
I0.2SFopenfinecorsa pinza aperta
I0.3SFupfinecorsa salita
I0.6BQcloseimpulsi chiusura pinza
I0.7SFcwfinecorsa rotazione oraria
I1.0SFbackfinecorsa indietro
I1.1BQforwardimpulsi avanti
I1.3SBstartpulsante avvio
ID1000HSCvertconteggio encoder verticale (discesa)
ID1008HSCrotconteggio encoder rotazione (antioraria)
Q0.0Mopenapertura pinza
Q0.1Mclosechiusura pinza
Q0.2Mforwardavanti
Q0.3Mbackindietro
Q0.4Mdowndiscesa
Q0.5Mupsalita
Q0.6Mcwrotazione oraria
Q0.7Mccwrotazione antioraria
M2.0P0homing: avvio parallelismo
M2.1P1homing: rotazione oraria
M2.2P2homing: attesa rotazione
M2.3P3homing: salita
M2.4P4homing: attesa salita
M2.5P5homing: indietro
M2.6P6homing: attesa indietro
M2.7P7homing: apertura pinza
M3.0P8homing: attesa pinza
M3.1P9attesa pulsante
M3.2P10parallelismo: rotazione antioraria
M3.3P11parallelismo: attesa rotazione
M3.4P12parallelismo: avanti
M3.5P13parallelismo: attesa avanti
M3.6P14carico: discesa
M3.7P15carico: chiusura pinza
M4.0P16carico: salita
M4.1P17scarico: rotazione antioraria
M4.2P18scarico: discesa
M4.3P19scarico: apertura pinza
M4.4P20scarico: salita

Diagramma temporale

Osservando il manipolatore in azione comandato dal programma sviluppato nel 2013 si può tracciare il seguente diagramma temporale:

diagramma temporale manipolatore con programma del 2013

SFC

Il diagramma SFC che replica il diagramma temporale esistente è il seguente:

SFC del manipolatore

Osservazioni:

Scrivere il programma per PLC: da SFC a ladder

Con la tecnica batch è facile tradurre il diagramma SFC in un programma KOP (ladder) che ne implementa la logica. Il procedimento prevede di:

Possibili miglioramenti

Riferimenti

Risorse

1)
con questo tipo di encoder non si può usare HSC2 perché i suoi indirizzi si sovrapporrebbero a quelli di HSC1
2)
quelli veloci sono già impostati in hardware e le variabili associate possono essere utilizzate direttamente nel programma