Sei sulla pagina 1di 297

UNIVERSIT DEGLI STUDI DI SIENA SEDE DI AREZZO

Corso di Laurea in Ingegneria dellAutomazione

Automazione Industriale
ANNO ACCADEMICO 2005-2006

Ing. Daniele Rapisarda

ANNO ACCADEMICO 2005-2006

Appunti del Corso

Obiettivi: Il corso fornisce conoscenze relative all'automazione di processi industriali ed alla robotica, con particolare attenzione all'automazione ON / OFF, alla pneumatica, ai controllori a logica programmabile ed alle loro applicazioni. Il corso sar arricchito da esercitazioni in laboratorio dove sar possibile sviluppare alcune delle applicazioni trattate Argomenti:
L'automazione dei processi industriali. Cenni di robotica Il robot Adept Cobra 600 (manipolatore e controllo) Il linguaggio di programmazione V+ Circuiti combinatori e numerici. Automazione ON / OFF La Pneumatica Elementi introduttivi ai PLC Programmazione di PLC Il linguaggio a contatti. Esempi di applicazioni controllate mediante PLC Componentistica per l'automazione. Attuatori elettrici Sensori

Release: Febbraio 2006

I dc nie
1 LAUTOMAZIONE DEI PROCESSI INDUSTRIALI ................................................................................... 4 1.1 INTRODUZIONE ................................................................................................................................................... 4 1.2 IL PROBLEMA DELLAUTOMAZIONE ................................................................................................................... 7 1.3 GLI AUTOMATISMI INDUSTRIALI ........................................................................................................................ 8 1.4 UN AUTOMATISMO: IL CORPO UMANO ............................................................................................................... 9 1.5 LA ROBOTICA ................................................................................................................................................... 10 1.5.1 La nozione di robot .................................................................................................................................. 10 1.5.2 Definizioni e classificazioni..................................................................................................................... 12 1.5.3 Struttura operativa gradi di libert ed architettura................................................................................ 15 1.5.4 Gradi di libert ........................................................................................................................................ 16 1.5.5 Architettura del braccio........................................................................................................................... 18 1.6 ROBOT INDUSTRIALI: CARATTERISTICHE E METODI DI TEST ........................................................................... 24 1.6.1 Verifica della precisione e ripetibilit di posizionamento ...................................................................... 25 1.7 EVOLUZIONE DEI SISTEMI DI AUTOMAZIONE ................................................................................................... 29 2 ESEMPIO DI MANIPOLATORE: ADEPT ROBOT COBRA 600 ............................................................ 31 2.1 IL MANIPOLATORE ............................................................................................................................................ 31 2.2 MODALIT OPERATIVE DEL ROBOT ................................................................................................................. 35 2.2.1 Modalit operativa manuale ................................................................................................................... 35 2.2.2 Modalit operativa automatica ............................................................................................................... 36 2.3 MODULO DI COMANDO PORTATILE MCP......................................................................................................... 36 2.4 STATI DEL ROBOT ............................................................................................................................................. 41 2.4.1 Stato World .............................................................................................................................................. 41 2.4.2 Stato Joint ................................................................................................................................................ 41 2.4.3 Stato Tool ................................................................................................................................................. 42 2.5 ROBOT LOCATIONS .......................................................................................................................................... 43 2.5.1 Transformations....................................................................................................................................... 44 2.5.2 Precision Points....................................................................................................................................... 49 2.6 VARIABILI PER IDENTIFICAZIONE DI "LOCATIONS" ......................................................................................... 50 2.6.1 Variabili per identificazione di matrici ("Array")................................................................................... 51 2.6.2 Come definire le variabili........................................................................................................................ 52 2.7 COMPOUND TRANSFORMATIONS (TRASFORMAZIONI COMPOSTE)................................................................... 53 2.8 ROBOT MOTIONS .............................................................................................................................................. 55 2.8.1 Procedural Motion................................................................................................................................... 56 2.9 ROBOT SPEED ................................................................................................................................................... 58 2.10 SOMMARIO DELLE ISTRUZIONI MOTION CONTROL....................................................................................... 59 2.11 IL CONTROLLER ADEPT MV......................................................................................................................... 66 2.12 DESCRIZIONE DEL SISTEMA DI CONTROLLO ................................................................................................. 75 2.12.1 Amplifier Control Section .................................................................................................................... 78 2.13 INTERCONNESSIONE HARDWARE DELLE SCHEDE SUL CONTROLLER ADEPT .............................................. 79 3 IL LINGUAGGIO DI PROGRAMMAZIONE V+........................................................................................ 80 3.1 CREAZIONE DI UN PROGRAMMA....................................................................................................................... 80 3.1.1 Robot Control Programs ......................................................................................................................... 81 3.1.2 General Programs ................................................................................................................................... 81 3.2 ORGANIZZAZIONE DI UN PROGRAMMA ............................................................................................................ 81 3.2.1 Logica computazionale multi-tasking..................................................................................................... 81 3.3 PROGRAM CONTROL ........................................................................................................................................ 82 3.3.1 Unconditional Branch Instructions ......................................................................................................... 82 3.3.2 Program Interrupt Instructions ............................................................................................................... 84 3.3.3 Logical (Boolean) Expressions................................................................................................................ 88 3.3.4 Conditional Branching Instructions ........................................................................................................ 90 3.3.5 Looping Structures................................................................................................................................... 94 3.4 SUMMARY OF PROGRAM CONTROL KEYWORDS ............................................................................................. 98 3.5 PRINCIPALI OPERAZIONI DI INPUT / OUTPUT.................................................................................................. 101 3.5.1 Terminal I/O .......................................................................................................................................... 101

3.5.2 Digital I/O.............................................................................................................................................. 112 3.6 EXAMPLE V + PROGRAMS .............................................................................................................................. 118 3.6.1 Introduction ........................................................................................................................................... 118 3.6.2 Pick and Place ....................................................................................................................................... 119 3.6.3 Menu Program....................................................................................................................................... 122 3.6.4 Teaching Locations With the MCP........................................................................................................ 124 3.6.5 Defining a Tool Transformation............................................................................................................ 125 3.6.6 Others..................................................................................................................................................... 127 4 SISTEMI NUMERICI E ALGEBRA DI BOOLE ....................................................................................... 129 4.1 SISTEMA NUMERICO DECIMALE ..................................................................................................................... 129 4.2 SISTEMA NUMERICO BINARIO ........................................................................................................................ 130 4.2.1 Le operazioni aritmetiche nel sistema binario ...................................................................................... 133 4.3 DISPOSITIVI BINARI ........................................................................................................................................ 138 4.4 ALGEBRA DI BOOLE ....................................................................................................................................... 139 4.5 TEOREMI FONDAMENTALI DELLALGEBRA DI BOOLE ................................................................................... 151 5 AUTOMAZIONE ON / OFF .......................................................................................................................... 156 5.1 PNEUMATICA .................................................................................................................................................. 156 5.1.1 Caratteristiche della pneumatica .......................................................................................................... 158 5.1.2 Il concetto di pressione.......................................................................................................................... 159 5.1.3 Cambiamento di stato dei gas ............................................................................................................... 161 5.1.4 Aria compressa ...................................................................................................................................... 162 5.2 I CILINDRI PNEUMATICI .................................................................................................................................. 163 5.2.1 Cilindri a semplice effetto...................................................................................................................... 164 5.2.2 Cilindri a doppio effetto......................................................................................................................... 166 5.2.3 Altre tipologie di cilindro ...................................................................................................................... 170 5.3 MOTORI PNEUMATICI ..................................................................................................................................... 173 5.4 LA TEORIA DEL VUOTO................................................................................................................................... 174 5.4.1 Grado di vuoto ....................................................................................................................................... 176 5.4.2 Generatore di vuoto ............................................................................................................................... 177 5.5 COMANDI PER ATTUATORI PNEUMATICI ........................................................................................................ 181 5.6 DISTRIBUTORI ................................................................................................................................................ 182 5.7 ELETTROPNEUMATICA ................................................................................................................................... 183 5.8 IL REL ........................................................................................................................................................... 185 5.9 SISTEMI DI CONTROLLO DIGITALI .................................................................................................................. 187 5.9.1 Circuiti combinatori e numerici ............................................................................................................ 187 6 ELEMENTI INTRODUTTIVI AI PLC ........................................................................................................ 195 6.1 PRINCIPIO DI FUNZIONAMENTO ...................................................................................................................... 199 6.2 LA PROGRAMMAZIONE DEI PLC .................................................................................................................... 203 6.3 LA PROGRAMMAZIONE IN DIAGRAMMA A REL (KOP)................................................................................. 205 6.3.1 Termini di base ...................................................................................................................................... 205 6.3.2 Creazione di un programma.................................................................................................................. 207 6.3.3 Aree di memoria..................................................................................................................................... 209 6.4 CODICE MNEMONICO ...................................................................................................................................... 212 6.4.1 Struttura della memoria di programma ................................................................................................ 212 6.5 ISTRUZIONI DEL DIAGRAMMA A REL ............................................................................................................ 213 6.5.1 LOAD e LOAD NOT .............................................................................................................................. 213 6.5.2 AND e AND NOT................................................................................................................................... 214 6.5.3 OR e OR NOT ........................................................................................................................................ 214 6.5.4 Combinazione di istruzioni AND e OR.................................................................................................. 215 6.5.5 OUTPUT e OUTPUT NOT.................................................................................................................... 215 6.5.6 Listruzione END ................................................................................................................................... 216 6.5.7 AND LOAD ............................................................................................................................................ 216 6.5.8 OR LOAD............................................................................................................................................... 218 6.5.9 Istruzioni di blocchi logici in serie ........................................................................................................ 218 6.5.10 Come codificare pi istruzioni .......................................................................................................... 220 6.5.11 Salti .................................................................................................................................................... 220 6.5.12 SET e RESET ..................................................................................................................................... 221 6.5.13 Istruzioni differenziali sul fronte di salita/discesa ............................................................................ 222 6.6 ISTRUZIONI NEL DIAGRAMMA A REL (PER PLC OMRON)............................................................................. 223 6.6.1 LOAD, LOAD NOT, AND, AND NOT, OR e OR NOT ......................................................................... 223 6.6.2 AND LOAD e OR LOAD ....................................................................................................................... 224 6.7 ISTRUZIONI PER IL CONTROLLO DEI BIT ......................................................................................................... 224 6.7.1 OUTPUT e OUTPUT NOT OUT e OUT NOT................................................................................... 224 6.7.2 SET e RESET SET e RSET.................................................................................................................. 225 6.7.3 DIFFERENTIATE UP e DOWN DIFU(13) e DIFD(14) ................................................................... 226 6.8 ISTRUZIONI PER TEMPORIZZATORI E CONTATORI .......................................................................................... 227 6.8.1 TIMER TIM......................................................................................................................................... 228 6.8.2 COUNTER CNT.................................................................................................................................. 229

6.9 ISTRUZIONI DI SCORRIMENTO ........................................................................................................................ 231 6.9.1 SHIFT REGISTER SFT(10)................................................................................................................ 231 6.10 ISTRUZIONI DI SPOSTAMENTO DATI ........................................................................................................... 232 6.10.1 MOVE MOV(21) ............................................................................................................................. 232 6.11 ISTRUZIONI DI COMPARAZIONE .................................................................................................................. 233 6.11.1 COMPARE CMP(20)...................................................................................................................... 233 6.12 ACCORGIMENTI DI PROGRAMMAZIONE...................................................................................................... 235 6.13 LA CONSOLE DI PROGRAMMAZIONE .......................................................................................................... 236 6.13.1 Funzionamento della console operativa............................................................................................ 238 6.13.2 Cancellazione della memoria ............................................................................................................ 239 6.13.3 Inserimento e cancellazione delle istruzioni ..................................................................................... 240 6.13.4 Inserimento o scrittura dei programmi ............................................................................................. 242 6.13.5 Verifica del programma..................................................................................................................... 244 6.14 ESEMPIO DI PROGRAMMAZIONE MEDIANTE CONSOLE ............................................................................... 245 6.14.1 Operazioni preliminari ...................................................................................................................... 245 6.14.2 Esempio.............................................................................................................................................. 246 6.14.3 Procedure di programmazione.......................................................................................................... 247 6.14.4 Verifica del programma..................................................................................................................... 250 6.14.5 Esecuzione del test in modalit MONITOR ...................................................................................... 251 6.15 ESEMPI APPLICATIVI DI PROGRAMMAZIONE PER PLC OMRON ................................................................. 252 7 ATTUATORI ELETTRICI............................................................................................................................ 270 7.1.1 7.1.2 7.1.3 7.1.4 8 Motori a corrente continua.................................................................................................................... 270 Motori "brushless" a magnete permanente ........................................................................................... 273 Motori a corrente alternata................................................................................................................... 273 Motori passo-passo................................................................................................................................ 274

I SENSORI NELLAUTOMAZIONE........................................................................................................... 278 8.1 SENSORI PER IL CONTROLLO DI MOVIMENTO E DI SPOSTAMENTO ................................................................. 279 8.1.1 Potenziometri ......................................................................................................................................... 279 8.1.2 Trasformatori differenziali variabili lineari (LVDT) ............................................................................ 281 8.1.3 Codificatori (encoder) ........................................................................................................................... 281 8.2 SENSORI DI PROSSIMIT ................................................................................................................................. 284 8.2.1 Sensori fotoelettrici (o sensori ottici) .................................................................................................... 284 8.2.2 Sensori a principio induttivo ................................................................................................................. 286 8.2.3 Sensori a principio capacitivo............................................................................................................... 287 8.2.4 Sensori a ultrasuoni............................................................................................................................... 287 8.2.5 Sensori magnetici a contatti reed .......................................................................................................... 288 8.3 SENSORI DI DEFORMAZIONE E DI FORZA ........................................................................................................ 289 8.3.1 Estensimetri ........................................................................................................................................... 290 8.3.2 Sensori tattili.......................................................................................................................................... 291 8.4 SENSORI DI VISIONE ....................................................................................................................................... 292

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

1 Lautomazione dei processi industriali


1.1 Introduzione Il termine automazione entra nel vocabolario tecnico italiano agli inizi degli anni 60 dopo essere stato coniato negli Stati Uniti, dove appare il termine Automation per indicare i principali aspetti della rivoluzione organizzativa e gestionale in atto nei processi industriali ed in genere in qualsiasi processo tecnologico complesso. In senso pi ristretto, per automazione industriale si intende comunemente quellinsieme di teorie e tecniche operative utilizzate per progettare e realizzare nel campo industriale una progressiva sostituzione dellattivit umana con sistemi anche molto complessi di produzione, composti prevalentemente da macchine, dispositivi meccanici ed apparecchi elettrici. Si comprende come gli uffici di progettazione degli impianti industriali si debbano in quel periodo trasformare rapidamente. Per motivi storici essi erano, allepoca considerata, essenzialmente di cultura meccanica; mentre le nuove esigenze richiedono competenze non superficiali di elettrotecnica, elettronica, pneumatica, oleodinamica e, nei decenni successivi agli anni 60, anche di informatica. Si tratta quindi di una progettazione integrata, con forte contenuto di attivit interdisciplinari. Con laggettivo automatico si intende, come gi nel linguaggio comune, la propriet di qualsiasi apparato di perseguire in modo autonomo gli obiettivi assegnati, prendendo delle decisioni ed agendo di conseguenza. In un sistema automatico dunque riconoscibile un sistema delle decisioni (sistema di comando) ed un sistema di attuazione delle decisioni (sistema di potenza).

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il sistema di comando comprende sempre un sistema sensoriale che rileva costantemente gli effetti delle decisioni. In campo industriale, il panorama delle realizzazioni estremamente vasto e variegato. Sulla base di una comune tecnologia meccanica, la moderna automazione industriale impiega tutte le altre tecnologie conosciute: Elettrica Elettronica A fluido: idraulica e pneumatica

Attualmente nell'industria manifatturiera assistiamo ad un continuo inserimento di automatismi capaci di sostituire l'uomo in alcune funzioni che gli sono proprie. A seconda delle funzioni umane sostituite si ottiene la classificazione dei corrispondenti tipi di sistemi di automazione. Nel settore specifico dell'automazione industriale dei processi di produzione, la necessit di operare secondo i principi della flessibilit di montaggio e della qualit di produzione in un contesto altamente produttivo, implica la richiesta di un qualcosa che va leggermente oltre il concetto di robot: la linea integrata. Per specificare tipologicamente il campo di interesse, si consideri un esempio semplificativo: quello di una stazione per la composizione automatica (montaggio e assemblaggio) di un gruppo meccanico. Fino ad ora, per le operazioni di montaggio, nelle industrie venivano prese in considerazione le seguenti due soluzioni: Montaggio automatico tramite macchina speciale monoscopo Montaggio manuale affidato ad operai qualificati

La prima soluzione un classico esempio di automazione dedicata. Ogni stazione di lavoro contraddistinta da una estrema specializzazione; si esegue una sola operazione in sequenza ed il moto controllato da un dispositivo specificatamente costruito e non riconvertibile. La messa a punto spinta fino all'ottenimento delle prestazioni desiderate e l'economicit della soluzione legata a produzioni in grande serie. L'uso dell'uomo in qualit di macchina operatrice entro una catena di montaggio, ampiamente menzionata come aspetto alienante dei tempi moderni. E' comunque una soluzione "flessibile" poich sfrutta le potenzialit umane attribuendo all'operatore compiti molto ampi, tali cio da includere: l'ispezione delle parti, la verifica di avanzamento del lavoro, la trasformazione, correzione ed adattamento dei componenti difettosi, il collaudo del gruppo ottenuto, ecc... La nuova soluzione, quella dell'automazione industriale flessibile, comincia ora ad imporsi con l'evoluzione post-tayloristica dell'organizzazione del lavoro. Qualunque sia il tipo di processo impiegato, produrre significa soprattutto trasformare, cio effettuare un cambiamento nello stato, nella forma e nella natura di un "oggetto" per conferirgli lo status di "bene".

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per trasformare sono necessarie due cose: Energia spesa nella trasformazione Informazione utilizzata per pilotare l'impiego di energia

Negli ultimi anni, i sistemi di produzione hanno avuto una evoluzione determinata dall'ottimizzazione e dall'espansione di tali due componenti. Il superamento delle difficolt energetiche della produzione si attuato in tre fasi: 1. Impiego di macchine al posto del lavoro umano: fase della meccanizzazione 2. Sviluppo di nuovi processi fisici 3. Impiego di materiali tecnologicamente pi evoluti Il superamento delle difficolt organizzative ed informative della produzione si attuato nelle seguenti cinque fasi: 1. Divisione del lavoro 2. Alta concentrazione di manodopera 3. Produzione di massa 4. Automazione rigida 5. Automazione flessibile

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

L'automazione si inquadra quindi tra le soluzioni ai problemi organizzativi ed informativi della produzione e si propone di sollevare l'uomo dai compiti di conduzione, sincronizzazione e controllo delle macchine di produzione cercando contemporaneamente di migliorare il livello di efficienza delle stesse macchine e dei processi.

1.2 Il problema dellautomazione Stiamo assistendo oggi ad una progressiva emigrazione dei nostri processi produttivi pi importanti verso quei paesi a basso costo di manodopera. Forse non ci siamo ancora resi conto che, quando acquistiamo dei beni di consumo anche ad elevato contenuto tecnologico, nella maggior parte dei casi questi portano il marchio Made in Cina, Made in Korea, Made in Thailand. Per essere competitiva, in condizioni di mercato come quelle attuali, lindustria manifatturiera deve oggi produrre ad elevati livelli quantitativi e qualitativi. Gli obiettivi principali da raggiungere sono: Produrre a qualit costante Fornire le quantit che il mercato pu assorbire Migliorare la produttivit

In altri termini, importante mantenere una presenza sul mercato, ma anche seguirne levoluzione, come suggeriscono le moderne teorie legate alla fabbricazione flessibile. Lautomazione appare come una delle vie obbligatorie per conseguire gli obiettivi citati. Il grado di automazione di un sistema varia notevolmente in base alla natura del processo, alla sua complessit, alla conoscenza che se ne possiede ed agli obiettivi legati al progetto. Si possono distinguere almeno tre livelli di automatizzazione: -

Il livello di sorveglianza, che risponde ad esigenze di conoscenza tecnica ed


economica del processo controllato. Si tratta di una funzione passiva nei confronti del processo. Gli organi di controllo acquisiscono le informazioni, le analizzano e producono registrazioni e segnalazioni.

Il livello di guida operatore, che completa il precedente mediante elaborazioni pi

complesse delle informazioni ed offre ai gestori del processo gli elementi che consentono interventi di regolazione. -

Il livello di comando, che corrisponde allautomatizzazione completa di determinate


funzioni: dallacquisizione dei dati, al loro trattamento, al conseguente intervento sul processo. Luomo in questo caso escluso dalla gestione del processo, pu intervenire manualmente solo in caso di anomalie o interruzioni.

Anche lautomazione che interviene nellultimo dei tre livelli considerati pu essere di tipo diverso. Si hanno in particolare:

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Lautomazione elementare, realizzata su una macchina semplice o su parte di una


macchina complessa. Si pu trattare per esempio di automatizzare le funzioni di sicurezza o di sorveglianza dei tempi morti o di posizionamento dei pezzi. Gli automatismi corrispondenti sono generalmente ideati dal costruttore degli impianti cui sono destinati.

Lautomazione intermedia, intersessa macchine pi complesse o un insieme di


macchine semplici. I comandi corrispondenti sono legati al funzionamento delle macchine. E questo il dominio tipico dellautomazione industriale.

Lautomazione integrata, riguarda infine un intero reparto o addirittura lintera


fabbrica. Si ha in questo caso una connessione tra comandi, dati di lavorazione e dati gestionali. Ne risultano sistemi automatizzati, noti come FMS, nei quali lintervento umano minimo.

Nella presente trattazione si prender in considerazione il livello di automazione intermedia, nel quale si collocano i controllori programmabili.

1.3 Gli automatismi industriali Gi automatismi industriali sono dei dispositivi che permettono alla macchina o agli impianti di funzionare automaticamente. Essi sono realizzati con lo scopo di risolvere dei problemi di natura tecnica, economica ed umana. Un automatismo ben progettato: Semplifica considerevolmente il lavoro delluomo che, liberato dalla presenza costante sulla macchina, pu dedicarsi ad altre attivit pi gratificanti; Elimina le fasi complicate, pericolose o indesiderabili, facendole eseguire dalla macchina; Facilita i cambiamenti di produzione permettendo il passaggio da una quantit o da un tipo di produzione ad un altro Migliora la qualit dei prodotti asservendo la macchina a criteri di fabbricazione ed a tolleranze che saranno ripetute nel tempo Accresce la produzione oltre che la produttivit; Aumenta la sicurezza del personale Controlla e protegge gli impianti e le macchine Lautomatismo interviene in tutti gli stadi delle operazioni industriali, in campi assai diversi, quali le industrie di trasformazione, di fabbricazione, di trasporto, nelle macchine utensili.. oltre che nel settore terziario.

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.4 Un automatismo: il corpo umano Il migliore automatismo il corpo umano ed impressionante la sua analogia con le diverse parti di un automatismo industriale. Il nostro corpo contiene un certo numero di organi che sono dotati di tutti gli elementi necessari al loro funzionamento: automatismo cardiaco, automatismo dei centri vasomotori e respiratori, automatismo dellintestino, automatismo midollare. Il funzionamento del nostro sistema nervoso dipende dal mondo esterno e le nostre cellule nervose entrano in attivit sotto linfluenza di eccitazioni preliminari che vengono a manifestarsi o che, grazie alla nostra memoria, si sono prodotte anteriormente. Queste eccitazioni provengono sia dallinterno del nostro organismo, quindi dai nostri organi, sia dal mondo esterno che ci circonda. Esse agiscono sulla superficie del nostro corpo e pi particolarmente su talune zone idonee alla ricezione di queste eccitazioni, gli organi stessi. Senso del tatto: ci fa conoscere le qualit palpabili dei corpi, per mezzo delle sensazioni tattili (contatto e pressione), termiche (caldo e freddo) e dolorose Senso della vista: funzione per mezzo della quale noi percepiamo la luce, i colori, la forma degli oggetti nello spazio, tramite gli occhi, che sono sensibili a certe radiazioni Senso delludito: grazie allorecchio ed al sistema uditivo noi percepiamo le vibrazioni, elementi che costituiscono i suoni Senso dellodorato: che permette di percepire gli odori Senso del gusto: che, per mezzo della lingua, acquisisce i sapori.

A questi sensi si aggiunge quello dellequilibrio che ci informa sulla posizione del nostro corpo rispetto alla terra e di numerose sensazioni interne che, provenienti da ricettori sparsi in tutti i nostri organi, tengono conto di tutte le variazioni che si generano. Per analogia con un automatismo industriale, i cinque sensi corrispondono ai rilevatori periferici ed, analogamente, i messaggi provenienti dai nostri organi sono gli ordini di esecuzione che lautomatismo deve rispettare per assicurare lo svolgimento delle differenti operazioni. Il cervello, che ha memorizzato le azioni da effettuare allapparire di questo o di quel messaggio, genera tramite i nervi, motori che comandano i muscoli, un movimento particolare o un insieme di movimenti.

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.5 La robotica La robotica ha radici culturali assai lontane e nell'ingenua concezione popolare veniva definita come quella scienza che studia macchine in grado di muoversi autonomamente ad imitazione dell'uomo. Lo stesso termine robot entrato nel vocabolario inglese all'inizio degli anni '20, con la traduzione della commedia di Karel Capek "R.U.R." (i robot universali di Rossum). Capek era cecoslovacco e nella sua lingua "robota" significa semplicemente "schiavo lavoratore". Nella commedia, i robot erano automi umanoidi costruiti da Rossum e da suo figlio con l'obiettivo di creare macchine obbedienti e al servizio dell'uomo. La storia si conclude purtroppo con i robot che uccidono gli uomini e assumono il controllo del mondo. Fortunatamente, dopo due decenni, negli anni '40, lo scrittore e divulgatore Isaac Asimov ci presenta i robot in maniera pi rispettosa dell'uomo che li costruisce descrivendoli infatti come macchine ingegnose e dotate di sofisticati circuiti di controllo tali da poter operare in obbedienza e senza conflitto al servizio dell'uomo. Ma robot antropomorfi, che parlano e che camminano sono, ancora oggi e forse per molto tempo ancora, sogni di pura fantascienza. Il concetto di robot industriale fu oggetto, nel 1954, di un brevetto riguardante un braccio meccanico controllato e destinato ad operare nelle fabbriche. Il primo robot industriale fu invece installato nel 1961 dalla Unimation Inc., importante azienda americana che ha svolto un ruolo di pioniere nel settore. Da allora migliaia e migliaia di robot sono stati introdotti nell'industria degli Stati Uniti, del Giappone e anche dell'Europa, ove l'Italia occupa una posizione avanzata. Risale agli anni '70 di questo secolo la formalizzazione di un campo disciplinare scientifico cui riconoscibile una propria autonomia e compiutezza. In questi anni sono stati formalizzati insegnamenti di robotica, in cui le nozioni, derivate da campi diversi, sono state coordinate con la coerenza propria di un settore di innovazione tecnologica la cui rilevanza applicativa fra le pi significative dell'ingegneria odierna.
1.5.1 La nozione di robot

La presentazione della nozione "robot" si sviluppa secondo diverse angolazioni che spesso si appoggiano a concetti gi noti. In questa prospettiva i robot sono, per convenzione, macchine "intelligenti", capaci di sostituire l'uomo in alcune funzioni che ne caratterizzano la classificazione. L'antropomorfismo di queste macchine risiede in una specifica attitudine di reagire a classi di stimoli esterni e, quindi, nella possibilit: Di accogliere istruzioni al fine di essere educati allo svolgimento di prefissate operazioni Di scegliere gli interventi valutando l'esito delle operazioni in base alla conoscenza dello stato corrente

10

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Un dispositivo con i predetti attributi fa parte della produzione industriale attuale, costituito da un sistema meccanico in grado di interagire con il mondo esterno attraverso sensori ottici, tattili e di manipolazione governati da un calcolatore elettronico dotato di capacit di calcolo e di memoria. Secondo questa schematizzazione un robot viene definito come

sistema artificiale che interagisce con l'ambiente esterno e con le parti funzionali di se stesso, avendo la capacit di elaborare informazioni, per eseguire un compito di modifica che gli stato preordinato.
In questa definizione si posto l'accento sulla capacit di elaborazione e di interazione e si tiene anche conto che il preordinamento dei compiti avviene con un trasferimento di informazioni non tutte note a priori, anzi, tipicamente da acquisire durante il ciclo di lavoro della macchina. Le attivit di interazione e di elaborazione sono svolte secondo quanto previsto da un programma che utilizza come ingresso delle informazioni ottenute da un sistema di sensori e che produce come uscita una modifica generata mediante un sistema di attuatori.

Il robot, inteso come sistema artificiale, un sistema capace di fornire un certo insieme di primitive, ovvero un certo numero di attivit elementari che possono essere eseguite automaticamente dall'unit stessa. Queste primitive possono essere considerate anche come le istruzioni macchina del robot; in parte, quelle dedicate all'elaborazione dell'informazione, sono coincidenti con le istruzioni macchina di un calcolatore, mentre quelle dedicate all'interazione con il mondo, costituiscono una serie estremamente diversificata di attivit peculiari della natura originale del robot.

11

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Le nozioni di robot, presentate fino a questo momento, sono svincolate da particolari realizzazioni e ci rappresenta sicuramente un vantaggio al fine di staccare le considerazioni, circa lo sviluppo futuro dei robot, da un'eccessiva dipendenza dalla morfologia e dalle esigenze applicative connesse. Indipendentemente quindi dalla tipologia possibile generalizzare la definizione ed evidenziare quei requisiti necessari ad una corretta individuazione del sistema robot in un contesto pi vasto di macchine automatiche operatrici.

1) Il robot multiscopo
ed progettato in modo relativamente indipendente dal lavoro a cui sar destinato contrariamente alle macchine automatiche tradizionali specializzate rispetto al prodotto ed alla lavorazione che ne caratterizza sia l'hardware che la logica di controllo ed il tipo di convenienza economica

2) Il robot flessibile
e cio in grado di cambiare in tempi relativamente brevi il lavoro ed il ciclo operativo da eseguire.

3) Il robot ha la capacit di apprendere e memorizzare


tramite la programmazione che gli impartisce le istruzioni per effettuare determinate operazioni.

1.5.2

Definizioni e classificazioni

Nonostante i robot industriali abbiano fatto la loro comparsa in ambienti produttivi negli anni '60, sono trascorsi quasi venti anni prima che venisse elaborata una definizione formale del termine "robot". Solo nel gennaio del 1980, dopo quasi due anni di delibera, la Robot Industries Association (RIA) statunitense pubblic la propria definizione ufficiale:

" un robot industriale un manipolatore riprogrammabile multifunzione concepito per spostare materiali, pezzi, attrezzi od altri oggetti specifici, attraverso movimenti variamente programmabili, ed impiegato per una quantit di compiti diversi".

12

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Come si vede, questa definizione appare ormai fortemente datata, cio ancorata allo sviluppo della robotica all'inizio degli anni ottanta dove i robot utilizzati erano ancora quelli di seconda generazione in fase di maturit. La definizione, infatti, non accenna assolutamente alla possibilit di interfacciare il robot con l'ambiente di lavoro, alla capacit dello stesso di controllare le apparecchiature con le quali sta lavorando o di sincronizzarsi con le stesse. N, tantomeno, fa menzione della sua capacit di reagire a dei cambiamenti che si verificano all'interno del processo da esso svolto. Recentemente stato pubblicato un Rapporto Tecnico dell' ISO TR 8373, dove il robot industriale viene definito come:

"manipolatore a molteplici gradi di libert, comandato automaticamente, riprogrammabile, multiscopo, fisso o mobile, destinato ad applicazioni di automazione industriale."
Qui di seguito viene data una spiegazione dei termini utilizzati nella definizione sovrastante: Manipolatore: macchina il cui meccanismo costituito normalmente da una serie di segmenti con accoppiamento di rotazione (giunto rotoidale) e o di scorrimento relativo tra loro (giunto prismatico), avente lo scopo di afferrare e o movimentare oggetti (pezzi o utensili) generalmente con diversi gradi di libert. Pu essere comandata da un operatore, da un comando elettronico programmabile o da qualunque comando logico (sistema a camme, a logica cablata, ecc..) Riprogrammabile: i movimenti programmati o le funzioni ausiliarie possono essere variate senza modifiche fisiche Multiscopo: pu essere adattato ad una diversa applicazione con modifiche fisiche, cio con modifiche nella struttura meccanica o nel sistema di comando ad eccezione del cambio di cassette di programmazione, ROMs, ecc...

La classificazione dei robot industriali resa difficoltosa dall'estrema variet di realizzazioni e di punti di vista con i quali possono essere interpretate. Non esiste, a tutt'oggi, una classificazione universalmente accettata. Vari Enti di diversi Paesi hanno proposto le loro classificazioni che sono diventate standard solo nazionali. Vediamone alcuni esempi.

* JIRA ( Japanese Industrial Robots Association )


1) manipolatori 2) robot sequenziali 3) robot ad apprendimento 4) robot a controllo numerico 5) robot intelligenti

13

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

* AFRI ( Association Franaise de Robotique Industrielle )


1) manipolatori controllati da operatore 2) manipolatori a sequenza fissa o variabile 3) robot a programma 4) robot intelligenti

* SIRI ( Societ Italiana di Robotica Industriale )


1) robot per alimentazione e scarico di macchine utensili 2) robot per saldatura a punti e per saldatura continua 3) robot per verniciatura 4) robot per montaggio ed assemblaggio 5) robot per misura automatica 6) robot per altre applicazioni

14

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.5.3

Struttura operativa gradi di libert ed architettura

Operativamente un robot esegue una serie di funzioni connesse con la sua struttura meccanica, i suoi sensori, l'ambiente in cui opera, i compiti da eseguire, il calcolatore di controllo, il software operativo e l'interazione con l'operatore. Sicuramente, tra questi, l'elemento che maggiormente caratterizza il robot nella propria funzionalit e nel pi indicato campo applicativo la struttura meccanica. La struttura meccanica generalmente utilizzata nei robot costituita da una catena articolata di elementi meccanici connessi tra loro mediante articolazioni (giunti, o joint) in modo da potersi muovere l'uno rispetto all'altro in maniera relativa e che possono essere connessi in serie, in parallelo o in forma mista.

Catena articolata di elementi meccanici connessi tra loro mediante articolazioni (giunti) collegati relativamente tra loro con accoppiamenti rotoidali o prismatici connessi in serie, parallelo o in forma mista.
Esempio di catena cinematica aperta con elementi in serie ad accoppiamento rotoidale

Il collegamento cinematico pi comune rappresentato da una catena cinematica aperta con elementi in serie dove gli elementi della catena sono collegati tra loro con accoppiamenti rotoidali (moto relativo di rotazione) e prismatici (moto relativo di traslazione). L'elemento iniziale della catena cinematica viene chiamato telaio (se fisso) o supporto mobile (se mobile). L'elemento finale della catena cinematica viene chiamato estremit e pu essere una pinza per afferraggio, una pistola di verniciatura, una pinza di saldatura, un elemento di afferraggio, una pinza per montaggio, ecc.... I sistemi meccanici di manipolazione comprendono sia la struttura portante di un robot, sia la parte pi propriamente destinata alla presa. La struttura generale portante determina la capacit di movimento del robot, vincolando lo spazio che pu essere raggiunto dagli organi di presa della macchina e vincolando anche in larga parte i tipi delle traiettorie che possono essere eseguite nel moto tra due punti o in uno spostamento di lavoro.

15

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Problema di base di un sistema meccanico di tale tipo quello della scelta della catena cinematica e del tipo di coordinate cui il robot far riferimento. Tutto ci in stretta relazione con l'obiettivo di lavoro cui la macchina destinata. Ad esempio, catene di tipo polare, costituzionalmente pi semplici ma intrinsecamente pi imprecise, sono adatte a robot di caricamento, presa e verniciatura. Catene cinematiche cartesiane che conducono a strutture chiuse e vincolate, sono pi precise e meglio si prestano ad essere utilizzate in robot di montaggio o di misura. Legato naturalmente al problema della catena cinematica quello della scelta delle articolazioni e dei giunti, che dovrebbero risultare il pi possibile senza gioco e senza attrito. Interconnesso con il problema dell'architettura meccanica vi poi quello dei dispositivi di azionamento e di blocco e la scelta tra le diverse strategie di sistemazione remota dei motori o di sistemazione a bordo dei bracci. Queste scelte vengono fatte in funzione della dinamica del sistema e sono legate alla possibilit di costruire opportuni modelli di simulazione applicando anche tecniche di calcolo avanzate. Altro problema quello della realizzazione di una struttura possibilmente modulare per risolvere, con opportune aggregazioni, situazioni differenti. Nel campo dei sistemi meccanici destinati alla presa, occorre realizzare cinematismi atti ad effettuare la presa, la tenuta, la manipolazione ed il montaggio di elementi diversissimi tra loro per forma, dimensione, peso e stato della superficie. Una risoluzione generale del problema risulta impossibile ed necessario affrontare i diversi problemi secondo gruppi di classi. Strettamente connesso al problema dei cinematismi quello dell'azionamento e del controllo, e soprattutto l'esigenza di dotare gli organi di presa di sensori in grado di rilevare le caratteristiche intrinseche del pezzo da trattare, in modo da favorire e guidare la manipolazione del pezzo stesso.
1.5.4 Gradi di libert

Per meglio comprendere la struttura e l'architettura di un sistema robotizzato necessario introdurre un fondamentale concetto per i sistemi meccanici, o meglio, per i sistemi di corpi rigidi, comunque vincolati. Diremo che un sistema ha n gradi di libert quando si pu rappresentare la sua posizione (o meglio la sua configurazione), almeno in una certa regione dello spazio, mediante n parametri indipendenti. Ad esempio, un punto materiale libero ha tre gradi di libert, perch occorrono tre parametri (le sue coordinate cartesiane, polari, ecc..) per determinarne la posizione. Un punto materiale che si muove su un piano possiede due gradi di libert, perch occorrono due parametri (le sue coordinate nel piano) per fissarne la posizione. Cos un punto materiale mobile su una retta o, pi in generale, su una linea ha un solo grado di libert. Consideriamo adesso un corpo rigido nello spazio ed una terna cartesiana centrata sul suo baricentro (X',Y',Z'). Con traslazioni lungo i tre assi il corpo rigido effettua movimenti nello spazio, spostandosi rispetto ad una terna cartesiana fissa (X,Y,Z); ruotando attorno ai propri assi esso assume qualunque orientamento rispetto a quest'ultima. Si dice che il corpo rigido libero nello spazio possiede 6 gradi di libert (GDL), di cui 3 di traslazione e 3 di rotazione.
16

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Come gi detto, un braccio robotico un meccanismo articolato che ha il compito di posizionare il segmento terminale (estremit) nello spazio, in una specifica posizione e con un dato orientamento rispetto ad un riferimento "assoluto", solidale alla base. Per definizione diremo che il numero di GDL di un robot pari al numero dei GDL del segmento terminale S(n) o estremit. Tale numero dipende dal numero dei segmenti e dal numero e tipo di connessioni reciproche. Particolare attenzione va fatta per non confondere i gradi di libert con i gradi di mobilit. Anche i movimenti associati all'utensile portato dalla estremit del robot non costituiscono GDL. Ad esempio l'apertura / chiusura di una pinza parallela di manipolazione, la rotazione / arresto di un motore che muove la punta di un trapano, costituiscono un classico esempio mobilit e talvolta chiamate "falsi gradi di libert). In generale: 1. Una articolazione non d luogo necessariamente a GDL 2. Un robot non usa di solito pi di 6 GDL indipendenti, ma pu usare molti pi gradi di mobilit 3. Con pi di 6 GDL, una certa posizione / orientamento pu essere raggiunta con diverse configurazioni del braccio 4. Un robot dotato di un numero di gradi di mobilit superiore al numero di coordinate richieste dall'estremit, ridondante. Tale ridondanza di gradi di libert corrisponde alla mobilit del robot. La soluzione di usare un numero di giunti pari al numero di GDL desiderati per la struttura articolata la pi ovvia, ma come meglio vedremo in seguito, il controllo del robot risulta semplificato se gli ultimi 3 giunti sono di rotazione ed i loro assi si incontrano in un punto. Cos potremo dire che i primi 3 GDL di un robot posizionano la sua estremit, mentre gli altri tre la orientano. Per studiare il moto di un corpo rigido conviene considerare, oltre al sistema di assi ( O, X, Y, Z ) a cui viene riferito il moto e che, per convenzione, chiameremo sistema fisso, un sistema di assi O', X', Y', Z' che diremo mobile, solidale al corpo, cio con l'origine O' in un punto del corpo e orientamento degli assi fatti con altri punti del corpo stesso. i', j', k' saranno tre vettori unitari paralleli e nello stesso verso di O'X', O'Y', O'Z'. Ovviamente, ogni punto P del corpo avr coordinate (x', y', z') invariabili col tempo rispetto al sistema mobile, perch le distanze dei punti del corpo rigido dai piani coordinati (che sono piani formati dai punti del corpo) non possono variare col tempo. Saranno invece variabili, in generale, le coordinate (x,y,z) del punto P rispetto al sistema fisso, che si possono determinare, come vedremo, mediante una trasformazione di coordinate, nota, in ogni istante, la posizione del sistema (O', X', Y', Z') solidale al corpo rigido rispetto al sistema fisso (O, X, Y, Z). Per determinare l'orientamento di O', X', Y', Z' rispetto a O, X, Y, Z bastano tre parametri: i cosiddetti angoli di Eulero.

17

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.5.5

Architettura del braccio

Uno studio dei primi 3 GDL di un robot indica che le varie combinazioni di rotazioni e traslazioni possono dar luogo a qualche decina di diverse strutture. Le effettive realizzazioni risultano comunque essere limitate ad un numero inferiore di strutture tipo in relazione con l'applicazione pratica a cui i robot vengono destinati. Esse richiamano i noti sistemi di riferimento e, tradizionalmente, associano il nome di questo sistema di riferimento alla struttura stessa. Si parla cos di robot a struttura:

Cartesiana A portale Cilindrica Polare (o sferica) Articolata (di rivoluzione) A braccio girevole (SCARA)
Una delle caratteristiche pi importanti del manipolatore la configurazione del suo volume o area di lavoro, che dipende dalle dimensioni del braccio e dalle capacit di movimentazione.

* ROBOT A COORDINATE CARTESIANE

La struttura a geometria cartesiana viene utilizzata soprattutto quando si vuole ottenere una elevata precisione di posizionamento dell'organo terminale, in quanto le traiettorie e gli errori di posizionamento sono facilmente controllabili. Consiste in tre assi lineari ortogonali realizzati con slitte traslanti, che forniscono gli spostamenti secondo le tre traslazioni principali x,y,z.

Robot cartesiano Essa molto simile a quella delle macchine a controllo numerico, essendo la risoluzione e la ripetibilit del braccio le stesse di tali macchine.
18

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il polso di un robot a coordinate cartesiane pu essere programmato per tracciare un percorso lineare se gli assi che partecipano al movimento viaggiano a velocit costante. Se l'estremit del robot deve tracciare un segmento di retta di L unit di lunghezza, alla velocit v, le velocit assiali sono: Vx = (X/L)V Vy = (Y/L)V Vz = (Z/L)V dove L = X + Y + Z e Vx, Vy, Vz sono le componenti di V nelle direzioni X, Y, Z, rispettivamente. Queste semplici relazioni non sono valide sempre per tutti i robot di tipo cartesiano; in alcuni casi si impiegano algoritmi complessi, in cui le coordinate cartesiane vengono trasformate nelle coordinate dei giunti del manipolatore. I robot cartesiani, cos attraenti in teoria, non sono molto diffusi industrialmente (fanno eccezione quelli per il montaggio elettronico di componenti superficiali SMD), in quanto mancano di flessibilit meccanica non potendo raggiungere punti sul pavimento o punti invisibili dalla base. Inoltre la velocit di lavoro sul piano orizzontale generalmente pi basa di quella tipica dei robot aventi una base rotante.

* ROBOT A PORTALE

Appartiene alla categoria dei cartesiani, ma in questo caso la struttura meccanica include anche un portale in modo tale che il robot possa essere montato al di sopra della zona di lavoro aumentando cos l'accessibilit. Questa struttura permette di gestire aree e volumi operativi molto ampi ed spesso utilizzata in operazioni di manipolazione e pallettizzazione.

Robot a portale
19

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

* ROBOT CILINDRICO

Robot la cui struttura meccanica comprende un giunto di rotazione e due giunti di traslazione, i cui assi sono disposti secondo un sistema di coordinate cilindriche. Il braccio orizzontale si muove avanti e indietro, il carrello, nella cui estremit fissata la pinza, si muove su e gi ed entrambi ruotano con la base. I robot che utilizzano questo tipo di struttura lasciano ampia accessibilit alla zona di lavoro, consentendo una programmazione semplice per la determinazione dei valori delle coordinate necessarie a raggiungere il punto di lavoro. Vengono soprattutto utilizzati per operazioni di alimentazione a carico di particolari meccanici. La risoluzione in un robot cilindrico non costante ma dipende dalla distanza r della colonna dalla pinza lungo il braccio orizzontale. Se l'unit di risoluzione della base rotante espressa in radianti, risulta che la risoluzione alla terminazione del braccio r. Facciamo un esempio: il misuratore di posizione di un asse rotante di un robot cilindrico un encoder che emette 6000 impulsi per giro ed montato direttamente sull'albero; la massima lunghezza del braccio orizzontale 1 metro; valutare la risoluzione peggiore all'estremit del braccio. La risoluzione della base = 360/6000 = 0.06. La risoluzione all'estremit del braccio : 1000 x 0.06 x /180 = 1.05 mm. L'esempio dimostra che la risoluzione del braccio attorno alla base pu essere di due ordini di grandezza maggiore di quella ottenibile dai robot cartesiani (0.01).

Robot cilindrico Questo un limite dei robot cilindrici rispetto ai cartesiani. I robot a geometria cilindrica hanno per il vantaggio di una maggiore velocit dell'end effector in virt della presenza dell'asse di rotazione. Tuttavia tale velocit in molti robot limitata a causa del momento d'inerzia del braccio, che dipende, a sua volta, dall'end effector e dal relativo carico. E' infatti
20

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

difficile avere una buona risposta dinamica da robot aventi una base rotante poich la coppia che il motore deve fornire dipende dalla posizione, dalla velocit, e dall'accelerazione degli altri giunti; ci causa variazioni nella coppia e nel momento d'inerzia riflessi. Il momento d'inerzia riflesso sulla base dipende non solo dal peso dell'oggetto caricato, ma anche dalla distanza tra l'asse di base e l'oggetto manipolato. Tale distanza funzione della posizione istantanea della pinza e degli altri giunti durante il movimento.

Conseguentemente, il momento d'inerzia effettivo sulla base varia nel tempo e con la posizione della pinza, da cui ne deriva una risposta dinamica del braccio non molto buona.

* ROBOT POLARE (O SFERICO)

La configurazione cinematica di un robot a coordinate sferiche simile alla torretta di un carro armato. I movimenti fondamentali affidati al braccio sono rappresentati dalla traslazione lungo l'asse X, dalla rotazione di inclinazione attorno all'asse Y e dalla rotazione di orientamento attorno all'asse Z. Gli altri gradi di libert sono ottenuti dando la possibilit di movimento alla testa di presa, rispetto al braccio.

Robot polare (o sferico) L'entit della rotazione usualmente misurata da encoder incrementali montati sugli assi rotanti. Lo svantaggio di un robot a coordinate sferiche rispetto ad un cartesiano consiste nel fatto che in esso vi sono due assi con risoluzione relativamente bassa e variabile con la lunghezza del braccio. Robot di questo tipo si prestano bene ad operazioni di carico e scarico pezzi, di saldatura, di verniciatura, ecc....

21

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

* ROBOT ARTICOLATO

I robot articolati consistono di tre elementi rigidi connessi da due giunti rotanti e montati su una base pure rotante. Il cinematismo assomiglia molto a quello di un braccio umano. La pinza corrisponde alla mano che si attacca all'avambraccio tramite il polso (wrist). Il gomito (elbow) connette l'avambraccio al braccio che a sua volta, tramite la spalla (shoulder) si connette alla base. Robot di questo tipo consentono di coprire ampie zone di lavoro e permettono un'ampia manovrabilit di organi di presa e attrezzi anche in situazioni tipiche dei montaggi adattativi. Poich un robot articolato ha tre assi di rotazione geometricamente diversi, la sua risoluzione spaziale dipende interamente dalla posizione del braccio. L'accuratezza di un robot articolato bassa poich gli errori ai giunti si accumulano all'estremit del braccio. Esso pu comunque muoversi ad alta velocit ed ha una eccellente flessibilit meccanica, aspetti che lo rendono il pi diffuso tra i robot medio piccoli.

Robot articolato (o antropomorfo)

* ROBOT A BRACCIO GIREVOLE (SCARA)

E' questa una macchina molto diffusa a causa della sua economicit e della sua flessibilit applicativa. La sua struttura stata studiata in Giappone dove, nel 1978 sono stati lanciati sul mercato i primi robot di questo tipo sotto il nome di "SCARA" acronimo che indica Selective Compliance Assembly Robot Arm che letteralmente significa braccio robotico per assemblaggio a cedevolezza selettiva. E' un robot che si muove sostanzialmente su un piano tramite il movimento di due bracci snodati l'uno rispetto all'altro e rispetto al telaio fisso. Il terzo movimento (quello rettilineo dell'asse Z) spesso realizzato con cilindri pneumatici. E' particolarmente indicato per applicazioni di montaggio e manipolazione.

22

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Robot SCARA

23

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.6 Robot industriali: caratteristiche e metodi di test In questo capitolo vengono descritte alcune delle caratteristiche principali dei robot industriali di manipolazione che possono avere un effetto diretto sulle "performance" del robot stesso e vengono illustrate le procedure di test per la misura delle caratteristiche. A tale scopo verr fatto riferimento diretto alle normative Standard Internazionali ISO 9283 "Manipulating industrial Robots - Performance criteria and related test methods" ed ISO 8373 "Manipulating industrial Robots - Vocabulary". Le caratteristiche principali a cui faremo riferimento sono: Precisione di posa (pose accuracy) Differenza tra la posa di comando (quella specificata mediante programmazione o addestramento) e la media tra le pose di risposta (quella assunta dal robot in risposta alla posa di comando) ottenute in esecuzione della posa di comando sempre dalla stessa direzione (COORDINATE CALCOLATE) Ripetibilit di posa (pose repeatability) Variazione nel ritorno del manipolatore ad un punto dato. Campo di concordanza tra posizioni e orientamenti delle pose di risposta ottenute in esecuzione della stessa posa di comando n volte lungo una identica direzione (COORDINATE AUTO APPRESE) Tempo di stabilizzazione di posa (pose stabilization time) Tempo necessario perch una risposta oscillatoria smorzata o una risposta smorzata d'interfaccia meccanica si trovi all'interno di una certa ampiezza limite, dopo che il robot abbia dato il segnale di posa di risposta. Deriva della precisione di posa (Drift of pose accuracy) Lenta variazione della posa di risposta in un tempo specificato. Precisione di traiettoria (Path accuracy) Scostamento tra la traiettoria di comando e le traiettorie di risposta ottenute facendo eseguire all'interfaccia meccanica del robot la traiettoria di comando nella stessa direzione n volte. Ripetibilit di traiettoria (Path repeatability) Campo di concordanza tra le traiettorie di risposta ottenute per la stessa traiettoria di comando ripetuta n volte. Tempo minimo di posizionamento (Minimum positioning time) Tempo che intercorre tra i due stati stazionari di partenza e di arrivo dell'interfaccia meccanica per percorrere una distanza o un angolo predeterminati (tempo di spostamento e di orientamento, includendo il tempo di stabilizzazione).

24

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Cedevolezza statica (Static compliance) Spostamento massimo dell'interfaccia meccanica per unit di carico applicata.

1.6.1

Verifica della precisione e ripetibilit di posizionamento

Tra tutte le caratteristiche sopra enunciate si scelto, a titolo di esempio, la verifica della precisione di posizionamento, poich ha un peso fondamentale nella scelta di un sistema robotizzato.

* Precisione di posizionamento ( Pose accuracy )


La precisione di posizionamento esprime la deviazione tra posa di comando e posa di risposta, cio la differenza tra una posizione teorica ed una posizione effettivamente raggiunta dal manipolatore in seguito ad un comando di "MOVE" sempre dalla stessa direzione. E' quindi la deviazione massima ottenuta in posizionamento ed orientamento. Per verificare questo parametro si supponga di programmare il robot per effettuare n spostamenti tra m posizioni, passando per un numero di punti tali da determinare una traiettoria unidirezionale. Si effettui per ogni punto una misura di posizione tramite un apposito strumento (es. comparatore ).

Siano: - Xc , Yc , Zc le coordinate teoriche del punto Pc da raggiungere - Xj , Yj , Zj le coordinate effettive ottenute dal movimento di posa j - Xg , Yg, Zg le coordinate del baricentro della media dei punti ottenuti dopo aver ripetuto il medesimo comando di "MOVE" per n volte. - L la precisione di posizionamento L = ( Xg - Xc ) 2 + ( Yg - Yc ) 2 + ( Zg - Zc ) 2
______________________________________________________

L x = ( Xg - Xc )

L y = ( Yg - Yc )

25

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

L z = ( Zg - Zc )

dove : 1 n 1 n Xg = ----- X j ; Yg = ----- Y j ; n j=1 n j=1 1 n Zg = ----- Z j ; n j=1

Nell'ipotesi che il numero finito di punti che determinano la traiettoria da seguire sia uguale a 5 si identifichi con P5 il punto di inizio traiettoria e con P1 il punto noto di arrivo, nonch di misura. Partendo da P1, il test consiste nel muovere successivamente l'interfaccia meccanica del robot passando attraverso P5, P4, P3, P2, P1. Ogni movimento deve essere effettuato usando un approccio in traiettoria del tipo unidirezionale in modo tale che il percorso usato sia identico a quello programmato. Non vengano effettuate misure nel punto P1 durante il ciclo 0 ma si effettuino letture di misura per ogni posizionamento e per 30 cicli.

La precisione di posizionamento (pose accuracy) pu essere cos calcolata per ogni posa. Ciclo 0 Ciclo 1 Ciclo 2 ............ Ciclo 30 P5 P4 P3 P2 P1 P5 P5 P4 P4 P3 P3 P2 P2 P1 P1 P1

26

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio di programma scritto in V+ per realizzare il test in oggetto:


1 . PROGRAM Test.Accuracy 2 ; ---------------------------------------------------------------------------------------------------------3 ; 4 ; Questo programma scritto in V+ descrive una possibile applicazione 5 ; del metodo di verifica della precisione di posizionamento del robot Adept 6 ; 7 ; ---------------------------------------------------------------------------------------------------------8 ; 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 .END END END SPEED 50 RIGHTY MOVE P1 BREAK PROMPT " Inserisci il numero di cicli da eseguire ", max_cicli TYPE /C23, /X5, " Robot pronto : premi RET per cominciare il test " PROMPT "", Ret SPEED 100 ALWAYS FOR i = 1 TO max_cicli FOR k = 5 TO 1 STEP -1 MOVE P[k] BREAK SIGNAL Start_lettura[k] TIMER 1 = 0 WAIT TIMER ( 1 ) > 0.2 SIGNAL - Start_lettura[k] WAIT SIG (OK_lettura[k])

Nelle applicazioni pratiche questa caratteristica molto importante perch determina l'effettivo grado di precisione del robot. Proviamo ora a capire, con un esempio, a cosa serva uno "spinto" valore di accuracy in un robot di manipolazione.
27

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Un caso lampante quello dell'utilizzo di manipolatori per il montaggio di componenti elettronici su scheda. E' noto a tutti il fatto che oggi, grazie allo sviluppo dei sistemi CAD / CAM / CAE, anche la progettazione di circuiti stampati (PCB : Printed Circuit Board) viene gestita da calcolatore, ed in ogni azienda elettronica che si rispetti tutte le informazioni relative al progetto di una nuova scheda vengono memorizzate sotto forma di DATA BASE in un sistema informativo. Tali sistemi gestiscono non solo le caratteristiche elettriche della componentistica, ma anche tutte le caratteristiche geometriche per facilitarne cos la fase di montaggio. In ogni scheda infatti predefinito un sistema di riferimento rispetto al quale sono calcolate le coordinate in X, Y e orientamento di ogni singolo componente. In fase di montaggio automatico non necessario auto apprendere quindi tutte le singole posizioni di inserzione dei componenti, ma basta insegnare al manipolatore le posizione del sistema di riferimento scheda rispetto al sistema di riferimento assoluto. In questo caso, per posizionare correttamente un componente nella relativa locazione di inserzione, sufficiente elaborare le informazioni contenute nel CAD tramite un "post processor" affinch le rimetta nel giusto formato e comandare il robot ad effettuare il posizionamento del componente i_esimo sfruttando la sua coordinata nota, ma riferita al sistema di riferimento del robot. Sia ad esempio P1=(X1, Y1, R1, Z1) la coordinata del componente elettronico da inserire nella scheda, riferita al sistema di riferimento cartesiano X', Y'. Dopo aver fissato la scheda nell'aria di lavoro del robot si auto apprendano le seguenti coordinate: Tor = coordinata dell'origine del sistema di riferimento scheda rispetto a quello assoluto del robot ( X, Y ) Tx = coordinata di un punto che identifica la direzione dell'asse X' del sistema di riferimento scheda rispetto a quello assoluto del robot (X, Y ) Ty = coordinata di un punto che identifica la direzione dell'asse Y' del sistema di riferimento scheda rispetto a quello assoluto del robot ( X, Y )

Si definisca col generico nome di SCHEDA il sistema di riferimento relativo X', Y' di origine O' mediante la seguente istruzione di programma: SET scheda = FRAME ( Tor, Tx, Ty, Tor ) E' possibile adesso comandare il robot a muoversi nel punto P1 mediante la seguente istruzione: MOVE scheda : P1 Considerando che per l'assemblaggio della componentistica elettronica su scheda si lavora con delle tolleranze di posizionamento fisico dell'ordine dei centesimi di millimetro (nel caso dei componenti SMT si devono posizionare i reofori su piste distanti tra loro 50 o 25 millesimi di pollice e nel caso dei componenti tradizionali si deve inserire il reoforo di diametro 0,6 mm. in un foro da 0,8 mm.) risulta chiaro come la precisione di posizionamento del braccio sia determinante ai fini di una corretta inserzione.

28

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1.7 Evoluzione dei sistemi di automazione Nei pochi anni che ci separano dalla crisi energetica del 1973, l'intero sistema industriale tradizionale ha subito grosse trasformazioni. Se la macchina a vapore pu essere posta a capo della prima rivoluzione industriale, il calcolatore elettronico deve essere certamente riconosciuto come "motore" della seconda. Le nuove tecnologie hanno prodotto una nuova generazione di macchine operatrici di: - fabbricazione - montaggio - trasporto, manipolazione e immagazzinamento in grado di svolgere sequenze complete e variabili di operazioni produttive, anzich ripetere all'infinito una o poche operazioni, in quanto programmabili. Come abbiamo visto l'automazione rigida lascia il posto all'automazione flessibile ed proprio in questo contesto che si inserisce il manipolatore programmabile che, per le sue diverse costruzioni e geometrie, diventa l'elemento fondamentale delle molteplici applicazioni ipotizzabili. I sistemi di automazione si sono evoluti rapidamente nel tempo passando da iniziali soluzioni rigide (cablate) a moderne soluzioni flessibili (programmabili). - Prima generazione Risale agli anni '60 ed caratterizzata da una unit di controllo costituita da un sequenziatore. In questo caso i sistemi di automazione sono costituiti da manipolatori definiti a "sequenze limitate". Il sequenziatore pu essere implementato in tecnologia elettromeccanica od elettronica cablata, ma molto pi frequenti sono le soluzioni pneumatiche, realizzate ad esempio mediante programmatori a camme. Il sequenziatore emette gli ordini on-off agli attuatori di comando delle varie parti del robot e riceve segnali di consenso di fine corsa meccanici o elettrici. Tali segnali disattivano un attuatore e permettono l'attivazione del successivo. Con queste soluzioni si ha dunque il solo controllo delle posizioni terminali e non delle traiettorie ed i comandi servono solo per accendere e spegnere i motori; deriva da qui il tipico nome di sistema "pick and place" (prendi e metti). - Seconda generazione I sistemi di automazione della seconda generazione sono macchine controllate da un calcolatore digitale dedicato. Essi sono perci in grado di ripetere indefinitamente la sequenza contenuta in una memoria a stato solido. Tale sequenza di operazioni da svolgere pu essere cambiata molto semplicemente, con conseguente flessibilit operativa della macchina. Ogni asse servo-controllato ed ogni segmento del manipolatore equipaggiato con adeguati sensori di posizione e di velocit. Al pari delle altre macchine operatrici programmabili, quali ad esempio la macchina utensile a CN, il robot pu essere programmato con metodo
29

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

linguistico mediante un apposito linguaggio di programmazione. Ma a differenza di ogni altra macchina operatrice, il robot pu anche apprendere il proprio compito operativo tramite una azione di guida del braccio lungo il percorso necessario per eseguire il compito ed una esecuzione campione delle diverse operazioni. - Terza generazione Sono caratterizzati da notevoli capacit adattative e vengono, per questo motivo, chiamati "intelligenti". Sono in grado di eseguire il compito assegnato verificando la propria interazione con l'ambiente attraverso un modello predefinito ed utilizzano linguaggi di programmazione evoluti in grado di assicurare interfacciamenti con banche dati e con unit di elaborazioni esterne per il carico e lo scarico dei programmi. Grazie ai feedback dei dati sensoriali e dell'interfacciamento con banca dati, sono inoltre in grado di inviare messaggi all'operatore che descrivono la natura e l'ubicazione degli eventuali stati di malfunzionamento. - Quarta generazione Nessuno sa ancora con certezza come saranno i sistemi di automazione appartenenti a questa quarta generazione. Probabilmente saranno costituiti da manipolatori del tipo non metallici, dal momento che i prezzi dei materiali ad alto contenuto tecnologico sono in costante diminuzione. Saranno sicuramente pi leggeri, pi veloci, pi precisi e pi accurati nelle realizzazioni ed utilizzeranno la percezione visiva e sensoriale in modo da raggiungere il vero coordinamento occhio-mano, indispensabile per lo svolgimento di operazioni molto complesse. Il loro sviluppo va certamente al passo con lo sviluppo dell'informatica e dell'elettronica; ci aspettiamo quindi sistemi ancor pi flessibili degli attuali ed in grado di soddisfare, con il minimo sforzo da parte di chi li deve programmare, le pi complesse esigenze operative.

30

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

2 Esempio di manipolatore: Adept robot Cobra 600


2.1 Il manipolatore Il robot Adept Cobra 600 un robot SCARA a quattro assi con movimento dei giunti 1, 2 e 4 di tipo rotatorio, mentre quello del giunto 3 di tipo traslatorio. I Robot Adept Cobra sono concepiti per interfacciarsi con un controller Adept MV e il telaio alimentazione PA-4.
Specifiche tecniche dei robot Adept Cobra 600: Descrizione Area di lavoro - Apertura radiale massima - Apertura radiale minima Corsa verticale - Giunto 3 (direzione Z) Rotazione dei giunti - Giunto 1 - Giunto 2 - Giunto 4 Carico utile al polso (inclusi attuatori di estremit e utensileria montata sull'estremit del braccio) Carico di inerzia - sull'asse de giunto 4 Forza di spinta verso il basso (giunto 3) Tempo ciclo Pick & Place - 0 carico - 2 Kg carico - 5 Kg carico Risoluzione - Giunto 1 - Giunto 2 - Giunto 3 - Giunto 4 Reperibilit - Piano X,Y - Giunto 3 (Z verticale) - Giunto 4 (rotazione) Velocit - Giunto 1 - Giunto 2 - Giunto 3 - Giunto 4
31

Cobra 600 600 mm 163 mm 210 mm 105 150 360 5,5 Kg

250 Kg cm2 25 Kg 0,47 sec. 0,55 sec. 0,63 sec. 0,00045 per conteggio di codifica 0,00072 per conteggio di codifica 0,0015 mm per conteggio di codifica 0,03125 per conteggio di codifica 0,02 mm 0,01 mm 0,03 360 / sec 672 / sec 1.100 mm / sec 1.200 / sec

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il robot si programma e si comanda tramite il controller Adept MV e il sistema di comando amplificatore PA-4.

Il manipolatore collegato al suo controllore tramite cavi di segnali e di potenza. Lo schema generale del sistema robotizzato composto da: manipolatore unit di controllo (logica + potenza) Pannello dinterfaccia del controller (CIP) Pulsantiera di comando manuale (Manual Control Pendant)

32

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Ogni articolazione del braccio viene identificata col nome di JOINT. Il joint 1 ruota intorno alla colonna verticale e il joint 2 ruota nel mezzo del braccio orizzontale. I joints 1 e 2, agendo insieme, provvedono al posizionamento della estremit del braccio nel piano X,Y. Il joint 3 (asse Z) una articolazione a corsa lineare che permette di estendere e retrarre verticalmente l'estremit del braccio. In una tipica applicazione, il joint 3 l'asse che "prende" e "mette" gli oggetti da manipolare. Nel joint 4 posizionata la flangia di montaggio della mano o end-effector in grado di ruotare attorno all'asse verticale del joint 3. E' questo l'asse usato per orientare radialmente le parti da posizionare. La figure seguenti illustrano le 4 articolazioni del manipolatore, le proprie rotazioni e i differenti sistemi di riferimento. Il range di movimento del joint 1 di 210, esiste quindi un'area posizionata dietro il manipolatore non raggiungibile dalla rotazione del joint 1 e dove sono posizionati i fermi meccanici dell'articolazione.

33

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il giunto 1, o spalla, provvede alla rotazione della connessione interna. Il movimento del giunto 1 limitato a 105

Il giunto 2, o gomito, provvede alla rotazione della connessione interna. Il movimento del giunto 2 limitato a 150. Il movimento del giunto 2 simile a quello di un gomito in grado di piegarsi sia in configurazione destra che sinistra. Quando si insegnano le posizioni al robot, il gomito del robot (visto da dietro il robot) punter a destra o a sinistra. Questi orientamenti del braccio vengono chiamati sinistrorso e destrorso. Generalmente il robot Adept_Cobra 600 pu raggiungere una locazione in qualsiasi delle due configurazioni di gomito. Sotto il comando del programma, il robot si sposter sempre nella posizione successiva con la configurazione ottimale che minimizza il percorso, a meno che la posizione non sia un punto di precisione o non siano usate le istruzioni LEFTY (sinistrorsa) o RIGHTY (destrorsa) del programma che impone al robot di assumere, per quel movimento, la desiderata configurazione.

34

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

E' possibile visualizzare il joint 2 del robot come un avambraccio esteso superiormente ed attaccato al corpo del manipolatore, in grado di compiere una rotazione di circa 150 a sinistra o a destra rispetto alla posizione di allineamento col joint 1. Visto che la configurazione di questo manipolatore paragonabile a quella di un braccio umano, esistono anche qui delle configurazioni di gomito (elbow) che rappresentano l'operativit del braccio sinistro dell'uomo o del braccio destro. Si dir cos che il robot in configurazione elbow "Righty" o "Lefty" a seconda del valore di rotazione del joint 2 rispetto al joint 1. Limiti cartesiani: sul retro dei robot Adept Cobra presente una zona di esclusione limitata dal software ampia 300 mm. Il giunto 3 provvede alla traslazione verticale dell'albero di rotazione. Il giunto 3 muove l'albero di rotazione verso il basso e verso l'alto con una corsa massima di 210 mm. Il giunto 4, o polso, provvede alla rotazione dell'albero. Pur non essendo fornito di fine corsa meccanici, il suo movimento tuttavia limitato dal software a 360

2.2 Modalit operative del robot Per poter muovere il robot in sicurezza, occorre comprendere le due diversi modalit di funzionamento del robot, Manuale ed Automatica. Il CIP (Controller Inteface Panel) presenta un interruttore a chiave a due posizioni che comanda la modalit operativa del robot. Per motivi di sicurezza, quando si cambia la modalit operativa, la potenza al manipolatore (High Power) viene automaticamente disattivata.
2.2.1 Modalit operativa manuale

Nella posizione Manuale (velocit <250 mm/s), il movimento del robot pu essere attivato solo dalla MCP. In modalit Manuale l'operatore non pu iniziare un movimento dalla tastiera del sistema e l'esecuzione di programmi che richiedono il movimento del robot viene arrestata quando si elabora un'istruzione di movimento. Ci protegge l'operatore che si trova nell'area
35

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

di lavoro da movimenti imprevisti del robot. In modalit manuale la velocit massima del punto centrale dell'utensile e dei giunti del robot ridotta ad un valore inferiore a 250 mm al secondo. In modalit manuale, i contatti della barriera di sicurezza del cliente (Mute) sono esclusi e la funzione di sicurezza di tali contatti disattivata. Ci permette a un operatore qualificato di entrare nell'area di lavoro quando High Power attivata.
2.2.2 Modalit operativa automatica

La posizione di modalit automatica (100%) permette il comando del robot dal computer. Se un programma a muovere il robot o un dispositivo di movimento, questo pu effettuare dei movimenti in momenti e lungo percorsi che l'operatore non in grado di prevedere. Quando la luce bianca di High Power sul CIP accesa, non entrare nell'area di lavoro perch il robot o il dispositivo di movimento potrebbero spostarsi inavvertitamente.

2.3 Modulo di comando portatile MCP I sistemi di movimento Adept sono concepiti in modo da consentire di comandare il robot dal modulo di comando portatile (MCP). Vi sono due funzioni principali del modulo MCP, il modulo di funzionamento e il modulo di programmazione. La funzione di programmazione viene utilizzata nella fase di scrittura e correzione di un'applicazione software Il modulo funzionamento concepito per essere utilizzato durante il normale funzionamento del sistema come interfaccia operatore. La Figura seguente mostra come impugnare la MCP.

Il modulo portatile presenta un interruttore di abilitazione ad attivazione palmare che collegato al circuito dell'arresto di emergenza del controller. Ogniqualvolta l'interruttore viene rilasciato, si disattiva la potenza (High Power) al dispositivo di movimento. Quando non utilizza l'MCP, l'operatore deve riporlo nello speciale supporto in dotazione, oppure toglierlo dal controller e installare la presa ponticello del modulo portatile. Il fermaglio
36

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

di ritenzione del supporto mantiene premuto l'interruttore di attivazione quando il modulo portatile non in uso. Per attivare l'MCP, inserire la mano sinistra nell'apertura sulla sinistra del modulo portatile ed usare il pollice sinistro per attivarne le barre di velocit. Usare la mano destra per manovrare tutti gli altri pulsanti funzione. In questa sezione sono illustrati i vari raggruppamenti di tasti del modulo portatile.

Pulsanti ridefinibili I pulsanti ridefinibili svolgono diverse funzioni, a seconda del programma applicativo in fase di esecuzione, oppure alla selezione fatta con i pulsanti di funzioni predefinite. Ogni qualvolta un pulsante ridefinibile attivo, la sua funzione viene indicata nell'ultima riga del display del modulo portatile. Dal momento che questi pulsanti non hanno una definizione fissa (le etichette vengono definite dal programma che utilizza i pulsanti), essi vengono chiamati pulsanti ridefinibili. I pulsanti programmabili vengono usati nei programmi applicativi del cliente, e le loro funzioni variano in base al programma in fase di esecuzione. Pulsanti funzione I pulsanti di funzioni predefinite svolgono funzioni specifiche loro assegnate, relative al sistema.

37

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Funzione Edit : il pulsante funzione Edit consente di modificare le variabili di posizione e le variabili reali che sono utilizzate dai programmi V +.

Funzione Display : il pulsante funzione Display consente di visualizzare sull'MCP i valori attuali del giunto, la posizione world attuale, lo stato del sistema, lo stato degli I/O digitali, oppure l'ultimo messaggio di errore.

Joint Values - Quando si preme questo pulsante, il display visualizza:


J1 = x.xx J2 = x.xx J3 = x.xx J4 = x.xx J5 = x.xx J6 = x.xx Questi valori rappresentano le posizioni correnti dei giunti del robot o del dispositivo di movimento. Verranno visualizzati solo i valori relativi ai giunti effettivamente presenti sul robot o sul dispositivo di movimento. I valori del giunto rotazionale sono espressi in gradi, e i valori del giunto di traslazione sono espressi in millimetri.

World Location - Quando si preme questo pulsante, il display visualizza:


X = xxx.xx mm Y = xxx.xx mm Z = xxx.xx mm y = xxx.xx p = xxx.xx r = xxx.xx

I valori rappresentano la posizione corrente del robot o del dispositivo di movimento nelle coordinate world.
38

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Status & ID - Quando si preme questo pulsante, il display visualizza:


Status ID SOFTWARE CNTRLR ID ID ROBOT 'S

Il pulsante Status visualizza: program.name Program 50 Speed 1 Cycle 0 Left

Program mostra il nome del programma in fase di esecuzione o quello eseguito pi recentemente. Speed indica la velocit corrente del monitor. Cycle indica il numero totale di cicli specificati quando era stato eseguito il programma. Left indica il numero di cicli rimanenti che il programma deve eseguire. I pulsanti ID Software, Controller, e Robot visualizzano le informazioni di identificazione per quelle voci. I/O digitale - Quando si preme questo pulsante, il display visualizza: ------------------0000 0011

+ 0032-0001 - OUT IN SOFT La riga superiore indica lo stato della gamma di segnali di I/O digitale indicati sulla seconda riga (1-32 nell'esempio). Un indica che il canale non installato, un 1 indica che il segnale acceso, e uno 0 indica che il segnale spento. Il tipo di segnale che viene visualizzato indicato dal LED sui pulsanti ridefinibili contrassegnati OUT, IN, e SOFT. L'esempio fornito mostra segnali di uscita digitale nella gamma da 1 a 32. I segnali 1-2 sono accesi, i segnali 3-8 sono spenti e, in questa gamma, nessun altro segnale installato. Per visualizzare un'altra gamma di segnali, premere i pulsanti ridefinibili sotto le etichette + o . Verr visualizzata la gamma di segnali successiva o precedente. Premere i pulsanti OUT, IN e SOFT per visualizzare le gamme dei segnali di ingresso (input), uscita (output) o software (soft). Pulsanti di inserimento dati

39

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

I pulsanti di inserimento dei dati illustrati nella Figura vengono usati per inserire dei dati, di solito in risposta a dei prompt di richiesta visualizzati sul display del modulo portatile. I pulsanti di inserimento dati comprendono, +/YES, /NO, DEL, i tasti numerici (0-9), il punto decimale, e il pulsante REC/DONE. Questi tasti sono simili a quelli del tastierino numerico di una normale tastiera. Pulsante REC/DONE Funziona come il tasto Invio o Enter di una normale tastiera. Ultimato l'inserimento dei dati, si preme REC/DONE per inviare i dati inseriti al controller. In numerosi casi, i programmi applicativi richiedono che l'utente prema il pulsante REC/DONE per segnalare che un'operazione stata completata. Pulsante DEL Si comporta come il tasto Backspace (cancella carattere precedente) di una normale tastiera. Quando si inseriscono i dati, compare sul display dell'MCP. DEL cancella tutti i caratteri che compaiono sul display del pannello MCP ma che non sono ancora stati inviati con il pulsante REC/DONE. I programmi applicativi possono anche assegnare funzioni speciali al pulsante DEL. Barre di velocit e pulsante di rallentamento Slow Le barre di velocit e il pulsante di rallentamento Slow si usano soprattutto per muovere il robot quando si trova in modalit Manuale. Queste opzioni sono descritte nel seguente paragrafo.

40

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.4 Stati del robot


2.4.1 Stato World

Quando selezionato lo stato world, il movimento nella direzione X, Y, o Z parallelo all'asse di un sistema di coordinate cartesiane (world). Affinch le barre di velocit muovano il robot, si deve scegliere un asse di movimento con i pulsanti di comando manuale. Il sistema di coordinate world per un robot SCARA illustrato nella Figura seguente. Se si seleziona X1 e si preme la barra di velocit +, la flangia utensile del robot si muover in direzione X positiva. Se si preme la barra di velocit , la flangia si muover in direzione X negativa.

Il pulsante T 1 fa girare i solenoidi della pinza. Premere in qualunque punto del lato + della barra di velocit per aprire la pinza, sul lato per chiudere la pinza.

2.4.2

Stato Joint

Quando si seleziona lo stato joint, il movimento avviene sugli assi del giunto specificato. La Figura seguente illustra un robot SCARA Adept con tre giunti rotoidali (giunti 1, 2, e 4) e un giunto prismatico (giunto 3). La rotazione positiva dei giunti 1 e 2 in senso antiorario, vista dall' alto. La rotazione positiva del giunto 4 in senso orario vista dall'alto. Il movimento positivo del giunto 3 verso il basso. Perch le barre di velocit muovano un giunto, occorre selezionare il giunto esatto con i pulsanti di comando manuale.

41

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Diversi robot o dispositivi di movimento avranno dei diversi numeri di giunto assegnati ai loro giunti. Quando si muove per la prima volta un robot con cui non si ha dimestichezza, utilizzando lo stato joint, impostare la velocit di monitor a 10 o meno, collocare il robot in un'area sicura, e muovere con cautela il robot utilizzando i diversi numeri dei giunti per verificare in che modo l'MCP muove il robot.

Z-

Z+

2.4.3

Stato Tool

Quando si seleziona lo stato tool, il movimento in direzione X, Y, o Z avviene lungo un asse del sistema di coordinate tool. Il sistema di coordinate tool ha come centro la flangia utensile del robot, con l'asse Z che punta lontano dalla flangia. Sulla maggioranza dei robot, l'asse positivo X allineato con il centro dell'inchiavettatura della flangia utensile. Perch le barre di velocit possano muovere il robot, occorre selezionare un asse di movimento con i pulsanti di comando manuale. Se si seleziona X1, premendo la barra di velocit + la flangia utensile del robot si muover nella direzione positiva X. Se si preme la barra di velocit la flangia si muover in direzione X negativa.

42

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.5 Robot Locations Le "Robot locations" sono usate per specificare la destinazione del movimento del robot. Questo capitolo descrive due tipi di rappresentazione di locazione che sono disponibili con il linguaggio V+: TRANSFORMATIONS PRECISION POINTS Sono analizzate in questo capitolo anche le variabili che descrivono le locazioni. Queste provvedono di dare un significato e a manipolare i valori di riferimento della locazione attraverso un nome. Una distinzione iniziale deve essere fatta tra "point" o "position" e "location". I primi due termini sono usati per riferire un punto nello spazio mediante le relative coordinate X, Y, Z. La parola "location" si riferisce invece ad un punto situato nell'area di lavoro del robot e con un definito orientamento. Quindi quando il robot si sta dirigendo verso una "location", due cose succedono simultaneamente:
43

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1 - il robot si muove in maniera tale che la sua estremit raggiunga il punto specificato 2 - l'estremit del robot ruota con un predefinito orientamento I dati che definiscono una locazione del robot possono essere autoappresi (Theach) come valori "location". Questi valori possono essere riferiti e usati in diversi modi:
2.5.1 Transformations

Una "transformation" una identificazione di locazione riferita allo stato WORLD. E un insieme di 6 componenti che identificano in maniera univoca una locazione in una rappresentazione dello spazio cartesiano. I primi 3 elementi di una variabile transformation sono i valori dei punti negli assi X, Y e Z. In un robot SCARA, lorigine dello spazio cartesiano alla base del manipolatore, lasse Z punta verso lalto attraverso la colonna del robot, lasse X punta dritto verso lesterno e lasse Y orientato da sinistra verso destra rispetto al fronte del robot.. Tre coordinate identificano un punto nello spazio. Per identificare univocamente un corpo nello spazio sono necessarie 6 coordinate. La seguente figura mostra la prima parte di una transformation. Questa rappresentata dai valori X = 30, Y = 100, Z = 125, yaw = 0, pitch = 0, and roll = 0.

Le seconde tre componenti di una transformation specificano lorientamento dellestremit (endof-arm tooling) e sono rappresentati dagli angoli di Eulero. Una transformation una rappresentazione indipendente della posizione e dell'orientamento dell'estremit del robot. L'indipendenza del robot ottenuta definendo le locazioni in termini di rappresentazione Cartesiana (X,Y,Z) rispetto al riferimento assoluto fissato sulla base del robot. La posizione del punto di estremit del robot definita con le coordinate X, Y, e Z. L'orientamento dell'estremit, che da ora in avanti per semplicit chiameremo pinza, definita da tre angoli misurati dagli assi coordinati. Questi angoli sono chiamati: - "y" per yaw (giunto 4) - "p" per pitch (giunto 5) - "r" per roll (giunto 6)
44

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Yaw Yaw la rotazione del sistema locale di riferimento attorno al suo asse Z. Questa rotazione non da intendersi attorno allasse Z principale, ma a quella centrata nellorigine del sistema locale di riferimento, cio quello corrispondente alla estremit del robot. La seguente figura mostra lasse YAW con una rotazione di 30. La transformation risultante quindi rappresentata dai valori X = 30, Y = 100, Z = 125, yaw = 30, pitch = 0, and roll = 0.

Pitch Pitch definita come rotazione del sistema locale di riferimento attorno al suo asse Y, dopo che la rotazione YAW stata applicata. La seguente figura mostra lasse YAW con una rotazione di 30 e lasse PITCH con una rotazione di 40. La transformation risultante quindi rappresentata dai valori X = 30, Y = 100, Z = 125, yaw = 30, pitch = 40, and roll = 0. Questa posizione pu essere raggiunta da un robot solo se possiede il meccanismo del 5 asse

45

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Roll Roll definita come rotazione del sistema locale di riferimento attorno al suo asse Z, dopo che la rotazione YAW e PITCH stata applicata. La seguente figura mostra lasse YAW con una rotazione di 30, lasse PITCH con una rotazione di 40 e lasse ROLL con una rotazione di 20. La transformation risultante quindi rappresentata dai valori X = 30, Y = 100, Z = 125, yaw = 30, pitch = 40, and roll = 20. Questa posizione pu essere raggiunta da un robot solo se possiede il meccanismo del 5 e 6asse.

46

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Situazioni Particolari Quando lassi Z del sistema di riferimento locale e primario sono paralleli, roll and yaw generano lo stesso movimento nello stesso piano, nonostante che i due movimenti possano avvenire in direzioni differenti. Questo il caso del robot SCARA a 4 assi in cui il valore del componente yaw forzato a 0 e quello di pitch forzato a 180. Pertanto, ogni volta che vorremo rappresentare un location in un robot SCARA, potremo fare riferimento alla seguente notazione: X = xxx.xx mm Y = xxx.xx mm Z = xxx.xx mm y = 0 p = 180 r = xxx.xx

Poich le transformations sono definite in termini di coordinate nell'area di lavoro, una transformation definita per essere usata con un robot, ma pu essere usata anche per differenti robot (anche di modello diverso). E' facile modificare una transformation per cambiare una locazione, poich questo metodo di rappresentazione di locazioni strettamente legato al layout dell'area di lavoro del robot. Per esempio, per spostare una locazione nella direzione X, solo la componente X della transformation necessita di un aggiustamento. Relative Transformations Una delle caratteristiche pi potenti delle transformation chiamata "relative transformations"). Consiste nella possibilit di definire una locazione in maniera relativa ad

unaltra, e di costruire un sistema di riferimento relativo rispetto al quale rappresentare una posizione.

Ad esempio, possibile usare le relative transformation per costruire unapplicazione in cui le locazioni di assemblaggio cambiano periodicamente. E questo il caso di un vassoio (pallet) in cui sono presenti n x m posizioni e le locazioni di sono state costruite in maniera relativa al sistema di riferimento. Il vassoio si muove su un sistema di trasporto a cinghia e non detto che si fermi sempre nella stessa posizione. In questo caso, disponendo sempre delle coordinate di ogni singola posizione del vassoio rispetto al vassoio stesso, sufficiente autoapprendere solo la posizione che identifica il sistema di riferimento relativo del vassoio.
x X

47

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio di programma per muovere un robot nella posizione loc_a (X=300, Y=150, Z=350), da qui spostarsi in maniera relativa di DX = -50 mm, DY = 20 mm e DZ = 30 mm e definire una nuova locazione loc_b come relativa alla loc_a ; Define a simple transformation SET loc_a = TRANS(300,150,350,0,180,0) ; Move to the location MOVE loc_a BREAK ; Move to a location offset -50mm in X, 20mm in Y, ; and 30mm in Z relative to "loc_a" MOVE loc_a:TRANS(-50, 20, 30) BREAK ; Define "loc_b" to be the current location relative ; to "loc_a" HERE loc_a:loc_b ; loc_b = -50, 20, 30, 0, 0, 0 BREAK

Il vantaggio di questo tipo di definizione di locazione che un cambiamento di posizione di uno degli oggetti intermedi pu essere fatto, e le altre locazioni saranno traslate di conseguenza. Sfortunatamente ci sono anche degli svantaggi nell'utilizzo delle transformations. Uno di questi consiste nella richiesta del controllo di configurazione. La configurazione di un robot descrive la posizione relativa di ogni joint quando il robot comandato a muoversi ad una specificata locazione. Ad esempio, un robot con 6 gradi di libert, che ha quindi 6 joints, pu generalmente raggiungere una data posizione con pi di una configurazione. Una transformation definisce la posizione e l'orientamento della pinza del robot (tool) in termini di coordinate nello spazio di lavoro, senza ulteriori informazioni sulla specifica configurazione che il robot possiede nel punto raggiunto. E' compito del programmatore specificare, tramite una apposita istruzione, la configurazione voluta per il raggiungimento del punto. Un altro svantaggio, se pur minore, il tempo di calcolo richiesto dal sistema operativo per convertire la rappresentazione Cartesiana della transformation in una rappresentazione angolare che corrisponde ai valori espressi in gradi dei singoli joints in modo tale da sapere esattamente dove muovere ogni singola articolazione. Il computo di questa conversione richiede un tempo di calcolo molto limitato ma pu introdurre piccoli errori nel posizionamento.
48

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Nonostante queste osservazioni, l'uso delle transformation generalmente molto conveniente ed spesso applicato. Aspetti positivi: Le Transformations sono robot indipendenti, possono cio essere usate con robots non necessariamente dello stesso modello di quello per cui sono state create Facilit di modifica Relative Transformations Aspetti negativi: Ambiguit nella configurazione che il robot assume durante il movimento se non si specifica lorientamento del gomito (lefty o righty) Tempo di calcolo per conversione della rappresentazione cartesiana in rappresentazione angolare

2.5.2

Precision Points

Precision Point una identificazione di locazione riferita allo stato JOINT. Un valore di locazione chiamato precision point quando la locazione del robot rappresentata dall'esatta posizione di ogni singolo joints (valore angolare). Questa forma di rappresentazione pu essere molto vantaggiosa in certe situazioni. Ci sono molte caratteristiche dei precision points che dovrebbero essere prese in considerazione nel momento in cui si decida di utilizzare o meno questo tipo di rappresentazione. Aspetti positivi: Raggiungimento della massima precisione di posizionamento Assenza di qualsiasi ambiguit nella configurazione che il robot assume durante il movimento Aspetti negativi: Le precision points sono robot dipendenti, possono cio essere usate solo con robots dello stesso modello di quello per cui sono state create Le precision points non possono essere facilmente modificate per compensare cambiamenti nello spazio di lavoro. In questo modo un cambiamento della disposizione della periferia nello spazio di lavoro richiederebbe la conoscenza completa delle relazioni tra posizioni dei joints e locazioni. Per tali motivi, pi che per i vantaggi nel loro utilizzo, le transformations sono maggiormente utilizzate per la rappresentazione di locazioni.

49

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Una precision point ha una componente per ogni joint del robot in uso nel momento in cui stata definita. Quando una precision point viene memorizzata in un "disk file" mediante i comandi di STORE e STOREL, pu essere letta dal disco da qualsiasi V+ robot system. Se il sistema che legge i dati ha un numero di joints minore del numero delle componenti memorizzati nel disco, quella extra verr ignorata. Se invece il sistema che legge i dati ha un numero maggiore di joints rispetto al numero di componenti memorizzati, il valore zero verr assunto come default per le componenti mancanti.

2.6 Variabili per identificazione di "Locations" Queste variabili permettono di collegare un nome alla locazione del robot per facilitarne l'identificazione. Il nome di una precision point o di una transformation assegnato dal programmatore Ogni nome deve cominciare con una lettera e pu contenere solo lettere, numeri, punti e caratteri di sottolineatura Le lettere usate per descrivere una variabile possono essere digitate sia in carattere maiuscolo che minuscolo. V+ visualizzer sempre nomi in carattere maiuscolo I nomi di variabili possono avere al massimo 15 caratteri. Se viene digitato un nome pi lungo, questo verr troncato automaticamente al 15 carattere Ci sono delle parole che non possono essere usate come nomi di variabili poich potrebbero creare ambiguit con i comandi V+ (reserved words).

Esempio di nomi validi per identificare variabili di "location": p alimentatore pallet.vuoto prossimo_1

Esempio di nomi non validi per identificare variabili di "location": 3p Parte#1 hand posizione_prelievo_1 (il primo carattere non una lettera) ("#" non un carattere valido) ( una parola riservata) (troppi caratteri)

Per distinguersi dai nomi di variabili per transformations, quelle dei precision points devono essere sempre precedute dal simbolo "#". Ad esempio: part_1 #pick per transformation per precision point
50

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

E' possibile usare lo stesso nome per esprimere precision points e transformations, ma non possibile utilizzare lo stesso nome per transformations e variabili reali ("real"). Ogni volta che una variabile definita pu essere utilizzata da qualsiasi programma operante nel sistema, a meno che questa non sia stata definita come locale in uno specifico programma. Il metodo pi semplice per definire una variabile locations quello di guidare il robot in un punto e digitare il monitor command: HERE loc_a (per definire una transformation)

HERE #loc_a (per definire una precision point)

2.6.1

Variabili per identificazione di matrici ("Array")

Le variabili di locazione possono essere di tipo semplice o matriciale. Una location semplice identifica un valore di singola locazione mentre una "location array" identifica un gruppo (matrice) di locazioni i cui valori sono rappresentati da un singolo nome indicizzato. Il linguaggio V+ supporta matrici a una, due e tre dimensioni. Ogni valore della matrice chiamato elemento, ed specificato dall'aggiunta di un indice racchiuso tra parentesi quadra (tre nel caso tridimensionale) al nome della matrice. Ad esempio "part [7]" si riferisce all'elemento numero 7 della matrice mono dimensionale chiamata "part".

L'indice della matrice deve essere un numero intero compreso tra 0 e 32767 ed una qualsiasi espressione matematica pu essere utilizzata per specificarlo. In tal caso il risultato dell'espressione arrotondato al numero intero pi vicino a quello che determina il valore di indice che deve essere usato. Quando si utilizza una chiamata ad un array senza specificarne l'indice, il valore zero assunto come indice (es. "part [ ]" equivale a "part [0]" ). In certe situazioni l'omissione dell'indice significa che tutti i possibili valori di quella matrice devono essere considerati. Ad esempio, il comando LISTL part [ ] richiede di visualizzare tutti i valori di location contenuti nella matrice part. Nel caso di utilizzo di matrice multidimensionale, gli indici devono essere separati da virgole e l'indice pi a destra deve avere il valore pi grande degli indici a sinistra (per un efficiente utilizzo della memoria)

Esempio corretto di matrice di punti 2 x 4. a [ 1,1 ] a [ 1,2 ] a [ 1,3 ] a [ 1,4 ] a [ 2,1 ] a [ 2,2 ] a [ 2,3 ] a [ 2,4 ]

51

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio scorretto di matrice di punti 2 x 4. a [ 1,1 ] a [ 1,2 ] a [ 2,1 ] a [ 2,2 ] a [ 3,1 ] a [ 3,2 ] a [ 4,1 ] a [ 4,2 ] E' possibile definire matrici sia di transformations che di precision points.

2.6.2

Come definire le variabili

Il V+ permette molteplici metodi per definire variabili di locations. Ogni variabile automaticamente definita la prima volta che gli viene assegnata un valore. Fino a che ci non accade, la variabile risulter non definita ed ogni tentativo di riferimento ad essa risulter come condizione di errore. Qualsiasi dei seguenti approcci pu essere utilizzato per la definizione di variabili e per la assegnazione di relativi valori. Definizione di variabili locations tramite terminale di programmazione: Il comando TEACH prepara il sistema per una registrazione di una serie di locazioni tramite la Manual Control Pendant Il comando HERE assegna un nome alla locazione del robot quando il comando eseguito Il comando POINT usato per definire una nuova locazione sulla base di una gi nota. Setta la variabile di sinistra uguale a quella di destra e permette un editing interattivo Durante l'editing di un programma, i comandi T e TS possono essere utilizzati per iniziare una registrazioni di locations tramite Manual Control Pendant. Definizione di variabili durante l'esecuzione di un programma: L'istruzione HERE assegna un nome ad una locazione del robot quando listruzione eseguita L'istruzione SET pu essere usata per assegnare un valore di locazione ad una variabile

52

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.7 Compound transformations (trasformazioni composte) Le compound transformations permettono di specificare locazioni relative a locazioni rappresentate da altre transformations. Questo metodo molto comodo in situazioni in cui molte locazioni devono essere definite come relative ad una locazione di riferimento. Quindi, se il robot o il sistema di riferimento viene successivamente spostato, solo la transformation relativa al frame deve essere ricalcolata poich tutte quelle definite relative vengono corrette in modo automatico. A differenza delle relative transformations, in questo caso il sistema tiene conto anche dellorientamento del frame.

Nellesempio mostrato in Figura, un pallet stato posizionato allinterno dellaria di lavoro mediante un convogliatore. Il programma che segue autoapprende 3 locazioni che definiscono il sistema di riferimento relativo del PALLET e successivamente rimuove le parti in esso contenute. Il programma funzioner indipendentemente da dove il pallet sar posizionato allinterno dellaria di lavoro del robot. ; Get the locations to define the pallet DETACH () ;Release robot for use by the MCP PROMPT "Place robot at pallet origin. ", $ans HERE loc.origin ;Record the frame origin PROMPT "Place robot at point on the pallet x-axis. ", $ans HERE loc.x.axis ;Record point on x-axis PROMPT "Place robot at point in positive y direction. ", $ans HERE loc.pos.y ;Record positive y direction
53

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

ATTACH (); Reattach the robot ; Create the local reference frame "pallet.frame" SET pallet.frame = FRAME(loc.origin, loc.x.axis,loc.pos.y, loc.origin) cell.space = 50 ;Spacing of cells on pallet ; Remove the palletized items FOR i = 0 TO 3 FOR J = 0 TO 2 APPRO pallet.frame:TRANS(i*cell.space, j*cell.space), 25 MOVE pallet.frame:TRANS(i*cell.space, j*cell.space) BREAK ;Settle robot CLOSEI ;Grab the part DEPART 25 ;MOVE to the drop off location END END Nel sopra citato esempio, il codice di programma che autoapprende il frame del pallet deve girare solo quando il pallet cambia locazione.

L'utilizzo delle compound transformations pu introdurre dei piccoli errori nel posizionamento a causa dei cumulativi errori computazionali che si possono verificare nel calcolo. In situazioni in cui una compound transformation venga utilizzata spesso, vantaggioso fare uso dell'istruzione di SET per ridurre il numero di volte in cui viene calcolata. Ad esempio, nell'approccio ad una locazione di presa "grasp" ed al relativo movimento ad essa, invece di usare APPRO pallet.frame:grasp, 100 MOVE pallet.frame:grasp conviene usare SET x = pallet.frame:grasp APPRO x, 100 MOVE x

54

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Mentre questi due segmenti di programma sono funzionalmente equivalenti, la seconda versione porter via meno tempo della prima in fase di esecuzione poich il calcolo della compound transformation viene fatto solo una volta.

2.8 Robot motions Il V+ processa le istruzioni di movimento del robot in modo differente da quello che di solito ci si aspetta. Una istruzione di movimento come "MOVE pt1" interpretata come inizio del movimento del robot per raggiungere la locazione "pt1". L'esecuzione di un programma in V+ continua non appena il robot ha cominciato il suo movimento alla destinazione specificata, senza controllare direttamente l'attivit del robot. Comunque, la sequenza di istruzioni MOVE part.1 SIGNAL 1 MOVE part.2 SIGNAL 2 causer l'attivazione del segnale digitale di uscita signal #1 immediatamente dopo che il robot avr cominciato il movimento alla locazione "part.1" piuttosto che aspettare l'arrivo del robot alla locazione. Quando la seconda istruzione di movimento verr incontrata, il V+ aspetter fino a quando il movimento a "part.1" non sar terminato. A questo punto, subito dopo aver dato il via al movimento verso il punto "part.2", anche il secondo segnale digitale di uscita sar settato in ON. Quando una singola istruzione di movimento processata, come nella sequenza MOVE pick BREAK il robot comincia a muoversi verso la locazione accelerando regolarmente fino a raggiungere la velocit impostata. Qualche momento dopo, cio quando il robot si star avvicinando alla locazione "pick", avr inizio la fase di decelerazione fino alla fermata. Quando viene eseguita una sequenza di istruzioni di movimento del tipo MOVE loc.1 MOVE loc.2 BREAK

55

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

il robot comincia a muoversi verso la locazione "loc.1" accelerando regolarmente fino a raggiungere la velocit impostata, come accadeva anche prima, ma senza decelerare o fermarsi su "loc.2" . Cambier invece la sua direzione ed il robot inizier a muoversi verso "loc.2". Alla fine, quando sar in prossimit di "loc.2", si verificher la decelerazione fino all'arresto su "loc.2". Questo tipo di movimento rappresentato da due "segmenti di movimento" poich stato generato da due istruzioni separate. Il transito regolare tra segmenti di movimento, senza arresto, chiamato continuos-path operation. Questo il normale metodo che utilizza il V+ per muovere il robot. Esistono in V+ certe istruzioni di programma che causano la sospensione dell'esecuzione del programma fino a che il robot non abbia raggiunto la destinazione comandata fermandosi. Queste azioni sono chiamate breaking continuos path. Questo tipo di istruzione viene utilizzata ogni volta che sia necessario avere il robot fermo prima di effettuare l'operazione successiva (ad esempio la chiusura della pinza). Consideriamo la sequenza di istruzioni MOVE loc.1 BREAK SIGNAL 1 L'istruzione MOVE comincia a far muovere il robot alla locazione "loc.1" e l'esecuzione del programma continua con l'istruzione di BREAK. Questa istruzione causa l'attesa dell'esecuzione dei passi di programma successivi fino a quando la "loc.1" non sar raggiunta. Il risultato che il segnale digitale di uscita #1 non sar abilitato fino a che il robot non avr raggiunto la sua locazione. Le seguenti istruzioni causano pure la sospensione dell'esecuzione del programma fino a quando il robot non si sia fermato: BASE HALT BREAK OPENI CLOSEI PAUSE DELAY DETACH(0) TOOL

RELAXI

2.8.1

Procedural Motion

Unaltra caratteristica del V+ quella di effettuare movimenti secondo traiettorie rettilinee e archi di circonferenza con interpolazione di assi.(procedural motion). Una procedural motion un loop di programma che calcola molti piccolo spostamenti per costruire il movimento finale richiesto. Lesecuzione parallela di istruzioni robot motions and non-motion permette a ogni successivo movimento di essere effettuato senza larresto del manipolatore. La traiettoria continua
56

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

(continuous-path) una specifica del V + e smorza automaticamente la transizione tra segmenti di movimento. Procedural Motion Examples Di seguito sono descritti due semplici esempi di procedural motions. Nel primo esempio il robot si muove lungo una traiettoria descritta da locazioni memorizzate in una matrice. SPEED 50 ALWAYS FOR index = 0 TO LAST(path[]) MOVES path[index] END La pinza del robot si muove ad una velocit costante pari al 50% della monitor speed attraverso ogni locazione definite nel percorso array path[ ]. (Un metodo per creare un path array quello di utilizzare il commando V + TEACH per muovere il robot lungo una specifica traiettoria e premere ripetutamente il tasto RECORD nella manual control pendant.). Nel secondo esempio la pinza del robot si muove lungo una traiettoria circolare. Se il percorso non pre memorizzato, pu essere descritto da una funzione matematica basata sul raggio e sul centro dellarco di circonferenza da percorrere. In questo caso si assume che la variabile reale raggio sia gi stata assegnata come raggio dellarco desiderato, e il centro sia stato assegnato come coordinate x.center e y.center del rispettivo centro di curvatura. In ultimo si suppone che la variabile angle.step sia stata definita come incremento angolare valido per ogni incremento di movimento. Poich listruzione DURATION stata usata, il programma muove la pinza per un incremento angle.step lungo un arco ogni 0.5 secondi.

DURATION 0.5 ALWAYS FOR angle = start TO last STEP angle.step x = radius*COS(angle)+x.center y = radius*SIN(angle)+y.center MOVE TRANS(x, y, 0, 0, 180, 0) END

57

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.9 Robot speed Il movimento di un robot composto da 3 fasi: Fase di accelerazione: dove il robot accelera fino a raggiungere la massima velocit specificata per quel movimento Fase di velocit: dove il robot continua a muoversi senza superare la massima velocit specificata Fase di decelerazione: dove il robot diminuisce bruscamente la velocit fino a fermarsi Il concetto di velocit pu avere due significati: 1. Quanto velocemente si muove il robot tra la fase di accelerazione e di decelerazione durante un movimento (robot speed) 2. Quanto velocemente il robot passa da un punto ad un altro (robot performance) La velocit tra una accelerazione e una decelerazione (robot speed) espressa come valore percentuale della velocit normale del robot. NORMAL SPEED: Velocit normale del robot (dichiarata dal costruttore) MONITOR SPEED: Velocit settata dal sistema operative come percentuale della NORMAL SPEED. Questo valore viene setto a 50 per default PROGRAM SPEED: Velocit definita a livello di programma espressa come percentuale della MONITOR SPEED e valida solo per listruzione di movimento successiva (a meno che non venga dichiarato ALWAYS). Questo valore viene setto a 100 per default La velocit effettiva del Robot quindi il prodotto di queste due velocit. Con la monitor speed e la program speed settate a 100, il robot muove alla sua velocit normale. Con la monitor speed settata a 50 e la program speed settata a 50, il robot muove al 25% della sua velocit normale.

58

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.10 Sommario delle istruzioni motion control

59

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

60

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

61

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

62

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

63

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

64

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

65

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.11 Il controller Adept MV I Controller Adept si basano sulle specifiche del Bus VME e le schede con inserimento a scorrimento sono state ideate per la misura del VME 6U. Esistono tre modelli di controller, Adept MV-5, MV-10, e Adept Compact Controller. Controller MV-5 Il controller Adept MV-5 un telaio a 5 slot disponibile sia come unit indipendente sia come configurazione robotica. La versione indipendente orizzontale e si pu montare in armadiatura standard da 19 pollici. La versione robot verticale. Si pu unire ad un Telaio di alimentazione PA-4 Adept e le unit congiunte si possono montare in armadio standard da 19 pollici. L'MV-5 Adept richiede una scheda AWC in configurazione 68040 o 68060. L'AWC occupa lo slot 1 della piastra posteriore. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. Il telaio MV-5 Adept ha una alimentazione da 250-watt, fase singola auto limitante VAC 100120/200-240. Il telaio viene raffreddato da una ventola situata nella parte anteriore inferiore. L'aria che entra viene pulita da un filtro riutilizzabile.

Controller MV-10 Il controller Adept MV-10 un telaio a 10 slot disponibile sia come unit indipendente sia come configurazione robotica. La versione indipendente orizzontale e si pu montare in armadio standard da 19 pollici. La versione robot verticale. Si pu unire ad un telaio di alimentazione PA-4 Adept e le unit congiunte si possono montare in armadio standard da 19 pollici.

66

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

L'MV-10 Adept richiede una scheda, una scheda AWC in configurazione 68040 o 68060. L'AWC occupa lo slot 1 della piastra posteriore. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. Il telaio MV-10 Adept ha una alimentazione da 350-watt, fase singola auto limitante VAC 100120/200-240. Il telaio viene raffreddato da una ventola situata nella parte anteriore inferiore. L'aria che entra viene pulita da un filtro riutilizzabile. Controller MV-Compact Il Controller Adept Compact stato progettato per la serie di robot Adept Cobra e per la linea di prodotti AdeptModules (fino a 4 assi). Comprende un amplificatore PA4 con due amplificatori doppi e un telaio a quattro slot che si adatta ai due slot rimanenti del telaio dell'amplificatore PA4. Il controller compact non disponibile nella versione indipendente. Il Controller Adept Compact richiede una scheda, una scheda AWC in configurazione 68040 o 68060. L'AWC occupa lo slot 1 della piastra posteriore. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. Il telaio a quattro slot alimentato dalla piastra posteriore PA4 e non necessita di un'alimentazione esterna autonoma.

Processore di sistema AWC (68040 o 68060) La scheda di elaborazione del sistema AWC necessaria per tutti i controller Adept e si pu configurare con un CPU 68040 o 68060. L'AWC basato su 68060 si pu utilizzare come processore del sistema ausiliario.

67

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La scheda AWC comprende una Compact Flash RAM che prende il posto dell'unit a disco fisso tradizionale. Comprende anche un collegamento Ethernet per le comunicazioni generali in rete e per l'interfaccia AdeptWindowsPC. La scheda AWC un modulo VME con slot singolo 6U che si collega nella piastra posteriore di qualsiasi telaio MV Adept, compresi MV-4, MV-5 e MV-10.

Ci sono due configurazioni del processore/memoria per la scheda AWC. L'AWC 040 utilizza un processore 68040 da 25 MHz con 8 MB RAM. L'AWC 060 utilizza un processore 68060 da 50 MHz con 24 MB RAM. Le prestazioni delle schede dipendono dall'applicazione e dal modo in cui il programma di applicazione scritto. In generale, l'AWC 060 ha da 1,5 a 2 volte potenza di elaborazione dell'AWC 040. Gli altri 16 MB di RAM sull'AWC 060 vengono forniti mediante una memoria di espansione CPA. Bench sia rimovibile, Adept la considera una parte integrante dell'AWC 060. L'AWC 060 viene testato e montato con la scheda di espansione della memoria installata. Non interferire con il PCA dell'espansione della memoria. Al posto della tradizionale unit a disco fisso, alcuni sistemi utilizzando il Compact Flash (CF). Il Compact Flash una piccola solida unit a disco fisso che grande la met di una carta di credito e due volte pi spessa. Compact Flash non ha parti semovibili e per questo motivo affidabile e durevole. Si pu rimuovere e pu essere spostata ad un'altra scheda AWC per la sostituzione e la verifica.

68

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Compact Flash disponibile in due misure. Per i sistemi che non utilizzano AIM, la maggior parte dei programmi V + dei clienti si adattano al Compact Flash con 8 MB. I sistemi basati su AIM richiedono una memoria superiore. La capacit CF che viene inviata insieme ai sistemi AIM, attualmente di 30 MB (che pu essere aumentata in futuro). La scheda optional SIO si pu aggiungere a qualsiasi sistema AWC (sempre che ci siano due slot vuoti) per aggiungere capacit all'unit a disco fisso, all'unit floppy e alle ulteriori porte seriali. Con i sistemi PC AdeptWindows si pu utilizzare il software NFS fornito per montare le unit a disco fisso in modalit remota. Compact Flash destinata come unit D. Le unit A e C sono riservate alle unit floppy e a disco fisso sulla SIO.

Scheda Entrata/Uscita del sistema (SIO) La scheda del sistema Input/Output (SIO) una scheda VME a due slot 6U che in grado di gestire I/O seriale e una grossa mole di memorizzazione per il Controller Adept. La scheda del sistema di I/O (SIO) provvede alle funzioni del sistema di I/O del controller. Possiede un'unit a disco fisso, un'unit floppy e tre porte seriali utente RS-232.

69

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Scheda grafica Adept (VGB) La scheda dei grafici Adept (VGB) una scheda VME ad un unico slot 6U che serve da processore di grafici e da memoria di transito per le immagini e comanda la visualizzazione nel monitor a colori. La VGB ha connettori per monitor, tastiera e dispositivo di puntamento (mouse, trackball, ecc.) dedicati. Inoltre la VGB ha un collegamento diretto del bus del video con la scheda EVI nei sistemi AdeptVision. La scheda grafica Adept (VGB) provvede alla capacit dei grafici per i controller Adept. (Si pu anche utilizzare un PC e il software AdeptWindowsPC come interfaccia grafico operativo. AdeptWindowsPC una sostituzione funzionale di VGB, che consente l'uso di un PC per visualizzare i grafici).

70

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Scheda d'interfaccia AdeptVision (EVI) La scheda d'interfaccia AdeptVision (EVI) necessita di prodotti AdeptVision sui controller Adept. La scheda EVI una scheda VME a slot singolo 6U che serve come interfaccia di visione per catturare dei fotogrammi da utilizzare con il prodotto AdeptVision. La scheda EVI presenta due memorie di transito dei fotogrammi 1K x 1K. Queste memorie di transito sono in grado di supportare telecamere ad ampio formato (come la Pulnix TM-1001) e di fornire ulteriori memorie di transito del fotogramma per operazioni normali. La scheda EVI presenta un processore dedicato per avviare le convoluzioni. Ad esempio, la scheda EVI in grado di elaborare una convoluzione 3 x 3 su un'immagine 512 x 488 in sei millisecondi. dotata di un connettore telecamera/impulso stroboscopico per i segnali della telecamera e di impulso stroboscopico. La scheda EVI in grado di supportare fino a quattro telecamere e due luci ad impulso stroboscopico. Il connettore del bus del video dotato di collegamenti diretti del segnale del bus del video con la scheda optional VGB. necessario AdeptNet quando si utilizza EVI con AdeptWindows.

Schede d'interfaccia AdeptMotion (M13/M16) necessaria una scheda d'interfaccia AdeptMotion (MI13 o MI16) per avviare il prodotto VME AdeptMotion. La scheda MI3 una scheda VME a slot unico 6U progettata per comandare tre assi di movimento. La scheda MI6 comanda 6 assi.

71

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Ogni scheda possiede uscite dall'unit del servomeccanismo, entrate di codifica incrementali e I/O digitali per il comando della macchina e dell'amplificatore. Tutte le entrate e le uscite dei dispositivi esterni sono optoisolate. Ognuno dei canali di MI3/MI6 pu essere configurato sia per il servo comando dell'asse del robot che per il nastro trasportatore che fa il percorso da un codificatore esterno. Si possono installare fino a quattro schede MI6/MI3 in un Controller Adept, nella misura in cui c' abbastanza alimentazione per l'elaborazione e slot disponibili.

Scheda d'interfaccia di giunzione Adept VME (EJI) La scheda d'interfaccia di giunzione accresciuta VME Adept (EJI) necessaria quando un robot Adept o i moduli Adept vengono installati in un sistema del controller Adept. La scheda EJI si interfaccia con i codificatori e gli amplificatori del robot. Inoltre EJI costituisce l'interfaccia per i codificatori del nastro nelle applicazioni di trasporto dei robot Adept. La scheda dell'interfaccia di giunzione perfezionata VME di Adept (EJI) una scheda VME a slot singolo 6U progettata per comandare il movimento degli assi di un robot Adept. La scheda EJI possiede dei connettori per il cavo del telaio alimentazione e per il cavo del segnale del braccio (robot). C' un altro connettore per i codificatori esterni, solitamente si usa per il tracciato del nastro.

Scheda VME AdeptForce (VFI) La scheda d'interfaccia della forza Adeptforce VME (VFI) una scheda VME a slot unico 6U progettata per controllare il livello di forza da utilizzare con il prodotto VME AdeptForce. La scheda VFI rappresenta l'interfaccia del sensore della forza che viene installato su un robot o su un dispositivo di movimento. La scheda VFI elabora i dati dal sensore della forza e poi effettua le letture della forza disponibili per i programmi dell'utente. La scheda VME AdeptForce (VFI) fa parte del Prodotto AdeptForce VME. Altri componenti inclusi nel prodotto sono il modulo del software VME AdeptForce e l'unit del sensore della forza installata su un robot.

72

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Scheda Entrata/Uscita digitale (DIO) La scheda I/O digitale Adept (DIO) una scheda di I/O digitale a 64 canali con 32 canali d'ingresso e 32 canali d'uscita. Si tratta di una scheda VME asservita 6U e tutti gli ingressi e le uscite sono optoisolate. I 32 canali di ingresso sono organizzati in quattro gruppi di otto. Ciascun gruppo optoisolato elettricamente dagli altri gruppi e dalla circuiteria dei bus VME. Le otto entrate all'interno di ciascun gruppo hanno una messa a terra comune. Si accede alle entrate mediante i due connettori d'entrata D-sub a 26 pin sulla parte frontale della scheda. Ogni connettore fornisce l'accesso a due gruppi d'entrata. Ogni gruppo richiede 10 pin: 8 segnali d'entrata e 2 masse a terra di riferimento. Un'entrata viene attivata fornendo un potenziale positivo sul pin d'entrata corrispondente al pin di messa a terra del suo gruppo. Questo tipo di input viene considerato di immersione (ossia, per avviarlo, la corrente deve fluire nel pin d'ingresso). I 32 canali d'uscita sono organizzati in quattro gruppi di otto. Ciascun gruppo optoisolato elettricamente dagli altri gruppi e dal circuito dei bus VME. Le otto uscite all'interno di ciascun gruppo hanno una fornitura comune di alimentazione e una messa a terra comune.
73

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Si accede alle uscite mediante i due connettori d'uscita D-sub a 44 pin sulla parte frontale della scheda. Ogni connettore consente l'accesso a due gruppi d'uscita. Ogni gruppo richiede 19 pin: 8 segnali d'uscita, 1 segnale di prova, 9 per l'alimentazione (tutti collegati tra loro) e 1 di riferimento della messa a terra dell'alimentazione. Quando un'uscita attivata, la corrente entra mediante i pin di alimentazione ed esce dai pin d'uscita. Questo tipo di uscita viene considerato di sourcing (ossia, nello stato on, la corrente esce dal pin di uscita). Ogni canale (circuito) di uscita dovr essere collegato a un solo dispositivo di uscita.

Si possono installare fino a 8 schede DIO, a seconda della disponibilit degli slot. La capacit di I/O totale (compresi i segnali presenti sul Pannello d'interfaccia CIP 8 DI e 12 DO) con 8 schede DIO di 268 canali d'ingresso e 264 d'uscita.

Processore ausiliario (AWC con CPU 68060) La scheda AWC Adept con CPU 68060 si pu utilizzare come processore del sistema ausiliario per aumentare le prestazioni di elaborazione di un sistema Adept. Si pu assegnare un processore ausiliario per gestire le operazioni di elaborazione di VME AdeptMotion, AdeptVision e sensore di forza oppure con la licenza di estensione optional V + si possono avviare diversi sistemi operativi V + .

74

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.12 Descrizione del sistema di controllo Il sistema di interfaccia joints provvede ad effettuare due funzioni di controllo. In primo luogo, controlla i motori che guidano il manipolatore ed inoltre, il sistema opzionale di Visione, permette il monitoraggio della posizione di un convogliatore in movimento e genera il segnale per sincronizzare la telecamera nel sistema di visione. Il sistema di interfaccia con i singoli joints riceve i comandi dalla CPU via bus MV e risponde a questi generando i segnali che causano l'amplificazione di potenza necessaria per pilotare i motori del robot. Gli encoder, posizionati su ogni joint, trasmettono l'informazione sul posizionamento alle schede di controllo assi. Durante il normale ciclo di lavoro, il sistema operativo V+ invia comandi si posizionamento ad ogni sistema di controllo dei motori in modo tale che lintero meccanismo esegua il movimento comandato dalloperatore. La seguente figura mostra un diagramma del flusso di comando che parte dal programmatore, attraversa il sistema operativo, raggiunge il sistema di controllo di ogni singolo motore ed, infine, comanda il motore.

Il V+ fa affidamento ad ogni singolo sistema di controllo assi per assicurare che i motori rispettino in modo accurato il proprio posizionamento. Il sistema di controllo effettua il proprio compito emettendo un comando di coppia correttiva al motore basato sugli errori di posizionamento del motore stesso (differenza tra posizione comandata e posizione attuale). Questo modo di funzionamento si chiama closed-loop control or feedback control dato che la posizione attuale del motore viene rimandata al controller e utilizzata per il calcolo della torsione correttiva. La retroazione viene eseguita 500 o 1000 volte al secondo per mezzo del software Adept Motion, in base al valore di servo-loop rate impostato dallutilizzatore. Se il sistema di controllo stato aggiustato correttamente, il motore potr comportarsi come una molla passiva, ammortizzatore e massa, come mostrato nella seguente figura.
75

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Come si incrementa lerrore di posizione del motore, viene applicata una coppia correttiva che ha un effetto incrementante, esattamente come la molla che tira dal suo centro. Se il motore viene quindi rilasciato, loscillazione risultante sar compensata cos come agirebbe lammortizzatore attaccato alla molla e alla massa. Questo comportamento chiamato risposta del closed loop, perch il commando inviato al motore dal sistema di controllo determinato sia dalla posizione attuale che dalla posizione comandata, e non solamente dalla posizione comandata. Il sistema di controllo detto a close a loop attorno al motore poich viene letta la sua posizione attuale, comparata con la posizione comandata ed applicata la coppia correttiva basata sullerrore. Lobiettivo del sistema di controllo per regolazione motori quello di cambiare in maniera dinamica la risposta al closed loop del motore per rispettare i comandi di posizionamento. I parametri del sistema di controllo necessitano di essere aggiustati cos da garantire la corretta coppia al motore per permettergli di muovere alla locazione desiderata. In questo modo il sistema si comporta come una molla e un ammortizzatore, con la posizione di setpoint impostata dal V+ che diventa il centro della molla.
76

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per la regolazione del sistema di controllo motori vengono utilizzate due misure primarie: time response frequency response Lanalisi del time response misura il comportamento del motore ai cambiamenti di posizione del setpoint. Sulla base del comportamento del motore vengono aggiustati i parametri del sistema di controllo. Lanalisi del frequency response misura come il sistema risponde ad un ingresso sinusoidale (sinewave setpoints) su diverse frequenze. Ad alte frequenze, lampiezza della risposta dovr diminuire sensibilmente limitandosi ai valori di risonanza.

La figura mostra un diagramma a blocchi del sistema di controllo AdeptMotion VME. Come gi detto, il sistema di controllo riceve i comandi di posizionamento dal V+ ed esegue una serie di calcoli su percorso Proporzionale, Integrale e Derivativo che permettono di determinare la coppia finale. Questo comando di coppia verr filtrato dallamplificatore ed inviato ad un convertitore Digitale/Analogico (DAC) che converte il segnale digitale di coppia in valore analogico (10 volt signal) che alimenta lamplificatore del motore. La posizione attuale del motore comparata con il successivo comando di posizione V+, per generare un errore di posizione che utilizzato per calcolare il prossimo valore di coppia.

77

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.12.1 Amplifier Control Section

La Figure mostra la sequenza dettagliata della sezione di controllo Amplificatori. Sono visualizzati 3 parametri che hanno effetto sul valore di coppia finale prima che venga inviata allamplificatore del motore.

1.

Maximum DAC Output specifica il massimo commando di coppia che dovr essere inviato allamplificatore. Comandi di coppia con valore assoluto maggiore rispetto a questo, saranno tagliati o saturati. Il range di lavoro del DAC output da 0 a 32767, che corrisponde ad un voltaggio compreso tra 0 e 10 Volt dopo che il comando stato inviato al DAC. Questo parametro spesso utilizzato ad un basso valore

2. Motor Sign determina se un comando digitale positivo di coppia corrisponde a un voltaggio positivo o negativo. 3. DAC Output Filter un dispositivo digitale di filtro passa basso nel commando di coppia finale.

78

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2.13 Interconnessione hardware delle schede sul Controller Adept

79

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3 Il linguaggio di programmazione V+
Il V+ il linguaggio di programmazione dei controllori Adept. Una delle caratteristiche pi potenti del V+ la capacit di eseguire programmi di controllo di processo in maniera asincrona rispetto al programma di controllo del robot. Mentre il programma di controllo del robot sta "guidando" la sequenza di movimento del manipolatore, il programma di controllo di processo in grado di monitorare e controllare simultaneamente processi interni o esterni. I processi da controllare sono tipicamente comunicazioni con altre periferiche o interblocchi di sicurezza. Durante l'esecuzione del programma di controllo del robot, il programma di processo pu alterare la sequenza delle operazioni tramite l'utilizzo di variabili interne o segnali di trasmissione I/O.

3.1 Creazione di un programma I programmi V + possono essere creati on-line sul controller utilizzando un apposito editor chiamato SEE EDITOR oppure off-line, con un normale TEXT EDITOR. Nomi di programmi e di variabili non possono eccedere i 15 caratteri. I nomi devono cominciare con una lettera e possono essere seguiti da una sequenza di lettere, numeri, trattini e caratteri di sottolineatura. Le lettere possono essere digitate in maiuscolo o minuscolo. V+ visualizza sempre nomi di programmi e di variabili in lettere minuscole. Esistono due tipologie principali di programmi:

Executable Programs, che a loro volta si dividono in o Robot Control Program o General Program Command Programs

Gli Executable programs sono descritti in questa sezione e si basano sullutilizzo di Program Instructions. I Command programs sono simili ai programmi batch per MS_DOS o UNIX e si basano sullutilizzo di Monitor Commands.

80

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.1.1

Robot Control Programs

Un robot control program un programma V + che controlla direttamente un robot o un attuatori di movimento. Pu contenere qualsiasi tipo di istruzione V+. I robot control programs sono normalmente eseguiti dalla program task #0, ma possono essere eseguiti anche da altre task disponibili col sistema operativo V+. La Task #0 si connette automaticamente con il robot quando comincia lesecuzione del programma principale nella task #0.

3.1.2

General Programs

Un general program un qualsiasi programma V + che non controlla direttamente un robot o un attuatori di movimento. Con un sistema robotizzato si possono avere pi programmi in esecuzione contemporanea (multi tasking) che dialogano con il robot control program. Ad esempio, un programma addizionale pu monitorare e controllare processi esterni attraverso segnali digitali o analogici. I general programs possono anche comunicare con il Robot control program attraverso variabili globali e segnali software (soft signals).

3.2 Organizzazione di un programma La prima istruzione per creare un nuovo programma V + PROGRAM serve per nominare il programma, definirne gli argomenti che riceve o invia, ed ha il seguente formato: .PROGRAM program_name(parameter_list) ;Comment Il program_name nome obbligatorio, mentre parameter_list e comment sono opzionali. Dopo la linea .PROGRAM ci sono sue restrizioni prima di passare alle istruzioni tradizionali: AUTO, LOCAL, or GLOBAL instructions devono precedere qualunque istruzione eseguibile del programma. Solo righe di commento o righe vuote sono permesse tra .PROGRAM e AUTO, LOCAL, or GLOBAL instructions La fine di un programma deve essere identificata da una riga che comincia con .END.

3.2.1

Logica computazionale multi-tasking

Questa capacit di gestione asincrona viene realizzata all'interno della stessa struttura di controllo tramite una logica computazionale del tipo "multi-tasking" che del tipo "time-slice" (fetta di tempo). Questo significa che all'interno dello stesso elaboratore pi "jobs" possono essere eseguiti contemporaneamente nello stesso tempo. Il controller Adept utilizza un microprocessore Motorola 68040 a 25 MHz (o 68060 a 50 Mhz) per il controllo sia dei programmi di movimento che per quelli di processo (scheda AWC). In aggiunta, la scheda EJI si interfaccia con i codificatori e gli amplificatori del robot.
81

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Robot e processo sono controllati come di seguito descritto: Ogni 16 mS il processore principale viene interrotto. Durante questa interruzione vengono eseguite le inversioni delle equazioni cinematiche (come computo matematico della posizione del singolo asse in base alla posizione dell'estremit del robot) e viene comunicata la relativa posizione angolare del joint via bus VME al processore di controllo assi. Questa interruzione di processo consuma approssimativamente 7 mS (1.2 mS se il robot non in movimento, 2 mS se il robot si sta muovendo in interpolazione di joints, 7,5 mS se il robot si sta muovendo linearmente e 8 mS se il robot si sta muovendo in maniera relativa rispetto ad un sistema anch'esso in movimento). Ci che rimane dei 16 mS di campionamento disponibile per il controllo dei programmi di processo con un tempo totale di elaborazione pari a circa 600 istruzioni di programma al secondo. Quindi, anche se il robot si sta muovendo alla massima velocit, il processore principale in grado di eseguire fino a 600 istruzioni al secondo.

3.3 Program Control In questo capitolo introduciamo la struttura per il controllo di programmi disponibile in V+, che comprende le istruzioni si salti incondizionato e condizionato, tipiche di molti linguaggi di programmazione. Per evitare fraintendimenti nella comprensione di questa parte, le seguenti pagine sono state lasciate volutamente in lingua inglese, come riportate sui manuali di programmazione e User Guide Adept
3.3.1 Unconditional Branch Instructions

There are three unconditional branching instructions in V + : GOTO CALL CALLS

GOTO The GOTO instruction causes program execution to branch immediately to a program label instruction somewhere else in the program. The syntax for GOTO is: GOTO label label is an integer entered at the beginning of a line of program code. label is not the same as the program step numbers: Step numbers are assigned by the system; labels are entered by the programmer as the opening to a line of code. In the next code example, the numbers in the first column are program step numbers (these numbers are not displayed in the SEE editor). The numbers in the second column are program labels.
82

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

61 . 62 63 . 64 . 65 66 . 100 TYPE "The instruction GOTO 100 got me here." GOTO 100

A GOTO instruction can branch to a label before or after the GOTO instruction. GOTO instructions can make program logic difficult to follow and debug, especially in a long, complicated program with many subroutine calls. Use GOTO instructions with care. A common use of GOTO is as an exit routine or exit on error instruction.

CALL The CALL and CALLS instructions are used in V + to implement subroutine calls. The CALL instruction causes program execution to be suspended and execution of a new program to begin. When the new program has completed execution, execution of the original program resumes at the instruction after the CALL instruction. The simplified syntax for a CALL instruction is: CALL program (arg_list) program arg_list is the name of the program to be called. The program name must be specified exactly, and the program being CALLed must be resident in system memory. is the list of arguments being passed to the subroutine. These arguments can be passed either by value or by reference and must agree with the arguments expected by the program being called.

The code: 48 49 50 . CALL check_data(locx, locy, length) .

suspends execution of the calling program, passes the arguments locx, locy, and length to program check_data, executes check_data, and (after check_data has completed execution) resumes execution of the calling program at step 50.

83

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

CALLS The CALLS instruction is identical to the CALL instruction except for the specification of program. For a CALLS instruction, program is a string value, variable, or expression. This allows you to call different subroutines under different conditions using the same line of code. (These different subroutines must have the same arg_list.) The code: 47 48 49 50 . $program_name = $program_list[program_select] CALLS $program_name(length, width) .

suspends execution of the calling program, passes the parameters length and width to the program specified by array index program_select from the array $program_list, executes the specified program, and resume execution of the calling program at step 50.

3.3.2

Program Interrupt Instructions

V + provides several ways of suspending or terminating program execution. A program can be put on hold until a specific condition becomes TRUE using the WAIT instruction. A program can be put on hold for a specified time period or until an event is generated in another task by the WAI T. EVENT instruction. A program can be interrupted based on a state transition of a digital input signal with the REACT and REACTI instructions. Program errors can be intercepted and handled with a REACTE instruction. Program execution can be terminated with the HALT, STOP, and PAUSE commands. These instructions interrupt the program in which they are contained. Any programs running as other tasks are not affected. Robot motion can be controlled with the BRAKE, BREAK, and DELAY instructions. (The ABORT and PROCEED monitor commands can also be used to suspend and proceed programs).

WAIT WAIT suspends program execution until a condition (or conditions) becomes true. WAIT SIG(1032, -1028) delays execution until digital input signal 1032 is on and 1028 is off. WAIT TIMER(1) > 10 suspends execution until timer 1 returns a value greater than 10.

84

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

WAIT.EVENT The instruction: WAIT.EVENT , 3.7 suspends execution for 3.7 seconds. This wait is more efficient than waiting for a timer (as in the previous example) because the task does not have to loop continually to check the timer value. The instruction: WAIT.EVENT suspends execution until another task issues a SET.EVENT instruction to the waiting task. If the SET.EVENT does not occur, the task waits indefinitely.

REACT and REACTI When a REACT or REACTI instruction is encountered, the program begins monitoring a digital input signal specified in the REACT instruction. This signal is monitored in the background with program execution continuing normally until the specified signal transitions. When (and if) a transition is detected, the program suspends execution at the currently executing step. REACT and REACTI suspend execution of the current program and call a specified subroutine. Additionally, REACTI issues a BRAKE instruction to immediately stop the current robot motion. Both instructions specify a subroutine to be run when the digital transition is detected. After the specified subroutine has completed, program execution resumes at the step executing when the digital transition was detected. Digital signals 1001 - 1012 and 2001 - 2008 can be used for REACT instructions. The signal monitoring initiated by REACT/REACTI is in effect until another REACT/REACTI or IGNORE instruction is encountered. If the specified signal transition is not detected before an IGNORE or second REACT/REACTI instruction is encountered, the REACT/REACTI instruction has no effect on program execution.

The syntax for a REACT or REACTI instruction is: REACT signal_number, program, priority signal_number program priority digital input signal in the range 1001 to 1012 or 2001 to 2008. the subroutine (and its argument list) that is to be executed when a react is initiated. number from 1 to 127 that indicates the relative importance of the reaction.
85

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

The following code implements a REACT routine: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 If signal 1001 transitions during execution of step 43, step 43 completes, the subroutine alarm is called, and execution resumes at step 44. If signal 1001 transitions during execution of step 47, steps 47, 48, and 49 completes (since the program had been given a higher priority than REACT), the subroutine alarm is called, and execution resumes at step 50. IGNORE -1001 ; Disable monitoring of signal 1001 MOVE a MOVE b LOCK 20;Defer any REACTions to "alarm" MOVE c MOVE d LOCK 0;Allow REACTions MOVE e ; REACT will be in effect for the following code REACT -1001, alarm, 10 ; Look for a change in signal 1001 from "on" to "off". ; Call subroutine "alarm if a change is detected. ; Set priority of "alarm" to 10 (default would be 1). ; The main program has default priority of 0.

REACTE REACTE enables a reaction program that is run whenever a system error that causes program execution to terminate is encountered. This includes all robot errors, hardware errors, and most system errors (it does NOT include I/O errors). Unlike REACT and REACTI, REACTE cannot be deferred based on priority considerations. The instruction: REACTE trouble enables monitoring of system errors and execute the program trouble whenever a system error is generated.
86

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

HALT, STOP, and PAUSE When a HALT instruction is encountered, program execution is terminated, and any open serial or disk units are DETACHED and FCLOSEd. PROCEED or RETRY will not resume execution. When a STOP instruction is encountered, execution of the current program cycle is terminated and the next execution cycle resumes at the first step of the program. If the STOP instruction is encountered on the last execution cycle, program execution is terminated, and any open serial or disk units are DETACHED and FCLOSEd. PROCEED or RETRY will not resume execution. (See EXECUTE for details on execution cycles.) When a PAUSE instruction is encountered, execution is suspended. After a PAUSE, the system prompt appears and Monitor Commands can be executed. This allows you to verify the values of program variables and set system parameters. This is useful during program debugging. The monitor command PROCEED resumes execution of a program interrupted with the PAUSE command. NOTE: The PANIC monitor command halts program execution and robot motion immediately but leaves HIGH POWER on.

BRAKE, BREAK, and DELAY BRAKE aborts the current robot motion. This instruction can be issued from any task. Program execution is not suspended and the program (executing as task 0) continues to execute at the next instruction. BREAK suspends program execution (defeats forward processing) until the current robot motion is completed. This instruction can be executed only from a robot control program and is used when completion of the current robot motion must occur before execution of the next instruction. A DELAY instruction specifies the minimum delay between robot motions (not program instructions). BRAKE

87

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

BREAK
Example

APPRO point-1, 50 BREAK MOVE point-1 BREAK

DELAY

3.3.3

Logical (Boolean) Expressions

The next two sections discuss program control structures whose execution depends on an expression or variable that takes on a Boolean value (a variable that is either true or false, or an expression that resolves to true or false). An expression can take into account any number of variables or digital input signals as long as the final resolution of the expression is a Boolean value. In V + , any number (real or integer) can satisfy this requirement. Zero is considered false; any nonzero number is considered true. There are four system constants, TRUE and ON that resolve to 1, and FALSE and OFF, that resolve to 0. Examples of valid Boolean expressions: y > 32 NOT(y > 32) x == 56 x AND y (x AND y) OR (var1 < var2) -1

88

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

If x has a value of 6 and y has a value of 10, the following Boolean expressions resolve to 1 (true): x < y y >= x y <> x and these expressions resolve to 0 (false): x > y x <> 6 x == y Note the difference between the assignment operator = and the relational operator ==: z = x == y In this example, z is assigned a value of 0 since the Boolean expression x == y is false and would therefore resolve to 0. A relational operator never changes the value of the variables on either side of the relational operator.

89

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

If x = 6 and y = 10, the following expressions resolves to 1 (true): NOT(x == 7) (x > 2) AND (y =< 10) And these expressions resolves to 0 (false): NOT(x == 6) (x < 2) OR (y > 10)

3.3.4

Conditional Branching Instructions

Conditional branching instructions allow you to execute blocks of code based on the current values of program variables or expressions. V + has three conditional branch instructions: IF...GOTO IF...THEN...ELSE CASE value OF

IF...GOTO IF...GOTO behaves similarly to GOTO, but a condition can be attached to the branch. IF logical_expression GOTO label logical_expression label Real-valued expression whose value is tested for TRUE (nonzero) or FALSE (zero). Program step label of a step in the current program.

If the instruction: IF x > 0 GOTO 100 is encountered, the branch to label 100 occurs only if logical_expression X > 0 has a value of true.

90

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

IF...THEN...ELSE The basic conditional instruction is the IF...THEN...ELSE clause. This instruction has two forms: IF expression THEN

code block (executed when expression is true)


END IF expression THEN

code block (executed when expression is true)


ELSE

code block (executed when expression is false)


END expression is any well-formed Boolean expression (described above).

In the following example, if program execution reaches step 59 and num_parts is greater than 75, step 60 is executed. Otherwise, execution resumes at step 62. 56 . 57 58 59 60 61 62 In the following example, if program execution reaches step 37 with input signal 1033 on and need_part true, the program executes steps 38 to 40 and resumes at step 44. Otherwise, it executes step 42 and resumes at step 44. 32 . 33 34 35 36 37 38 39 40 41 ELSE
91

;CALL "check_num" if "num_parts" is greater than 75 IF num_parts > 75 THEN CALL check_num(num_parts) END

; If I/O signal 1033 is on and Boolean "need_part" is ; true, then pick up the part ; else alert the operator. IF SIG(1033) AND need_part THEN MOVE loc1 CLOSEI DEPART 50

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

42 43 44 END .

TYPE "Part not picked up."

CASE value OF The IF...THEN...ELSE structure allows a program to take one of two different actions. The CASE structure will allow a program to take one of many different actions based on the value of a variable. The variable used must be a real or an integer. The form of the CASE structure is: CASE target OF VALUE list_of_values:

code block (executed when target is in list_of_values) VALUE list_of_values: code block (executed when target is in list_of_values)
... ANY

code block (executed when target not in any list_of_values) END


target list_of_values real value to match. list (separated by commas) of real values. If one of the values in the list equals target, the code following that value statement is executed.

Example 65 ; Create a menu structure using a CASE statement 66 67 50 TYPE "1. Execute the program." 68 69 70 71 72 73 74 75 76 77 CASE select OF VALUE 1: CALL exec_program() VALUE 2: CALL exec_programmer() VALUE 3:
92

TYPE "2. Execute the programmer." TYPE "3. Execute the computer." PROMPT "Enter menu selection.", select

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

78 79 80 81 82 83 END .

CALL exec_computer() ANY PROMPT "Entry must be from 1 to 3", select GOTO 50

If the above code is rewritten without an ANY statement, and a value other than 1, 2, or 3 is entered, the program continues to execute at step 83 without executing any program.

93

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.3.5

Looping Structures

In many cases, you will want the program to execute a block of code more than once. V + has three looping structures that allow you to execute blocks of code a variable number of times. The three instructions are: FOR DO...UNTIL WHILE...DO

FOR A FOR instruction creates an execution loop that will execute a given block of code a specified number of times. The basic form of a FOR loop is: FOR index = start_val TO end_val STEP incr .

code block
. END index start_val end_val is a real variable that keeps track of the number of times the FOR loop has been executed. This variable is available for use within the loop. is a real expression for the starting value of the index. is a real expression for the ending value of the index. Execution of the loop terminates when index reaches this value. is a real expression indicating the amount index is to be incremented after each execution of the loop. The default value is 1.

incr

Examples 88. 89 90 91 92 93 94 .
94

; Output even elements of array "$names" (up to index 32) FOR i = 2 TO 32 STEP 2 TYPE $names[i] END

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

102 . 103 104 105 . 106 107 108 109 110 111 112 . END END TYPE " ", /C1 FOR i = 1 TO 10 FOR j = 1 to 10 TYPE values[i,j], /S ; Output the values of the 2 dimensional array "values" in ; column and row form (10 rows by 10 columns)

A FOR loop can be made to count backward by entering a negative value for the step increment. 13 . 14 15 16 17 18 19 . Changing the value of index inside a FOR loop will cause the loop to behave improperly. To avoid problems with the index, make the index variable an auto variable and do not change the index from inside the FOR loop. Changes to the starting and ending variables do not affect the FOR loop once it is executing. END FOR i = 10 TO 1 STEP -1 TYPE i ; Count backward from 10 to 1

DO...UNTIL DO...UNTIL is a looping structure that executes a given block of code an indeterminate number of times. Termination of the loop occurs when the Boolean expression or variable that controls the loop becomes true. The Boolean is tested after each execution of the code block - if the expression evaluates to true, the loop is not executed again. Since the expression is not evaluated until after the code block has been executed, the code block will always execute at least once. The form for this looping structure is:
95

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

DO .

code block
. UNTIL expression expression is any well-formed Boolean expression. This expression must eventually evaluate to true, or the loop executes indefinitely

20 . 21 ; Output the numbers 1 to 100 to the screen 22 23 x = 1 24 DO 25 TYPE x 26 x = x + 1 27 UNTIL x > 100 28 .

Step 26 ensures that x will reach a high enough value so that the expression x > 100 becomes true. 43 . 44 45 46 47 48 49 50 51 52 53 . x=1 DO PROMPT "Enter a character: ", $ans TYPE $ans x=x+1 UNTIL (x > 15) OR ($ans == "#") ; Echo up to 15 characters to the screen. Stop when 15 ; characters or the character "#" have been entered.

In this code, either x reaching 15 or # being entered at the PROMPT instruction terminates the loop. As long as the operator enters enough characters, the loop terminates.

96

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

WHILE...DO WHILE...DO is a looping structure similar to DO...UNTIL except the Boolean expression is evaluated at the beginning of the loop instead of at the end. This means that if the condition indicated by the expression is true when the WHILE...DO instruction is encountered, the code within the loop will be executed. WHILE...DO loops are susceptible to infinite looping just as DO...UNTIL loops are. The expression controlling the loop must eventually evaluate to true for the loop to terminate. The form of the WHILE...DO looping structure is: WHILE expression DO

code block
END expression is any well-formed Boolean expression as described at the beginning of this section.

The following code shows a WHILE...DO loop being used to validate input. Since the Boolean expression is tested before the loop is executed, the code within the loop will be executed only when the operator inputs an unacceptable value at step 23. 20 . 21 22 23 24 25 END ; Loop until operator inputs value in the range 32-64 PROMPT "Enter a number in the range 32 to 64.", ans WHILE (ans < 32) OR (ans > 64) DO PROMPT "Number must be in the range 32-64.", ans

In the above code, an operator could enter a nonnumeric value, in which case the program execution would stop. A more robust strategy would be to use a string variable in the PROMPT instruction and then use the $DECODE and VAL functions to evaluate the input. In the following code, if digital signal 1033 is on when step 69 is reached, the loop does not execute, and the program continues at step 73. If digital signal 1033 is off, the loop executes continually until the signal comes on. 65 . 66 67 68 69 70 71 72 END ;Wait for signal ; Create a busy loop waiting for signal ; 1033 to turn "on" WHILE NOT SIG(1033) DO

97

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.4 Summary of Program Control Keywords

98

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

99

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

100

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.5 Principali operazioni di Input / Output Il controller, grazie alle avanzate funzioni di sistema operativo, in grado di comunicare con l'esterno tramite semplici operazioni di Input / Output. Le istruzioni di I/O hanno valori di default appropriati per la maggior parte delle comuni applicazioni e, per utilizzi pi sofisticati, il V+ permette il dialogo semplificato con il terminale di programmazione, la "manual control Pendant, periferiche esterne collegate via porta seriale ed operazioni di lettura e scrittura files su disco. Tutte le operazioni di I/O fanno riferimento ad un valore intero chiamato "Logical Unit Number" o LUN. Questo numero permette un semplice metodo di identificazione con la device o file a cui stata riferita la generica operazione di I/O. In generale, ogni device I/O deve essere collegata utilizzando l'istruzione di ATTACH prima che essa sia accessibile dal programma. Se una device stata aperta dal programma di controllo del robot non pu essere usata da un programma di controllo di processo e vice versa. La maggior parte di comandi I/O fallisce se la device richiamata, associata alla relativa LUN, non "attaccata". Ci sono due eccezioni a questa regola: 1) Le istruzioni di PROMPT, TYPE e WRITE possono essere spedite in uscita verso il terminale di programmazione e l'istruzione di PROMPT pu leggere input dal terminale di programmazione anche se la linea non collegata (attacched). 2) Ogni task di controllo programma pu essere attaccata alla unit logica disco contemporaneamente senza problemi di interferenza. Quando un programma ha completato l'utilizzo della device, questa deve essere scollegata utilizzando l'istruzione DETACH.

3.5.1

Terminal I/O

Listruzione di programma pi usata per visualizzare output text sul monitor TYPE. The program line: TYPE "This is a terminal output instruction." Visualizza il testo contenuto tra le virgolette nella posizione corrente del cursore. La stessa istruzione pu essere utilizzata per visualizzare il contenuto di una variabile. Se una variabile x ha valore 27, listruzione: TYPE "The value of x is ", x, "." Visualizza sul monitor The value of x is 27 Listruzione TYPE anche in grado di posizionare il cursore in un punto ben preciso del monitor.
101

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Listruzione TYPE /C34, /U17, "This is the screen center." Equivale a 34 ritorni di carrello (pulisce lo schermo) e posiziona il cursore 17 linee sopra la fine dello schermo, prima di visualizzare il testo. Listruzione di programma in grado di accettare data input dalla tastiera PROMPT. The program line: PROMPT "Enter a value for x: ", x Ferma lesecuzione del programma ed aspetta che loperatore immetta un valore dalla tastiera (in questo caso un numero intero o reale). Se un valore stato digitato, questo sar associato alla variabile x. Se un tipo di valore non corretto viene editato, il sistema genera un messaggio di errore e ferma lesecuzione del programma. Un dato stringa accettato solo se stata specificata una variabile tipo stringa ($x, for example). Ogni input digitato dovrebbe essere verificato per accertarsi che sia del data type giusto al fine di evitare il messaggio di errore. DO PROMPT "Enter a value greater than 0: ", $x x = VAL($x) UNTIL x > 0

Istruzioni che visualizzano output text su monitor: PROMPT TYPE WRITE TYPE e WRITE provvedono automaticamente al ritorno carrello se non viene specificato il commando di controllo /S a fine istruzione. PROMPT non aggiunge nessun carattere. Funzioni di Input da periferiche esterne possono essere ottenute anche tramite l'impiego della istruzione READ. Questa istruzione inoltra una richiesta alla periferica attaccata ed indicata dal numero corrispondente a LUN, ed aspetta che si sia completata la procedura di ricevimento dati prima di passare all'esecuzione dell'istruzione successiva.

102

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La funzione GETC ritorna invece il singolo byte letto dalla device I/O senza aspettare il completamento della procedura di ricevimento dati. Questa istruzione comunemente utilizzata per leggere dati da porta seriale o da terminale di programmazione. Per la lettura di dati da disco, il file deve essere aperto nel canale corrispondente alla LUN utilizzata. Questo possibile tramite l'istruzione di FOPEN per l'apertura, e di FCLOSE per la chiusura di files. Per le funzioni di output verso tutte le device si pu ricorrere alla generica istruzione di WRITE specificando l'unit logica utilizzata. Ogni qual volta che si richiama una funzione di I/O conveniente verificarne il corretto funzionamento ricorrendo all'istruzione di IOSTAT. Questo strumento ritorna un valore che pu essere compreso nelle tre seguenti categorie: Valore Spiegazione 1 0 <0 Operazione di I/O completata con successo Operazione di I/O ancora in corso Operazione completata con un errore; il valore indica il tipo di errore.

103

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

PROMPT
PROMPT-I

PROMPT output_string, variable_list Display a string on the system terminal and wait for operator input. output_string variable_list Optional string expression that is output to the system terminal. The cursor is left at the end of the string. A list of real-valued variables, or a single string variable, that receives the data.

Displays the text of the output string on the system terminal, and waits for you to type in a line terminated by pressing the RETURN key. The input line can be processed in either of two ways: 1. If a list of real-valued variables is specified as the variable list, the line is assumed to contain a list of numbers separated by space characters and/or commas. Each number is converted from text to its internal representation, and its value is stored in the next variable contained in the variable list. If more values are read than the number of variables specified, the extra values are ignored. If fewer values are read, the remaining variables are set to zero. If data is read that is not a number, an error occurs and program execution stops. Each PROMPT instruction should request only one value to avoid confusion and to reduce the possibility of error. 2. If a single string variable is specified as the variable list, the entire input line is stored in the string variable. The program must then process the string appropriately. If you press the RETURN key, or press CTRL+C, an empty line is read. This results in all the real variables being set to zero, or the string variable being assigned an empty string. If you press CTRL+Z, an end-of-file error condition results. If there is no REACTE instruction active, program execution is terminated and an error message is displayed. Thus, CTRL+Z can be a useful way to abort program execution at a PROMPT. Examples Consider the instruction: PROMPT "Enter the number of parts: ", part.count The result of executing this instruction is the display of the message Enter the number of parts: on the system terminal to ask you to type in the desired value. After you type a number and press the RETURN key, the variable part.count is set equal to the value typed, and program execution resumes. Consider changing the above instruction to: PROMPT "Enter the number of parts: ", $input

104

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Even if you enter characters that are not valid for numeric input, V + does not output an error message. The application program can use the various string functions to extract numeric values from the input string. If you want to include format specifications in the string output to the terminal (such as /Cn to skip lines), you can use either the $ENCODE function or the TYPE instruction. For example, the instruction PROMPT $ENCODE(/B,/C1,/X10)+"Enter the number of parts: ",$input beeps the terminal, spaces down a line, spaces over ten spaces, outputs the string, and waits for your input. (Note that a + sign has to be used between the $ENCODE function and the quoted string because the entire output_string parameter must be a single string expression.) The following pairs of instructions are equivalent to the previous example: TYPE /B, /C1, /X10, /S PROMPT "Enter the number of parts: ", $input or TYPE /B, /C1, /X10, "Enter the number of parts: ", /S PROMPT , $input

Note that /S must be included in the TYPE instructions as shown to have the prompt string output on one line, and to have the cursor remain on that line.

105

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

TYPE
TYPE-I

TYPE output_specification, ..., output_specification Display the information described by the output specifications on the system terminal. A blank line is output if no argument is provided. output_specification can consist of any of the following components (in any order) separated by commas: 1. A string expression. 2. A real-valued expression, which is evaluated to determine a value to be displayed. 3. Format-control information, which determines the format of the output message.

The following format-control specifiers can be used to control the way in which numeric values are displayed. These settings remain in effect for the remainder of the instruction, unless another specifier is used to change their effect. /D /En.m /Fn.m /Gn.m /Hn Use the default format, which displays values to full precision with a single leading space. (Scientific notation is used for values greater than or equal to 1,000,000.) Output values in scientific notation (for example, 1.234E+2) in fields n spaces wide, with m digits the fractional parts. (If n is not 0 [see the note above], its value must be at least five larger than the value of m.) Output values in fixed-point notation (for example, 123.4) in fields n spaces wide, with m digits in the fractional parts. Output values in F format with m digits in the fractional parts if the values are larger than 0.01 and will fit in fields n spaces wide. Otherwise use /En.m format Output values as hexadecimal integers in fields n spaces wide. /In Output values as decimal integers in fields n spaces wide. /On Output values as octal integers in fields n spaces wide.

The following specifiers can be used to control the appearance of the output. /Cn /S /Un /Xn Output the characters carriage return (CR) and line feed (LF) n times. This will result in n blank lines if the control specifier is at the beginning or end of an output specification; otherwise, n1 blank lines will result. Do not output a carriage return (CR) or line feed (LF) after displaying the current line. Move the cursor up n lines. This will work correctly only if the TERMINAL parameter is correctly set for the terminal being used. Output n spaces.

The following specifiers can be used to perform control functions.

106

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

/B /N

Beep the terminal (nongraphics-based systems only). Initiate output without having program execution wait for its completion. A second output request will force program execution to wait for the first output if it has not yet completed.

Example Assume that the real variable i has the value 5 and that array element point[5] has the value 12.666666. Then, the instruction TYPE /B, "Point", i, " = " /F5.2, point[i] sounds a beep at the system terminal (/B) and display the message Point 5 = 12.67 If point[5] has the value 1000, the instruction displays Point 5 = ***** because the value (1000.00) is too large to be displayed in the specified format (/F5.2). (The instruction can display any value for point[5] if the format specification were /F0.5.)

107

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

WRITE
WRITE-I

WRITE (lun , record_num, mode) format_list Write a record to an open file, or to any I/O device. For an AdeptNet device, write a string to an attached and open TCP connection. Except for the monitor window or console serial port, the device to receive the output must have been attached. If the output is to a disk file, the file must have been opened with an FOPENA or FOPENW instruction. Program execution waits for the write operation to complete unless there is a/N format specifier in the format list. lun record_num Real-valued expression that identifies the device to be accessed. (See the ATTACH instruction for a description of unit numbers.) Optional real-valued expression that represents the number of the record to be written. This should be 0 (the default value) to write the next sequential record. If the value is not zero, the record is written in random-access mode (which requires that the records all have the same length). In random-access mode, records are numbered from one (to a maximum of 16,777,216). Optional real-valued expression that represents the mode of operation. At present, this value is not used and can be omitted. Consists of a list of output variables, string expressions, and format specifiers used to create the output record. The format list is processed exactly like an output specification for the TYPE instruction. When accessing the TCP device, you can include the /N specifier to prevent the V + system from waiting for a write acknowledgment.

mode format_list

This is a general-purpose data output instruction that writes a record to a specified logical unit. A record can contain an arbitrary list of characters, but must not exceed 512 characters in length. Examples You can write a message to the manual control pendant with the following instructions: ATTACH (1) ;Attach the control pendant WRITE (1) $message ;Output message to pendant DETACH (1) ;Detach the pendant A file with variable-length records can be written to the system disk drive with instructions such as the following:

108

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

ATTACH (dlun, 4) "DISK" ;Attach the disk interface FOPENW (dlun) "A:testfile.dat";Open a file on drive "A" FOR i = 0 TO LAST($lines[]) ;Loop for all the elements WRITE (dlun) $lines[i] ;to be written END FCLOSE (dlun) ;Close the file DETACH (dlun) ;Release the disk interface

Attach to serial line 1 and write a greeting: ATTACH (slun, 4) "SERIAL:1" WRITE (slun) "Hello from serial line 1" Write the string $str to the client defined by the handle, which must have been defined previously when the a message was received. Do not wait for acknowledgment: WRITE (lun, handle) $str, /N

109

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

READ
READ-I

READ (lun , record_num, mode) var_list Read a record from an open file or from an attached device that is not file oriented. For an AdeptNet device, read a string from an attached and open TCP connection. The logical unit referenced by this instruction must have been attached previously. For file-oriented devices, a file must already have been opened with an FOPEN_ instruction. lun record_num Real-valued expression that identifies the device to be accessed. (See the ATTACH instruction for a description of unit numbers.) Optional real-valued expression that specifies the record to read for file-oriented devices opened in random-access mode (see the FOPEN_ instructions). For nonfile-oriented devices or for sequential access of a file, this parameter should be 0 or omitted. Records are numbered from one to a maximum of 16,777,216. When accessing the TCP device with a server program, this parameter is an optional real variable that returns the client handle number. The handle can be used to identify the client accessing a multiple-client server. Optional real-valued expression that specifies the mode of the read operation. Currently, the mode is used only for the terminal and serial I/O logical units. The value is interpreted as a sequence of bit flags as detailed below. (All bits are assumed to be clear if no mode value is specified.) Either a list of real-valued input variables or a list of string variables, which receives the data (see following details).

mode

var_list

This is a general-purpose data input instruction that reads a record from a specified logical unit. A record can contain an arbitrary list of characters but must not exceed 512 characters in length. For files that are opened in fixed-length record mode, this instruction continues to read characters until it has read exactly the number of characters specified during the corresponding FOPEN_ instruction. Example Read a line of text from the disk and store the record in the string variable $disk.input: READ (5) $disk.input For an example of using the READ instruction with the TCP device, refer to the Example section for the IOSTAT real-valued function.

110

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

GETC
GETC-R

GETC (lun, mode) Return the next character (byte) from a device or input record on the specified logical unit. The logical unit must be attached by the program for normal, variable-length record input/output. lun mode Real value, variable, or expression (interpreted as an integer) that identifies the device to be accessed. (See the ATTACH instruction for a description of unit numbers.) Real value, variable, or expression (interpreted as an integer) that specifies the mode of the read operation. Currently, the mode is used only for the terminal and serial I/O logical units. The value is interpreted as a sequence of bit flags as detailed below. (All bits are assumed to be clear if no mode value is specified.)

The next byte from the device is returned. When reading from a record-oriented device such as the system terminal or a disk file, the carriage-return and line-feed characters at the end of records are also returned. When the end of a disk file is reached, a Ctrl+Z character (26 decimal) is returned. When reading from the terminal, GETC will return the next character entered at the keyboard. All control characters will be read, except Ctrl+S, Ctrl+Q, Ctrl+O, and Ctrl+W, which will have their normal terminal control functions. Normally, the byte value returned is in the range 0 to 255 (decimal). If an input error occurs, a negative error code number is returned. Example The following program segment reads characters from a disk file until a comma (,) character, a control character, or an I/O error is encountered. The characters are appended to the string variable $field. (The disk file must have already been opened for accessing variable-length records.) $field = "" c = GETC(5) WHILE (c > ^H1F) AND (c <> ,) DO $field = $field+$CHR(c) c = GETC(5) END IF c < 0 THEN TYPE $ERROR(c) HALT END
111

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.5.2

Digital I/O

Ogni controller dispone di un sistema discreto di interfacciamento con l'esterno basato sull'utilizzo di segnali digitali di input o output. Il controller Adept mette a disposizione dell'utente pi linee di segnali digitali che sono spesso utilizzate in combinazione con microcontatti, sensori, fotocellule o carichi induttivi tipo, rel, solenoidi e motori. La gestione di queste unit periferiche, alle quali sono solitamente associate funzioni di fondamentale importanza per il corretto funzionamento della cella integrata, estremamente semplificata dall'utilizzo di una codifica. Il controller Adept vede i segnali suddivisi nella seguente forma:

OUTPUT INPUT "SOFT "

SIGNAL SIGNAL SIGNAL

LINES LINES LINES

0001 - 0512 1001 - 1512 2001 - 2512

Una tipica operazione di digital input quella di attendere il consenso da parte di un sensore o microswitch integrato su un nastro di trasporto che entra nella cella robotizzata, per indicare che il pezzo da assemblare arrivato alla giusta posizione di prelievo. Le istruzioni WAIT e SIG sono utilizzate per sospendere lesecuzione del programma fino a quando il segnale di input specificato raggiunge lo stato richiesto. WAIT SIG(1001) sospende lesecuzione del programma fino a quando il sensore (o altra device esterna di ingresso) collegato al canale digitale di ingresso 1001 commuta sullo stato ON. Se il segnale 1002 un sensore indicante che lalimentatore dei pezzi da assemblare vuoto, il programma IF SIG(1002) THEN CALL service.feeder() END Controller lo stato del sensore e, se il sensore ON, chiamer una routine di allarme per avvertire loperatore che lalimentatore deve essere caricato.

Listruzione SIGNAL utilizzata invece per comandare lo stato di una uscita digitale. Nellesempio sopra citato, il convogliatore potrebbe aver bisogno di un dispositivo meccanico di arresto del pezzo in transito, dopo che il segnale 1001 ha rilevato la presenza del pezzo in posizione di prelievo.

112

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Listruzione SIGNAL(-33) commuta in OFF il segnale di uscita 33, causando larresto del nastro di trasporto che pilotato da questo segnale. Quando il robot ha finito di processare la sua fase di processo sul pezzo, e la parte pu continuare la sua corsa sul convogliatore, il segnale 33 verr riattivato dalla seguente istruzione: SIGNAL(33) I canali relative ai segnali digitali di uscita sono numerate da 1 a 512. Pi segnali possono essere commutati contemporaneamente usando la seguente istruzione: SIGNAL(33),(-34),(35) Or SIGNAL(-33),(34),(-35)

113

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

SIGNAL
SIGNAL-I

SIGNAL signal_num, ..., signal_num Turn on or off external digital output signals or internal software signals. signal_num Real-valued expression that evaluates to a digital output or internal signal number. A positive value indicates turn on; a negative value indicates turn off. (SIGNAL ignores parameters with a zero value.)

The magnitude of a signal_num parameter determines which digital or internal signal is to be considered. Only digital output signals (numbered from 1 to 8 and 33 to 512) and internal (software) signals (numbered from 2001 to 2512) can be specified. Only digital signals that are actually installed and configured as outputs can be used. To check your current digital I/O configuration, use the IO monitor command. Signals 3001 and 3002 refer to the robot selected by the current task. Signal 3001 is the state of the hand-close solenoid. Signal 3002 is the state of the hand-open solenoid. If the sign of the signal_num parameter is positive, the signal is turned on. If the sign of the signal_num parameter is negative, the signal is turned off. NOTE: All V + digital output instructions do not wait for a 16 millisecond V + cycle, they are turned on immediately. However, digital inputs are checked every 16 milliseconds by the V + operating system. Allowing the possibility to turn on and off a signal before the system can read the output. Examples Turn off the external output signal specified by the value of the variable reset (assuming the value of reset is positive), and turn on external output signal #4: SIGNAL reset, 4 Turn external output signal #1 off, external output signal #4 on, and internal software signal #2010 on: SIGNAL 1, 4, 2010

114

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

SIG SIG (signal_num, ..., signal_num) Returns the logical AND of the states of the indicated digital signals. signal_num Real-valued expression that evaluates to a digital I/O or internal signal number. A negative value indicates negative logic for that signal.

Returns a TRUE (1) or FALSE (0) value obtained by performing a logical AND of the states of all the indicated digital signals. That is, SIG will return TRUE if all the specified signal states are TRUE. Otherwise, SIG will return FALSE. The magnitude of each signal_num parameter determines which digital or internal signal is to be considered. Signals 1 - 8 and 33 - 512 are digital outputs. Signals 1001 - 1012 and 1033 - 1512 are digital inputs. Signals 2001 to 2512 are internal (software) inputs or outputs. Only digital signals that are actually installed can be used. You can use the IO monitor command (or the SIG.INS function) to check your current digital I/O configuration. Signals 3001 and 3002 refer to the robot selected by the current task. Signal 3001 is the state of the hand-close solenoid. Signal 3002 is the state of the hand-open solenoid. If the sign of a signal_num parameter is positive, the signal is interpreted as being TRUE if it has a high value. If the sign of a signal_num parameter is negative, the signal is interpreted as being TRUE if it has a low value. NOTE: SIG(0) returns a value of TRUE. Example Assume that the following digital I/O signals are installed and have the indicated values. Input signal 1001 is On Input signal 1004 is Off Input signal 33 is Off The following SIG function references return the indicated values: SIG(1001) ;Returns 1.0 (TRUE) SIG(1004) ;Returns 0.0 (FALSE) SIG(1004) ;Returns 1.0 (TRUE) SIG(1001,1004) ;Returns 0.0 (FALSE) SIG(1001,1004) ;Returns 1.0 (TRUE)

115

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

WAIT WAIT condition Put the program into a wait loop until the condition is TRUE. WAIT with a condition specified should normally not be used because it can lock out other tasks during the wait and use excessive CPU time. See the Examples below for the proper use of WAIT. Use WAIT.EVENT rather than WAIT to wait for a specific amount of time. An executing WAIT instruction in an application program can be canceled by using the PROCEED monitor command. condition Optional real value, variable, or expression that is tested for a TRUE (nonzero) or FALSE (zero) value.

WAIT will suspend program execution until a desired condition exists. For example, the state of one or more external signals can be used for the condition for continuation. If no condition is supplied, program execution is suspended until the next system cycle. System cycles occur at 16 millisecond intervals. A WAIT with no condition is especially useful in programs that need to perform an operation only once each system cycle. If the WAIT condition is specified and is FALSE, V + enters an internal loop, checking the condition and performing RELEASEs. It is equivalent to: WHILE NOT condition DO RELEASE END NOTE: If two high-priority tasks perform releases in the same time slice, they pass control back and forth to each other, effectively locking out any lower-priority tasks in the slice. For this reason, Adept does not recommend using WAIT with a condition specified. If you need to guarantee at least a 16-millisecond delay (for example, while manipulating signals monitored by REACT or REACTI), you should execute two consecutive WAIT instructions (with no arguments). Examples Stop program execution while external input signal #1001 is on and #1003 is off. Poll once each 16-millisecond V + cycle: WHILE SIG(1000, -1003) DO WAIT END
116

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Wait for a global variable set to be cleared by another task. Poll as often as possible without locking out other tasks. WHILE lock_variable DO RELEASE -1 ;Must specify -1 to prevent lockout END

117

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.6

Example V + Programs

Introduction Pick and Place Menu Program Teaching Locations With the MCP Defining a Tool Transformation Others
3.6.1 Introduction

This appendix contains a sampling of V + programs. The first program is presented twice: once in its entirety exactly as it is displayed by V + and a second time with a line-by-line explanation. The program keywords are detailed in the V + Language Reference Guide. NOTE: The programs in this manual are not necessarily complete. In most cases further refinements could be added to improve the programs. For example, the programs could be made more tolerant of unusual events such as error conditions.

118

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.6.2

Pick and Place

This program demonstrates a simple pick-and-place application. The robot picks up parts at one location and places them at another.
F E A T U R E S I N T R O D U C E D

Program initialization Variable assignment System parameter modification FOR loop Motion instructions Hand control Terminal output
P R O G R A M L I S T I N G

.PROGRAM move.parts() ; ABSTRACT: Pick up parts at location pick and put them down at place parts = 100 ;Number of parts to be processed height1 = 25.4 ;Approach/depart height at "pick" height2 = 50.8 ;Approach/depart height at "place" PARAMETER HAND.TIME = 0.16 ;Set up for slow hand OPEN ;Make sure the hand is open RIGHTY ;Make sure configuration is correct MOVE start ;Move to safe starting location FOR i = 1 TO parts ;Process the parts APPRO pick, height1 ;Go toward the pick-up MOVES pick ;Move to the part CLOSEI ;Close the hand DEPARTS height1 ;Back away APPRO place, height2 ;Go toward the put-down MOVES place ;Move to the destination OPENI ;Release the part DEPARTS height2 ;Back away END ;Loop for next part TYPE "All done. ", /I0, parts, " parts processed" RETURN ;End of the program .END

119

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

D E T A I L E D

D E S C R I P T I O N

This program has five sections: formal introduction, initialization of variables, initialization of the robot location, performance of the desired motion sequence, and notice to the operator of completion of the task. Each of these sections is described in detail below. The first line of every program must have the form of the line below. It is a good practice to follow that line with a brief description of the purpose of the program. If there are any special requirements for use of the program, they should be included as well. .PROGRAM move.parts() This line identifies the program to the V + system. In this case we see that the name of the program is move.parts. ;ABSTRACT: Pick up parts at location "pick" and put them down at "place" This is a very brief description of the operation performed by the program. (Most programs requires a more extensive summary.) Use variables to represent constants for two reasons: Using a variable name throughout a program makes the program easier to understand, and only one program line must be modified if the value of the constant is changed. parts = 100 Tell the program how many parts to process during a production run. In this case, 100 parts are processed. height1 = 25.4 Height1 controls the height of the robot path when approaching and departing from the location where the parts are to be picked up. Here it is set to 25.4 millimeters (that is, 1 inch). height2 = 50.8 Similar to height1, height2 sets the height of the robot path when approaching and departing from the put-down location. It is set to 50.8 millimeters (2 inches). PARAMETER HAND.TIME 0.16 Set the system parameter HAND.TIME so that sufficient time is allowed to actuate the robot hand. This setting causes OPENI and CLOSEI instructions to delay program execution for 160 milliseconds while the hand is actuated. Initially, you should also make sure that the robot has the desired hand opening, is at a safe starting location, and that SCARA robots have the desired configuration. RIGHTY Make sure the robot has a right-handed configuration (with the elbow of the robot to the right side of the workspace). This is important if there are obstructions in the workspace that must be avoided.

120

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

This instruction causes the robot to assume the requested configuration during its next motion. OPEN Make sure the hand is initially open. This instruction is executed during the next robot motion, rather than immediately as is done by the OPENI instruction. MOVE start Move to a safe starting location. Because of the preceding two instructions, the robot assumes a right-handed configuration with the hand open. The location start must be defined before the program is executed. That can be done, for example, with the HERE command. The location must be chosen such that the robot can move from it to the pick-up location for the parts without hitting anything. After initialization, the following program section performs the application tasks. FOR i = 1 TO parts Start a program loop. The following instructions (down to the END) will be executed parts times. After the last time the loop is executed, program execution continues with the TYPE instruction following the END below. APPRO pick, height1 Move the robot to a location that is height1 millimeters above the location pick. The APPROS instruction is not used here because its straight-line motion would be slower than the motion commanded by APPRO. MOVES pick Move the robot to the pick-up location pick, which must have been defined previously. The straight-line motion commanded by MOVES assures that the hand does not hit the part during the motion. A MOVE instruction could be used here if there is sufficient clearance between the hand and the part to allow for a nonstraight-line path. CLOSEI Close the hand. To assure that the part is grasped before the robot moves away, the I form of the CLOSE instruction is usedprogram execution will be suspended while the hand is closing. DEPARTS height1 Now that the robot is grasping the part, we can back away from the part holder. This instruction moves the hand back height1 millimeters, following a straight-line path to make sure the part does not hit its holder. APPRO place, height2 MOVES place

121

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

OPENI DEPARTS height2 Similar to the above motion sequence, these instructions cause the part to be moved to the put-down location and released. END This marks the end of the FOR loop. When this instruction is executed, control is transferred back to the FOR instruction for the next cycle through the loop (unless the loop count specified by parts is exceeded). The final section of the program simply displays a message on the system terminal and terminates execution. TYPE "All done. ", /I0, parts, " pieces processed." The above instruction outputs the message: All done. 100 pieces processed. (The /I0 format specification in the instruction causes the value of parts to be output as an integer value without a decimal point.) RETURN Although not absolutely necessary for proper execution of the program, it is good programming practice to include a RETURN (or STOP) instruction at the end of every program. .END This line is automatically included by the V + editor to mark the programs end..

3.6.3

Menu Program

This program displays a menu of operations from which an operator can choose.
F E A T U R E S I N T R O D U C E D

Subroutines Local variables Terminal interaction with operator String variables WHILE and CASE structures
P R O G R A M L I S T I N G

.PROGRAM sub.menu() ; ABSTRACT: This program provides the operator with a menu of ; operation selections on the system terminal. After accepting ; input from the keyboard, the program executes the desired
122

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

; operation. In this case, the menu items include execution of ; the pick and place program, teaching locations for the pick ; and place program, and returning to a main menu. ; ; SIDE EFFECTS: The pick and place program may be executed, and ; locations may be defined. AUTO choice, quit, $answer quit = FALSE DO TYPE /C2, "PICK AND PLACE OPERATIONAL MENU" TYPE /C1, " 1 => Initiate pick and place" TYPE /C1, " 2 => Teach locations" TYPE /C1, " 3 => Return to previous menu", /C1 PROMPT "Enter selection and press RETURN: ", $answer choice = VAL($answer) ;Convert string to number CASE choice OF ;Process menu request... VALUE 1: ;...selection 1 TYPE /C2, "Initiating Operation..." CALL move.parts() VALUE 2: ;...selection 2 CALL teach() VALUE 3: ;...selection 3 quit = TRUE ANY ;...any other selection TYPE /B, /C1, "** Invalid input **" END ;End of CASE structure UNTIL quit ;End of DO structure .END

123

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.6.4

Teaching Locations With the MCP

This program demonstrates how an operator can teach locations with the manual control pendant, thus allowing the controller to operate without a system terminal. The two-line liquid crystal display (LCD) of the pendant is used to prompt the operator for the locations to be taught. The operator can then manually position the robot at a desired location and press a key on the pendant. The program automatically records the location for later use (in this case, for the pick-andplace program).
F E A T U R E S I N T R O D U C E D

Subroutine parameters Attachments and detachments Manual control pendant interaction WAIT instruction Location definition within a program
P R O G R A M L I S T I N G

.PROGRAM teach(pick, place, start) ; ABSTRACT: This program is used for teaching the locations ;"pick", "place", and "start" for the "move.parts" program. ; ; INPUT PARAM: None ; ; OUTPUT PARAM: pick, place, and start ; ; SIDE EFFECTS: Robot is detached while this routine is active AUTO $clear.display. $clear.display = $CHR(12)+$CHR(7) ATTACH (1) ;Connect to the pendant DETACH (0) ;Release control of the robot ; Output prompt to the display on the manual control pendant WRITE (1) $clear.display, "Move robot to START & press RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S WRITE (1) $CHR(30), $CHR(3), /S ;Blink LED on control pendant WAIT PENDANT(3) ;Wait for key to be pressed HERE start ;Record the location "start" WAIT not pendant(3) ; Prompt for second location WRITE (1) $clear.display, "Move robot to PICK & press RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S
124

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

WAIT PENDANT(3) ;Wait for key to be pressed HERE pick ;Record the location "pick" WAIT not pendant(3) ; Prompt for third location WRITE (1) $clear.display, "Move robot to PLACE & press RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S WAIT PENDANT(3) ;Wait for key to be pressed HERE place ;Record the location "place" WAIT not pendant(3) ATTACH (0) ;Reconnect to the robot DETACH (1) ;Release the pendant RETURN ;Return to calling program .END.

3.6.5

Defining a Tool Transformation

The following program establishes a reference point from which tool transformations can be taught. .PROGRAM def.tool() ; ABSTRACT: Invoke a new tool transformation based on a predefined reference ; location and, optionally, teach the reference location AUTO $answer TYPE /C1, "PROGRAM TO DEFINE TOOL TRANSFORMATION", /C1 ATTACH (1) ;Attach the pendant PROMPT "Revising a previously defined tool (Y/N)? ", $answer IF $answer <> "Y" THEN TYPE /C1, "Move the tool tip to the selected reference ", /S TYPE "location.", /C1, "Set ref.tool equal to the ", /S TYPE "transformation for this location.", /C2, "Press ", /S TYPE "the REC/DONE button on the manual control pendant when ", /S TYPE "ready to proceed. ", /S DETACH (0) ;Release the robot to the user WAIT PENDANT(8) ;Wait for user to press REC/DONE button ATTACH (0) ;Regain control of the robot ;(automatically wait for COMP mode) TOOL ref.tool
125

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

HERE ref.loc ;Record the reference location TYPE END TYPE /C1, "Install the new tool. Move its tip to the ", /S TYPE "reference location.", /C2, "Press the REC/DONE button ", /S TYPE "on the manual control pendant when ready to proceed. ", /S DETACH (0) ;Release the robot to the user WAIT PENDANT(8) ;Wait for user to press REC/DONE button ATTACH (0) ;Regain control of the robot ; Compute the new tool transformation, new.tool TOOL ref.tool SET new.tool = ref.tool:INVERSE(HERE):ref.loc TOOL new.tool ;Apply the new tool transformation TYPE /C2, "All done. The tool transformation has been set ", /S TYPE "equal to new.tool .", /C1 DETACH (1) ;Detach the pendant RETURN ;Return to calling program (or STOP) .END Because of computational errors introduced when compound transformations are used, the accuracy of the program presented above can be improved by using a simple tool with no oblique rotations as the reference tool. In fact, you can get the most accurate results if you can use the mounting flange of the robot without a tool as the initial pointer. In this case, the reference tool is the default null tool. The program above can be simplified by deleting the references to ref.tool in lines 17, 28, 45, and 46. The first time the program is executed, respond to the prompt with N. The reference tool is defined. After the program executes once, the tool transformation can be updated by executing the program again. This time, respond to the prompt with Y. The program directs you to position the new tool at the same reference location as before. As long as the values of ref.tool and ref.loc have not been altered, a new tool transformation is automatically computed and asserted. This is a convenient method for occasionally altering the tool transformation to account for tool wear.

126

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

3.6.6

Others

Esempio di programma che memorizza i valori di una matrice stringa in un file disco. . PROGRAM store.array($data [ ] , records, error ) LOCAL disk, rec disk = 5 error = 1 ATTACH (disk) IF IOSTAT (disk) < 0 GOTO 10 FOPENW (disk) "datafile.dat" IF IOSTAT (disk) < 0 GOTO 10 FOR rec = 1 to records WRITE (disk) $data[rec] IF IOSTAT (disk) < 0 GOTO 10 END FCLOSE (disk) IF IOSTAT (disk) > 0 GOTO 20 10 error = IOSTAT (disk) TYPE "DISK I/O ERROR : ", $ERROR(error) FCLOSE (disk) 20 . END DETACH (disk) RETURN ; esce se non ci sono errori

127

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio di programma che legge i dati da una porta seriale utilizzando l'istruzione di GETC. In questo programma si ipotizza che la trasmissione dei dati da porta seriale termini con il carattere ETX, che non visualizzato. . PROGRAM display() LOCAL $buffer, char, done, etx, ienod, line etx = 3 line = 10 ienod = -526 ATTACH (line) IF IOSTAT (line) < 0 GOTO 10 $buffer = "" done = FALSE DO c = GETC (line,1) WHILE c == ienod CALL fai.qualcosa() WAIT c = GETC (line,1) END IF c < 0 GOTO 10 IF c == etx THEN TYPE $buffer, /N done = (LEN ($buffer) == 0 ) $buffer = "" ELSE $buffer = $buffer+$CHR(c) END UNTIL done GOTO 20 10 20 .END TYPE "SERIAL LINE I/O ERROR: ", $ERROR(IOSTAT(line)) PAUSE DETACH (line) RETURN ; legge un byte dalla linea seriale ; Codice errore per no data ; codice ASCII per il carattere ETX

128

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

4 Sistemi numerici e algebra di Boole


4.1 Sistema numerico decimale Ogni linguaggio, per essere scritto e comunicato, ha bisogno di un metalinguaggio. Cos la matematica viene spiegata e comunicata attraverso il linguaggio della lingua parlata o scritta. Linguaggio e metalinguaggio possono per talvolta coincidere. Ad esempio, per descrivere le regole della grammatica italiana ci serviamo dellitaliano stesso Invece in matematica 2X + 4 > 0 una disequazione utilizziamo il linguaggio matematico (2X + 4 > 0) mentre la parte una disequazione appartiene al metalinguaggio che serve a descrivere la prima parte matematica Per esprimere un linguaggio abbiamo bisogno quindi di un insieme di elementi che possano essere messi in corrispondenza biunivoca tra loro e che rappresentino tutti uno stesso concetto astratto: per il linguaggio matematico utilizziamo i numeri. Il sistema numerico decimale quello usato pi frequentemente nella vita odierna, detto a base dieci in quanto per rappresentare un numero qualsiasi sono necessarie dieci cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Si consideri, ad esempio, il numero decimale intero 212; esso pu essere scritto come: 200 + 10 + 2 2 x 102 + 1 x 101 + 2 x 100 cio come somma di potenze del dieci in cui la prima cifra a partire da destra rappresentante lunit viene detta cifra meno significativa o di minor peso, mentre la cifra pi a sinistra, che rappresenta le centinaia, detta cifra di maggior peso o pi significativa. E chiaro che cifre uguali hanno diverso peso a seconda della posizione occupata dal numero. Si consideri ora il numero decimale frazionario 525,27. Anchesso pu essere scritto sotto forma di potenze di dieci con la sola avvertenza che le cifre decimali dopo la virgola vanno moltiplicate per potenze negative di dieci crescenti: 525,27 = 500 + 20 + 5 + 0,2 + 0,07 = = 5 x 102 + 2 x 101 + 5 x 100 + 2 x 10-1 + 7 x 10-2
129

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

In generale in un sistema numerico di base B un numero intero di n cifre pu essere rappresentato nella seguente forma: N = pn-1Bn-1 + pn-2Bn-2 + ..... + p0 B0 = pjBj Essendo N il numero intero, B la base del sistema, pj la cifra nella generica posizione j ed n il numero delle cifre. Nel caso del numero decimale (212)10 : N = pjBj = p0 B0 + p1 B1 + p2 B2 =
2

J=0

= 2 x 100 + 1 x 101 + 2 x 102 = 212 2 1 2 posizione 0 posizione 1 posizione 2 Mentre per un numero generico qualsiasi vale la seguente espressione: N = pn-1 B + ..... + p0 B + p-1 B + ..... + p-m B = pj Bj
n-1 0 -1 -m

n-1

dove con m si indicato il numero di cifre dopo la virgola ed n il numero di cifre intere. Nel caso in cui N= 5 2 5 , 2 p 2 p1 p0
2

j=-m

p-1 p-2

j=-2

N = pj Bj = p- 2 B - 2 + p- 1 B - 1 + p0 B0 + p 1 B 1 + p 2 B 2 =

= 7 x 10-2 + 2 x 10-1 + 5 x 100 + 2 x 101 + 5 x 102 = (525,27)10

4.2 Sistema numerico binario E il sistema usato nei calcolatori elettronici ed un sistema a base o radice due. Vengono infatti usate soltanto due cifre 0 e 1 indicate usualmente col termine bit (abbreviazione di binary digit) per la formazione del numero binario. Un qualsiasi numero in un sistema binario pu essere rappresentato da una serie di bit equivalente alla somma di potenze del DUE, ognuna delle quali moltiplicata per una cifra che pu essere 0 o 1.

130

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per rappresentare o convertire in forma binaria un numero decimale possono essere usati diversi metodi. Il primo metodo consiste nella divisione ripetuta per 2 fino ad avere un quoziente nullo. Il numero binario risultante composto dai resti delle successive divisioni, dove il bit di minor peso il resto della prima divisione e il bit di maggior peso quello dellultima. Conversione binaria del numero 39 39 ---- = 19 + 1 bit di minor peso 2 19 ---- = 9 + 1 2 9 ---- = 4 + 1 2 4 ---- = 2 + 0 2 2 ---- = 1 + 0 2 1 ---- = 0 + 1 bit di maggior peso 2 Si pu dunque scrivere: 39 = 1 x 25 + 0 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 100111 bit di minor peso bit di maggior peso Conversione binaria del numero 16 16 ---- = 8 + 0 bit di minor peso 2 8 ---- = 4 + 0 2
131

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

4 ---- = 2 + 0 2 2 ---- = 1 + 0 2 1 ---- = 0 + 1 bit di maggior peso 2 Si pu dunque scrivere: 16 = 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 0 x 20 = 10000


bit di minor peso bit di maggior peso

16
Bit di minor peso

2 8 0 2 4 0 2 2 0 2 1
Bit di maggior peso

Il metodo appena descritto presenta per linconveniente di non poter essere usato per numeri con parte frazionaria. Un secondo metodo consiste nellesprimere il numero decimale come somma di potenze del due e moltiplicarle per le cifre 0 e 1 appropriatamente. In maniera del tutto analoga a quanto descritto precedentemente per il sistema decimale, si guarda la pi grande potenza di 2 (cio il pi grande tra i possibili raggruppamenti) contenuta nel numero decimale, e cos di seguito per ci che rimane. Si voglia ad esempio sapere quale binario corrisponde al decimale 15. Il pi grande raggruppamento contenuto nel numero il gruppo da 8 unit, pari a 23 unit. Abbiamo poi 7 unit che contengono un gruppo da 4 = 22 unit e 3 unit, che contengono un gruppo da 2 = 21 unit. Infine rimane una unit semplice 1 = 20 unit. (15)10 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = (1111)2
132

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

(15,5)10 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 = (1111,1)2 In maniera analoga si ottiene il passaggio da un numero binario ad un numero decimale: (1111)2 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 8 + 4 + 2 + 1 = (15)10 (1111,1)2 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 = = 8 + 4 + 2 + 1 + 0,5 = (15,5)10
4.2.1 Le operazioni aritmetiche nel sistema binario

Sono operazioni che soddisfano alle stesse regole valide per i numeri decimali ed anno il vantaggio di essere sotto certi aspetti molto pi semplici rispetto a questultime in quanto le cifre usate sono soltanto due. a) Addizione binaria Viene eseguita allo stesso modo di quella decimale, la tabella per laddizione di due cifre binarie la seguente:
0 0 1 1 + + + + 0 1 0 1 = = = = 0 1 1 0 con riporto di 1

Dato che nel sistema binario la cifra pi alta 1, quando la somma maggiore di uno essa richiede il riporto di una cifra in pieno accordo a quanto avviene nel sistema decimale, dove essendo 9 la cifra pi alta, ogni somma maggiore di 9 richiede il riporto di una cifra. Esempio 1 Addizione dei numeri binari 1111 e 1110
1R + 1 1R 1 1 1 binario 1R 1 1 1 1 1 0 decimale 1 0 1 riporto Primo addendo Secondo addendo somma + 1 1 2 5 4 9

Esempio 2 Addizione dei numeri binari 111001 e 001101


1R 1 0 0 1R 1 0 0 binario 1R 0 0 1 0 1 1 riporto Primo addendo Secondo addendo somma decimale 1R 1 5 1 4 2 9

+ 1

1 1 0

1 1 0

133

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

b) Sottrazione binaria E loperazione inversa delladdizione. Essa pu essere eseguita analogamente al sistema decimale, prendendo in prestito una cifra dalla colonna di ordine superiore tutte le volte che la differenza scende sotto lo 0. La tabella per la sottrazione binaria tra due bit la seguente:
0 1 1 0 0 1 0 1 = = = = 0 0 1 1 con riporto negativo di 1

Esempio 3 Sottrazione di (0001101)2 da (1000110)2


1 0 1P 0 0 0 1P 1 0 0 1P 1 binario 0 1 1 1 1 0 1 0 1P 0 0 1 1 minuendo sottraendo cifra in prestito differenza decimale 7 0 1 3 1P 5 7

Esempio 4 Sottrazione di (01110)2 da (11101)2


1 0 1P 0 binario 1 1 1P 1 decimale 1 1 1P 1 0 1 1 1 0 1 minuendo sottraendo cifra in prestito differenza 2 1 1 9 4 5

La sottrazione pu essere eseguita con il metodo appena visto oppure tramite un numero chiamato completamento a due ottenuto invertendo tutti i bit del sottraendo, cio scambiando gli 1 in zero e viceversa, e aggiungendo 1 al risultato. La differenza fra i due numeri si trova addizionando il complemento del sottraendo al minuendo e trascurando leventuale riporto dellultima cifra. Il metodo del complemento a due viene usato nei calcolatori elettronici poich offre una maggiore facilit di meccanizzazione. Esempio 5 Sottrazione di (01110)2 da (11101)2 con il metodo del complemento a due:
0 1 + + 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 sottraendo inversione del sottraendo complemento del sottraendo minuendo risultato (differenza)

Riporto da trascurare
134

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 6 Sottrazione di (0001101)2 da (1000110)2 con il metodo del complemento a due:


0 1 + + 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 sottraendo inversione del sottraendo complemento del sottraendo minuendo risultato (differenza)

Riporto da trascurare

c) Moltiplicazione binaria La moltiplicazione binaria, intesa come addizione ripetuta, segue le stesse regole della moltiplicazione decimale. Essa soddisfa alla seguente tabella:
0 0 1 1 x x x x 0 1 0 1 = = = = 0 0 0 1

Esempio 7 Moltiplicazione di (1111)2 per (10)2:


1 x 1 1 0 1 1 binario 1 1 1 0 0 1 1 1 1 1 0 0 0 moltiplicando moltiplicatore x prodotto decimale 5 2 3 0 1

Esempio 8 Moltiplicazione di (10111)2 da (110)2:


1 x 1 0 1 0 0 0 0 1 0 0 1 1 1 0 binario 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 moltiplicando moltiplicatore decimale 2 3 6 3 8

x 1

prodotto

135

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

d) Divisione binaria La divisione nel sistema binario segue lo schema della divisione nel sistema decimale e pu essere eseguita contando quante volte un numero pu essere sottratto da un altro. Il risultato detto quoziente. In realt questa operazione viene eseguita dai calcolatori elettronici per sottrazioni ripetute. Esempio 9 Divisione di (1111)2 per (11)2:
dividendo 1 1 0 binario 1 1 1 0 1 1 1 1 1 1 1 1 0 divisore quoziente decimale 1 5 1 5 3 5

Esempio 10 Divisione di (10000)2 per (10)2:


dividendo 1 1 binario 0 0 0 0 0 1 1 0 0 decimale 1 6 1 6 2 8

Da quanto descritto si pu notare che loperazione aritmetica fondamentale del sistema binario laddizione, in quanto tutte le altre operazioni possono essere ricondotte ad essa.

136

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

TABELLA 1 Tabella di conversione decimale binario per i primi 32 numeri interi

Decimale
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Binario
0 01 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 100000

137

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

4.3 Dispositivi binari Si incontra spesso, in ambito tecnico, la necessit di operare codifiche delle informazioni per adattare la rappresentazione al canale della trasmissione ed alle macchine che devono elaborarle. Il codice binario per numeri uno tra gli strumenti generalmente applicabili per la semplificazione del problema trasmissione dati / segnali. Verr in questo capitolo brevemente trattato per meglio comprendere la comunicazione binaria dei sistemi di controllo. Il funzionamento di un apparato digitale si basa sul continuo susseguirsi di cambiamenti di valore che il mondo esterno, o i circuiti interni, impongono ad un opportuno insieme di grandezze fisiche. Per impostare una descrizione matematica del comportamento dei sistemi digitali occorre innanzitutto riuscire a prescindere dalla natura delle grandezze fisiche impiegate e dai possibili valori nominali che per esse sono stati scelti in sede di progetto. A tale scopo definiremo "configurazione binaria" un'arbitraria disposizione uno accanto all'altro dei simboli 0 e 1. E' noto dal calcolo combinatorio che, una volta prefissata la lunghezza della "stringa" dei simboli, risulta pure prefissato il numero di differenti configurazioni cos ottenibili: l'elencazione di N simboli 0 o 1 consente infatti di generare non pi e non meno di 2N distinte configurazioni binarie, cio tante quante sono le disposizioni con ripetizione di 0 e 1 a N a N. La codifica o rappresentazione binaria delle informazioni basata sulla seguente asserzione: " Un insieme di M eventi mutuamente esclusivi pu essere posto in corrispondenza con l'insieme dei valori assunti da N variabili binarie se e solo se M 2N." Il rispetto della disuguaglianza consente infatti di rappresentare ciascun evento con almeno una delle 2N possibili configurazioni di valore e di risalire univocamente da ciascuna configurazione al particolare evento che essa deve individuare. L'importanza dei codici binari risiede nel fatto che gli elaboratori elettronici accettano, memorizzano ed elaborano solo informazioni codificate in tali codici. Ci perch tutti i dispositivi usati per la memorizzazione e la elaborazione presentano solo due stati significativi, i quali vengono chiamati a rappresentare appunto i bit 0 e 1. In particolare, alla base di un circuito di memorizzazione o elaborazione stanno microscopici interruttori, realizzati con transistor o diodi. Un transistor un componente a semiconduttore (germanio o silicio), fornito di tre terminali chiamati base (B), emettitore (E) e collettore (C). Il simbolo normalmente utilizzato negli schemi circuitali quello indicato in figura.
C (collettore)

B (base)

E (emettitore)

138

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Un transistor pu funzionare in tre modi distinti: - in regime di interdizione, cio in maniera equivalente ad un interruttore aperto - in regime di saturazione, cio in maniera equivalente ad un interruttore chiuso - in regime lineare, cio come un amplificatore proporzionale di corrente e/o tensione. Nelluso che se ne fa nei circuiti degli elaboratori, la regione lineare viene fatta attraversare velocemente dal dispositivo, il quale presenter due sole condizioni di funzionamento. Pi precisamente , il transistore sar interdetto (stato off o aperto) quando tra base ed emettitore presente una tensione inferiore a 0,7 V per transistor al silicio, e 0,4 V per transistor al germanio. E invece in saturazione (stato on o chiuso) nel caso contrario. Anche il diodo un dispositivo a semiconduttore, fornito di due terminali chiamati anodo e catodo. Se la tensione applicata all'anodo maggiore di quella applicata al catodo ("polarizzazione diretta") il diodo presenta una resistenza estremamente bassa al passaggio della corrente elettrica e si comporta, in questo caso, come un interruttore chiuso. Viceversa, se la tensione al catodo maggiore rispetto a quella dell'anodo ("polarizzazione inversa") la resistenza al passaggio della corrente diventa estremamente alta ed il diodo si comporta come un interruttore aperto.

anodo

catodo

Verso della corrente convenzionale (quella effettiva ha verso opposto)

In generale, lutilizzo di dispositivi a due soli stati per la rappresentazione dei bit 0 e 1 ha diversi vantaggi. In primo luogo quello di essere semplice e di consentire ampie tolleranze. Non necessario un alto livello di precisione dei segnali applicati ai diversi componenti binari. Per questo motivo i componenti elettronici di un elaboratore possono essere costruiti in modo pi grossolano ed economico di quelli impiegati, ad esempio, in un impianto di alta fedelt. 4.4 Algebra di Boole Nella quasi totalit dei calcolatori elettronici linformazione viene elaborata sotto forma digitale, cio i segnali elettrici che la rappresentano possono assumere soltanto due valori nominali. I circuiti preposti a tale scopo sono conosciuti sotto il nome di circuiti logici. Essi hanno la caratteristica comune di operare con segnali binari, con segnali quindi che possono assumere soltanto due valori o livelli. Tali circuiti sono realizzati fisicamente con elementi che possono trovarsi soltanto in due stati diversi: diodi conducenti o non conducenti, transistor saturi o interdetti, ecc. Per il funzionamento del circuito logico non essenziale conoscere il valore numerico esatto del segnale binario, di conseguenza, per rappresentarne i due possibili valori o livelli, risulta
139

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

comodo far uso di sue simboli scelti a piacere. Normalmente questi valori sono indicati con 0 e 1 (Low = basso, High = alto). Ne deriva che il funzionamento di un circuito pu essere interamente descritto da un punto di vista logico e non quantitativo e senza preoccuparsi della sua struttura fisica. Sulla base della numerazione binaria si sviluppa l'algebra di Boole in cui una variabile si definisce booleana in quanto pu assumere soltanto due valori: vero e falso (corrispondenti ai bit 1 e 0 ). Le variabili booleane tendono a rappresentare lo stato di un sistema digitale e su di esse possono essere effettuate operazioni, chiamate logiche o booleane in onore del matematico George Boole che per primo le defin nel 1847. Le elaborazioni cui sono soggette le informazioni saranno cos il prodotto ultimo di tali operazioni. Ciascuna operazione logica caratterizzata da un nome, un simbolo operazionale e da una tabella della verit, cio una tabella che riporta i valori della variabile logica di uscita per ogni combinazione delle variabili logiche di ingresso. Le operazioni fondamentali pi comunemente usate nellalgebra di Boole sono: prodotto logico o AND somma logica o OR negazione o complementazione o NOT

Queste operazioni non debbono essere confuse con le operazioni di somma e prodotto dellalgebra usuale che si applicano anche ai numeri binari. a) Operazione AND (prodotto logico) Si analizzi la seguente situazione: ci troviamo davanti ad un distributore automatico di bevande ed abbiamo sete. Per acquistare una bottiglia di acqua naturale devo inserire la moneta e premere il pulsante verde E chiaro che devono manifestarsi contemporaneamente queste due condizioni per soddisfare la nostra esigenza: 1. devo inserire la moneta giusta 2. deve premere il pulsante verde

A = ingresso (moneta) Operatore Logico (controllore)

Y = uscita (bottiglia)

B = ingresso (pulsante)

140

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Assegnando opportunamente alle variabili binarie i valori 0 e 1 si pu scrivere: Y= 1 0 A= 1 0 B= 1 0 Il distributore automatico funziona Il distributore automatico non funziona La moneta giusta stata inserita La moneta giusta non stata inserita Il pulsante verde stato premuto Il pulsante verde non stato premuto

Con A e B variabili indipendenti e Y variabile dipendente: Y = f (A, B) E possibile compilare ora una tabella, detta tabella della verit (truth-table), in cui compaiono tutte le 2n possibili configurazioni delle variabili indipendenti, con n numero delle variabili.

A 0 0 1 1

B 0 1 0 1

Y 0 0 0 1

Tabella della verit del prodotto logico delle variabili binarie A e B Questa tabella fornisce il prodotto logico (AND) poich soddisfa alle seguenti condizioni: 0*0=0 0*1=0 1*0=0 1*1=1

ed in pieno accordo con lequazione algebrica Y = A * B in quanto il distributore automatico funziona se e soltanto se A e B valgono 1 (la moneta giusta stata inserita ed il pulsante verde stata premuto) mentre in tutti gli altri casi non funziona.

141

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Generalizzando si pu concludere che in un sistema a n variabili: Y = A * B * C * .............. * N Y vale 1 solamente se tutte le n variabili valgono 1. L'operazione AND si applica su pi variabili booleane di ingresso e la variabile booleana di uscita assume il valore 1 solo se tutte quelle di ingresso hanno valore 1. Nella seguente figura mostrato un circuito elettrico che realizza la funzione AND

Circuito AND o coincidenza Assegnando ad ogni contatto una variabile binaria che vale 0 quando il contatto aperto e 1 quando chiuso, e indicando con 0 lo spegnimento della lampada e con 1 la sua accensione, il circuito sopra riportato soddisfa allequazione algebrica: Y = A * B * C * .............. * N propria della funzione AND in quanto circola corrente, e quindi si accende la lampada, se e soltanto se tutti i contatti sono chiusi. Il simbolo operazionale di questa funzione " * ". Per questo motivo loperazione viene chiamata prodotto logico. Il simbolo grafico delloperatore AND cos schematizzato:

142

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

b) Operazione OR (somma logica) Si analizzi la seguente situazione: dobbiamo accendere il nostro lettore CD per ascoltare un disco ed abbiamo la possibilit di attivare il comando PLAY sia dal telecomando sia dal front panel dellapparecchio stesso. Ascolto il disco se premo PLAY dal telecomando o dal front panel dellapparecchio In questo caso esistono due condizioni per lascolto del disco: 1. premo PLAY da telecomando 2. premo PLAY da front panel

A = ingresso (PLAY da front panel) Operatore Logico (controllore) Y = uscita (ascolto CD)

B = ingresso (PLAY da telecomando)

E sufficiente che si verifichi soltanto una fra le due condizioni perch il disco venga ascoltato. Assegnando opportunamente alle variabili binarie i valori 0 e 1 si pu scrivere:

Y=

1 0

Ascolto il disco Non ascolto il disco PLAY da telecomando attivato PLAY da telecomando disattivato PLAY da front panel attivato PLAY da front panel disattivato

A=

1 0

B=

1 0

Con A e B variabili indipendenti e Y variabile dipendente: Y = f (A, B) La rappresentazione algebrica che ne deriva : Y=A+B La variabile di uscita assume valore 1 se almeno una di quelle di ingresso assume valore 1.

143

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

E possibile compilare ora una tabella, detta tabella della verit (truth-table), in cui compaiono tutte le 2n possibili configurazioni delle variabili indipendenti, con n numero delle variabili.

A 0 0 1 1

B 0 1 0 1

Y 0 1 1 1

Tabella della verit della somma logica delle variabili binarie A e B Questa tabella fornisce la somma logica (OR) poich soddisfa alle seguenti condizioni: 0+0=0 0+1=1 1+0=1 1+1=1 ed in pieno accordo con lequazione algebrica Y = A + B in quanto il lettore CD parte se viene premuto il tasto PLAY da telecomando o da front panel. Generalizzando si pu concludere che in un sistema a n variabili: Y = A + B + C + .............. + N La somma logica Y vale 1 quando una o (OR) pi variabili assumono il valore 1. Vale 0 quando tutte le variabili assumono il valore 0. L'operazione OR si applica su pi variabili booleane di ingresso e la variabile booleana di uscita assume il valore 1 se almeno una di quelle di ingresso assume valore 1. Nella seguente figura mostrato un circuito elettrico che realizza la funzione OR

144

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Assegnando ad ogni contatto una variabile binaria che vale 0 quando il contatto aperto e 1 quando chiuso, e indicando con 0 lo spegnimento della lampada e con 1 la sua accensione, il circuito sopra riportato soddisfa allequazione algebrica: Y = A + B + C + .............. + N propria della funzione OR in quanto circola corrente, e quindi si accende la lampada, se almeno uno dei contatti chiuso. Il simbolo operazionale di questa funzione " + ". Per questo motivo loperazione viene chiamata somma logica. Il simbolo grafico delloperatore OR cos schematizzato:

c) Negazione o complementazione NOT Si analizzi la seguente situazione: stiamo ascoltando un disco con il nostro lettore CD ed abbiamo la possibilit di premere il comando STOP per interrompere la musica. Continuo ad ascoltare la musica se non premo STOP In questo caso esistono due condizioni per lascolto del disco: 1. continuo ad ascoltare se non premo STOP 2. non ascolto pi se premo STOP

A = ingresso (STOP)

Operatore Logico (controllore)

Y = uscita (musica)

I valori delle variabili sono:


145

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Y=

1 0

Ascolto musica Non ascolto musica Premo STOP Non premo STOP

A=

1 0

e la corrispondente equazione algebrica vale: _ Y=A _ Con A complemento o inverso di A, 0 complemento di 1 e 1 complemento di 0 La variabile di uscita assume valore il valore opposto della variabile di ingresso. La tabella della verit che verifica loperazione logica inversione molto semplice in quanto si ha soltanto una la variabile indipendente del sistema.

A 0 1

Y 1 0

Tabella della verit della negazione di variabile binaria A L'operazione NOT si applica su una variabile booleane di ingresso e produce una variabile di uscita in ogni caso di valore opposto. Un circuito invertitore NOT pu essere realizzato elettricamente mediante il seguente schema.

La lampada spenta (Y=0) perch cortocircuitata quando il contatto A chiuso (A=1); accesa quando il contatto A aperto (Y=1, A=0).
146

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il simbolo grafico delloperatore NOT cos schematizzato:

I circuiti finora considerati che realizzano le operazioni di prodotto, somma e negazione sono detti porte logiche in quanto luscita Y assume il valore 1 soltanto per determinate configurazioni di ingressi. E possibile definire altre operazioni logiche elementari, chiamate universali, in aggiunta a quelle considerate: porta logica NAND porta logica NOR porta logica OR esclusivo o XOR

d) Porta logica NAND Si tratta di un circuito AND seguito da un NOT. Questo circuito esegue il prodotto logico complementato delle variabili di ingresso.

Lespressione algebrica per un NAND a due ingressi vale ____ Y=A*B


147

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Mentre la tabella della verit la seguente:

A 0 0 1 1

B 0 1 0 1

Y 1 1 1 0

Tabella della verit della porta logica NAND a due ingressi

Generalizzando si pu dire che luscita di una porta logica NAND vale 0 se e soltanto se tutti i suoi ingressi sono a livello 1.

e) Porta logica NOR E un circuito che esegue la somma complementata delle variabili di ingresso. In altre parole un circuito OR seguito da un NOT.

Lespressione algebrica per un NOR a due ingressi vale


148

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

____ Y=A+B Mentre la tabella della verit la seguente:

A 0 0 1 1

B 0 1 0 1

Y 1 0 0 0

Tabella della verit della porta logica NOR a due ingressi

Dallesame della tabella si pu notare che luscita di un NOR vale 1 se e solamente se tutti gli ingressi valgono 0

f)

Porta logica OR esclusivo (XOR)

La funzione logica realizzata da questa porta vale: _ _ Y=AB+AB Tale espressione in pieno accordo con la seguente tabella della verit, come pu essere facilmente verificato assegnando indifferentemente 0 ed 1 alle variabili indipendenti:

149

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

A 0 0 1 1

B 0 1 0 1

Y 0 1 1 0

Tabella della verit della porta logica XOR a due ingressi

Dalla tabella della verit possibile notare che luscita di una porta logica XOR vale 1 soltanto se i due ingressi sono diversi Uno dei simboli con cui si esprime loperazione OR esclusivo il seguente:

150

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

4.5 Teoremi fondamentali dellalgebra di Boole Alcuni di questi teoremi sono immediatamente comprensibili se dimostrati fisicamente mediante una rete di contatti ai quali viene associato il valore 1 se chiusi e 0 se aperti..

Teorema di annullamento

Teorema di identit

151

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Teorema dei complementi

Teorema di idempotenza

152

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

1 Teorema dellassorbimento

2 Teorema dellassorbimento _ A+AB=A+B _ A * ( A + B) = A * B Inoltre valgono le seguenti propriet: A+B=B+A A*B=B*A (A + B) + C = A + (B + C) (A * B) * C = A * (B * C) A B + A C = A * (B + C) (A + B) * (A + C) = A + B C

Propriet commutativa

Propriet associativa

Propriet distributiva

I teoremi precedenti esposti in coppia dono detti duali: si pu passare dalluno allaltro sostituendo loperatore ( * ) con loperatore ( + ) il valore 1 con il valore 0 e viceversa.

153

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Ogni teorema inoltre pu essere verificato con il metodo dellinduzione matematica, operazione che consiste nel verificare la relazione con tutti i possibili valori delle variabili. Ad esempio: _ A+AB=A+B A 0 0 1 1 B 0 1 0 1 0 0 1 1 + + + + 1 1 0 0 _ A+AB * * * * 0 1 0 1 = = = = 0 1 1 1 0 0 1 1 + + + + A+B 0 1 0 1 = = = = 0 1 1 1

Teoremi di De Morgan 1. 2. _____ _ _ (A+B) =A*B _____ _ _ (A*B) =A+B _____ (A+B) 1 0 0 0 _____ (A*B) 1 1 1 0
154

A 0 0 1 1

B 0 1 0 1

_ _ A*B 1 0 0 0 _ _ A+B 1 1 1 0

A 0 0 1 1

B 0 1 0 1

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il primo stabilisce che la complementazione della somma di due variabili uguale al prodotto delle stesse variabili complementate. Il secondo stabilisce che la complementazione del prodotto di due variabili uguale alla somma delle stesse complementate. I due teoremi possono essere conglobati in uno solo detto Teorema di De Mogan generalizzato: Ogni complementazione di una funzione logica pu essere ottenuta scambiando fra loro gli operatori (+) e (*) e complementando tutte le variabili.

155

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

5 Automazione ON / OFF
5.1 Pneumatica Da molti anni la pneumatica ha conquistato una posizione insostituibile in numerosissimi settori della tecnica di comando e di azionamento. Il termine "pneumatica", derivato dal greco (neuma = fiato, respiro), significa trasmettere energia o segnali impiegando come mezzo di trasmissione laria compressa. Per utilizzare la pneumatica in modo ottimale necessario che lutente dei componenti e dei sistemi pneumatici apprenda almeno le nozioni fondamentali su questa tecnologia.

Pneumatica: utilizzo dell'aria come fluido di lavoro per compiti di azionamento e di controllo
in macchine ed impianti industriali. Tale concetto parte delle pi antiche conoscenze dell'umanit, ma si dovuto attendere il secolo scorso per vederne sorgere lo studio sistematico e le prime applicazioni industriali. Gi intorno allanno 2500 avanti Cristo si trova traccia dei primi impieghi dellaria compressa sotto forma di soffietti. In successivi sviluppi laria compressa viene impiegata nella costruzione di organi, nellindustria mineraria e nel settore metallurgico. Lutilizzo sistematico dellaria compressa nella tecnologia si verifica tuttavia solo verso la met del 19 secolo. Utensili pneumatici, martelli pneumatici, impianti per posta pneumatica, locomotori ed altri dispositivi ausiliari rappresentano esempi dello sviluppo verificatosi su larga scala. Lingresso della pneumatica nel settore della meccanizzazione e dellautomazione inizia a met del 20 secolo. Laria compressa si pu ormai trovare in quasi tutti i settori della tecnica: industria artigianato trasporto su rotaia trasporto aereo trasporto su strada industria mineraria navigazione medicina macchine edili difesa
156

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Gli attuatori pneumatici hanno oggi un grosso peso nelle applicazioni di automazione industriale e servono a compiere lavoro meccanico realizzato dalla traslazione o dalla rotazione di un apposito organo a spese dell'energia di un fluido in pressione, sia questa aria o gas compresso. Le funzioni compiute sono molte. Vi sono attuatori alternativi che compiono spostamenti, o rotazioni, di ampiezza limitata e che sono costituiti da vari tipi di cilindri. Vi sono poi veri e propri motori rotativi in grado di compiere rotazioni continue.

Applicazioni
o Realizzazione di movimenti rettilinei attrezzi di fissaggio unit di avanzamento sollevamento ed abbassamento apertura e chiusura inclinazione presse pneumatiche azionamenti su porte tavole rotanti alimentazione pezzi stazioni di rotazione robot industriali saldatrici a punti chiodatrici espulsori vibratori trasporto-spinta frenatura

o Realizzazione di movimenti rotatori avvitatrici molatrici filettatrici trapani cesoie per lamiera roditrici

o Impiego come mezzo di controllo controllo dei cicli controllo di posizione protezione bloccaggio conteggio decelerazione accumulazione rilevamento

o Impieghi vari aria per usi di officina verniciatura posta pneumatica soffiatura unit di controllo

Nei robot questi attuatori possono essere utilizzati sia per la movimentazione dei bracci (traslazioni e rotazioni), sia per il comando di pinze o organi di afferraggio.

157

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.1.1

Caratteristiche della pneumatica

o Laria disponibile ovunque, gratis ed in quantit illimitata o Laria compressa si trasporta facilmente in tubazioni, anche flessibili e di piccolo diametro, e pu essere inoltre trasportata tramite recipienti (bombole) o Bassa concentrazione di potenza degli azionamenti o Basso rapporto peso / potenza e alte velocit o Protezione antideflagrante intrinseca o Insensibile alle influenze esterne come basse temperature, impurit, vibrazioni meccaniche, umidit e campi elettrici o Possibilit di sovraccarico degli organi motori fino allarresto o Non occorrono tubazioni di ritorno o Laria compressa non richiede di essere riciclata ma si pu scaricare liberamente in atmosfera o Semplice conversione dellenergia sia in movimenti rotatori che rettilinei (il movimento rettilineo si ottiene direttamente a differenza dei motori elettrici dove sono necessari sistemi di trasformazione del moto) o Velocit e forze possono essere variate in modo semplice e continuo in un campo molto ampio o La trasmissione di energia possibile su lunghe distanze o Facile manutenzione degli apparecchi grazie alla loro semplice costruzione o Elevata affidabilit, sicurezza di esercizio e lunga durata degli attuatori e degli elementi di comando o Sicurezza di esercizio anche in condizioni desercizio gravose o Economicit dei comandi e degli azionamenti pneumatici o E necessario il trattamento preventivo dellaria o Data la comprimibilit dellaria non possibile realizzare con mezzi semplici unaccurata regolazione di velocit o Le perdite per tra filamento riducono leconomicit di esercizio o Gli scarichi sono rumorosi o La nebbia dolio che viene dispersa nellaria compressa (attraverso i lubrificatori) per la lubrificazione dei componenti, si scarica in atmosfera insieme con laria di scarico.

158

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Dalla disponibilit gratuita dell'aria deriva una caratteristica importante degli impianti ad aria compressa: lo scarico libero in atmosfera. Nei cilindri la camera in pressione viene successivamente posta allo scarico in atmosfera; negli utensili basati sui motori pneumatici l'aria di ammissione va allo scarico dopo aver prodotto il lavoro. L'aria compressa viene quindi continuamente consumata, al contrario degli impianti oleodinamici, dove lo scarico degli attuatori continuamente raccolto e rimesso in circolo. L'organo generatore dell'energia di pressione il compressore. Si tratta di una macchina il cui funzionamento non differisce, nelle linee essenziali, da quello di una motrice a vapore. Se il consumo dell'impianto fosse regolare, un compressore dimensionato per fornire la necessaria portata oraria di aria sarebbe del tutto sufficiente. In pratica poich, specie nei piccoli - medi impianti, raramente il consumo regolare, viene impiegato un serbatoio di accumulo, il quale svolge tre importanti funzioni: 1. Consente di disporre di una pressione sempre costante 2. Determina una buona regolarit di flusso indipendentemente dal numero e dalla intermittenza delle singole utilizzazioni 3. Smorza le eventuali pulsazioni della portata generata dal compressore (specie se questo alternativo). L'aria, prelevata dall'atmosfera in luoghi generalmente lontani da fonti di inquinamento, sottoposta ad una preliminare filtrazione, quindi compressa fino alla prevista pressione di lavoro, ed immagazzinata nel serbatoio-polmone. Di qui, una rete di tubazioni provvede alla sua distribuzione ai vari punti di utilizzazione: macchine pneumatiche, utensili, ecc....

5.1.2

Il concetto di pressione

Pressione atmosferica normale in funzione dellaltitudine


Altitudine (mt) 0 500 1.000 2.000 5.000 8.000 Pressione (mbar) 1.013 955 899 795 540 356

Quando si parla di pressione atmosferica e si forniscono i valori numerici concernenti la pressione, occorre precisare il sistema di riferimento adottato, tenendo presente che tutti i sistemi agisce la pressione atmosferica. Pressione atmosferica E la pressione prodotta dal peso dellatmosfera da cui avvolta la terra. Questa dipende dalla densit dellatmosfera e dallaltitudine del punto considerato, per cui non presenta un valore costante.
159

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Pressione atmosferica normale Per poter fornire valori di pressione esattamente definibili, malgrado le oscillazioni della pressione atmosferica, le norme internazionali hanno stabilito una pressione di riferimento: la pressione atmosferica normale a livello del mare di 1.013 bar = 1.013 hPa = 760 Torr

L'unit di pressione nel Sistema Internazionale il Pascal (Pa), definito come la pressione sviluppata dalla forza di 1 N che grava sulla superficie di 1 m2. Poich si tratta di una unit troppo piccola per i normali usi, se ne impiega un multiplo chiamato bar:

105 Pa = 1 bar
Sono per ancora in uso unit di misura del Sistema Tecnico. In particolare il chilopound (simbolo: kp), nome dato al chilogrammoforza (Kgf) ed equivalente a:

9,80665 N
L'atmosfera fisica (atm) definita come la pressione esistente a livello del mare ed equivale alla pressione esercitata da una colonna di mercurio alta 760 mm, a 0C. L'atmosfera fisica equivale quindi a 1,033 Kp/cm2. Per semplificare i calcoli stata definita l'atmosfera tecnica (at):

1 at = 1 Kp/cm2
La corrispondenza di queste unit con l'unit di misura del Sistema Internazionale si deduce con semplici passaggi:

Kp N N 1 atm = 1,033 -------- = 1,033 x 9,8 -------- = 1,01 x 105 ------- ~ 1 bar cm2 cm2 m2

Kp N N 1 at = 1 -------- = 9,8 -------- = 0,98 x 105 ------- ~ 0,98 bar cm2 cm2 m2 1 bar = 1 atm = 1,02 Kp / cm2

160

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Tabella di conversione tra valori della pressione espressi in diverse unit di misura
Pa (N/m2) 1 9,81 x 104 1,013 x 10 5 10 5 133 9,81 69 x 10 3 Bar 10-5 0,981 1,013 1 1,33 x 10-3 9,81 x 10-5 6,9 x 10-52 Psi (lbf/sq. In) 1,45 x 10-4 14,22 14,68 14,5 1,92 x 10-2 1,42 x 10-3 1 Torr (mm Hg) 75 x 10-4 736 760 750 1 7,36 x 10-2 51,72

5.1.3

Cambiamento di stato dei gas

Lo stato di un gas viene determinato dalle tre grandezze pressione, volume e temperatura. I rapporti fra le tre grandezze per i gas ideali sono fissati dalle leggi di Gay-Lussac e Boyle-Mariotte

Pressione e Volume

Diminuendo il volume a temperatura costante la pressione aumenta (isoterma: T = cost.) p x V = cost p1 x V1 = p2 x V2

p1

V1

p2

V2

A pressione costante il volume daria direttamente proporzionale alla sua temperatura assoluta (isobara : p = cost.) V1 T1 ---- = ---V2 T2

Volume e Temperatura

V2 V1

T2 T1

161

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Pressione e Temperatura

A volume costante la pressione dellaria direttamente proporzionale alla sua temperatura assoluta (isocora : V = cost.) p1 T1 ---- = ---p2 T2

p1 p2

T1 T2

Equazione generale di stato

Raggruppando questi principi si giunge allequazione generale di stato per i gas p2 x V2 p1 x V1 ---------- = ---------- = cost. T1 T2 Oppure, in altra forma: pxV=mxRxT
dove : p : pressione V : volume m : massa T : temperatura assoluta R: costante dei gas (per laria R=287)

5.1.4

Aria compressa

Per aria compressa sintende aria atmosferica compressa che in questa condizione ha accumulato energia sotto forma di pressione e, quindi, in grado di effettuare un lavoro. Durante la compressione si produce calore. Quando laria compressa si espande, subisce un raffreddamento

162

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.2 I cilindri pneumatici I cilindri costituiscono il pi semplice ed il pi naturale tra gli attuatori pneumatici e sono classificati come organi di trasformazione dell'energia. Infatti, per poter raccogliere lavoro all'esterno, necessario che qualche parte si muova sotto l'effetto della pressione e ci avviene nella maniera pi naturale facendo in modo che un lato di un tubo (mantello o camicia del cilindro) in cui si invia aria in pressione, sia libero di spostarsi. Il lato che si muove si chiama pistone. La forza generata sul pistone dalla pressione viene poi di norma portata all'esterno mediante un puntone detto stelo. Il mantello racchiuso tra due testate, anteriore e posteriore; la prima con un foro centrale con guarnizione raschia polvere entro il quale scorre lo stelo.
Testata posteriore Mantello o Camicia

Testata anteriore

Pistone

Stelo

Un cilindro trasforma dunque l'energia potenziale di pressione contenuta nel serbatoio in energia cinetica di movimento. Il lavoro utile prodotto direttamente proporzionale alla pressione esercitata sull'area del pistone, ed al suo spostamento che pari alla corsa. Il mantello (o camicia) generalmente costituito da un tubo di acciaio trafilato senza saldatura. Pi raramente, il mantello in alluminio, ottone o bronzo. La lunghezza del mantello definisce la corsa massima del cilindro, mentre il suo diametro interno ne definisce lalesaggio. Recentemente, il CETOP (Comitato Europeo Trasmissioni Oleodinamiche e Pneumatiche) ha emanato lunificazione della serie dei diametri interni, o alesaggi standard dei cilindri o pneumatici: 8, 12, 16, 20, 25, 32, 40, 50, 63, 80, 100, 125, 160, 200, 250, 320, 400, 500 mm

163

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il corpo del pistone costruito in lega leggera, in acciaio o in materie plastiche. Il corpo del pistone deve essere progettato in modo che le guarnizioni siano spinte dallaria stessa a migliorare la tenuta tra la camera lato stelo e lato pistone del cilindro. Il materiale dello stelo, o asta, di preferenza acciaio legato. Lo stelo pu essere semplice o passante, a seconda che debba uscire da una sola o da entrambe le testate. Le testate possono essere realizzate per fusione di lega leggera e devono assicurare la tenuta meccanica e pneumatica col mantello, la guida e la lubrificazione dello stelo, lentrata e luscita dellaria dal cilindro. La testata anteriore, da cui esce lo stelo, ha incorporata una bronzina, che provvede alla lubrificazione dello stesso. Si costruiscono cilindri a semplice e a doppio effetto.

5.2.1

Cilindri a semplice effetto

Nei cilindri a semplice effetto il moto del pistone in una direzione affidato all'azione di una molla. Il pistone spinto in un verso dall'aria compressa che entra attraverso il condotto di alimentazione, mentre nel senso opposto il moto di ritorno affidato alla molla.

Cilindro a semplice effetto a riposo

Cilindro a semplice effetto in lavoro

La spinta dellaria compressa agisce solo in un senso mentre il movimento in senso opposto avviene per effetto di una molla, oppure di forze esterne

Simbolo grafico DIN/ISO 1219 Cilindro a semplice effetto (con ritorno a molla)

Il vantaggio principale dei cilindri a semplice effetto nell'uso di valvole di comando pi semplici di quelle necessarie ai cilindri a doppio effetto, in cui entrambe le corse si producono grazie all'aria compressa. Gli svantaggi sono dati da una corsa limitata e dal fatto che anche limitata la velocit di ritorno affidata alla molla.

164

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Caratteristiche: o Consumo daria in un solo senso o Posizione definita anche senza energia o Forza davanzamento ridotta (10% circa) a causa della molla o Ingombro in lunghezza maggiore o Lunghezza di corsa limitata o Forza di ritorno modesta (circa il 10% della forza di spinta) o La molla un pezzo addizionale di usura

I cilindri a semplice effetto sono indicati quando le forze vengono richieste solo in un senso ed il movimento di ritorno pu avvenire liberamente e senza carico resistente. Sono indicati inoltre per impieghi in cui, per motivi di sicurezza, in caso di mancanza denergia il cilindro deve assumere una posizione definita.

Cilindro pneumatici commerciali

165

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio di impiego: serraggio, azionamento di valvole, espulsori, ecc I cilindri a semplice effetto possono essere impiegati in spinta (cilindro spingente con posizione di riposo: asta tutta dentro) o in tiro (cilindro traente, con posizione di riposo: asta tutta fuori). Questi ultimi vengono usati per situazioni di emergenza derivanti da mancanza di alimentazione). I valori di forza ottenibili con un cilindro a semplice effetto, di dato alesaggio D, si ottengono moltiplicando i valori di superficie per i valori di pressione su queste agenti. La superficie utile di spinta :

D2 As = --------4
perci la Forza di spinta sviluppata risulta:

Fs = p As ( p la pressione di lavoro relativa )

5.2.2

Cilindri a doppio effetto

Nei cilindri a doppio effetto la spinta dellaria compressa pu agire nei due sensi. Questi sono raccomandati per grossi diametri e corse lunghe. Se il cilindro deve spostare grandi masse, viene fornito di ammortizzatori di fine corsa per evitare gli urti del pistone contro le testate di fine corsa.

Cilindro a doppio effetto a riposo

Cilindro a doppio effetto in lavoro

La spinta dellaria compressa agisce nei due sensi (spinta tiro)

Simbolo grafico DIN/ISO 1219 Cilindro a doppio effetto


166

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Caratteristiche: o Forze di avanzamento disponibili nei due sensi o La forza di ritorno inferiore alla forza di avanzamento di una quantit pari al prodotto della pressione per la sezione dello stelo o Non sono ammessi carichi laterali sullo stelo o Il diametro dello stelo deve avere dimensione ridotta per consentire una forza di ritorno sufficientemente grande o Struttura semplice o Caratteristiche favorevoli

I cilindri a doppio effetto si impiegano quando sono richiesti movimenti lineari con sviluppo di forze in entrambi i sensi. Esempi di impiego: serraraggio, alimentazione, selezionamento, assemblaggio, formatura, pressatura, punzonatura, piegatura, inclinazione.

Disegno meccanico di un cilindro pneumatico Nel caso di cilindri a doppio effetto, di dato alesaggio D e di diametro stelo d, la Forza di spinta si calcola allo stesso modo di un cilindro a semplice effetto:

167

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La superficie utile di spinta :

D2 As = --------4
perci la Forza di spinta sviluppata risulta:

Fs = p As

( p la pressione di lavoro relativa )

Mentre, la Forza di tiro agir chiaramente sulla superficie utile di tiro, e cio:

( D2 - d2 ) At = -----------------4
perci la Forza di tiro sviluppata risulta:

Ft = p At ( p la pressione di lavoro relativa )

Da queste relazioni si vede come la forza teorica di spinta sia sempre maggiore della spinta teorica di tiro, per la presenza dello stelo che riduce la sezione utile nel tiro. In realt necessario tenere conto delle resistenze di attrito che si oppongono allo scorrimento del pistone e dello stelo. Poich la forza si misura staticamente, la resistenza di attrito quella statica, corrispondente alla partenza; durante il movimento la resistenza di attrito minore. Si usa tenere conto delle circostanze dette attraverso un rendimento il cui valore pu assumersi nel campo 80 - 85 %. Per il calcolo del volume d'aria in pressione basta moltiplicare la corsa utile del cilindro per l'area utile di spinta e, nel caso di un cilindro a doppio effetto, sommare a questa il prodotto della corsa utile per l'area utile di tiro. Vs = As * h [ cm 3 ] Vt = At * h [ cm 3 ] V = Vs + Vt

168

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esercizi sui cilindri 1. Un cilindro a doppio effetto ha un diametro di 80 mm ed un diametro dello stelo di 25 mm. La pressione di esercizio di 6 bar (60 N/cm2). Quali solo le forze teoriche sviluppate nelle corse avanti e indietro? Soluzione La superficie utile di spinta :

D2 3,14 x 82 2 As = ---------- = -------------- = 50,3 cm 4 4


perci la Forza di spinta sviluppata risulta: N
2

Fs = p As = 60 ----- x 50,3 cm = 3.018 N 2 cm


La superficie utile di tiro :

( D2 - d2 ) 3,14 ( 82 2,52 ) At = ------------------ = --------------------- = 45,4 4 4


perci la Forza di tiro sviluppata risulta: N

Ft = p At = 60 ----- x 45,4 cm = 2.724 N 2 cm


----------------------------------Per procedere alla scelta del cilindro da adottare in ogni singola applicazione necessario innanzi tutto definirne le caratteristiche generali, in base alle necessit delle apparecchiature servite ed alle condizioni dell'ambiente in cui deve operare. In questa prima fase si deve pertanto stabilire: Se adottare un cilindro a semplice o a doppio effetto Se i materiali di costruzione possono essere quelli di normale impiego o debbano avere caratteristiche particolari Il tipo di fissaggio Se debba o meno avere l'ammortizzatore di fine corsa in funzione delle masse da movimentare.
169

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Stabilito il tipo si pu passare al dimensionamento. Questo si attua in due fasi: 1. Dimensionamento dell'alesaggio in funzione dello sforzo di lavoro richiesto 2. Definizione della corsa massima consentita per non incorrere in fenomeni di instabilit al carico di punta.

5.2.3

Altre tipologie di cilindro

Oltre al classico schema di cilindro con asta che fuoriesce dalla testata anteriore, nei robot e nei manipolatori vengono usate numerose varianti e cilindri di tipo particolare per soddisfare le molteplici esigenze. Tra i vari tipi ricordiamo: cilindri a stelo passante, cilindri a pi posizioni, cilindri rotativi, cilindri senza stelo, cilindri a membrana. Cilindri a stelo passante. Sono forniti di stelo sporgente da entrambe le testate; hanno pertanto una uguale forza di spinta in entrambi i versi di movimento.

Simbolo grafico DIN/ISO 1219 Cilindro a doppio stelo (stelo passante)

Con questo cilindro si ha la possibilit di eseguire lavoro su entrambi i lati. Grazie allesistenza di supporti alle due estremit, questo cilindro dispone di una guida migliore Caratteristiche: o Possibilit di lavorare su entrambi i lati o Distanza costante tra i due supporti o Possibilit di assorbire piccoli carichi laterali o Le superfici attive del pistone sono uguali su entrambi i lati, per cui sono uguali anche le forze sviluppate nei due sensi. Questi cilindri sono usati quando occorre una guida migliore di quanto diano i normali cilindri, e cio con presenza di carichi radiali sull'asta. La seconda asta inoltre pu essere usata per comandare sensori e fine corsa senza intralciare l'asta usata per l'azionamento dei meccanismi del robot. Cilindri a pi posizioni. Servono per fermare l'asta del cilindro in pi posizioni intermedie e non solo nelle due posizioni estreme come avviene nei cilindri normali. Nel caso di un cilindro a quattro posizioni due cilindri a doppio effetto sono affiancati con gli steli posti da parti
170

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

opposte. Lo schema pu essere esteso a pi cilindri ed il numero delle posizioni ottenibili da questo sistema 2n, dove n il numero dei cilindri accoppiati. Dispositivi di questo genere si basano sull'uso di arresti meccanici che agiscono sul moto dei pistoni (azionamento di scambi, azionamento di valvole, modifica di fermi, ecc). Le precisioni ottenibili sono dell'ordine di 0.05 mm.

Simbolo grafico DIN/ISO 1219 Cilindro a pi posizioni Cilindri a membrana. Sono costituiti da una membrana che si deforma sotto l'azione dell'aria compressa espandendosi e spostando l'organo di forza. Questo elemento viene utilizzato per il serraggio rapido di pinze e ganasce per l'afferraggio ed il bloccaggio di pezzi durante la movimentazione, il montaggio e la generica manipolazione. Si comporta come un cilindro di serraggio a semplice effetto poich, in assenza di pressione, la membrana riacquista la sua configurazione iniziale. La presenza della membrana, consente un'ampia superficie di contatto e la possibilit di adattarsi anche a pezzi le cui superfici non siano esattamente parallele alla faccia dell'attuatore.

Cilindro a membrana

Simbolo grafico DIN/ISO 1219 Cilindro a membrana Caratteristiche: o Struttura semplice o Dimensioni contenute e forze molto elevate (fino a 25.000 N) o Corse molto limitate o Installazione semplice o Prezzo conveniente
171

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Cilindri senza asta. Sono attuatori di tipo lineare, costituiti da un cilindro in cui lo stantuffo direttamente utilizzato per compiere il lavoro meccanico senza bisogno dell'interposizione dell'asta. Questi cilindri vengono impiegati quando esistono problemi di carico di punta sullo stelo a causa dellelevata lunghezza della corsa Vantaggio fondamentale un ingombro ridotto, dato che l'intera canna del cilindro che utilizzata direttamente per ricavare la funzione di forza. Settori dimpiego principali: per grandi corse e dove sono richieste quote di montaggio contenute. Es: inserimento, spostamento, apertura, chiusura, sollevamento, azionamento di porte, trasporto, alimentazione di pezzi da lavorare.

Cilindro senza stelo Cilindri per motori rotativi. Sono forniti di un albero di uscita in grado di compiere rotazioni alternative. Vengono generalmente adoperati quando occorre avere angoli di rotazione superiori a 120, o quando si vuole avere un ingombro ridotto ed una costruzione compatta.

Simbolo grafico DIN/ISO 1219 Cilindro rotativo

Cilindro rotativo

172

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.3 Motori pneumatici I motori pneumatici trasformano energia di pressione in lavoro meccanico con movimento rotativo. I parametri caratteristici del movimento rotatorio sono: o Coppia M (N x m) o Numero di giri n (min 1) o Velocit angolare W (s 1) o Potenza (Watt) I motori pneumatici possiedono caratteristiche tecniche che si ritrovano anche in altri componenti pneumatici e, che in molti casi, ne consentono un impiego economico e tecnicamente ottimale. o Possibilit di sovraccarico fino allarresto o Tempo di inserzione illimitato o Protezione antideflagrante totale o Nessun autoriscaldamento o Insensibilit ad influenze ambientali come polvere, acqua, umidit o Manutenzione semplice o Facilit ed immediatezza di inversione del senso di rotazione o Possibilit di alimentazione anche con fluidi diversi dallaria Le macchine volumetriche sono in linea di principio reversibili: un compressore pu funzionare come motore, convertendo energia di pressione in energia meccanica di rotazione, funzionando perci come un attuatore pneumatico. La rotazione del motore pu essere oraria o antioraria, invertibile con facilit, invertendo il senso del flusso. La tipologia dunque la medesima dei compressori. Rispetto a questi, i motori pneumatici presentano ovviamente differenze costruttive pi o meno accentuate. Il comportamento medio dei diversi tipi di motore pneumatico risulta dalle curve di coppia, rendimento e consumo d'aria in funzione della velocit percentuale rispetto a quella caratteristica a vuoto. In tutti i tipi evidente la netta dipendenza della velocit di rotazione dal valore della coppia resistente. Si presenta dunque la circostanza tipica anche dei cilindri: il carico applicato (qui sotto forma di coppia) influenza notevolmente la velocit di lavoro anche in questo attuatore pneumatico.
173

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Avvitatore pneumatico Una applicazione tipica dei motori pneumatici a palette e quella degli avvitatori pneumatici, in cui si ha l'arresto dell'utensile al superamento del valore della coppia di serraggio che coincide col massimo della caratteristica meccanica. In genere si tratta di attuatori molto rumorosi: la rumorosit deriva sia dal moto dell'aria entro i condotti e nei diversi componenti, sia soprattutto dallo scarico finale, per il quale i vari sistemi silenziatori sono purtroppo un palliativo molto blando. A differenza dei motori elettrici, hanno per il grande pregio di non risentire dei sovraccarichi: possono essere caricati fino all'arresto sotto carico senza pericolo.

5.4 La teoria del vuoto Il vuoto pu essere definito come una pressione inferiore a quella atmosferica. Al livello del mare, la pressione atmosferica solitamente di 1013 mbar. Ogni pressione inferiore a questo valore rappresenta il VUOTO. Ci che accade in effetti allinterno di un sistema nel quale si vuol creare il vuoto consiste nellevacuazione delle molecole daria allinterno del circuito. Le due tipologie di applicazione esistenti sono: Circuito a tenuta (ermetico) Circuito con perdite (poroso)

In un circuito a tenuta, la riduzione della densit delle molecole in esso contenute causa una diminuzione della pressione assoluta del gas residuo, originando il vuoto.
174

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per ottenere il vuoto in un circuito con perdite occorre rimuovere un numero di molecole daria superiore a quelle che sono in grado di rientrare nel sistema. La terminologia utilizzata nel campo del vuoto deve essere coerente sia nel caso di sistemi elettromeccanici che ad aria compressa. Solo parlando la stessa lingua si possono fare paragoni reali.

I pi importanti termini da comprendere e utilizzare nello sviluppo di un circuito di vuoto sono:

Vuoto
E la pressione inferiore a quella atmosferica. Come detto precedentemente, al livello del mare la pressione atmosferica solitamente 1013 mbar; ogni pressione inferiore a questo valore viene definita vuoto.

Portata
E la velocit di evacuazione della pressione atmosferica allinterno di un sistema, oppure la quantit daria che fluisce attraverso una pompa. Di solito viene misurata in l/min (litri al minuto). La portata determina anche la capacit di compensare eventuali perdite. La velocit di evacuazione inversamente proporzionale al grado di vuoto

Portata Aria Libera


Determina la quantit di aria evacuata ad una pressione pari a quella atmosferica. Il termine viene spesso utilizzato dai costruttori di pompe a vuoto per indicarne le caratteristiche. Questo dato spesso pu confondere poich non indica le prestazioni ai diversi gradi di vuoto. La portata daria libera pu essere paragonata alla cilindrata di un motore che dice poco a riguardo delle sue caratteristiche di efficienza e prestazioni.

Grado di vuoto
Il termine definisce il livello di pressione allinterno di un circuito, che viene solitamente misurato in kPa (kilo Pascal). Il grado di vuoto determina la forza di sollevamento di una ventosa, o la quantit di atmosfera residua. Laumento del grado di vuoto corrisponde ad una diminuzione della velocit di evacuazione.

Aria compressa
E la fonte di energia che alimenta una pompa a vuoto del tipo ad eiettori. Laria compressa paragonabile allelettricit che alimenta una pompa a vuoto elettromeccanica. Questa viene prodotta da un compressore, e distribuita mediante tubazioni.

Pressione dellaria compressa


La pressione dellaria compressa viene misurata in bar. Le prestazioni ottimali di una pompa ad aria compressa si ottengono mediante il bilanciamento tra la pressione erogata dal compressore e la pressione di funzionamento richiesta.

175

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Tempo di evacuazione
E il tempo che occorre per evacuare un dato volume daria ad un grado di vuoto prestabilito.

Consumo di energia
E la quantit di energia espressa in hp, kW, l/min che una pompa a vuoto necessita per generare il grado di vuoto desiderato.

Forza di sollevamento
E la capacit di sollevamento di una ventosa determinata mediante il rapporto tra la pressione e larea della superficie di contatto.

Volume
E larea totale di un circuito comprendente tutti gli spazi nocivi, inclusa larea di applicazione.

5.4.1

Grado di vuoto

Il vuoto viene solitamente suddiviso in tre aree applicative, che dipendono dal grado di vuoto richiesto:

Basso vuoto
Solitamente impiegato in tutte quelle applicazioni dove necessario un elevato flusso daria. Per queste applicazioni vengono utilizzate delle pompe elettromeccaniche del tipo a girante. La serigrafia sui tessuti rientra tra le applicazione tipiche che necessitano di un basso grado di vuoto.

Vuoto industriale
Con il termine vuoto industriale si intende un vuoto compreso tra 20 e 99 kPa. Questo range comprende la maggior parte delle applicazioni. Il vuoto industriale viene utilizzato dalla manipolazione alla termoformatura.

Vuoto di processo
Trattasi di un vuoto superiore a 99 kPa. Solitamente lunit di misura utilizzata il Torr. Il flusso di aspirazione minimo e le applicazioni di tipo scientifico comprendono simulazioni spaziali. Il pi alto livello di vuoto raggiunto sulla terra si discosta notevolmente dal valore di vuoto assoluto che rimane un valore puramente teorico. Anche nello spazio, e quindi in assenza di atmosfera, vi una minima presenza di atomi.
176

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.4.2

Generatore di vuoto

I generatori di vuoto sono basati sull'effetto Venturi: l'aria in pressione, passando attraverso una strozzatura, crea una depressione che genera il vuoto entro un condotto che fa capo alla strozzatura. Se ai capi di questo condotto si pone una ventosa, al suo interno pu essere creato il vuoto. La pressione esterna atmosferica spinger la ventosa contro la superficie di un pezzo che potr essere in tal modo afferrato e spostato.

I generatori di vuoto ad aria utilizzano il principio di Bernulli basato sullesistenza di una relazione tra pressione e velocit: lalta velocit di un fluido (come aria o acqua) corrisponde ad una bassa pressione e viceversa. Nelle pompe a singolo stadio si inietta aria compressa allinterno di un ugello conico chiamato eiettore. Laria compressa, attraverso lugello conico, raggiunge una velocit supersonica (A) che attira le molecole a bassa pressione. La pressione atmosferica esterna (B) fluir, cercando di riportare il sistema in equilibrio. Il mix di aria compressa passante per leiettore e laria a pressione atmosferica esterna, fluiscono attraverso lo scarico (A+B).

Il grado di vuoto che un eiettore pu raggiungere dipende dalla configurazione delleiettore. La maggior riduzione della sezione dellugello porta ad un aumento della velocit che corrisponde ad una riduzione di pressione.

177

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il generatore di vuoto sempre accoppiato ad un vacuostato, un sensore pneumatico che, al superamento di una certa soglia regolabile di depressione, fornisce un segnale che avr il significato di presa effettuata. Le ventose sono accessori per il vuoto indispensabili l dove si presenti un problema di sollevamento o di manipolazione di oggetti, lastre o altri corpi "difficili da prendere" con gli altri metodi tradizionali di serraggio, perch privi di appigli, perch fragili, o perch estremamente deformabili. La ventosa aderisce ad una superficie nel momento in cui la pressione circostante maggiore della pressione esistente tra la ventosa e la superficie delloggetto. Al fine di creare una depressione allinterno di una ventosa, questultima viene collegata ad una pompa a vuoto. Minore la pressione, maggiore il vuoto allinterno della ventosa, pi elevata risulter la forza di sollevamento.

Ventose per applicazioni industriali

Una corretta applicazione delle ventose assicura semplicit, economia, sicurezza; presupposti questi, fondamentali per la perfetta realizzazione di ogni automatismo. Si trovano normalmente disponibili con diverse mescole, pi o meno resistenti ad oli, grassi, idrocarburi e gas, e pi o meno flessibili. La rettifica del labbro permette di ottenere la perfetta tenuta anche al minimo appoggio. Prima di selezionare una ventosa occorre considerare la superficie, la conformazione, il peso e la porosit delloggetto. Dopo aver fatto questo possibile scegliere la ventosa da impiegare tra una vasta gamma di prodotti disponibili: ventose universali per superfici piane o concave, ventose a soffietto per compensare dislivelli, ventose con rinforzi interni per evitare di deformare gli oggetti manipolati, ventose a cono profondo per oggetti con spigoli, ventose in gomma espansa per oggetti difficili da manipolare o ventose ovali per oggetti a forma allungata.
178

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Applicazioni tipiche

179

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

180

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.5 Comandi per attuatori pneumatici Come si gi visto precedentemente, l'energia di pressione generata dalla centrale di compressione viene trasformata in vario modo dagli attuatori pneumatici: in energia cinetica di movimento, in energia d'urto, forza di serraggio, ecc.... Tra i gruppi funzionali ve n un altro, con funzione di distribuzione dell'aria compressa nelle direzioni volute, secondo opportune azioni di comando. Tutte le apparecchiature in grado di aprire / chiudere o deviare un flusso d'aria compressa sono generalmente definite valvole controllo direzione (comandano start, stop e senso di flusso dellaria compressa). La funzione di una valvola direzionale riconoscibile attraverso il simbolo grafico conforme alla norma ISO 1219.

Una valvola direzionale di questo genere permette di: collegare laria compressa con la camera lato pistone mettere a scarico la camera suddetta con la contemporanea intercettazione della condotta di alimentazione

Una valvola come sopra descritta viene chiamata valvola direzionale 3/2 perch possiede 3 attacchi (e precisamente per il collegamento al cilindro, alla linea di pressione e allo scarico) e 2 posizioni di commutazione (una per luscita ed una per il rientro del cilindro) Ogni posizione di commutazione rappresentata da un quadrato, per cui il numero delle posizioni di commutazione uguale al numero di quadrati. Il numero di attacchi della valvola uguale al numero di intersezioni tra lo schema interno ad uno qualsiasi dei quadrati ed il bordo del quadrato stesso.

Elettrovalvola direzionale monostabile

181

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il comando degli attuatori pneumatici avviene con valvole che possono avere azionamento pneumatico od elettrico. Nei robot e manipolatori, in cui viene di massima utilizzato un controllo elettronico, il controllo dei cilindri avviene tramite elettrovalvole. Attualmente possibile disporre di microelettrovalvole in grado di azionare anche cilindri di grosse dimensioni, tramite un comando in pi stadi di amplificazione del segnale pneumatico. Queste microvalvole richiedono una potenza di azionamento molto ridotta e sono direttamente compatibili con microprocessori e computer. Risulta cos semplificato il problema dell'interfacciamento tra organi di controllo e attuatori. Questa ampia categoria di componenti pu essere suddivisa in un primo gruppo di valvole che operano su due o pi rami del circuito, ed in un secondo gruppo di valvole che agiscono su un solo ramo di circuito. Al primo gruppo appartengono: o le valvole di distribuzione vera e propria, o distributori o le valvole selettrici Al secondo gruppo appartengono: o le valvole di non ritorno (unidirezionali) o le valvole di intercettazione ( o valvole di distribuzione a due sole vie )

5.6 Distributori Tutte le valvole controllo direzione lavorano impedendo, o favorendo, il passaggio dell'aria compressa attraverso condotti ricavati nel corpo della valvola stessa. Le caratteristiche fondamentali che ne definiscono la funzionalit (e perci l'impiego), sono due: - il numero delle vie , o bocche, che possono essere poste in connessione; - il numero delle variazioni che, con adatte azioni di comando, possono essere effettuate nei collegamenti, o numero di posizioni di lavoro. I due numeri separati da una barra costituiscono perci la sigla identificativa di un distributore. Ad esempio, la sigla 3/2 indica una valvola con tre bocche e due posizioni di lavoro. I distributori a due posizioni sono i pi diffusi. Quelli a tre posizioni, molto utilizzati in oleodinamica, sono invece poco utilizzati in pneumatica. Delle bocche, una sempre quella di alimentazione (o di collegamento ad una presa di pressione), una o pi sono di utilizzazione (uscite che possono essere poste in pressione), una o pi sono di scarico dell'aria compressa da linee di uscita precedentemente poste in pressione.
182

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La chiusura o l'apertura delle luci interne di passaggio dovuta ad un organo genericamente chiamato cursore , il quale assume la forma di un otturatore scorrevole agente su una sede di forma opportuna con l'interposizione di una guarnizione elastica, che assicura una eccellente tenuta e permette un corretto funzionamento senza attrito anche in assenza di lubrificazione. Le valvole ad otturatore hanno come caratteristiche specifiche l'alta velocit di commutazione e una grande sezione di passaggio che le rende particolarmente adatte negli impianti di alta potenza.

5.7 Elettropneumatica Se la parte di potenza di un automatismo di tipo pneumatico, mentre la parte di comando di tipo elettrico, l'insieme prende il nome di circuito elettro-pneumatico. Gli elementi posizionatori e quelli sensoriali contengono degli elementi di interfaccia: o nelle elettrovalvole, o distributori principali a comando elettrico, si ha la "traduzione" di un segnale elettrico in segnale pneumatico di comando al circuito; o nei finecorsa elettrici si ha la traduzione di una informazione di posizione raggiunta in segnale elettrico. Nella moderna Automazione Industriale i circuiti elettrici comandano attuatori di diverse tecnologie (idraulica, elettrica, elettronica) ed inoltre una serie di apparecchiature quali ad esempio lampade di segnalazione, generatori acustici di allarme, ecc. Le elettrovalvole sono valvole funzionalmente analoghe a quelle tradizionali, con la differenza che qui l'azionamento provocato dalla corrente di eccitazione di un avvolgimento elettrico (bobina) il cui campo magnetico attrae l'organo mobile di commutazione della valvola stessa. Analogamente alle valvole a comando pneumatico, anche quelle a comando elettrico possono essere ad azionamento diretto o pilotato. Le prime vengono generalmente costruite solo per piccoli diametri di passaggio (minori di 4 mm) e nelle versioni a 2 o 3 vie. In tutti gli altri casi viene preferito il servopilotaggio a causa delle grandi dimensioni che assumerebbe la bobina per poter essere in grado di attrarre il pistoncino di commutazione delle vie. In generale, l'uso di elettrovalvole (cio della soluzione elettropneumatica) consigliabile dove siano da prevedere lunghe distanze fra il punto di comando e la valvola comandata, o dove siano necessari tempi di risposta molto brevi. Le elettrovalvole ad impulsi si distinguono dalle altre a causa della presenza di due bobine sul corpo della stessa valvola. Il grande vantaggio che presenta questo tipo rispetto al precedente il minor tempo di eccitazione cui sono sottoposte le bobine: ne consegue un aumento della durata che spesso compensa largamente il maggior costo che questa esecuzione comporta. La costruzione delle bobine delle elettrovalvole deve essere tale da soddisfare i seguenti requisiti: o forza di attrazione elevata con piccoli ingombri; o insensibilit alle vibrazioni
183

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

o funzionamento silenzioso o grande frequenza di manovra o posizione di montaggio indifferente L'isolamento delle bobine deve essere inoltre in grado di assicurare un perfetto funzionamento per temperature ambiente variabili da -40 fino a +80 C, ed in presenza di elevata umidit atmosferica e vapore. Per ottemperare a questa esigenza, m'isolamento viene generalmente effettuato annegando le bobine in un bagno di resine di tipo epossidico. Le caratteristiche elettriche dipendono dalla tensione alla quale si vuole alimentare la bobina e dal tipo di corrente usata (alternata o continua). La temperatura massima raggiungibile dalla bobina deve essere tale che la bobina stessa e l'ambiente si crei un salto di temperatura tale da stabilire l'equilibrio termico fra quantit di calore prodotto dall'eccitazione magnetica e quello disperso attraverso la superficie della bobina stessa.

184

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.8 Il Rel Il rel un apparecchio che contribuisce in larga misura a risolvere i problemi circuitali elettrici. E' costituito da un elettromagnete (nucleo + bobina), da una armatura mobile posta ad una estremit del nucleo e mantenuta distante dallo stesso mediante l'azione di molle. Il rel inoltre costituito da un certo numero di contatti, che possono essere: o normalmente chiusi, NC ( o "in apertura" all'eccitazione della bobina) o normalmente aperti, NA ( o "in chiusura") o di scambio: un contatto apre un circuito e ne chiude un altro; di solito la bobina comanda uno o pi contatti di scambio. Chiudendo il circuito della bobina (circuito secondario o di comando), l'ancora viene attratta e, con il suo movimento a bilanciere, agisce meccanicamente sui contatti, aprendoli se sono NC, chiudendoli se sono NA; a tali contatti collegato il circuito principale. I due circuiti possono essere alimentati in corrente continua o alternata, a seconda delle esigenze, e l'amperaggio nei due pu anche essere notevolmente diverso. Tale ad esempio il caso in cui un certo pulsante di comando sia dimensionato per un amperaggio molto diverso da quello necessario per pilotare la bobina di una elettrovalvola (circuito principale).

Gli elettromagneti con bassissimo assorbimento di corrente sono impiegati principalmente nei circuiti finali degli apparati elettronici (una logica elettronica genera infatti correnti dell'ordine del milli-Ampere o di qualche micro-Ampere). Il rel considerato in figura di tipo monostabile, mentre esistono ad impulsi (detti anche "passo-passo). In questo caso, ogni volta che arriva un impulso di corrente alla bobina,
185

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

l'ancora viene attratta, e provoca la rotazione di una camma: al primo impulso i contatti vengono chiusi, al secondo impulso vengono aperti; e cos via. Vi sono molte circostanze nelle quali un segnale di comando, dato impulsivamente, deve provocare effetti duraturi: occorre perci un circuito che "ricordi" tale comando, perpetuandone l'effetto anche oltre la sua cessazione. Nel caso dei rel monostabili necessario un circuito di automantenimento, o di autoritenuta. Questo si costruisce con estrema facilit collegando in modo opportuno il contatto che deve provocare l'azione stabile.

Cos' e come funziona un rel

Un rel sostanzialmente un interruttore, cio un dispositivo in grado di aprire e chiudere un circuito. A differenza dell'interruttore per, il rel non viene azionato a mano, ma da un elettromagnete, costituito da una bobina di filo avvolto intorno ad un nucleo di materiale magnetico. Quando passa corrente nella bobina di filo, si crea un campo magnetico che attira l'ancoretta secondo la freccia rossa verticale; l'ancoretta ruota e spinge il contatto centrale C verso destra, secondo la freccia orizzontale. In questo modo, il collegamento tra il contatto centrale e quello di sinistra (NC) si apre, mentre si chiude il collegamento tra il contatto centrale e quello di destra (NA). Il contatto di sinistra viene definito NC, cio normalmente chiuso, perch tale quando il rel a riposo. Allo stesso modo l'altro contatto, aperto quando il rel non eccitato, viene definito NA, cio normalmente aperto.

186

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

5.9 Sistemi di controllo digitali Per gli automatismi pi veloci e complessi, in cui ci sia bisogno cio di elaborare le informazioni con specifiche stringenti in termini di affidabilit, compattezza, consumo e costo, si impone necessaria la realizzazione del sistema di comando con tecnologia elettronica. Si devono inizialmente stabilire quali sono i segnali provenienti dal processo (variabili di ingresso, dai sensori) e le azioni che sul processo devono essere comandate (variabili di uscita, verso gli attuatori). Se possibile, le equazioni logiche che risultano dall'analisi del processo devono essere minimizzate. Vi sono diversi modi principali di operare: combinando singole porte logiche e Flip-Flop dedotti da circuiti integrati a piccola e media scala di integrazione (SSI e MSI); programmando una ROM, se il problema combinatorio; utilizzando microprocessori. Questi metodi, pur sempre validi, non trovano oggi grossi utilizzi perch sono stati superati dall'impiego nelle applicazioni di Automazione Industriale dei PLC.

5.9.1

Circuiti combinatori e numerici

Il progetto e la successiva costruzione di un sistema digitale, pu prendere l'avvio in due diversi modi corrispondenti a due diverse filosofie. Un primo modo consiste nel porre l'accento principalmente sui problemi quali l'assegnazione degli stati e la costruzione delle tabelle della verit, la minimizzazione, la manipolazione di porte logiche, ecc..., che in definitiva, privilegia un approccio di tipo hardware. Un secondo metodo consiste, invece, nell'affrontare i problemi cercando di scoprire una soluzione sistematica per la realizzazione del progetto ed il suo controllo. In pratica, rimanendo inizialmente il pi possibile dai problemi di hardware, ci si accosta al progetto visto nella sua totalit (top), per scendere via via ad una selezione dei problemi di tipo assemblativo (down). Questo metodo, conosciuto come top-down, viene utilizzato soprattutto nella realizzazione di sistemi digitali complessi quali microprocessori, microcomputer, ecc.., le cui problematiche esulano dagli intenti di questo corso. In questo capitolo sono esposte le cognizioni di base necessarie per progettare e realizzare un circuito combinatorio di media complessit. Resta in ogni caso valido il principio che non sempre la soluzione si ottiene dalla rigida applicazione di un metodo piuttosto che un altro. In qualche caso l'esperienza e l'inventiva del progettista che pu far superare ostacoli altrimenti insormontabili. Tutti i circuiti digitali che saranno trattati nel seguito si suddividono in due grandi tipi: 1. Circuiti combinatori 2. Circuiti sequenziali
187

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per circuiti di tipo combinatorio si intendono quei blocchi funzionali in cui, data una o pi variabili di ingresso I, le uscite Y sono funzione solo dello stato attuale degli ingressi. Sono, in altre parole, quei circuiti che non hanno nessuna capacit di memorizzare quanto accaduto precedentemente. Viceversa, si chiamano sequenziali quei circuiti la cui condizione dipende anche dagli stati precedenti delle uscite. Alcune delle pi comuni operazioni eseguite dai circuiti combinatori sono le seguenti: a) Conversione di dati da una rappresentazione ad un'altra b) Comparazione di dati c) Trasferimento d'informazioni a varie destinazioni d) Selezione di dati fra diverse sorgenti e) Esecuzione di operazioni aritmetiche e logiche Quando si vuole progettare un circuito digitale per il controllo di un processo industriale o per il trattamento delle informazioni sotto forma numerica, si pu cercare d'impostare il problema definendo, nel modo pi generale possibile, alcune fasi di lavoro successive. Esse possono essere cos definite: 1 2 3 4 5 6 Individuazione delle variabili presenti nel sistema Stesura della tabella della verit del sistema completo Traduzione della tabella della verit in funzioni Booleane Semplificazione delle funzioni Realizzazione di uno schema a blocchi funzionale Ulteriore semplificazione e minimizzazione

Lo studio delle singole fasi sar effettuato tramite la loro applicazione ad un esempio che, pur nella sua limitazione, permette di chiarire in modo pi diretto le problematiche incontrate.

1 - Individuazione delle variabili


Come esempio di processo da controllare si pu prendere un sistema composto da una caldaia che debba riscaldare acqua per mantenere un ambiente ad una temperatura costante. In figura mostrato lo schema di principio del processo. Per un corretto funzionamento dell'impianto necessario fornirgli delle informazioni, tenendo presente che le variabili scelte e la loro assunzione ad uno stato logico piuttosto che un altro del tutto arbitraria, ma il metodo comunque valido per qualsiasi altro tipo di assunzione.

188

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Tali informazioni potrebbero essere le seguenti: la temperatura dell'ambiente che si vuole riscaldare (Ta), che pu oppure no superare una soglia prefissata; la temperatura dell'acqua contenuta nella caldaia (Tc) che non deve superare una determinata soglia, ad esempio 60C; la temperatura dell'acqua oltre la quale la pompa di circolazione deve entrare in funzione, ad esempio 30C; infine un manometro di sicurezza che deve impedire alla pressione, in caso di guasto, di superare una data soglia di sicurezza.

Dall'elaborazione di queste informazioni fornite dal processo al circuito digitale, devono essere generati dei segnali di uscita per il comando, tramite opportuni circuiti di interfaccia, dell'accensione del bruciatore (Cb), della pompa (Cp); ed infine un segnale di allarme (A) che spenga tutto l'impianto ed accenda una spia. L'intero sistema, costituito dal processo da controllare e dal circuito di controllo, si presenta secondo lo schema a blocchi di figura:

189

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Varabile Ta

Stato del segnale ambiente al di sotto della temperatura ambiente al di sopra della temperatura

Livello logico associato 0 1 0 1 1 0 1 0 0 1 0 1 0 1

Tc

acqua al di sotto di 60C acqua al di sopra di 60C

Tp

acqua al di sopra di 30C acqua al di sotto di 30C

Sp

pressione al di sopra della soglia pressione al di sotto della soglia

Cb

il bruciatore deve essere spento il bruciatore deve essere acceso

Cp

la pompa deve essere spenta la pompa deve essere in funzione

allarme non in funzione allarme in funzione

2 - Stesura della tabella della verit


Nella stesura della tabella della verit se il numero delle variabili di ingresso limitato (come nel caso in studio, in cui sono quattro), si possono rappresentare tutte le loro possibili combinazioni anche se alcune di esse sono indifferenti o impossibili a verificarsi. Nel caso, invece, in cui il numero di esse sia elevato ed il numero delle situazioni impossibili od indifferenti non sia pi trascurabile, risulta pi agevole stendere una tabella della verit contenete solo la rappresentazione degli stati possibili, semplificando, cos, notevolmente il successivo lavoro di minimizzazione. Nel tipo di processo in esame si supposto il seguente funzionamento: inizialmente l'ambiente che si vuol riscaldare freddo, l'acqua nella caldaia fredda e la pompa che la spinge in circolazione ferma. Dopo l'accensione del bruciatore, la pompa entra in funzione non appena l'acqua supera i 30C di temperatura e si spegne solo in caso di allarme o se la temperatura scende nuovamente sotto i 30C.
190

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il bruciatore si accende fintanto che l'ambiente freddo e l'acqua nella caldaia al di sotto di 60C. Si spegne, invece, quando l'ambiente ha raggiunto la temperatura voluta o quando l'acqua sale al di sopra di 60C. Nel caso di allarme, che si ha se la pressione supera un determinato valore, il manometro emette un segnale (Sp), che deve spegnere tutto l'impianto ed accendere una lampada spia. Tutto ci pu essere sintetizzato dalla seguente tabella della verit:
Variabili in ingresso
Ta 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Tc 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Tp 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Sp 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Variabili in uscita
Cb 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Cp 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Note

inizio funzionamento processo in Allarme Temp. acqua > 30C processo in Allarme Temp. acqua > 60C (imposs.) processo in Allarme accesa solo la pompa processo in Allarme ambiente in temperatura processo in Allarme ambiente caldo e pompa attiva processo in Allarme ambiente caldo, non scaldare processo in Allarme ambiente caldo e pompa attiva processo in Allarme

3 - Traduzione della tabella in funzioni Booleane


Osservando la tabella della verit evidente che, poich il numero di 1 nelle variabili di uscita minore del numero di 0, risulta pi agevole scrivere le rispettive funzioni come somma di prodotti ottenendo: _ _ _ _ _ _ _ Cb = Ta Tc Tp Sp + Ta Tc Tp Sp _ _ _ _ _ _ _ _ Cp = Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp _ _ _ _ _ _ _ _ A = Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp + _ _ _ _ Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp + Ta Tc Tp Sp
191

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

4 - Semplificazione delle funzioni


Lo scopo della semplificazione quello di diminuire le porte necessarie, per rendere minimo l'ingombro del circuito, l'assorbimento di potenza, il costo e la complessit. Tra i vari metodi di semplificazione esistenti si in questo caso adoperato quello delle mappe di Karnaugh, che d i seguenti risultati:

_ _ _ Cb = Ta Tc Sp

_ Cb = Tp Sp

192

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

A = Sp

5 - Realizzazione di uno schema a blocchi


Dalla rigida applicazione delle tre funzioni ottenute al punto precedente si ottiene il seguente schema a blocchi:

Questo circuito pu essere ulteriormente semplificato utilizzando varie metodologie. Una di queste consiste nellusare parti di circuito realizzato da porte che sono usate per implementare un'altra funzione. Cos, ad esempio, si pu prelevare la variabile Sp all'uscita dell'inverter (negata) utilizzato per ottenere la variabile Cp, risparmiando un inverter.
193

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Un altro metodo per l'ulteriore semplificazione si pu ottenere applicando le leggi di De Morgan. In particolare la variabile di uscita _ _ _ Cb = Ta Tc Sp pu essere trasformata in ___________ Cb = Ta + Tc + Sp ed utilizzato in questo caso un nuovo schema a NOR. Naturalmente questo modo di operare risulta tanto pi utile, quanto pi complesso il circuito da realizzare. Continuando in questo modo e facendo uso delle leggi dell'algebra di commutazione, il circuito di partenza pu ottenersi in un'estrema variet di configurazioni pi o meno valide a seconda delle necessit di progetto. Va in ogni modo sempre tenuto presente che ogni qualvolta si sceglie un integrato bene, per ragioni di ingombro, potenza e costo, utilizzare sempre tutte le porte in esso contenute.

194

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

6 Elementi introduttivi ai PLC


Un controllore a Logica Programmabile (o PLC = Programmable Logic Controller) un semplice ed economico microcomputer dedicato all'ambiente industriale, per il quale dotato delle opportune interfacce. Secondo il NEMA (National Electrical Manufactures Association), un controllore a logica programmabile una apparecchiatura di controllo avente le seguenti caratteristiche: o apparecchiatura elettronica a microprocessore operante in modo digitale o usa moduli di I/O per recepire segnali da dispositivi sensoriali e per comandare dispositivi di attuazione o ha una memoria di lavoro (di tipo RAM) per immagazzinare internamente tali "dati" e le istruzioni per specifiche funzioni, come funzioni logiche, sequenziali, di temporizzazione, di conteggio o aritmetiche o esegue le funzioni assegnate ad un automatismo, espresse attraverso un apposito programma di istruzioni. Molto pi frequentemente, il PLC viene impiegato per automatismi logici, a media complessit. I controllori programmabili (PLC) hanno fatto la loro prima apparizione agli inizi degli anni '70 come sistemi flessibili e di basso costo per l'automazione delle linee di produzione dell'industria automobilistica. Gradualmente, la loro estensione ha interessato tutti i settori industriali, sostituendo ormai ovunque i sistemi di controllo a rel, relativamente pi lenti, meno affidabili e caratterizzati da problemi di cablaggio.

195

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Nella loro concezione pi semplice, i PLC lavorano tenendo sotto controllo, attraverso scansioni cicliche, i segnali di ingresso provenienti da sorgenti quali sensori, finecorsa o pulsanti. Quando rilevano delle variazioni nei segnali di ingresso tali da cambiare lo stato logico (segnali on / off), i PLC reagiscono in base al programma scritto dall'utente, in modo da generare segnali di uscita in grado di poter pilotare carichi esterni al sistema controllato, come rel, controlli per motori, display ed allarmi. Un sistema del genere elimina gran parte dei problemi di cablaggio ed aumenta la flessibilit del sistema perch permette la modifica del software applicativo in maniera estremamente semplice.

Un PLC dunque un dispositivo di tipo industriale, concepito per risolvere problemi di controllo di automazione, con una struttura costruttiva che rispecchia a tutti gli effetti quella di un calcolatore, dal quale si differenzia per le modalit di utilizzo dei singoli componenti. Un tipico PLC presenta infatti: o Un gruppo di alimentazione o L'unit centrale di elaborazione (CPU) o La sezione di ingresso / uscita o Le unit di memoria (di programmi e di dati) o L'unit di programmazione
UNITA' DI PROGRAMMAZIONE

PLC

MEMORIA PROGRAMMA

CPU

MEMORIA DATI

1 0

C A M P O

ALIMENTATORE

UNITA' CENTRALE

UNITA' I/O

MEMORIA DI MASSA

STAMPANTE

SIMULATORE

PERIFERICHE

Il gruppo di alimentazione fornisce la tensione e la corrente di lavoro ai dispositivi elettronici. Sono disponibili alimentatori per il collegamento diretto alla rete elettrica (110/220 VAC) oppure alimentatori in corrente continua (24 VDC) particolarmente indicati quando necessario realizzare un quadro elettrico collegabile a batterie tampone per assicurare il funzionamento anche in condizioni di mancanza della tensione di rete.

196

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La CPU il cuore del PLC, perch contiene i circuiti che gestiscono tutte le attivit del controllore e, in particolare, esegue la scansione del programma, la lettura degli ingressi ed il pilotaggio delle uscite. La CPU in genere dotata di LED di segnalazione che indicano lo stato di funzionamento: presenza dell'alimentazione, modalit operativa, condizioni di allarme e di errore. I parametri che caratterizzano la CPU sono: Massimo numero di I/O indirizzabili Velocit di scansione per 1000 istruzioni (1Kbyte) Numero e tipologia delle istruzioni eseguibili Massima dimensione del programma (espressa in Kbyte) Tipologia di moduli I/O e speciali collegabili Possibilit di interfacciamento con computer e/o altri PLC

Memoria di sistema
Lunit di memoria di sistema contiene il sistema operativo (firmware) del PLC, costituito da: routine di autotest iniziale dati del setup librerie

Memoria di programma
L'unit di memoria permette la registrazione delle istruzioni che costituiscono il programma. Pu essere a sola lettura (EPROM) oppure a lettura e scrittura (RAM o EEPROM). Nel primo caso, il programma deve essere memorizzato tramite un particolare dispositivo chiamato programmatore di EPROM; eventuali modifiche al programma richiedono la cancellazione del chip di memoria e la sua riprogrammazione. Nel secondo caso, invece, la programmazione e le eventuali modifiche avvengono direttamente tramite "consolle" dedicata o personal computer. RAM: (per sviluppo e collaudo) - Consente rapide operazioni di lettura/scrittura. Deve essere sempre alimentata. Una batteria "tampone" mantiene i dati nel caso di caduta della tensione di alimentazione EPROM: (per programma definitivo) - Non richiede alimentazione, ma per poter essere "scritta" richiede un particolare dispositivo (programmatore di EPROM). La cancellazione avviene tramite raggi ultravioletti EEPROM: (sia per fase di sviluppo che per versione definitiva) Riassume i vantaggi di Ram ed EPROM

197

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Memoria dati
Contiene le informazioni relative alle varie aree dati interne e di I/O Poich, in funzione delle elaborazioni del programma, necessario effettuare sulle aree dati veloci operazioni di lettura e di scrittura, possibile utilizzare soltanto memorie di tipo RAM

Batteria
Il mantenimento della memoria dati anche a fronte di cadute di alimentazione, viene assicurato da una batteria tampone. Questa batteria alimenta anche l'eventuale RAM utilizzata per la memoria programmi. La batteria ha una durata nominale di circa 5 anni (in relazione all' uso e all' ambiente). La fase di scaricamento della batteria viene segnalata in modo automatico dal PLC. Uno scaricamento completo determina la perdita di dati e programma (se questo in RAM).

Moduli I/O
Permettono il collegamento del PLC al mondo esterno Sono disponibili: Moduli di INGRESSO DIGITALE (AC,DC,AC/DC) Moduli di USCITA DIGITALE (Rel, Transistor, Triac) Moduli di comunicazione Moduli speciali (AD-DA, Contatori veloci, Controllo assi, PID, ...)

La sezione di ingresso/uscita (I/O) comprende i dispositivi di interfacciamento ed i relativi cablaggi, che ne permettono il collegamento al sistema da controllare. Questa parte spesso modulare e pu risiedere in un rack separato, oppure essere integrata con la CPU. Tutti i moduli, sia di ingresso che di uscita, sono corredati di LED di segnalazione, che indicano costantemente lo stato di ciascun punto. A seconda delle specifiche esigenze di progetto, possibile scegliere tra moduli di ingresso alimentati in c.c. o c.a., direttamente interfacciabili con sensori PNP o NPN e moduli di uscita dotati di uno stadio finale a rel o a transistor. Per assicurare la massima immunit ai disturbi, i moduli I/O presentano speciali circuiti optoelettronici che realizzano una separazione galvanica fra il segnale in campo ed il medesimo segnale all'interno del PLC. Il foto-accoppiatore trasferisce il segnale tramite un fotodiodo, ossia tramite emissione luminosa, e non attraverso un collegamento elettrico. Oltre ai classici moduli I/O sono oggi disponibili anche moduli speciali che assolvono a funzioni anche molto sofisticate (porte seriali, moduli conversione analogico / digitale, controllo assi, reti di comunicazione, ecc...)

Unit periferiche
Permettono il "colloquio" tra l'operatore (programmatore) ed il PLC Consolle di programmazione

198

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Consolle di programmazione grafica Interfaccia per personal computer Interfaccia stampante Programmatore di EPROM

6.1 Principio di funzionamento Un PLC un sistema di comando a cui si collegano quindi sensori ed attuatori per l'elaborazione delle relative informazioni.

Ingressi S E N S O R I HARDWARE Consensi

Uscite

Comandi

A T T U A T O R I

SOFTWARE

PLC

Eseguendo ciclicamente il programma memorizzato, il PLC legge lo stato degli ingressi, leggendo le corrispondenti celle di memoria, ed esegue su questi le operazioni logiche indicate nelle istruzioni del programma, producendo le uscite corrispondenti. A puro scopo indicativo, si pu dire che alcuni PLC tra i pi economici, richiedono un tempo di elaborazione dell'ordine di 10 - 70 millisecondi per eseguire una istruzione, e compiono quindi la scansione di 1K di memoria di istruzioni in 10 - 70 millisecondi. Quelli pi potenti arrivano a tempi di elaborazione di 1 millisecondo per 1K di istruzioni.

PROGRAMMA

SCANSIONE: INTERVALLO DI TEMPO NECESSARIO PER ESEGUIRE UN CICLO DEL

199

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Tipi di scansione: 1. Scansione sincrona di ingresso e di uscita

LETTURA DELLO STATO DI TUTTI GLI INGRESSI Memorizzazione nel registro immagine ingressi ELABORAZIONE SEQUENZIALE ISTRUZIONI Memorizzazione risultati nel registro immagine uscite ATTIVAZIONE SEQUENZIALE DI TUTTE LE USCITE

MODALIT CICLICA IN SEQUENZA LETTURA INGRESSI ESECUZIONE PROGRAMMA TEMPO DI ATTESA AGGIORNAMENTO USCITE GESTIONE DELLA RETE
200

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

2. Scansione sincrona di ingresso e asincrona di uscita

LETTURA DELLO STATO DI TUTTI GLI INGRESSI Memorizzazione nel registro immagine ingressi ELABORAZIONE SEQUENZIALE CON EMISSIONE PRIMO RISULTATO Memorizzazione risultato nel registro immagine usc ATTIVAZIONE USCITA CORRISPONDENTE

ELABORAZIONE SEQUENZIALE CON EMISSIONE SECONDO RISULTATO Memorizzazione risultato nel registro immagine usc ATTIVAZIONE USCITA CORRISPONDENTE

ELABORAZIONE SEQUENZIALE CON EMISSIONE ULTIMO RISULTATO Memorizzazione risultato nel registro immagine uscite ATTIVAZIONE USCITA CORRISPONDENTE

3. Scansione asincrona di ingresso e di uscita

LETTURA DELLO STATO DI INPUT DELLA PRIMA SEQUENZA Memorizzazione nel registro immagine ingressi

ELABORAZIONE DELLA PRIMA SEQUENZA Memorizzazione risultato nel immagine uscite

ATTIVAZIONE USCITA CORRISPONDENTE

LETTURA DELLO STATO DI INPUT DELLA SECONDA SEQUENZA Memorizzazione nel registro immagine ingressi

ELABORAZIONE DELLA SECONDA SEQUENZA Memorizzazione risultato nel immagine uscite

ATTIVAZIONE USCITA CORRISPONDENTE Prosecuzione fino all' ultima sequenza

201

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Dove si usano i PLC In tutte quelle applicazioni dove ..


Sono richiesti pi di 10 I/O Si deve garantire un prodotto affidabile richiesta una apparecchiatura con caratteristiche industriali Si devono prevedere espansioni e modifiche nella logica di controllo Sono richieste funzioni sofisticate come: o Connessioni a computer, terminali, stampanti,. . . o Elaborazioni matematiche o Posizionamenti o Regolazioni PID

Applicazioni tipiche dei PLC


MACCHINE UTENSILI MACCHINE PER LO STAMPAGGIO MACCHINE PER IMBALLAGGIO MACCHINE PER IL CONFEZIONAMENTO ROBOT / MONTAGGIO REGOLAZIONE PROCESSI CONTINUI MACCHINE TESSILI SISTEMI DI MOVIMENTAZIONE/TRASPORTO CONTROLLO ACCESSI

202

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.2 La programmazione dei PLC I circuiti a logica interna dei PLC sostituiscono i rel, i temporizzatori, i contatori e gli altri dispositivi discreti normalmente utilizzati per costruire sistemi di controllo elettromeccanici. L'effettivo funzionamento della macchina avviene come se tali componenti fossero presenti, ma con caratteristiche di flessibilit ed affidabilit notevolmente superiori. Nella programmazione con i diagrammi a rel restano tuttavia in uso i simboli dei quadri elettromeccanici. Chi programmer il PLC e che conoscenze dovr avere? Se vero che queste macchine possono portare numerosi vantaggi alle aziende che le utilizzano, altrettanto vero che questo non deve avvenire a costo di una forzata riqualificazione del personale. I PLC devono cio inserirsi in azienda nel modo pi naturale possibile, permettendo di mantenere le stesse metodologie di impiego delle apparecchiature che vanno a sostituire.

Primo metodo di programmazione


Il primo linguaggio sviluppato per i PLC stato quello dei diagrammi a rel (reti ladder o schemi a contatti o KOP). Le loro applicazioni iniziali, infatti, vedevano soprattutto la sostituzione dei PLC ai quadri di comando a rel. Ci ha spinto i costruttori ad offrire delle macchine utilizzabili esattamente come se contenessero al loro interno dei componenti quali rel, temporizzatori e contatori. Il fatto che tali componenti non siano fisicamente presenti nel PLC pu essere ignorato dall'utente, che continua a lavorare come prima, anche se con una elettromeccanica "virtuale". La sola differenza che al cacciavite ed al filo elettrico, necessari per collegare i rel, si sostituisce la console si programmazione. Essa tuttavia riporta tutti i simboli a cui i tecnici sono abituati: contatti normalmente aperti o chiusi, bobine, connessioni in serie (funzioni AND) o in parallelo (funzioni OR), ecc. Per programmare uno schema di controllo, l'utente non deve fare altro che premere in sequenza i tasti che gli servono, come se dovesse disegnare uno schema funzionale, che infatti vedr prendere corpo sullo schermo della consolle. Rispetto ad uno schema fisico, tuttavia, lo schema programmato offre la possibilit di apportare facilmente qualsiasi modifica o estensione, senza richiedere il rifacimento del cablaggio, quindi con enormi vantaggi in termini di tempo e di costi.

Secondo metodo di programmazione


Un'altra categoria di linguaggi quella che potremmo definire per "elettronici" o, pi genericamente, per "logici", essendo essi basati su una simbologia utilizzata, per esempio, anche in pneumatica. Intendiamo riferirci alla logica booleana ed alle sue regole. Per realizzare uno schema di controllo, si stabiliscono inizialmente i legami richiesti fra i segnali di ingresso e le variabili di uscita. Tali relazioni sono spesso rappresentate dalle tabelle della verit. A questo punto si procede alla sintesi del sistema, utilizzando uno dei vari metodi noti (mappe di Karnaugh, diagrammi di Quine-McCluskey, ecc...). Il risultato finale una serie di espressioni logiche, dove le relazioni tra le variabili sono espresse sotto forma di operatori logici elementari (AND, OR, NOT, ecc...). Analogamente ai linguaggi elettromeccanici, gli operatori logici sono specificati nel PLC mediante codici corrispondenti, con vantaggi simili a quelli gi descritti.
203

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Terzo metodo di programmazione


Un terzo metodo di programmazione dei PLC utilizza i linguaggi per "informatici". L'introduzione del personal computer a tutti i livelli della fabbrica ne ha diffuso notevolmente la conoscenza, almeno in termini generali. Naturale, quindi, che anche i costruttori di PLC si siano adeguati presentando dei linguaggi che ne permettono la programmazione quasi fossero dei personal computer. Si tratta in genere di versioni semplificate del BASIC o di linguaggi sviluppati ad hoc, spesso chiamati "colloquiali" perch basati su una serie di comandi espressi con parole di facile comprensione (SE...ALLORA......, ALTRIMENTI....). I linguaggi di questo tipo permettono di aggiungere alle funzioni di controllo delle utili funzioni di calcolo, importanti per risolvere con maggior facilit applicazioni complesse quale, per esempio, il controllo PID. Inoltre pi facile costruire dei programmi modulari, quindi pi flessibili e riutilizzabili. Scegliere questi linguaggi significa infine adottare un metodo omogeneo per programmare PLC, personal computer ed altre apparecchiature "intelligenti", cosa che sar indispensabile in vista della "Factory Automation".

Quarto metodo di programmazione


L'ultima nata la programmazione grafica (GRAFCET)che si basa sulla considerazione che ciascun utente conosce bene la propria applicazione, nella sequenza in cui essa si sviluppa. Il Grafcet offre una serie di simboli universali che permettono di definire le specifiche operative di qualsiasi impianto automatico e di progettare lo schema di controllo.

204

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.3 La programmazione in diagramma a rel (KOP) Un diagramma a rel consiste di una barra verticale posta sul lato sinistro e di un insieme di diramazioni orizzontali che partono dalla linea verticale. La barra verticale chiamata bus, le diramazioni vengono chiamate righe circuitali. Sulle righe circuitali vengono posti i vari contatti che si collegano alla parte destra. La combinazione logica di questi contatti determina quando e come le istruzioni poste a destra devono essere eseguite. Qui sotto riportato un circuito in diagramma a rel.

Come si pu osservare, le righe circuitali possono avere a loro volta diverse diramazioni che poi si collegano nuovamente. Ogni coppia di tratti verticali chiamata contatto. Nel caso i contatti non siano dotati di un tratto diagonale, vengono detti contatti aperti e corrispondono alle istruzioni LOAD, AND o OR. I contatti che prevedono dei tratti diagonali vengono chiamati contatti chiusi e corrispondono alle istruzioni LOAD NOT, AND NOT o OR NOT. Il numero in corrispondenza di ciascun contatto indica loperando (in questo caso un bit) dellistruzione. Lo stato del bit associato a ciascun contatto determina la condizione di esecuzione per listruzione seguente. Il modo in cui opera ciascuna istruzione in base allo stato dei contatti viene descritto successivamente. Prima di analizzarlo per, bene chiarire altri termini base.
6.3.1 Termini di base

Contatto normalmente chiuso e normalmente aperto

Ogni contatto in un diagramma a rel pu essere ON o OFF in funzione dello stato del bit ad esso associato. La condizione normale ON se il bit ON, e OFF se il bit OFF. Viceversa, nel caso di condizione negata, allora lo stato ON se il bit OFF e OFF se il bit ON. In generale viene usata una condizione normale quando si vuole che accada qualcosa quando il bit ON, mentre si usa una condizione negata quando si vuole che accada qualcosa quando il bit OFF.

205

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Condizioni per lesecuzione

In un programma in diagramma a rel, la combinazione logica di condizioni ON e OFF prima di una istruzione determina la condizione necessaria affinch listruzione venga eseguita. Questa condizione, che sia ON o OFF, viene chiamata condizione per lesecuzione dellistruzione. Tutte le istruzioni, a parte LOAD e LOAD NOT, richiedono una condizione per lesecuzione.
Bit di operando

Gli operandi possono essere, per ciascuna istruzione, qualsiasi bit delle aree IR, SR, HR, AR, LR o TC. Ci significa che un contatto, in un diagramma a rel, pu essere dato dallo stato degli I/O, dei flag, dei bit interni, dei temporizzatori/contatori, ecc. Le istruzioni LOAD e OUT possono anche utilizzare i rel temporanei TR, ma questi vengono usati solo in casi speciali.

Blocchi logici

Il modo in cui i contatti influenzano le istruzioni determinato dalle relazioni logiche tra i vari contatti presenti allinterno delle singole righe circuitali. Ciascun gruppo di contatti che definisce un certo risultato logico, viene detto blocco logico. Sebbene i diagrammi a rel possano venire scritti senza analizzare i singoli blocchi logici, necessario comprenderne bene il significato per realizzare una efficace programmazione, quando si programma in lista istruzioni.
Blocco di istruzioni

Un blocco di istruzioni consiste di tutte quelle istruzioni che sono interconnesse allinterno di un diagramma a rel. Linizio e la fine di un blocco di istruzioni sono identificabili con due punti consecutivi del diagramma a rel in cui pu essere tracciata una linea orizzontale senza che questa intersechi alcuna linea verticale. Tutte le istruzioni allinterno di tali punti costituiscono il blocco di istruzioni.

206

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.3.2

Creazione di un programma

Nella creazione del programma di controllo in diagramma a rel vengono generalmente seguite otto fasi fondamentali: 1. Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. 2. Selezionare i dispositivi di ingresso e di uscita del PLC. 3. Disegnare uno schema di controllo, utilizzando i simboli dei diagrammi a rel. Come in un normale schema funzionale, necessario riportare, nella corretta sequenza, le funzioni richieste e le loro correlazioni. 4. Codificare i simboli dello schema in un formato adatto per l'inserimento nella CPU tramite la consolle di programmazione, in base al tipo di PLC scelto ed alle funzioni offerte dalla console stessa. 5. Trasferire lo schema codificato (programma) nella CPU. 6. Attivare il programma, ossia eseguirlo. 7. Verificare se il programma contiene degli errori. 8. Correggere gli errori e memorizzare il programma finito.

Esaminiamo pi in dettaglio le prime quattro fasi, meno legate al particolare PLC selezionato. PRIMA FASE La valutazione delle operazioni da controllare mediante PLC rappresenta evidentemente una fase molto importante per scegliere la configurazione e le funzioni del PLC stesso. Per utilizzare un PLC in una applicazione di controllo, occorre in primo luogo determinare le specifiche del sistema, ed in particolare le specifiche di ingresso e uscita. La prima cosa da fare quindi valutare il numero ed il tipo di I/O richiesti dall'applicazione. Ci richiede l'identificazione di tutti i dispositivi che devono inviare un segnale di ingresso al PLC (sensori, pulsanti, periferiche, ecc...) o che da questo devono ricevere un segnale (attuatori, servocomandi, sistemi di visualizzazione, ecc...) decidendo, in base alla natura di ciascuno di essi, quanti punti elementari (bit) sono necessari. Il numero dei punti di ingresso, sommato al numero dei punti di uscita, fornisce il numero complessivo dei punti I/O, che non deve mai superare la capacit massima del controllore (riportata fra i dati caratteristici). In base ai moduli di I/O selezionati, i segnali di ingresso e di uscita possono avere tensioni o correnti diverse, permettendo quindi un adattamento ottimale del PLC alle condizioni di impianto. Preparare una tabella che mostri la corrispondenza tra i bit di I/O ed i dispositivi di I/O. Il passo successivo consiste nel determinare la sequenzialit degli eventi e la successione temporale secondo la quale fornire i comandi. E' necessario quindi identificare le relazioni di
207

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

ciascun dispositivo controllato nei confronti degli altri ad esso legati (ad esempio, fra una fotocellula ed un motore) ed anche le risposte reciproche. Per esempio, in una applicazione di controllo, una fotocellula pu essere collegata funzionalmente ad un motore tramite un contatore interno al PLC. Il motore parte quando il PLC riceve un segnale di ingresso da un interruttore e si ferma quando il contatore ha ricevuto "n" segnali di ingresso della fotocellula. SECONDA FASE Molti controllori programmabili utilizzano il concetto di canali I/O per identificare i singoli punti. Ciascun canale comprende normalmente 16 punti ed ogni punto identificato mediante un numero di quattro cifre. Le due cifre a sinistra identificano il canale, mentre le due cifre a destra identificano il punto all'interno del canale. 0000 identifica quindi il primo punto del primo canale, mentre 0104 identifica il quinto punto (04) del secondo canale (01). Oltre ai punti di I/O, occorre assegnare i rel ausiliari interni del PLC. Si tratta di rel che non controllano direttamente dei dispositivi esterni, ma sono usati come aree di memorizzazione o elaborazione dei dati, per controllare altri rel, temporizzatori, e contatori. Funzionalmente, I rel ausiliari interni equivalgono quindi ai rel interni dei quadri elettromeccanici. Si parla quindi, in genere, di uscite interne. Anche ai temporizzatori ed ai contatori devono essere assegnati dei numeri di identificazione, evitando di dare lo stesso numero ad un contatore e ad un temporizzatore. Ad esempio, non vi possono essere contemporaneamente un temporizzatore 01 ed un contatore 01. Dopo aver reso identificabili mediante indirizzi tutti gli elementi di ingresso e uscita e gli indirizzi interni che faranno parte dello schema di controllo, si pu passare alla terza fase.

TERZA FASE E' ora necessario codificare con un diagramma a rel quanto messo a punto nelle due fasi precedenti. I tre simboli fondamentali dei diagrammi a rel sono riportati nelle seguente figura:

Un programma scritto in un diagramma a rel formato da una serie di righe circuitali, delimitate sul lato sinistro da una barra verticale. E' necessario ricordare che:

208

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

ogni riga deve terminare con la bobina di un rel, di un temporizzatore/contatore o con un blocco funzionale (istruzione speciale); a differenza degli schemi elettrici, nei diagrammi a rel non sempre necessario disegnare la barra destra; il numero dei contatti in serie o in parallelo utilizzabili su una riga circuitale spesso limitato. QUARTA FASE Non appena le funzioni di controllo sono state compiutamente espresse sotto forma di diagramma a rel, occorre trasformare quest'ultimo nel linguaggio utilizzabile dal PLC. Spesso, se la consolle di programmazione lo consente, sufficiente riscrivere il diagramma a rel utilizzando la tastiera e seguendo le indicazioni che appaiono sullo schermo. In altri casi, necessario trasformare il diagramma a rel in un codice mnemonico. Gli indirizzi sono delle posizioni di memoria nelle quali si possono registrare istruzioni o dati. Le istruzioni servono per spiegare al PLC che cosa deve fare, utilizzando i dati da cui sono seguite.

6.3.3

Aree di memoria

I dati e i flag che possono essere usati con ciascuna istruzione, sono indicati da sigle. Per determinarli in modo univoco ci si deve riferire al manuale specifico del PLC interessato. Area dati Descrizione IR SR HR AR LR TC Bit che possono essere assegnati ai terminali di I/O esterni, rel interni o rel speciali Bit che svolgono funzioni specifiche come bit di controllo e flag. Bit che memorizzano i dati e mantengono lo stato ON/OFF quando viene disattivata lalimentazione. Bit che svolgono funzioni specifiche come bit di controllo e flag. Utilizzata per le connessioni di dati 1 a 1 con altri PC. Vengono utilizzati gli stessi numeri per temporizzatori e contatori.

209

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Area IR - Bit di I/O Di seguito vengono illustrate le funzioni dellarea IR. I bit dellarea IR da IR 00000 a IR 01915 vengono assegnati ai terminali del modulo CPU e dei moduli I/O. Questi bit riflettono lo stato ON/OFF dei segnali di ingresso e uscita. I bit di ingresso iniziano da IR 00000, mentre quelli di uscita da IR 01000. La seguente tabella indica i bit IR assegnati ai terminali di I/O dei moduli CPU del CPM1

Area SR - Flag Questi bit vengono utilizzati soprattutto come flag relativi al funzionamento del PLC oppure come contenitori dei valori impostati e correnti per le diverse funzioni. I canali da SR 244 a SR 247 possono essere utilizzati come bit di lavoro quando gli interrupt di ingresso non vengono impiegati in modalit contatore. Area TR - Flag Quando un diagramma a rel complesso non pu essere programmato in codice mnemonico in modo completo, questi bit vengono utilizzati per memorizzare temporaneamente le condizioni ON/OFF nei rami del programma. Questi bit vengono impiegati solo per il codice mnemonico. Programmando direttamente con il software di programmazione, i bit TR vengono gestiti in modo automatico. Gli stessi bit TR non possono essere utilizzati pi di una volta nellambito dello stesso blocco di istruzioni, ma possono essere impiegati pi volte in blocchi di istruzioni diversi. Lo stato ON/OFF dei bit TR non pu essere controllato da una unit periferica.
210

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Area HR Mantenimento stato Questi bit conservano lo stato ON/OFF anche quando viene disattivata lalimentazione oppure quando si avvia o si arresta il funzionamento del PLC. Questi bit lavorano allo stesso modo come bit di lavoro. Area AR Bit di controllo Si tratta di bit che vengono utilizzati soprattutto come flag relativi al funzionamentodel PLC. Questi bit conservano lo stato ON/OFF anche quando viene disattivata lalimentazione oppure quando si avvia o si arresta il funzionamento del PLC. Area LR Bit di connessione Quando esiste una connessione tra un due PLC Omron CPM, questi bit vengono utilizzati per la condivisione dei dati. Quando non vengono utilizzati nelle connessioni PC link 1:1, i bit LR possono essere usati come bit di lavoro. Area TC Temporizzatori / Contatori Si tratta di unarea utilizzata per gestire i temporizzatori e i contatori creati con le istruzioni TIM, TIMH(15), CNT e CNTR(12). Gli stessi numeri vengono utilizzati sia per i temporizzatori che per i contatori ed ogni numero pu essere impiegato solo una volta nel programma utente. Non possibile utilizzare lo stesso numero TC per pi di una volta anche per istruzioni diverse. I numeri TC vengono utilizzati per la creazione di temporizzatori e contatori e per laccesso a flag di completamento e valori correnti (PV). Se un numero TC viene designato per i dati di canali, accede al valore corrente (PV); se viene utilizzato per i dati dei bit, accede al flag di completamento per il temporizzatore/contatore.

211

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.4 Codice mnemonico Il diagramma a rel non pu essere inserito direttamente nel PLC per mezzo di una Consolle di Programmazione, occorre adoperare il software di programmazione. Per scrivere da una Consolle di Programmazione necessario convertire il diagramma rel in codice mnemonico. Il codice mnemonico fornisce esattamente le stesse istruzioni del diagramma a rel, ma in una forma che pu essere subito digitata nel PLC. Effettivamente, possibile programmare direttamente in codice mnemonico, sebbene non sia raccomandabile ai principianti o nella stesura di programmi complessi. Inoltre, indifferentemente da quale dispositivo di programmazione si usi, il programma viene conservato nella memoria in forma mnemonica, e questo fa s che sia importante conoscere il codice mnemonico. Data limportanza della Consolle di Programmazione come dispositivo periferico e del codice mnemonico per la comprensione completa del programma, introdurremo e descriveremo il codice mnemonico insieme al diagramma a rel. Si rammenti che non necessario usare il codice mnemonico nel caso si stia sviluppando il programma col software di programmazione.

6.4.1

Struttura della memoria di programma

Il programma viene scritto negli indirizzi della memoria di programma. Gli indirizzi della memoria di programma sono leggermente diversi da quelli di altre aree di memoria perch ciascun indirizzo non contiene necessariamente la stessa quantit di dati. Invece, ciascun indirizzo contiene una istruzione e tutti gli identificatori e operandi necessari per quella istruzione (che verranno descritti pi dettagliatamente in seguito). Dato che alcune istruzioni non hanno bisogno di operandi mentre altre possono richiederne fino a tre, gli indirizzi della memoria di programma possono essere composti da uno a quattro canali. Gli indirizzi della memoria di programma iniziano a 00000 e continuano fino a che la capienza della memoria di programma non si esaurisce. Il primo canale di ciascun indirizzo definisce listruzione. Qualsiasi identificatore usato dallistruzione viene anche contenuto nel primo canale. Inoltre, se una istruzione richiede soltanto un unico bit di operando (senza identificatore), anche il bit delloperando viene programmato sulla stessa linea circuitale dellistruzione. I canali restanti, necessari allistruzione, contengono gli operandi che specificano quali dati devono essere usati. Le istruzioni usate verranno descritte pi avanti. Nelle istruzioni con operandi le colonne degli indirizzi e istruzioni relative a tali operandi sono lasciate in bianco. Se listruzione non richiede un identificatore o bit di operando, la riga per la colonna delloperando viene lasciata in bianco. una buona idea scorrere tutti gli spazi in bianco di una colonna dati (per le istruzioni che non richiedono dati) in modo da verificare velocemente se qualche indirizzo stato dimenticato. Durante la programmazione gli indirizzi vengono visualizzati automaticamente e non devono essere inseriti a meno che per qualche motivo non si desideri una posizione diversa per listruzione. Quando si effettua una conversione in codice mnemonico meglio iniziare dallindirizzo 00000 del programma di memoria a meno che non si abbia una ragione specifica per iniziare da un altro punto.

212

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.5 Istruzioni del diagramma a rel Le istruzioni del diagramma a rel sono quelle istruzioni che corrispondono ai singoli contatti e ne definiscono le regole di interazione. Tali istruzioni da sole o in combinazione con le istruzioni dei blocchi logici, descritti successivamente, costituiscono le condizioni operative su cui tutte sono basate le altre istruzioni.
6.5.1 LOAD e LOAD NOT

Il primo contatto, che inizia qualsiasi riga circuitale in un diagramma a rel, corrisponde a una istruzione LOAD o LOAD NOT. Ciascuna di queste istruzioni richiede una linea del codice mnemonico. Il termine Istruzione utilizzato nella tabella che segue identifica una qualsiasi istruzione che pu essere inserita nella parte destra del diagramma.

Quando questo il solo contatto di una riga circuitale, la condizione operativa per listruzione posta sul lato destro ON quando il contatto ON. Per listruzione LOAD (contatto normalmente aperto) la condizione operativa ON se IR 00000 ON, viceversa per listruzione LOAD NOT (contatto normalmente chiuso) la condizione operativa ON se IR 00000 OFF.

213

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.5.2

AND e AND NOT

Quando due o pi contatti sono collegati in serie sulla stessa riga circuitale, il primo corrisponde a unistruzione LOAD o ad un LOAD NOT, gli altri contatti alle istruzioni AND o AND NOT. Il seguente esempio mostra tre contatti che corrispondono, a partire da sinistra, alle istruzioni LOAD, AND NOT e infine AND. Ciascuna di queste istruzioni richiede una linea del codice mnemonico.

Listruzione sulla destra avr una condizione operativa ON solo quando tutte e tre le condizioni saranno ON, ovvero quando IR 00000 ON, IR 00100 OFF e LR 0000 ON. In conclusione, le istruzioni AND devono venire considerate in serie e ognuna il risultato dellAND logico tra la condizione operativa (somma di tutte le condizioni operative che precedono quel punto) e lo stato del bit associato allistruzione AND. Se entrambi sono ON, allora il risultato una nuova condizione operativa ON valida per la successiva istruzione. La condizione operativa per il primo AND di una serie la prima condizione della riga circuitale. Ciascuna istruzione AND NOT di una serie il risultato dellAND logico tra la condizione operativa e lo stato negato del bit associato alla istruzione AND NOT.
6.5.3 OR e OR NOT

Quando due o pi contatti sono collegati in parallelo, il primo contatto corrisponde a unistruzione LOAD o LOAD NOT, gli altri contatti corrispondono alle istruzioni OR o OR NOT. Il seguente esempio mostra tre contatti collegati in parallelo che corrispondono alle istruzioni LOAD NOT, OR NOT e OR. Ciascuna di queste istruzioni richiede una linea del codice mnemonico.

214

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Listruzione posta a destra ha una condizione operativa uguale a ON quando almeno uno dei contatti in parallelo ON, ad esempio IR 00000 OFF, IR 00100 OFF e LR 0000 ON. Le istruzioni OR e OR NOT possono venire considerate singolarmente essendo ognuna il risultato dellOR logico tra la condizione operativa e lo stato del bit associato allOR. Se almeno uno di essi ON, si genera una condizione operativa ON per la successiva istruzione.
6.5.4 Combinazione di istruzioni AND e OR

Quando in una riga circuitale vengono combinate insieme delle istruzioni AND e OR, ciascuna pu venire considerata singolarmente, e ciascuna esegue una operazione logica tra la condizione operativa e lo stato del bit associato ad essa. Quello che segue ne un esempio; lo si osservi attentamente per convincersi che il codice mnemonico segue fedelmente il diagramma a rel.

In questo esempio, viene eseguito un AND tra lo stato dei bit 00000 e 00001 per determinare la condizione operativa posta in OR con lo stato del bit 00200. Il risultato di questa operazione determina, a sua volta, la condizione operativa dellAND con lo stato del bit 00002, che definisce la condizione operativa dellAND NOT con lo stato del bit 00003. Tuttavia, in circuiti pi complessi, necessario analizzare la riga circuitale in termini di blocchi logici, prima di poter arrivare a determinare la condizione operativa per listruzione finale e dove utilizzare le istruzioni AND LOAD e OR LOAD. Prima di considerare circuiti pi complessi, vedremo le istruzioni necessarie a completare un semplice programma di I/O.
6.5.5 OUTPUT e OUTPUT NOT

Le istruzioni OUTPUT e OUTPUT NOT vengono usate per controllare i bit in base alla condizione operativa. Con listruzione Output, il bit operando sar ON finch la condizione operativa resta ON e sar OFF finch la condizione operativa resta OFF. Con listruzione OUTPUT NOT, il bit operando sar ON finch la condizione operativa resta OFF e sar OFF finch la condizione operativa resta ON. Ci si rappresenta come segue. Ciascuna di queste istruzioni richiede una linea del codice mnemonico.

215

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Nellesempio precedente, il bit 10000 star ON finch 00000 resta ON e il bit 10001 star OFF finch 00001 resta ON. In questo caso 00000 e 00001 rappresentano i bit di ingresso e 10000, 10001 i bit di uscita assegnati dal PLC, ovvero i segnali che arrivano ai punti di ingresso associati a 00000 e 00001 controllano rispettivamente i punti di uscita 10000 e 10001. Il periodo in cui un bit resta ON o OFF, pu venire controllato combinando opportunamente delle istruzioni OUTPUT e OUTPUT NOT con listruzione Timer.
6.5.6 Listruzione END

Lultima istruzione di qualunque programma deve essere listruzione END. La CPU esegue tutte le istruzioni fino al primo END, quindi torna ad eseguire la prima istruzione del programma. Sebbene una istruzione END possa venire messa in qualunque punto del programma, (utile in fase di debug) nessuna istruzione successiva ad essa pu venire eseguita. Il numero che segue listruzione END rappresenta il codice mnemonico dellistruzione stessa e viene utilizzato quando il programma viene inserito nel PLC. Listruzione END non necessita di operandi e sulla stessa linea non pu essere inserita nessunaltra istruzione.

Se non stata programmata alcuna istruzione di End, il programma non pu venire eseguito. Abbiamo terminato le istruzioni che servono a scrivere un semplice programma di I/O. Prima di terminare con la programmazione in diagramma a rel e passare allinserimento del programma nel PLC, vediamo le istruzioni dei blocchi logici (AND LOAD e OR LOAD) che sono spesso utili anche in programmi di grande semplicit.
6.5.7 AND LOAD

Le istruzioni dei blocchi logici non corrispondono direttamente a un contatto in diagramma a rel, bens descrivono le relazioni fra pi blocchi logici. Listruzione AND LOAD esegue lAND logico fra le condizioni operative risultanti da due blocchi logici. Listruzione OR LOAD esegue lOR logico fra le condizioni operative risultanti da due blocchi logici.

216

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Sebbene semplice allapparenza, il diagramma riportato qui sotto, richiede una istruzione AND LOAD.

I due blocchi logici sono evidenziati dalle linee tratteggiate. Lo studio di questo esempio mostra che si genera una condizione operativa ON quando almeno una delle condizioni del blocco logico sinistro ON (es.: o 00000 o 00001 ON), e quando almeno una delle condizioni del blocco destro ON (es.: 00002 ON e 00003 OFF). Il precedente diagramma a rel non pu essere convertito in lista istruzioni utilizzando unicamente le istruzioni AND e OR. Se si tenta un AND tra IR 00002 e il risultato di un OR tra IR 00000 e IR 00001, OR NOT tra IR 00002 e IR 00003 viene perso e lOR NOT termina producendo come risultato un OR NOT tra IR 00003 e il risultato di un AND tra IR 00002 e il primo OR. Ci di cui si necessita una modalit per eseguire lOR indipendentemente dal NOT e quindi combinarne i risultati. La conversione pu essere effettuata utilizzando le istruzioni LOAD o LOAD NOT. Quando queste istruzioni vengono utilizzate in questo modo, la condizione di esecuzione corrente viene salvata in un buffer speciale e il processo logico viene fatto partire. Per combinare il risultato della condizione di esecuzione attuale (contatto 00002 e OR negato 00003) con la precedente (contatto 00000 e OR 00001) bisogna utilizzare unistruzione AND LOAD o unistruzione OR LOAD. Qui LOAD si riferisce al caricamento dellultima condizione di esecuzione. Una istruzione di LOAD o LOAD NOT viene utilizzata ogni qual volta esistano in una linea circuitale pi contatti in serie o in parallelo. Analizzando il circuito in termini di istruzioni, il contatto 00000 unistruzione LOAD, mentre il contatto sottostante unistruzione OR tra lo stato del bit 00000 e lo stato di 00001. Il contatto 00002 ancora unistruzione LOAD mentre il contatto sottostante una istruzione OR NOT tra lo stato del bit 00002 e lo stato negato di 00003. Per poter eseguire listruzione posta a destra, deve venire eseguito lAND logico tra le condizioni operative risultanti da questi due blocchi logici. Listruzione AND LOAD permette di eseguire proprio questo. AND LOAD esegue un AND tra la corrente condizione operativa e lultima non utilizzata. Una condizione operativa inutilizzata viene generata da una istruzione LOAD o LOAD NOT. Listruzione AND LOAD non necessita di operandi propri, in quanto opera con

217

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

condizioni operative pregresse. Anche in questo caso i trattini indicano che non devono essere inseriti o designati operandi.
6.5.8 OR LOAD

Sebbene non descritto in dettaglio, il seguente circuito richiede una istruzione OR LOAD tra il blocco logico superiore e quello inferiore. Una condizione operativa ON, utilizzabile dallistruzione posta a destra, risulta quando 00000 ON e 00001 OFF o quando sia 00002 sia 00003 sono ON. Il funzionamento del codice istruzioni per listruzione OR LOAD esattamente lo stesso dellistruzione AND LOAD tranne che in OR LOAD la condizione di esecuzione corrente posta in OR con la condizione di esecuzione che precede.

Naturalmente in alcuni circuiti necessario adottare, sia la istruzione AND LOAD sia listruzione OR LOAD.
6.5.9 Istruzioni di blocchi logici in serie

Per codificare i circuiti con istruzioni di blocchi logici in serie, il circuito deve essere suddiviso in blocchi logici. Ciascun blocco viene codificato usando una istruzione LOAD per codificare il primo contatto, si usa quindi AND LOAD o OR LOAD per combinare in modo logico i blocchi. Sia con AND LOAD che con OR LOAD vi sono due metodi per fare questo. Uno quello di codificare listruzione logica del blocco che si trova dopo i primi due blocchi ed in seguito quella dopo ciascun blocco aggiuntivo. Laltro quello di codificare tutti i blocchi da collegare, iniziando ciascun blocco con LOAD o LOAD NOT, e quindi codificare le istruzioni di blocco logico che li collegano. In questo caso si devono collegare per prime le istruzioni dellultimo paio di blocchi e poi tutti i blocchi precedenti procedendo a ritroso fino al primo. Sebbene entrambi i metodi producano esattamente lo stesso risultato, il secondo metodo, quello relativo alla codificazione di tutte le istruzioni di blocco logico insieme, pu essere usato solo se si stanno collegando al massimo 8 blocchi, cio se sono richieste sette, o meno, istruzioni di blocco logico.

218

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il circuito seguente richiede che AND LOAD sia convertito in codice mnemonico perch contiene tre paia di contatti paralleli in serie. Nellillustrazione sono anche contenute le due opzioni per la codifica del programma.

Si ricordi ancora che con il metodo a destra possibile collegare solo un massimo di otto blocchi mentre non vi un limite nel numero di blocchi collegabili col primo metodo. Il circuito seguente richiede che le istruzioni OR LOAD siano convertite in codice mnemonico perch le tre coppie di contatti sono collegate in parallelo.

Il primo contatto di ciascuna coppia viene convertito in LOAD con il bit operando associato e quindi posto in AND con laltro contatto. I primi due blocchi possono essere codificati per primi, seguiti da OR LOAD, dallultima coppia di contatti blocco, e da un altro OR LOAD; oppure si possono codificare prima i tre blocchi seguiti da due OR LOAD. La figura seguente mostra i codici mnemonici per entrambi i metodi. Si ricorda ancora che con il metodo a destra possibile collegare solo un massimo di otto blocchi mentre non vi un limite nel numero di blocchi collegabili col primo metodo.

219

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.5.10 Come codificare pi istruzioni

Se ci sono pi di istruzioni di uscita eseguite con la stessa condizione di esecuzione, queste devono essere inserite consecutivamente seguendo lultima condizione sulla linea di istruzione. Nellesempio che segue lultima linea di istruzione contiene una condizione in pi che corrisponde ad un AND con 00004.

6.5.11 Salti

Una parte del programma pu essere saltata in conformit ad una certa condizione operativa. Sebbene ci sia simile a quanto avviene quando la condizione operativa per un Interblocco uguale a OFF, con le istruzioni di salto, gli operandi di tutte le istruzioni mantengono il loro stato. Listruzione di Salto pu perci essere usata per controllare dei dispositivi che richiedono unuscita ritentiva, ad esempio dispositivi pneumatici e idraulici. Listruzione di interblocco pu essere usata per controllare dispositivi che non richiedono la ritenzione delle uscite, ad esempio la strumentazione elettronica. I salti si ottengono tramite le istruzioni di Salto JMP(04) e Fine Salto JME(05). Se la condizione operativa del JMP(04) ON il programma viene eseguito normalmente come se questa istruzione non esistesse. Se la condizione operativa del salto OFF, lesecuzione del programma ignora le istruzioni comprese tra il JMP e il JME senza modificare alcuno stato. A tutte le istruzioni JMP e JME vengono assegnati dei numeri tra 00 e 99. Ci sono due tipi di salto. Il numero del salto ne identifica il tipo. Una istruzione di salto pu venire identificata usando un numero tra 01 e 99 una sola volta, cio ciascun numero viene usato una volta sola nella istruzione JMP e una volta nella JME.
220

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quando viene eseguita listruzione di JMP, il controllo passa immediatamente dopo allistruzione JME con lo stesso numero, come se non ci fosse nessuna istruzione compresa tra il JMP e il JME. Il circuito B pu venire modificato come mostrato qui sotto per utilizzare le istruzioni di salto. Sebbene 01 sia stato usato come numero di salto, qualsiasi altro numero tra 02 e 99 potrebbe venire assegnato ad altre istruzioni di salto in altre parti del programma.

Rispetto alle precedenti configurazioni, quando il bit 00000 OFF, il tempo di esecuzione del circuito B cos modificato pi breve. Laltro tipo di istruzione di salto, viene creata assegnando al JMP il numero 00. In questo caso possibile definire un numero di salti JMP(04) desiderato. Inoltre possono venire usati anche pi JMP 00 consecutivi senza alcun JME 00 tra di essi. Quando si utilizza il numero 00 per listruzione di salto, il programma non esegue le istruzioni comprese il JMP 00 e JME 00. Anche in questo caso lo stato delle istruzioni comprese in una sezione di Salto, non viene modificato, per la ricerca della istruzione di Fine Salto JME(05) 00 comporta un leggero prolungamento del tempo di scansione. Le istruzioni di Salto non influenzano minimamente lo stato delle istruzioni tra il JMP e JME.

6.5.12 SET e RESET

Le istruzioni di SET e RESET sono molto simili a OUTPOUT e OUTPUT NOT tranne per il fatto che cambiano lo stato bit solo a fronte di una condizione di esecuzione ON. Entrambe le istruzioni non alterano lo stato del bit a fronte di condizioni di esecuzione OFF. Listruzione SET imposter il bit a ON quando la condizione di esecuzione va ad ON, ma a differenza dellistruzione OUTPUT, non porter il bit ad OFF quando la condizione operativa cambier ad OFF. Listruzione RESET imposter il bit a OFF quando la condizione di esecuzione va ad ON ma a differenza dellistruzione OUTPUT NOT, non porter il bit ad ON quando la condizione operativa cambier ad OFF.
221

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Nellesempio che segue 10000 verr portato ad ON quando 00100 va ad ON e rimarr ad ON a prescindere dallo stato di 00100. Quando invece 00101 va ad ON, RESET porr 10000 ad OFF.

6.5.13 Istruzioni differenziali sul fronte di salita/discesa

Le istruzioni differenziali DIFU(13) e DIFD(14) vengono usate per mandare ON il bit operando per la sola durata di una scansione. Nel caso di istruzione differenziale sul fronte di salita, il bit operando va ON se la condizione operativa passa da OFF a ON; viceversa listruzione differenziale sul fronte di discesa manda ON il bit operando se la condizione operativa passa da ON a OFF. Il seguente esempio equivalente al precedente, ma in questo caso vengono usate le istruzioni DIFU e DIFD. Entrambe queste istruzioni occupano una sola linea di codice mnemonico.

Con listruzione DIFU(13) il bit 01000 va ON per una scansione dopo che il bit 00000 diventato ON. Per eseguire nuovamente listruzione di DIFU(13) sar necessario portare ad OFF e poi ad ON lo stato di 010000. Usando la DIFD(14), il bit 01001 va ON per una scansione quando lo stato di 00001 passa da ON ad OFF (IR 01001 sar mantenuto ad OFF fino a quel momento), il bit 01001 verr riportato ad OFF quando verr utilizzata nuovamente la funzione DIFD(14) 01001.

222

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.6

Istruzioni nel diagramma a rel (per PLC Omron)

Le istruzioni del diagramma a rel includono istruzioni a rel e istruzioni a blocco logico e corrispondono alle condizioni nel diagramma a rel. Le istruzioni a blocco logico sono usate per mettere in relazione parti pi complesse del diagramma. Le istruzioni che seguono ci torneranno utili per lo svolgimento di alcuni esercizi dimostrativi che verranno trattati nei prossimi paragrafi.
6.6.1 LOAD, LOAD NOT, AND, AND NOT, OR e OR NOT

Limitazioni: Non ci sono limitazioni al numero delle istruzioni o restrizioni allordine in cui queste possono venire usate, posto come limite la capacit di memoria del PLC. Descrizione: Le sei istruzioni di base corrispondono alle condizioni logiche di un diagramma a rel. Lo stato dei bit assegnato ad ogni istruzione determina le condizioni di esecuzione per tutte le altre istruzioni appartenenti allo stesso ramo circuitale. Ognuna di queste istruzioni e ogni indirizzo di bit possono essere usati tutte le volte che necessario. Lo stato del bit operando (B) assegnato a LD o LD NOT determina la prima condizione di esecuzione. AND prende lAND logico fra la condizione di esecuzione e lo stato del suo bit operando; AND NOT, lAND logico fra la condizione di esecuzione e linverso dello stato del suo bit operando. OR prende lOR logico fra la condizione di esecuzione e lo stato del suo bit operando; OR NOT, lOR logico fra la condizione di esecuzione e linverso dello stato del suo bit operando. Il simbolo a rel per caricare i bit TR differente da quando sopra descritto. Flag Non ci sono flag influenzati da queste istruzioni.

223

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.6.2

AND LOAD e OR LOAD

Descrizione: Quando le istruzioni sono unite in blocchi che non possono essere logicamente uniti usando solo operazioni OR e AND, vengono usate AND LD e OR LD. Poich le operazioni AND e OR uniscono logicamente lo stato di un bit ad una condizione di esecuzione, AND LD e OR LD uniscono logicamente due condizioni di esecuzione, quella in corso e la precedente. Per stilare un diagramma a rel non sono necessarie le istruzioni AND LD e OR LD, n sono necessarie per inserire direttamente diagrammi a rel, come possibile dal software di programmazione. Esse sono invece necessarie per convertire il programma ed inserirlo in forma mnemonica. Per ridurre il numero delle istruzioni richieste, occorre avere una comprensione di base delle istruzioni AND LD e OR LD. Flag: Non ci sono flag influenzati da queste istruzioni.

6.7 Istruzioni per il controllo dei bit Ci sono sette istruzioni che possono essere generalmente usate per controllare lo stato di singoli bit. Queste sono OUT, OUT NOT, DIFU(13), DIFD(14), SET, RSET e KEEP(11). Queste istruzioni vengono usate per operare cambiamenti di stato sui bit con modalit differenti.
6.7.1 OUTPUT e OUTPUT NOT OUT e OUT NOT

224

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Limitazioni: Un bit di uscita pu essere solitamente abbinato ad una sola istruzione che ne controlla lo stato. Descrizione: OUT e OUT NOT vengono usate per attivare il bit designato a seconda delle condizioni di esecuzione. OUT attiva il bit designato a ON a fronte di una condizione di esecuzione ON, e a OFF per una condizione di esecuzione OFF. Con un bit TR, OUT appare ad un punto di diramazione piuttosto che alla fine di una linea di istruzione. OUT NOT attiva il bit designato a ON a fronte di una condizione di esecuzione OFF, e a OFF per una condizione di esecuzione ON. OUT e OUT NOT possono venire usati per controllare lesecuzione forzando a ON e poi a OFF i bit che sono designati alla gestione delle condizioni sul diagramma a rel, determinando quindi le condizioni di esecuzione per altre istruzioni. Ci particolarmente utile e permette di utilizzare una serie complessa di condizioni per controllare lo stato di un singolo bit di lavoro; questo bit di lavoro, poi, pu essere usato per controllare altre istruzioni. Il periodo in cui un bit ON o OFF pu essere controllato dalla combinazione di OUT o OUT NOT con TIM. Flag:
6.7.2

Non ci sono flag influenzati da queste istruzioni.


SET e RESET SET e RSET

Descrizione: SET commuta il bit operando ad ON quando la condizione di esecuzione ON, e non influenza lo stato del bit operando quando la condizione di esecuzione OFF. RSET commuta il bit operando ad OFF quando la condizione di esecuzione ON e non influenza lo stato del bit operando quando la condizione di esecuzione OFF. Loperazione SET differisce da quella di OUT perch questa commuta il bit operando ad OFF quando la sua condizione di esecuzione ad OFF. Parimenti, RSET differisce da OUT NOT perch questultima commuta ad ON il bit operando quando la sua condizione esecutiva ad OFF. Precauzioni: Lo stato del bit operando per le istruzioni SET e RSET programmate fra IL(002) e ILC(003) oppure fra JMP(004) e JME(005) non cambier quando si incontra linterlock o una condizione di salto (vale a dire quando o IL(002) oppure JMP(004) sono eseguite con condizione di esecuzione OFF). Flag Esempi Non ci sono flag influenzati da queste istruzioni. Gli esempi che seguono mettono in evidenza la differenza fra OUT e SET/RSET. Nel primo esempio (Diagramma A), IR 10000 sar commutato ad ON o ad OFF ogni volta che IR 00000 va a ON o a OFF. Nel secondo esempio
225

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

(Diagramma B), IR 10000 sar commutato ad ON quando IR 00001 diventa ON rimarr ad ON (anche se IR 00001 va ad OFF) fino a che IR 00002 non va ad ON.

6.7.3

DIFFERENTIATE UP e DOWN DIFU(13) e DIFD(14)

Limitazioni: Un bit di uscita pu essere solitamente abbinato ad una sola istruzione che ne controlli lo stato. Descrizione: DIFU(13) e DIFD(14) vengono utilizzate per impostare su ON per un solo ciclo il bit specificato. Ogni volta che DIFU(13) viene eseguita, confronta la condizione di esecuzione in corso con la condizione dellesecuzione precedente. Se la condizione dellesecuzione precedente era OFF e quella corrente ON, DIFU(13) attiver il bit designato a ON. Se la condizione dellesecuzione precedente era ON e quel la corrente ON oppure OFF, DIFU(13) o metter il bit designato a OFF, o lo lascer a OFF (se il bit designato gi a OFF). Il bit designato quindi non sar mai su ON pi a lungo che per una scansione, assumendo che listruzione venga eseguita ad ogni scansione (vedi Precauzioni, qui di seguito). Ogni volta che DIFD(14) viene eseguita, confronta la condizione di esecuzione in corso con la condizione dellesecuzione precedente. Se la condizione di esecuzione precedente era ON e quella corrente OFF, DIFD(14) abiliter (ON) il bit designato. Se la condizione di esecuzione precedente era OFF e quella corrente ON oppure OFF, DIFD(14) o metter il bit designato a OFF o lo lascer a OFF. Il bit designato quindi non sar mai su ON pi a lungo che per una scansione, assumendo che listruzione venga eseguita ad ogni scansione. Vengono usate queste istruzioni quando non possibile utilizzare quelle differenziali (quelle che hanno il prefisso @) ed richiesta unesecuzione a singola scansione per una particolare istruzione. Possono essere usate anche con istruzioni con formato non differenziale, quando il loro uso semplifica la programmazione. Esempi sono illustrati in seguito. Flag: Non ci sono flag influenzati da queste istruzioni.

Precauzioni: Il funzionamento di DIFU(13) e di DIFD(14) pu non essere sicuro quando le istruzioni sono inserite fra le istruzioni IL e ILC, o fra le istruzioni JMP e JME, o in sottoprogrammi. Per informazioni, far riferimento Interlock e Interlock Clear IL(02) e ILC(03), Jump e Jump End JMP(04) e JME(05) e Sottoprogrammi (subroutine) e INTERRUPT CONTROL INT(89).

226

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio:

In questo esempio, IR 10014 andr a ON per un ciclo quando IR 00000 passa da OFF a ON. IR 10015 andr ON per un ciclo quando IR 00000 passa da ON a OFF.

6.8

Istruzioni per temporizzatori e contatori

TIM e TIMH (15) sono funzioni di decremento di un temporizzatore con ritardo alleccitazione, richiedono un numero TC ed un valore di predefinizione (SV). STIM(69) utilizzata per controllare gli interrupt a tempo, i quali attivano delle subroutine predefinite. CNT unistruzione di decremento del counter e CNTR(12) di contatore reversibile. Entrambe necessitano di un numero TC e di un valore SV. Inoltre entrambe sono collegate a linee di istruzioni multiple che servono come segnali di ingresso e di ripristino. CTBL(63), INT(89) e PRV(62) sono utilizzabili per gestire il contatore veloce. INT(89) utilizzato anche per interrompere luscita. Un numero TC pu essere definito solo una volta, cio una volta che stato usato come lidentificatore di una istruzione Timer o Counter, non pu essere usato ancora. I numeri TC, una volta definiti, possono essere utilizzati quanto si vuole come operandi in altre istruzioni, oltre che a quelle di Timer e Counter. I numeri TC vanno da 000 a 255 nei PLC CPM2A/CPM2C e da 000 a 127 nei CPM1/CPM1A/SRM1(-V2). Quando sono usati come identificatori in istruzioni Timer e Counter, non occorre il prefisso. Una volta che un numero TC stato definito come timer, gli si pu assegnare il prefisso TIM per utilizzarlo come un operando in determinate istruzioni. Questo prefisso usato indipendentemente dallistruzione Timer che stata usata per definire il timer. Una volta che un numero TC stato definito come counter, gli si pu assegnare il prefisso CNT per utilizzarlo come un operando in determinate istruzioni. Anche questo prefisso usato indipendentemente dallistruzione di counter che stata usata per definire il counter. I numeri TC possono essere designati come operandi di istruzioni che richiedono sia dati di tipo bit sia dati di tipo canale. Quando il numero TC definito come un operando che richiede dati di tipo bit, fornisce un bit che ha il significato di flag di fine conteggio, per indicare quando il tempo/conteggio finito; il bit, che normalmente OFF, si posizioner a ON quando il valore SV predisposto sar trascorso. Quando il numero TC designato come un operando che richiede dati di tipo canale, fornisce una locazione di memoria che contiene il valore corrente (PV) del timer o counter. Il valore PV di un timer o counter pu quindi essere usato come un operando in CMP(20), o in qualsiasi altra istruzione per la quale ammessa larea TC. Ci fatto designando il numero TC utilizzato per definire laccesso di quel timer o counter alla locazione di memoria dove contenuto il valore PV. Si noti che TIM 000 viene usato per designare listruzione di Timer definita con il numero TC 000, per designare il flag di fine conteggio per questo timer, e per designare il valore PV di questo timer. Nel contesto il significato del termine dovrebbe essere chiaro: il primo sempre
227

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

unistruzione, il secondo sempre un bit operando e il terzo sempre un canale operando. Lo stesso vale per tutti gli altri numeri TC con prefisso TIM o CNT. Un valore SV pu essere inserito come costante o canale in unarea dati. Se un canale dellarea IR assegnato ad unUnit di Ingresso designato come indirizzo canale, lUnit di Ingresso pu essere collegata in modo tale che il valore SV pu essere predisposto esternamente per mezzo di contraves o simili. In modalit RUN o MONITOR i timer e counter collegati in questo modo possono essere predisposti solo esternamente. Tutti i valori SV, compresi quelli predisposti esternamente, devono essere in BCD.

6.8.1

TIMER TIM

Limitazioni: Il valore SV compreso tra 000,0 e 999,9. Il punto decimale non inserito. Ogni numero TC pu essere usato come identificatore in una sola istruzione timer o counter. I numeri TC vanno da 000 a 255 nei PLC CPM2A/CPM2C e da 000 a 127 nei CPM1/CPM1A/SRM1(-V2). I numeri da TC 000 a TC 015 (TC 000 a TC 003 nel CPM1/CPM1A/SRM1) non dovrebbero essere usati come TIM, se sono necessarie le istruzioni TIMH(15). Nei PLC CPM2A/CPM2C, i numeri da TC 004 a TC 007 non devono essere utilizzati in TIM se sono necessari per TMHH(). Descrizione: Un timer attivato quando la sua condizione di esecuzione diventa ON ed ripristinato (al valore SV) quando la condizione di esecuzione diventa OFF. Una volta attivato, TIM decrementa il SV in unit di 0,1 secondo. Se la condizione di esecuzione rimane a ON sufficientemente a lungo perch il tempo di TIM si azzeri, il flag di completamento per il numero TC usato si abiliter e rimarr a ON fino a che TIM non sar ripristinato (cio fino a che la sua condizione di esecuzione diventa OFF). La seguente illustrazione mostra la relazione fra la condizione di esecuzione di TIM e il flag di completamento ad esso assegnato.

228

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Precauzioni: I timer nelle sezioni interbloccate del programma sono ripristinati quando la condizione di esecuzione per IL(02) OFF. Anche le interruzioni dellalimentazione ripristinano i timer. Se viene richiesto un timer che non sia azzerato da queste condizioni, gli impulsi dei bit dei clock interni dellarea SR possono essere conteggiati usando listruzione CNT. Per informazioni, vedi paragrafo 7-15-5 Counter CNT. Flags ER: Il canale DM indirizzato indirettamente non disponibile. (Il contenuto del canale *DM non si trova in BCD oppure non compreso allinterno dellarea DM).

SV il valore di partenza del conteggio per i contatori sottraendi o il valore massimo di

conteggio di un contatore reversibile. Per i timer indica il ritardo alleccitazione. Il valore di predisposizione abbreviato con SV.

6.8.2

COUNTER CNT

Limitazioni: Ogni numero TC pu essere utilizzato come identificatore solo in una istruzione TIMER o COUNTER. Nei PLC CPM2A/CPM2C i numeri TC vanno da 000 a 255 e da 000 a 127 nei PLC CPM1/CPM1A/SRM1(-V2). Descrizione: Listruzione CNT viene utilizzata per eseguire il conteggio in discesa dellSV quando la condizione di esecuzione dellimpulso di conteggio CP passa da OFF a ON. Ad esempio, in qualsiasi CNT che viene eseguita con condizione di esecuzione ON per il CP essendo OFF la condizione di esecuzione nellesecuzione precedente, il valore corrente (PV) verr ridotto di uno. Se la condizione di esecuzione non stata modificata da ON a OFF, il PV di CNT non verr cambiato. Il flag di completamento dei contatori passa su ON quando il PV arriva a zero e rimane su ON finch il contatore non viene resettato. Listruzione CNT viene resettata con lingresso di reset R. Quando R passa da OFF a ON, il PV viene resettato sullSV. Il PV non verr ridotto quando R si trova su ON. Il conteggio in discesa dellSV ricomincia quando R passa su OFF. Il PV per CNT non verr resettato nelle sezioni del programma a interlock o da eventuali interruzioni dellalimentazione. Le modifiche a condizioni di

229

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

esecuzione, flag di completamento e PV vengono illustrate di seguito. Laltezza della linea relativa al PV indica solo le modifiche al PV.

Precauzioni: Lesecuzione del programma continua anche se viene utilizzato un SV non in BCD, ma lSV non sar corretto. Flag: ER: Il canale DM indirizzato indirettamente non disponibile. (Il contenuto del canale *DM non si trova in BCD oppure non compreso allinterno dellarea DM).

Esempio: Di seguito viene riportato un esempio in cui CNT viene utilizzato per la creazione di temporizzatori estesi mediante il conteggio dei bit a impulso di clock dellarea SR. CNT 001 conta il numero di volte che il bit a impulso di clock di 1 secondo (SR 25502) passa da OFF a ON. Anche in questo caso, IR 00000 viene utilizzato per controllare le volte in cui CNT viene eseguita. Poich nellesempio seguente lSV per CNT 001 700, il flag di completamento per CNT 002 passa su ON quando 1 secondo sar stato moltiplicato per 700 volte oppure allo scadere di 11 minuti e 40 secondi. Il risultato sar evidenziato dal passaggio di IR 20002 su ON.

Attenzione Impulsi di clock pi brevi non necessariamente daranno come risultato temporizzatori pi precisi poich i tempi ristretti in posizione ON potrebbero non essere letti in modo accurato durante i cicli pi lunghi. In particolare, gli impulsi di clock di 0,02 secondi e 0,1 secondo non devono essere utilizzati per creare temporizzatori con le istruzioni CNT.

230

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.9 6.9.1

Istruzioni di scorrimento
SHIFT REGISTER SFT(10)

Limitazioni: Il canale E deve essere maggiore o uguale a St e, sia St sia E devono essere nella stessa area dati. Se un bit di uno dei canali usati in un registro a scorrimento viene usato anche per unistruzione quale KEEP (11), che controlla lo stato dei bit individuali, sulla Console di Programmazione o su altre Unit di Programmazione sar generato un errore (COIL DUPL) di sintassi. Comunque il programma sar eseguito come scritto. Per un esempio di programmazione vedi Esempio 2: Bit di controllo in registro a scorrimento. Descrizione: Listruzione SFT(10) controllata da tre condizioni di esecuzione: I, P, e R. Se SFT(10) viene eseguita e 1) la condizione di esecuzione di P ON ed era OFF allultima scansione e, 2) R OFF la condizione di esecuzione di I fatta scorrere nel bit pi a destra di un registro a scorrimento definito fra St e E, ovvero, se I ON, viene fatto scorrere un 1 nel registro; se I OFF, viene fatto scorrere uno 0. Quando fatto scorrere I nel registro, tutti i bit precedentemente contenuti nel registro sono fatti scorrere a sinistra, ed il bit pi a sinistra del registro perso. Su P la condizione di esecuzione funziona come unistruzione differenziale, cio I sar fatto scorrere nel registro solo quando P ON ed era OFF allultima scansione. Se la condizione di esecuzione P non cambiata, oppure andata da ON a OFF, il registro a scorrimento non sar influenzato. St designa il canale pi a destra del registro a scorrimento; E designa quello pi a sinistra. Il registro a scorrimento include entrambi questi canali e tutti i canali compresi. Lo stesso canale pu essere designato per St e E per creare un registro a scorrimento a 16 bit (cio 1 canale). Quando la condizione di esecuzione di R va a ON, tutti i bit del registro a scorrimento saranno posizionati a OFF (cio predisposti su 0) ed il registro a scorrimento non funzioner fino a che R non ritorni a OFF.

Flag

ER: St e E non si trovano nella stessa area oppure St superiore a E.

231

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio:

Lesempio seguente usa il clock interno di 1 secondo (25502) cosicch la condizione di esecuzione prodotta da 00000 fatta scorrere ogni secondo. Luscita 10000 va ad ON ogniqualvolta un 1 viene fatto scorrere nel bit 07 del canale 10.

6.10 Istruzioni di spostamento dati 6.10.1 MOVE MOV(21)

Limitazioni: I DM 6144 a DM 6655 non possono essere usati come D. Descrizione: Quando la condizione di esecuzione OFF MOV(21), non viene eseguita. Quando ON MOV(21), copia il contenuto di S in D.

Precauzioni: I numeri TC non possono essere designati come D per cambiare il valore PV del temporizzatore o contatore. comunque possibile variare facilmente un valore PV di un temporizzatore o di un contatore usando listruzione BSET(71). Flag: ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non in BCD, oppure stato superato il confine dellarea DM). EQ: ON quando ogni zero viene trasferito in D. Esempio: Nellesempio seguente, listruzione @MOV(21) viene utilizzata per copiare il contenuto dellIR001 nel canale HR05, quando il contatto IR00000 passa da OFF a ON.

232

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.11 Istruzioni di comparazione 6.11.1 COMPARE CMP(20)

Limitazioni: Quando si paragona un valore al valore corrente (PV) di un temporizzatore o di un contatore, questo deve essere espresso in BCD. Descrizione: Quando la condizione di esecuzione OFF, CMP(20) non viene eseguita. Quando la condizione di esecuzione ON, CMP(20) confronta Cp1 e Cp2 ed assegna il risultato ai flag di GR, EQ, e LE dellarea SR. Precauzioni: Inserendo altre istruzioni fra CMP(20) e loperazione che accede ai flag di EQ, LE e GR, possibile che lo stato di questi flag sia variato. Accertate di gestirli prima che ne venga modificato lo stato. Flag : ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non in BCD, oppure stato superato il confine dellarea DM). EQ: ON se Cp1 uguale a Cp2. LE: ON se Cp1 inferiore a Cp2. GR: ON se Cp1 maggiore di Cp2.

233

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio: Salvataggio dei risultati di CMP(20) Il seguente esempio illustra come salvare immediatamente i risultati di comparazione. Se il contenuto del canale 010 maggiore di quello di HR 09, 10200 abilitato (ON); se i due contenuti sono uguali, 10201 abilitato (ON); se il contenuto di 010 inferiore a quello di HR 09, 10202 abilitato (ON). In alcune applicazioni potrebbe essere necessario solo uno dei tre OUT, facendo diventare inutile luso del TR 0. Con questo tipo di programmazione, 10200, 10201 e 10202 sono aggiornati solo quando viene eseguita CMP(20).

234

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.12 Accorgimenti di programmazione Il numero di contatti che possono venire collegati in serie o in parallelo illimitato. Sebbene possano venire scritti circuiti molto complessi non possibile posizionare nessun contatto sulle linee verticali che uniscono due righe circuitali. Il circuito A mostrato qui sotto non possibile e di conseguenza deve essere ridisegnato come circuito B. I codici mnemonici sono forniti solo per il circuito B in quanto la codifica del circuito A non pu essere effettuata.

Non c alcuna limitazione numerica alluso di un contatto allinterno di un programma. Spesso i programmi vengono inutilmente complicati per cercare di minimizzare il numero di volte che un contatto viene usato. Ad eccezione delle istruzioni per le quali non consentita alcuna condizione (ad esempio, INTERLOCK CLEAR e JUMP END), qualsiasi riga di istruzione richiede almeno una condizione che definisce la condizione di esecuzione dellistruzione posta sul lato destro. Inoltre il circuito A, riportato di seguito, deve essere ridisegnato come circuito B. Se occorre eseguire sempre unistruzione (se unuscita deve essere sempre impostata su ON durante lesecuzione del programma), possibile utilizzare un Flag su ON (SR).

235

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.13 La console di programmazione Questo paragrafo descrive il collegamento e lutilizzo di una console di programmazione.

Con il CPM1A possibile usare due diversi tipi di console di programmazione: lCQM1 PRO01E e C200HPRO27E. I tasti funzione di queste due console di programmazione sono identici. Tenere premuto il tasto SHIFT per inserire una lettera mostrata nellangolo in alto a sinistra del tasto o per inserire la funzione pi in alto di un tasto con due funzioni. Per esempio, il tasto AR/HR di CQM1PRO01E pu specificare larea AR o HR; premere e rilasciare il tasto SHIFT e poi premere il tasto AR/HR per specificare larea AR.

Con il PLC OMRON CPM1A possibile usare due diversi tipi di console di programmazione: CQM1PRO01E e C200HPRO27E.

236

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

I tasti funzione di queste due console di programmazione sono identici. Tenere premuto il tasto SHIFT per inserire una lettera mostrata nellangolo in alto a sinistra del tasto o per inserire la funzione pi in alto di un tasto con due funzioni. Per esempio, il tasto AR/HR di CQM1PRO01E pu specificare larea AR o HR; premere e rilasciare il tasto SHIFT e poi premere il tasto AR/HR per specificare larea AR.

Dopo il collegamento della console di programmazione, si pu modificare la modalit del PLC CPM1A. Il tipo di display (<PROGRAM>, <MONITOR> o <RUN>) apparir sulla pagina della console di programmazione. Non possono essere eseguite operazioni con i tasti durante la visualizzazione della modalit della console di programmazione. Premere CLR per annullare la visualizzazione e per permettere le operazioni con i tasti. Se il tasto SHIFT viene premuto mentre viene attivato il selettore di modalit, la visualizzazione originale rester sulla pagina della console di programmazione e non apparir la visualizzazione della modalit. Il CPM1A inserir automaticamente la modalit RUN se un dispositivo periferico come una console di programmazione non collegata al momento dellaccensione del CPM1A.

237

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Modalit

PROGRAM Il programma CPM1A non viene eseguito in modalit PROGRAM. Usare la modalit PROGRAM per creare e modificare il programma, per cancellare la memoria o per verificare gli errori del programma. MONITOR Il programma CPM1A viene eseguito in modalit MONITOR e gli vengono I/O vengono gestiti come la modalit RUN. Utilizzare la modalit MONITOR quando viene controllato il sistema monitorando lo stato operativo del CPM1A, i bit I/O di set e reset forzato, e modificando i temporizzatori e i contatori SV/PV ecc. RUN Questa la modalit operativa normale del CPM1A. Lo stato operativo del CPM1A pu essere monitorato da un dispositivo periferico, ma i bit non possono essere sottoposti a set/reset forzato e lo SV/PV dei temporizzatori e dei contatori non pu essere cambiato.

Modalit

Modalit

Avvertenza Prima di modificare la modalit di funzionamento del PLC, accertarsi che non si verificheranno effetti indesiderati sul sistema.

6.13.1 Funzionamento della console operativa

La tabella seguente mostra le funzioni di programmazione e di monitoraggio che possono essere eseguite con la console operativa.

238

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.13.2 Cancellazione della memoria

Questa operazione viene usata per cancellare completamente o in parte la memoria di programma e qualsiasi area dati che non sia a sola lettura, nonch il contenuto della memoria della console di programmazione. effettuabile soltanto in modalit PROGRAM.

Prima di iniziare a programmare per la prima volta o prima di scrivere un nuovo programma, cancellare tutte le aree. Cancellazione totale La seguente procedura cancella completamente la memoria.

Avvertenza:

Il setup del PLC (da DM 6600 a DM 6655) sar cancellato quando viene eseguita questa operazione.

239

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Cancellazione parziale: possibile conservare i dati contenuti nelle aree specificate o una parte della memoria di programma. Per conservare i dati contenuti nelle aree HR, TC o DM, premere il tasto che indica larea di questione dopo avere premuto i tasti SET, NOT e RESET. Tutte le aree dati che appaiono ancora sul display verranno cancellate premendo il tasto MONTR. Il tasto HR viene usato per indicare sia larea AR che larea HR, il tasto CNT per indicare tutta larea temporizzatori/contatori e il tasto DM per indicare larea DM. inoltre possibile conservare una parte della memoria di programma partendo dal primo indirizzo di memoria fino a un indirizzo specificato. Dopo avere indicato larea di memoria da conservare, specificare il primo indirizzo della memoria di programma da cancellare. Per esempio, per lasciare inalterati gli indirizzi da 000 a 020 e cancellare gli indirizzi da 030 fino alla fine della memoria di programma, inserire 030. A scopo dimostrativo, seguire la procedura seguente per conservare larea temporizzatori/ contatori e gli indirizzi della memoria di programma da 000 a 122:

6.13.3 Inserimento e cancellazione delle istruzioni

Questa operazione permette di inserire o cancellare unistruzione dal programma. possibile solo nella modalit PROGRAM.

Per dimostrare questa operazione, sar inserita una condizione NA IR 00105 nellindirizzo di programma 00206 e verr cancellata una condizione NA IR 00103 nellindirizzo 00205 (vedi diagramma seguente).

240

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Inserimento

Seguire la procedura sotto indicata per inserire la condizione NA IR 00105 nellindirizzo 00206.

Cancellazione

Seguire la procedura seguente per cancellare la condizione NA IR 00103 nellindirizzo 00205.

241

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.13.4 Inserimento o scrittura dei programmi

Questa procedura viene utilizzata per inserire o scrivere programmi. possibile solo nella modalit PROGRAM.

La stessa procedura viene usata sia per inserire un programma per la prima volta sia per modificare un programma gi presente. In entrambi i casi, il contenuto della memoria di programma viene sovrascritto. Per esemplificare questa procedura, verr inserito il programma mostrato nel diagramma seguente.

242

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

243

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.13.5 Verifica del programma

Questa operazione verifica gli errori di programmazione e visualizza lindirizzo e lerrore del programma in caso di anomalie. possibile solo in modalit PROGRAM.

244

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.14 Esempio di programmazione mediante console

Questo capitolo descrive tutte le fasi necessarie per la programmazione con la console di programmazione.
6.14.1 Operazioni preliminari

Scrivendo per la prima volta un programma per il CPM1A, eseguire la seguente procedura fino alla fase 3 (cancellazione della memoria).

245

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.14.2 Esempio

Il seguente programma a rel illustrer come scrivere un programma con la console di programmazione. Questo programma rende intermittente luscita IR 01000 (un secondo ON, un secondo OFF) per dieci volte dopo lattivazione dellingresso IR 00000.

246

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Lelenco mnemonico di questo esempio illustrato nella tabella seguente.

6.14.3 Procedure di programmazione

Il programma dellesempio verr registrato nel CPM1A secondo lelenco mnemonico riportato in Esempio. La procedura viene eseguita partendo dal display iniziale. (Cancellare la memoria prima di inserire un nuovo programma).

247

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

SV il valore di partenza del conteggio per i contatori sottraendi o il valore massimo di conteggio di un contatore reversibile. Per i timer indica il ritardo alleccitazione. Il valore di predisposizione abbreviato con SV.

248

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

249

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.14.4 Verifica del programma

Verificare la sintassi del programma in modalit PROGRAM per accertarsi che il programma sia stato inserito in modo corretto.

250

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.14.5 Esecuzione del test in modalit MONITOR

251

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

6.15 Esempi applicativi di programmazione per PLC Omron Esempio n. 1

Consideriamo, per esempio, lo schema di figura. Si tratta di due contatti in serie (AND), la cui simultanea chiusura permette di eccitare una bobina di uscita. Per codificare questo schema, dobbiamo in primo luogo specificare l'indirizzo di memoria (da non confondere con gli indirizzi dei canali I/O) in cui vogliamo che il programma abbia inizio. Utilizziamo a tale scopo l'indirizzo 0000. In tale indirizzo scriviamo una istruzione che indica la prima operazione del programma: LD (LOAD). Questa istruzione utilizzata ogni volta che inizia una nuova riga circuitale dalla barra verticale. Sul foglio di programmazione, accanto all'indirizzo 0000 riportiamo l'istruzione LD.
Indirizzi 0000 0001 0002 0003 Istruzioni LD AND OUT END Dati 0005 0006 0500

Poich il primo contatto del circuito deve essere memorizzato come dato dell'istruzione LD, lo scriveremo nella colonna dei dati. Nel nostro caso, il dato 0005, ossia l'indirizzo (questa volta di I/O) che abbiamo assegnato al contatto. Con questa prima istruzione abbiamo ordinato al PLC di prendere in carico lo stato del contatto 0005, che verr memorizzato. L'elemento successivo del diagramma a rel l'istruzione AND a cui nel programma assegneremo l'indirizzo di memoria 0001. Il dato per l'istruzione AND il secondo contatto, che ha in questo caso l'indirizzo 0006. Sul foglio di programmazione, lo scriveremo accanto al codice AND. Ora ci serve una istruzione per mettere in uscita il risultato dei due contatti in serie: l'istruzione OUT (OUTPUT). Scriveremo questa istruzione nell'indirizzo 0002 e sceglieremo l'indirizzo del rel di uscita sul quale inviare il segnale. Abbiamo scelto il rel 0500, riportato nella colonna dei dati. Resta soltanto da dire al PLC che il programma finito. Scriveremo quindi una istruzione END nell'indirizzo 0003. Esempio n.2 Proviamo ora con un programma un po' pi complesso. Immaginiamo un circuito di controllo per una macchina di imballaggio. Il circuito serve a rilevare e contare il numero di prodotti trasportati su una linea di assemblaggio robotizzata. Non appena sono stati contati cinque prodotti, il circuito eccita un solenoide (elettrovalvola) che riceve la corrente per due secondi e viene quindi diseccitato.
252

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seguiamo le fasi di programmazione descritte. Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Una fotocellula conta il passaggio dei pezzi sulla linea di trasporto b) Un contatore memorizza il n di pezzi transitati c) Dopo aver contato 5 pezzi, il sistema attiva una elettrovalvola che comanda il ciclo di imballaggio d) Lattuatore pneumatico di imballaggio deve restare attivo per 2 secondi

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito Sono presenti un dispositivo di ingresso (fotocellula), un dispositivo di uscita (elettrovalvola), un rel ausiliario di controllo, un temporizzatore ed un contatore.
Fotocellula Uscita sul solenoide (attivazione elettrovalvola) Rel di controllo (X1) Contatore CC Temporizzatore T Rel d'ingresso n. 0000 Rel d'uscita n. 0500 Rel ausiliario interno n. 1000 CNT47 TIM00

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

253

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o Poich ai temporizzatori ed ai contatori devono essere assegnati dei numeri diversi (nel caso del C20 da 00 a 47), un modo comodo per eseguire l'assegnazione iniziare da un estremo del campo per i temporizzatori e dall'altro estremo per i contatori. Per esempio, diamo al temporizzatore il numero 00 ed al contatore il numero 47; o I temporizzatori ed i contatori non possono generare direttamente una uscita, ma devono utilizzare un rel di uscita. Il contatto di tale rel pu essere utilizzato pi volte nel diagramma, mentre non si pu pi assegnare la stessa bobina; o La codifica deve avvenire seguendo il diagramma da sinistra a destra e dall'alto in basso. In base a queste considerazioni si pu quindi ottenere il programma codificato riportato in figura.
Indirizzi 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Istruzioni LD LD CNT LD OR AND-NOT OUT LD TIM OUT END Dati 0000 1000 47 CNT47 1000 TIM00 1000 1000 00 #0020 0500

Nel PLC la CPU effettua la lettura delle istruzioni presenti in memoria e le esegue in sequenza fino alla istruzione di fine programma. A questo punto viene eseguita la lettura degli ingressi e vengono pilotate le uscite sulla base dell'immagine delle stesse presenti in memoria. Ci significa che se il processo richiede tempi stretti necessario adottare un PLC che abbia un tempo di scansione molto basso. In genere, come termine di paragone, si considera il tempo di esecuzione medio necessario per eseguire 1000 istruzioni. Infatti, quanto pi la CPU rapida nell'eseguire le istruzioni, tanto pi frequentemente verranno aggiornate le uscite e saranno acquisiti gli ingressi, consentendo al PLC di seguire l'evoluzione del processo in tempo reale.

254

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 3 Circuito di controllo automatico della porta di un magazzino In questo esempio il PLC viene usato per aprire e chiudere la porta automatica di un magazzino, in modo da permettere luscita di un veicolo che si avvicina.

Seguiamo le fasi di programmazione descritte. Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Un interruttore a ultrasuoni rileva la presenza di un veicolo in avvicinamento (londa emessa dallinterruttore viene riflessa dal veicolo verso linterruttore) b) Una fotocellula formata da 2 elementi: una sorgente luminosa ed un ricevitore. La sorgente luminosa emette un fascio di luce costantemente captato dal ricevitore. Se un veicolo interrompe il fascio di luce, la fotocellula ne rileva la presenza. c) In risposta ai segnali di ingresso forniti da questi sensori, il PLC emette delle uscite di controllo per azionare il motore di apertura e chiusura della porta. Il PLC riceve inoltre degli ingressi da due sensori addizionali. Il primo rileva il limite superiore del movimento della porta ed il secondo il limite inferiore.

255

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

256

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o Ai temporizzatori Il segnale inviato dallinterruttore ad ultrasuoni (ingresso 0000) messo in AND con il finecorsa (ingresso 0002) di movimento superiore della porta. Questo contatto normalmente chiuso. o Quando lingresso 0000 viene attivato, il PLC eroga un segnale (uscita 0500) che attiva il motore di apertura della porta. o Quando la porta raggiunge il suo limite superiore, si attiva lingresso 0002 che fa interrompere il segnale di uscita 0500 ed arresta il motore. o Contemporaneamente, il segnale della fotocellula (ingresso 0001) collegato ad un blocco circuitale che genera unuscita sul fronte di discesa del segnale stesso (blocco DIFD). Tale collegamento provoca leccitazione del rel ausiliario 1000 assegnato allistruzione DIFD, per un solo ciclo di scansione, sul fronte di discesa dellingresso 0001. o Il rel ausiliario interno 1000 messo in AND con un secondo finecorsa, che rileva il limite inferiore di movimento della porta. o Quando il rel ausiliario interno 1000 si eccita, la condizione AND soddisfatta per un ciclo di scansione, durante il quale luscita 0501 diventa attiva avviando a sua volta il motore che abbassa la porta

257

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 4 Distributore automatico di olio lubrificante In questo esempio il PLC viene usato per regolare lerogazione di olio lubrificante agli ingranaggi ed ai cuscinetti di di una linea di assemblaggio, riducendo cos attrito, usura di parti e energia assorbita dai motori.

Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Quando lelemento da lubrificare (ad esempio un ingranaggio) raggiunge un punto prestabilito ed rilevato da un sensore, viene erogato lolio. b) Una valvola elettromagnetica eroga una quantit nota di lubrificante per un certo tempo T c) Se il livello dellolio scende al di sotto di una soglia minima prestabilita, un sensore di livello lo segnala al PLC che attiva una segnalazione di Allarme.

258

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

259

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o Il sensore di ingresso (ingresso 0000) rileva lelemento da lubrificare il posizione. o Il PLC apre lelettrovalvola elettromagnetica (uscita 0500) per un tempo prestabilito (temporizzatore TIM00). o Il livello dellolio nel serbatoio controllato da un sensore (ingresso 0001). o Se il livello scende sotto il limite prestabilito, il sensore lo segnala al PLC. o Il PLC emette un comando che accende una spia di allarme sul quadro di controllo (uscita 0501). o La presenza del blocco DIFU eccita per un ciclo di scansione il rel ausiliario interno 1000 in corrispondenza del fronte di salita del segnale di ingresso 0000. o Leccitazione del rel ausiliario interno 1000 provoca lapertura della valvola attraverso luscita 0500, con la conseguente erogazione dellolio

260

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 5 Controllo di un nastro trasportatore In questa applicazione il PLC viene usato per avviare ed arrestare i motori di un nastro trasportatore segmentato. Si possono cos azionare unicamente le sezioni del nastro che stanno effettivamente trasportando un oggetto, mentre quelle vuote restano ferme.

Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Il nastro trasporta piastre metalliche, la posizione delle piastre rilevata da sensori di prossimit collocati vicino a ciascun segmento del nastro. b) Finch la piastra metallica nel campo di lettura di un sensore, il PLC emette un segnale di controllo che provoca il funzionamento del motore associato al segmento successivo. c) Quando invece la piastra esce dal campo di lettura del sensore di prossimit, viene attivato un temporizzatore e, quando il tempo stabilito trascorso, il motore del segmento in cui il pezzo transitato si ferma.

261

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

262

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o La piastra metallica rilevata dai sensori 3 (ingresso 0002), 2 (ingresso 0001) e 1 (ingresso 0000) in questa stessa sequenza. o Il primo segnale dingreso nel diagramma a rel proviene dal sensore 3 (ingresso 0002). o Quando lingresso 0002 diventa attivo, il PLC genera luscita 0501 che corrisponde al motore 2 o Quando lingresso 0001 diventa attivo, il PLC genera luscita 0500 che corrisponde al motore 1 o Il motore 2 resta in funzione solo per 2 secondi, ovvero il tempo richiesto dalla piastra metallica per raggiungere il segmento successivo del nastro..

263

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 6 Macchina di lavaggio automatica In questa applicazione il PLC permette di controllare una macchina per il lavaggio delle automobili.

Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Come dispositivi di ingresso sono stati usati un rivelatore di presenza e dei pulsanti b) In risposta ai segnali provenienti da tali dispositivi, il controllore programmabile apre la valvola di uno spruzzatore ed avvia il motore che comanda le spazzole.

264

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

265

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o Quando si preme il pulsante di partenza (ingresso 0000), la macchina di lavaggio inizia a funzionare e, contemporaneamente, la valvola di spruzzo si apre. o Il processo di lavaggio prosegue finch il rel ausiliario interno 1001, che pu servire anche come ingresso di reset, si apre. o Lingresso 0000 e il rel ausiliario interno 1001 sono collegati in AND ed il risultato posto in uscita sul rel ausiliario interno 1000. o Questo risultato viene quindi messo in AND con lingresso 0002 (condizione per la quale la macchina di lavaggio si ferma) o Finch la condizione di questo circuito AND soddisfatta, luscita 0502 resta attiva, facendo spostare lapparato di lavaggio per tutta la lunghezza del veicolo. o Luscita del rel ausiliario interno 1000 anche direttamente collegata alluscita 0500, che apre la valvola dello spruzzatore. o Quando il rilevatore di veicoli invia un segnale al PLC (ingresso 0001), viene attivata luscita 0501 per avviare le spazzole (a meno che il rel ausiliario interno 1001 sia aperto).

266

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Esempio 7 Ispezione e rilevamento etichette bottiglie In questo esempio descriviamo un sistema che controlla le etichette delle bottiglie movimentate da un nastro trasportatore.

Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. a) Se viene rilevato un prodotto difettoso (una bottiglia senza etichetta), il PLC aziona il braccio di un robot, in modo da rimuovere la bottiglia e collocarla su un altro trasportatore. b) Il PLC conta inoltre il numero dei prodotti difettosi. c) Se la loro quantit raggiunge un numero prestabilito, viene accesa una spia di allarme

267

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Seconda fase: Selezionare i dispositivi di ingresso e di uscita del PLC ed assegnazione indirizzi ai componenti che formano il circuito

Terza fase Il diagramma a rel che rappresenta questo circuito riportato nella seguente figura:

268

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Quarta fase: Dobbiamo codificare il diagramma a rel. Prima, per, indichiamo alcuni punti su cui fare attenzione: o Come si vede dal programma stato utilizzato il blocco speciale registro di scorrimento (SFT) indicato con FUN10 nellelenco dei codici mnemonici. Questa istruzione, nel caso particolare del PLC Omron Sysmac C20, deve essere programmata assegnando nellordine: lingresso dati (0000), lingresso di clock (0001 e lingresso di reset (0002). Occorre inoltre specificare il canale dei dati (nellesempio, il canale 10). o Quando viene rilevato un prodotto difettoso, attivato lingresso 0000, il cui stato memorizzato nel punto 1000 del canale 10. o Al prossimo segnale su 0001, lo stato del punto 1000 del canale 10 traslato in 1001. o Viene quindi attivata luscita 0500, a meno che sia applicato lingresso 0003. o Quando luscita 0500 viene attivata, il braccio del robot rimuove il prodotto difettoso dal trasportatore A e lo colloca sul trasportatore B. o Lingresso 0003 viene attivato quando il braccio del robot ritorna nella sua posizione originale dopo aver rimosso la bottiglia difettosa. o Quando il rel 1001 viene attivato, generata anche luscita 0501, che avvia il trasportatore B. o Gli ingressi 0000 e 0002 servono anche come ingressi di conteggio e di reset del contatore (mediante il blocco speciale contatore CNT, nellesempio impostato al valore di 0005. Dopo 5 bottiglie difettose viene attivata luscita 0502 e si accende la spia di allarme

269

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

7 Attuatori elettrici
Gli attuatori sono organi finali di un sistema automatico; la loro funzione quella di eseguire le operazioni controllate dal sistema medesimo. Nel campo della automazione il sistema attuatore comprende l'attuatore propriamente detto e l'organo trasmettitore, che consente di poter trasferire l'energia meccanica in punti diversi da quelli nei quali stata generata e con caratteristiche che la rendano idonea ad essere utilizzata nella struttura meccanica dello specifico robot. E' tramite l'azione degli attuatori che, ad esempio, un manipolatore d attuazione alle "decisioni" prese dagli organi programmatori delle operazioni: tra questi rivestono particolare importanza gli attuatori elettrici. Agli attuatori impiegati nei sistemi di automazione, caratterizzati da un servizio intermittente, si chiede sostanzialmente di possedere elevate coppie allo spunto ed elevate accelerazioni con una debole inerzia del rotore: anche le velocit richieste non presentano di solito valori elevati. A titolo di esempio si pu riportare qualche dato numerico: - coppia 3 - 4 N m - velocit 300 - 400 giri/min - accelerazione 5000 rad/sec2 Il rapporto fra la coppia massima sviluppabile ed il momento d'inerzia del rotore quasi sempre il parametro pi importante. Tuttavia sono richiesti anche motori con coppie assai pi elevate di quella indicata e pi alte velocit. Le coppie ottenibili non superano solitamente qualche decina di N. m. Gli attuatori elettrici impiegati nella automazione sono i motori a corrente continua, quelli a corrente alternata ed i motori passo-passo.

7.1.1

Motori a corrente continua

I motori a corrente continua a eccitazione separata sono ancora ampiamente utilizzati per lazionamento delle macchine a velocit variabile. Molto facili da miniaturizzare, si impongono nelle potenze molto basse. Si prestano anche molto bene alla variazione di velocit con tecnologie elettroniche semplici e a costo ridotto, per prestazioni elevate fino a potenze rilevanti (diversi megawatt). Le loro caratteristiche consentono anche una regolazione precisa della coppia, in motore o in generatore. La loro velocit di rotazione nominatesi adatta facilmente per costruzione a tutte le applicazioni, poich non collegata alla frequenza di rete.
270

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Sono tuttavia meno robusti dei motori asincroni e richiedono una manutenzione regolare del collettore e delle spazzole. Tra gli attuatori di movimento e spostamento, i motori in corrente continua hanno sicuramente una posizione di primo piano soprattutto nei casi in cui non richiesta una eccessiva potenza. I motori elettrici in corrente continua per l'automazione devono avere caratteristiche diverse da quelli destinati ad un servizio pi o meno continuo con velocit pressoch costante. In particolare l'impiego degli azionamenti elettrici rispetto a quelli idraulici o pneumatici rapidamente aumentato in virt di: - facilit di manutenzione - eliminazione dei riduttori di velocit - possibilit di montaggio diretto sugli assi - precisione ed affidabilit del comando - limitata rumorosit. Inoltre notevoli sono stati recentemente i progressi nei magneti permanenti, che hanno consentito l'eliminazione degli induttori, e nei materiali magnetici a elevata permeabilit, che hanno consentito un miglioramento delle caratteristiche rotoriche in ordine alla dissipazione di calore. La presente nota si propone di descrivere i tipi di motori in corrente continua pi in uso, fino a quelli pi recenti, destinati ad avere un impiego sempre maggiore nei robot di piccole e medie dimensioni. Per introdurre l'argomento si richiama brevemente il principio di funzionamento di un motore DC (Direct Current ).

271

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Nella figura illustrata la struttura di base. Il principio di funzionamento si basa sul fatto che, quando linduttore alimentato, crea un campo magnetico nellitraferro, diretto in base ai raggi dellindotto. Questo campo magnetico entra nellindotto dal lato del polo nord dellinduttore ed esce dallindotto dal lato del polo sud dellinduttore. Quando lindotto alimentato, i suoi conduttori, posizionati sotto lo stesso polo induttore (dallo stesso lato delle spazzole), vengono percorsi da correnti di senso uguale e quindi sono, secondo la legge di Laplace, sottoposti ad una forza. I conduttori posizionati sotto laltro polo, sono sottoposti ad una forza avente stessa intensit e senso opposto. Le due forze creano una coppia che fa ruotare lindotto del motore. L'avvolgimento di rotore collegato a segmenti di commutazione (collettore) e riceve corrente attraverso spazzole che strisciano sul collettore stesso. Il collettore e le spazzole formano un commutatore per la corrente del rotore, in modo che essa scorra sempre nella direzione corretta e fornisca una coppia che determina la rotazione in un senso. I motori a corrente continua sono costituiti quindi di uno statore (INDUTTORE) realizzato in ferro, con espansioni polari. E un elemento del circuito magnetico immobile sul quale, per produrre un campo magnetico, sbobinato un avvolgimento. Lelettromagnete cos realizzato presenta tra i poli una cavit cilindrica. Altro elemento che costituisce il motore in corrente continua il rotore (INDOTTO), anch'esso in ferro, nelle cui cave situato l'avvolgimento costituito da fini matasse ai cui estremi sono collegate le lame del collettore. E un circuito in lamiere isolate e perpendicolari allasse del cilindro. Lindotto si muove intorno al suo asse ed separato dallinduttore mediante un intraferro. Intorno sono regolarmente ripartiti alcuni conduttori Attorno alle espansioni polari di uno statore sono avvolti gli avvolgimenti di eccitazione o di campo che producono il campo magnetico principale. Il circuito di rotore percorso dalla corrente di indotto o di armatura mentre nelle lame del collettore avviene la commutazione tramite le spazzole. I motori elettrici in corrente continua sono gli attuatori pi comunemente usati nei sistemi di controllo per piccole potenze (meno di 100 W). Il sistema di eccitazione impiegato in questo tipo di motori normalmente quello che prevede l'eccitazione stessa attuata indipendentemente: infatti, in tal caso, operando il cosiddetto "controllo di armatura", si controllano bene sia la velocit che la coppia del motore. Prima di descrivere il funzionamento dei vari tipi di motori DC per automazione opportuno accennare alle caratteristiche elettriche e meccaniche desiderate. Esse sono: la coppia C sviluppata deve essere ad andamento lineare con la velocit di rotazione a velocit di rotazione = d / dt costante la coppia C deve essere proporzionale alla tensione applicata V

272

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

la potenza P deve essere proporzionale all'effettiva richiesta del carico e, dai due precedenti punti, avendo supposto le caratteristiche lineari, per una determinata tensione, raggiunger il suo massimo per valori di e V pari alla met dei valori massimi poich il sistema automatico deve esercitare la sua azione con prontezza occorre che l'accelerazione, la decelerazione e l'inversione di marcia seguano con fedelt il segnale di ingresso.

7.1.2

Motori "brushless" a magnete permanente

La principale limitazione di un motore in c.c. il sistema collettore - spazzole, sede di usura e scintillii. Nel motore senza spazzole, o brushless, la funzione di questo sistema svolta da una logica elettronica assistita da un trasduttore di posizione angolare dell'albero (spesso un resolver): la logica riconosce gli avvolgimenti perpendicolari al campo induttore, e li alimenta. Grazie a questa soluzione, che vede l'alimentazione degli avvolgimenti realizzata per via elettronica e non meccanica, gli avvolgimenti possono essere trasferiti sullo statore, che scambia le proprie funzioni con quelle del rotore, costruito con magneti permanenti che danno luogo ad un campo magnetico rotante. In automazione e in robotica si impiegano preferibilmente motori con induttore costituito da magneti permanenti poich tale soluzione offre, rispetto ai motori DC tradizionali, i seguenti vantaggi: eliminazione dell'eccitazione esterna con semplificazione dei cablaggi eliminazione degli induttori annullamento delle perdite di eccitazione caratteristica coppia-velocit di rotazione molto lineare in tutto il campo di lavoro coppia proporzionale, in prima approssimazione, alla corrente di armatura

Nella loro costruzione si impiegano i seguenti tipi di magneti permanenti: ceramici a terre rare - cobalto

7.1.3

Motori a corrente alternata

L'impiego dei motori a corrente alternata nella robotica e in tutto il settore dei controlli automatici sostanzialmente limitato al motore bifase. Il motore trifase difficilmente

273

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

impiegato per le difficolt ad ottenere una elevata coppia allo spunto e per le difficolt di regolazione della velocit. Nell'ambito delle piccole potenze (da qualche watt a qualche decina di watt) il motore bifase risultato spesso preferibile al motore a corrente continua. Esso realizzato normalmente con un rotore a gabbia di scoiattolo. I due avvolgimenti sono alimentati con tensioni sinusoidali sfasate di /2: una la tensione di controllo e l'altra di riferimento. La tensione di controllo pu variare in ampiezza per realizzare il controllo di velocit. Il compito dei due avvolgimenti quello di generare un campo magnetico rotante sotto la cui azione il rotore viene trascinato in rotazione. Elevando opportunamente la resistenza rotorica si riesce a distendere la caratteristica meccanica del motore fino ad ottenere una forma pressoch lineare come richiesto. Naturalmente si abbassa notevolmente il rendimento ed per questo che il motore bifase non si costruisce che per piccole potenze. L'alimentazione di un motore in corrente alternata deve presentare una uscita variabile in tensione e frequenza. Lo schema base pi utilizzato costituito da due stadi in cascata: il primo converte la tensione alternata di rete in tensione continua a dato valore, il secondo effettua una conversione continua-alternata a data frequenza. L'inverter chiamato a tensione impressa perch un grosso filtro capacitivo fissa rigidamente la tensione di alimentazione al secondo stadio, in questo modo la tensione di uscita verso il motore non viene influenzata dalla natura del circuito. La corrente erogata approssimativamente costante. Gli azionamenti in c.a. a frequenza variabile presentano prerogative non riscontrabili nei corrispondenti c.c. : una delle principali prerogative la facilit dell'inversione del senso di marcia. Mentre nel controllo della velocit dei motori in c.c. ci si ottiene invertendo la tensione di armatura, nel caso c.a. basta semplicemente invertire due delle tre fasi di alimentazione. Altre prerogative sono la frenatura, la robustezza, il minor costo e l'affidabilit.

7.1.4

Motori passo-passo

I motori passo-passo sono componenti elettromagnetici che trasformano un impulso elettrico in forma meccanica, con un determinato e costante incremento di rotazione dell'albero. Sono anche chiamati "stepper motors". Questi motori si basano sul principio di funzionamento del campo rotante a scatti. Nella rotazione si pu andare avanti o indietro e questo dipende dall'ordine con cui i suoi avvolgimenti sono eccitati.

274

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il motore passo-passo pu essere paragonato ad una serie di avvolgimenti disposti in cerchio, avvolgimenti che, quando sono eccitati, reagiscono successivamente su un nucleo di ferro dolce o magnete permanente, facendolo ruotare di un angolo. Nel passaggio da una bobina all'altra si ottiene un movimento non lineare di 2 / n radianti ogni volta (dove n il numero delle fasi). La velocit in giri al minuto sar: f N = 60 ----n La buona precisione di posizionamento ne permette un impiego in catena aperta, cio senza retroazione con conseguente risparmio dell'elettronica di controllo. I motori passo-passo sono di tipo sincrono, esistendo una corrispondenza fra segnale di alimentazione e posizione del rotore

Per meglio comprendere il principio di funzionamento di questo tipo di motore si immagini, per semplicit, che quest'ultimo sia schematizzabile come mostrato in figura (struttura di base, poli magnetici e circuiteria di azionamento).

Ad ogni passo si avr una certa oscillazione la cui ampiezza dipende dal rapporto coppia resistente / momento di inerzia del carico, nel senso che un elevato rapporto aumenta lo smorzamento.

275

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

La circuiteria di azionamento risiede in moduli esterni. Il principale inconveniente di questo motore la perdita del passo e quindi del sincronismo, cosa che si verifica quando la coppia resistente superiore a quella motrice: in tal caso il motore si arresta e riprende a muoversi quando la frequenza di commutazione della corrente negli avvolgimenti torna al di sotto della frequenza di avvio-arresto, ovvero della massima frequenza a cui il motore in grado di effettuare il singolo passo. Un altro svantaggio la potenza limitata cui gi si accennato. Queste due caratteristiche limitano l'impiego del motore alle applicazioni in cui sono in gioco piccoli carichi. I parametri caratteristici del motore sono i seguenti:

- Coppia massima rotazione

0,2 N m a 500 passi / s 0,4 N m a 200 passi / s

- Velocit massima - Angolo corrispondente al passo - Risoluzione

1000 - 2000 passi / s 1,8 lunghezza minima del passo: qualche frazione di grado

Si hanno i seguenti tipi di motori passo-passo: a) Motori a magnete permanente Sono quelli sostanzialmente descritti nel punto precedente. b) Motori a riluttanza variabile Hanno lo statore con un certo numero di poli salienti avvolti e il rotore sagomato con denti o espansioni in ferro dolce. I denti del rotore e dello statore rendono variabile la riluttanza del traferro e con i poli contribuiscono a determinare il passo del motore. Quando la corrente percorre un determinato avvolgimento, si sviluppa una coppia che fa girare il rotore fino alla posizione a riluttanza magnetica minima e mettendo successivamente in tensione un altro avvolgimento, la configurazione a riluttanza minima cambia provocando il movimento del motore. Con una opportuna sequenza di alimentazione possibile creare un susseguirsi di posizioni di equilibrio e quindi la rotazione. c) Motori ibridi Sono basati su una tecnica composta. La loro coppia proporzionale alla corrente e possono avere un numero elevato di passi a giro. I magneti permanenti del rotore, che servono a polarizzare i poli salienti, creano un flusso che si richiude attraverso la carcassa.
276

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Gli statori sono disposti in modo identico e gli avvolgimenti sono comuni alle due parti. Normalmente la scelta avviene tra i motori a magnete permanente e motori ibridi, in quanto quelli a riluttanza variabile si impiegano quando occorre riferirsi a vari parametri. La seguente tabella riporta le caratteristiche principali dei motori passo-passo.
Tipo motore Costo Efficienza Coppia residua Coppia dinamica Inerzia rotore Velocit Smorzamento Potenza erogata Magnete perm. basso alta alta bassa alta media buono alta Rilutt. variabile medio-alto bassa media media bassa alta scarso bassa Ibrido alto media media media bassa molto alta buono medio-alta 0.9 - 1.8 - 2 - 3.6

Angolo tipico di passo 1.5 - 1.8 - 5.9 - 6.7 - 1.8 - 7.5 - 15 - 31 15 - 18- 25 - 30

277

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Capitolo

8 I sensori nellautomazione
E' noto che le capacit di manipolazione dell'uomo sono dovute, pi che al suo apparato motorio flessibile ma impreciso, alla fantastica sofisticazione del suo sistema sensoriale ed alla capacit di elaborazione del suo cervello. Se si vuole quindi ottenere da un robot una capacit di manipolazione che sia, pur lontanamente, paragonabile a quella dell'uomo, occorre dotare il robot di sensori di diverso tipo e sfruttare in maniera pi completa possibile tutte le informazioni che da questi provengono. Per quanto riguarda le applicazioni ai robot, un sensore pu essere definito come un dispositivo che emette segnali elettrici dipendenti, secondo una legge nota, da uno o pi parametri fisici del robot e/o dal mondo che lo circonda. Questa definizione include qualunque tipo di sensore collegabile a robot industriali, dai pi semplici ai pi complessi. Pi importante della definizione per una classificazione dei sensori. Mentre molti hanno tentato classificazioni in base al tipo o in base alle grandezze che essi misurano, molto pi utile ed interessante farne una in base all'uso che di ogni sensore si fa all'interno della macchina perch questo il fattore discriminante riguardo alle problematiche di collegamento e di gestione da parte dei sistemi di controllo. Secondo questo criterio, si possono individuare tre classi di sensori: Classe A - Sensori usati per il corretto funzionamento della macchina Classe B - Sensori usati per garantire la sicurezza (operatori compresi) Classe C - sensori usati per il corretto funzionamento del programma del robot.

Nella prima classe sono compresi, oltre ai dispositivi che negli azionamenti retroazionati forniscono le informazioni di velocit e posizione, anche gli interruttori di fine corsa o simili, quando vengono usati come riferimenti di posizione (ad esempio negli azionamenti passopasso), e tutti i dispositivi le cui informazioni sono necessarie al funzionamento del robot. Alla seconda classe appartengono tutti i dispositivi che presiedono alla sicurezza della macchina e dell'ambiente circostante (fine-corsa e sensori di sforzo eccessivo, sbarramenti fotoelettrici, pulsanti di emergenza, ecc...). Nella terza classe, infine, sono compresi tutti i sensori che non fanno parte delle prime due.
278

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

A proposito di questa classificazione, opportuno osservare che i sensori di classe B sono necessariamente dispositivi binari: qualora essi siano implementati con rilevatori analogici, necessario confrontare la grandezza rilevata con soglie opportune, ed il risultato di questa operazione l'unica informazione interessante. Anche se non possibile dare una metodologia generale per il collegamento dei sensori, perch le strutture dei sistemi di controllo possono essere molto diverse fra loro, si possono fare alcune considerazioni di carattere generale. I sensori di classe A devono essere collegati direttamente ai dispositivi che azionano i singoli attuatori. Per quanto riguarda i sensori di classe B, vale un ragionamento analogo: essi devono essere collegati al sistema di controllo al livello pi basso possibile, in modo che eventuali malfunzionamenti dell'hardware non ne compromettano il buon funzionamento. Un esempio di questo tipo di collegamento si trova in quei robot dove i sensori di classe B agiscono direttamente sugli alimentatori dei motori, o sui microcalcolatori che li controllano. E' evidente che in questo caso, oltre ad intraprendere opportune azioni all'insorgere di situazioni di emergenza, il sistema deve essere in grado di informare i livelli pi alti dell'accaduto, in modo che il programma del robot possa essere interrotto e sostituito con opportune routine di uscita dalla situazione di emergenza. I sensori di classe C di basso livello, infine, devono essere collegati al livello pi alto, perch le loro informazioni sono utilizzate direttamente dalla unit che esegue il programma di utente.

8.1 Sensori per il controllo di movimento e di spostamento Nel campo della robotica i sensori sono importanti per affrontare i seguenti problemi: controllo dei movimenti dei vari giunti del robot, del loro posizionamento iniziale e finale, della correttezza della traiettoria in termini di percorso, velocit ed accelerazione. capacit del sistema di tener conto del mondo esterno affinch il robot possa essere in grado di sostituire l'uomo in termini di capacit di "vedere", "sentire" e "prendere" oggetti con una determinata pressione.

8.1.1

Potenziometri

I pi semplici sensori impiegati per questo scopo sono i potenziometri, il cui principio quello di convertire una posizione in un valore di resistenza elettrica. Il passaggio da posizione a variazione di resistenza e infine a variazione di tensione molto semplice. Infatti la tensione Vu corrispondente ad una data posizione fornita dall'espressione: r Vu = Vi ------R in cui r rappresenta la porzione di resistenza inserita rispetto alla massa, mentre R la resistenza di tutto il potenziometro.
279

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Il valore di Vu dipende dal valore di Vi che alimenta il potenziometro. Vi pu essere indifferentemente una tensione continua o alternata.

Si possono avere potenziometri a spostamento lineare o a spostamento angolare, a un giro o a pi giri. Nel caso dei tipi a spostamento angolare vale la seguente relazione: Vu = Vi ------- max

dove max il massimo angolo di corsa del cursore. I potenziometri adoperati come trasduttori di posizione sono contraddistinti dalle seguenti caratteristiche: linearit: un potenziometro si dice lineare quando la variazione della tensione di uscita legata allo spostamento da un coefficiente di proporzionalit costante per tutta la corsa del potenziometro. Qualsiasi variazione del coefficiente di proporzionalit viene riferita come errore di linearit. risoluzione: indica lo spostamento minimo del cursore per avere un delta di scostamento in tensione. potenza dissipabile: insieme al valore di R, la potenza dissipabile Pd definisce le caratteristiche elettriche del potenziometro. rumore: va sotto questo nome qualunque scostamento in tensione provocato da errori di linearit, da difetti meccanici, da scintillio, da polvere che interrompe la continuit del contatto.

280

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.1.2

Trasformatori differenziali variabili lineari (LVDT)

Il trasformatore differenziale variabile lineare (LVDT) si basa sul principio secondo il quale la tensione indotta su un avvolgimento secondario dipende dal coefficiente di accoppiamento tra primario e secondario. Nella figura riportato lo schema tipico di un trasformatore differenziale.

Quando l'avvolgimento primario viene eccitato dalla corrente alternata, sugli avvolgimenti secondari viene indotta una tensione. I due avvolgimenti secondari sono connessi in serie in opposizione cosicch le due tensioni sono in opposizione di fase. La tensione di uscita cos la differenza tra le due tensioni. Il coefficiente di accoppiamento dipende dalla posizione del nucleo. La tensione sar nulla quando il nucleo in posizione centrale; spostandosi il nucleo, la tensione dei due avvolgimenti varier.

La sensibilit del sistema abbastanza buona. Si pu per osservare che: la tensione di uscita rappresentata da due tratti di caratteristiche simmetriche e piuttosto lineari corrispondenti a spostamenti positivi e negativi il valore della tensione di uscita in corrispondenza dello zero meccanico non nullo e ci a causa degli accoppiamenti capacitivi e della presenza di armoniche.

8.1.3

Codificatori (encoder)

Allo scopo di illustrare il principio di funzionamento di un codificatore di posizione, comunemente chiamato "encoder", nella seguente figura viene presentato lo schema a blocchi di un sistema di posizionamento di un braccio di robot.

281

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

I posizionamenti vengono, di norma, eseguiti con motori in corrente continua, con regolazione ad anello chiuso. E' necessario, istante per istante, confrontare la posizione raggiunta con quella impostata e comportarsi analogamente anche per la velocit. Su come opera il motore opportuno fare delle considerazioni: nell'esempio, l'anello di velocit gestito in maniera hardware, infatti un segnale proporzionale alla velocit e fornito da un trasduttore di velocit (dinamo tachimetrica) viene riportato nel sistema di controllo dove viene confrontato con la velocit impostata dall'operatore per apportare le correzioni necessarie. Il secondo anello, relativo al posizionamento, pu essere realizzato prevalentemente in maniera hardware e software: per esempio, impiegando contatori up/down vengono contati gli impulsi inviati dal trasduttore encoder, e al processore non rimane che leggere i dati raccolti dal contatore a intervalli regolari. In ogni caso, un trasduttore di posizione molto impiegato nei sistemi robotici l'encoder.

L'encoder un dispositivo azionato da un albero rotante, il quale fornisce in uscita impulsi corrispondenti alla posizione angolare dell'albero. Esso contiene al suo interno un disco rotante diviso in segmenti alternativamente opachi e trasparenti. Su un lato del disco situata la sorgente luminosa e sull'altro una o pi fotocellule. Il cambio della luminosit della fotocellula causato dalla rotazione del disco, produce gli impulsi di tensione (sotto forma di onda quadra) in uscita.

Lo spostamento angolare dell'albero misurato dal numero di impulsi, i quali, se riferiti al tempo, esprimono la velocit (codificatore tachimetrico).

282

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Usando due fotocellule in corrispondenza della stessa traccia del disco e sistemandole in modo che i segnali di uscita (onde quadre) siano sfasati di 90 l'uno rispetto all'altro, possibile misurare, con la logica del circuito esterno, il senso di rotazione rilevando se il segnale A precede il B o viceversa. Esiste inoltre un'altra fotocellula che fornisce un impulso indicatore della posizione di riposo (riferimento zero). I due canali in quadratura evitano anche l'errata misura nel caso di vibrazioni del codificatore tachimetrico. L'encoder descritto viene detto di tipo incrementale in quanto i segnali di uscita sono proporzionali in modo incrementale allo spostamento effettuato. Gli encoder incrementali possono fornire purtroppo errori, e quindi posizioni non corrette, a causa del conteggio errato provocato da disturbi, compresa l'eventuale interruzione della alimentazione. Questi errori possono essere eliminati con l'impiego di encoder assoluti, nei quali ad ogni posizione dell'albero corrisponde un valore ben definito. Nel codificatore assoluto sono previste sul disco tracce capaci di fornire segnali in codice. Per rilevare la luce che passa attraverso il disco prevista una fotocellula per ogni traccia. I codici impiegati sono quelli di tipo binario, BCD, Gray ecc..; che permettono di ricavare anche decine di migliaia di bit per giro.

283

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.2 Sensori di prossimit I sensori di prossimit sono in grado di percepire ed indicare la presenza di un oggetto all'interno di un determinato campo, in prossimit del sensore stesso. Un sensore di prossimit pu anche essere predisposto per misurare distanze: il sensore produce un segnale continuo (anzich on-off) proporzionale alla distanza. Mediante pi misure lineari a direzioni diverse si possono poi agevolmente determinare posizioni ed orientamenti di pezzi semplici e complessi. I sensori di prossimit possono basarsi su numerosi principi fisici: induttivo, capacitivo, magnetico, fluidico, luminoso ed ultrasonico.

8.2.1

Sensori fotoelettrici (o sensori ottici)

In questa categoria di sensori si possono annoverare dispositivi assai diversi per concezione, frequenza della radiazione usata e quindi per settore d'impiego. I sensori ottici pi tradizionali funzionavano con luce visibile. Essi impiegavano generalmente sorgenti a filamento e rilevatori di tipo a fotoresistenza. Questi dispositivi comportavano tuttavia alcuni inconvenienti fra i quali la durata limitata della sorgente (alcune migliaia di ore) e la velocit di risposta modesta. Prestazioni nettamente superiori sono state ottenute impiegando emettitori a LED (per esempio arseniuro di gallio) e rivelatori al silicio (fotodiodo o fototransistor). La banda di emissione dell'arseniuro di gallio (circa 0.7 - 0.9 m), infatti, si adatta bene alla regione di assorbimento del silicio. I moderni sensori ottici si suddividono in tre grandi famiglie: sensori di prossimit a barriera sensori di prossimit reflex sensori di prossimit a diffusione.

I sensori a barriera sono costituiti da un trasmettitore (emettitore) e da un ricevitore (rivelatore) separati tra di loro. Qualunque oggetto non trasparente interposto interrompe il raggio luminoso (light beam) e viene pertanto rilevato. Questo tipo di sistema generalmente impiegato dove sono richieste elevate distanze d'intervento. I dispositivi commerciali a barriera funzionano infatti, a seconda dei tipi, con distanze trasmettitore / ricevitore comprese fra qualche metro. I sistemi di funzionamento reflex, adatti per medie distanze di intervento, hanno il trasmettitore e il ricevitore integrati nello stesso contenitore. Viene usato un riflettore prismatico il quale riflette il raggio trasmesso e pertanto viene rilevato. Questo sistema viene utilizzato per piccole o medie distanze oppure laddove impraticabile l'impiego di un trasmettitore e un ricevitore separati. Naturalmente non pu essere utilizzato per rilevare oggetti molto riflettenti come metalli levigati.
284

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

I sensori di prossimit a diffusione sono analoghi a quelli reflex, ma non richiedono l'impiego di un riflettore. La potenza emessa, infatti, molto bassa ed lo stesso oggetto da rilevare che riflette il raggio verso il ricevitore. La distanza d'intervento, per questi tipi di sensori, naturalmente strettamente legata alle caratteristiche superficiali dell'oggetto da rivelare. Pertanto i costruttori normalmente equipaggiano tali sensori a diffusione con un regolatore di sensibilit per permettere agli utilizzatori di poterli adattare allo specifico impiego. Questi modelli vengono impiegati solo per piccole distanze (fino a qualche decina di cm). I vantaggi principali dei sensori ottici sono rappresentati dalla elevata distanza d'intervento. D'altra parte, come si visto, le caratteristiche d'intervento sono fortemente legate al tipo di superficie dell'oggetto da rilevare. Tale caratteristica, negativa per molte applicazioni, si rivela interessante per esempio per discriminare oggetti di colore diverso (per esempio rivelare la presenza di una etichetta su un contenitore). L'introduzione di fibre ottiche ha permesso di risolvere problemi particolari di rilevamento ed i costruttori pi evoluti forniscono infatti, oltre ai sensori, anche numerosi tipi di fibre ottiche da applicare ai sensori stessi.

285

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.2.2

Sensori a principio induttivo

I sensori elettronici di prossimit a principio induttivo sfruttano il fenomeno dello smorzamento di un campo elettromagnetico per effetto delle correnti indotte (correnti di Foucault) in materiali conduttori posti nelle loro vicinanze. La bobina di un circuito oscillante genera un campo elettromagnetico ad alta frequenza che induce, in azionatori metallici vicini, correnti parassite. Queste correnti provocano una perdita di energia nell'oscillatore, smorzando l'ampiezza del segnale. La riduzione dell'ampiezza dell'oscillazione rilevata da un amplificatore di soglia con isteresi che, a sua volta, comanda uno stadio amplificatore finale per l'azionamento di un carico esterno. Essi si suddividono in due categorie: autoamplificati e non amplificati. I sensori autoamplificati si dividono a loro volta in sensori a corrente continua e sensori a corrente alternata. I sensori non amplificati sono costituiti da un oscillatore e vengono utilizzati per ottenere segnali a basso livello atti a comandare un amplificatore separato.

L'assenza di contatto meccanico fra azionatore e sensore consente, unitamente alle precedenti caratteristiche, una durata ed un numero di operazioni illimitate rispetto ad altri tipi di interruttori di prossimit, riducendo altres ogni problema di manutenzione. I sensori induttivi rappresentano senza dubbio i sensori di prossimit pi diffusi su macchine automatiche e sono gli unici che, grazie alla maturit raggiunta dalla tecnologia, godono di una normalizzazione a livello internazionale (CENELEC).

286

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.2.3

Sensori a principio capacitivo

I sensori di prossimit a principio capacitivo, o sensori capacitivi, sfruttano la variazione di capacit parassita che si crea tra sensore ed oggetto da rilevare. In corrispondenza di una determinata distanza dell'oggetto dalla faccia sensibile del sensore, entra in oscillazione un circuito e l'insorgere o il cessare di tale oscillazione viene sentito da un rilevatore di soglia che comanda un amplificatore per l'azionamento di un carico esterno. E' evidente che, dato il principio di funzionamento descritto, un sensore di prossimit capacitivo pu essere utilizzato come rilevatore di oggetti metallici e non metallici come legno, liquidi, materiali plastici. Impieghi tipici si hanno per esempio nei dispositivi contapezzi, nei controlli di livello in recipienti, ecc. I parametri sono simili a quelli dei sensori induttivi mentre le distanze di intervento per i tipi cilindrici di diametro 18 - 30 mm., molto diffusi nell'industria, sono nel campo 8 - 20 mm.

8.2.4

Sensori a ultrasuoni

I sensori di prossimit a ultrasuoni sfruttano l'emissione di impulsi sonori a frequenza elevata (40 - 200 KHz) per rilevare la presenza di oggetti posti nelle loro vicinanze grazie all'eco dovuta alla riflessione degli ultrasuoni da parte degli oggetti stessi. Il segnale emesso costituito in genere da un treno di impulsi viaggianti alla velocit del suono nell'aria (340 m/s circa). L'emissione avviene tramite un apposito trasduttore elettroacustico di tipo piezoceramico. L'onda riflessa rilevata da un analogo trasduttore la cui funzione quella di riconvertire i segnali acustici in segnali elettrici. Nelle applicazioni dei sensori di prossimit interessa rilevare la presenza di un oggetto (azionatore) in un certo campo di rilevamento prefissato ed eventualmente programmabile in ampiezza dall'utilizzatore. Pertanto il tempo di ritardo, cio il tempo che intercorre fra l'istante di emissione di un impulso e l'istante di ricezione dello stesso, essendo proporzionale alla distanza azionatore / sensore, permette al sensore di stabilire se l'azionatore o meno in campo. L'impiego della tecnologia a ultrasuoni nel campo dei sensori di prossimit permette di ottenere distanze di intervento massime di ordine nettamente superiore rispetto a quelle ottenibili con la tecnologia induttiva o capacitiva a parit di dimensione geometrica del sensore. Il sensore ad ultrasuoni rappresenta dunque una vantaggiosa alternativa nei confronti dei sensori ottici, comunemente utilizzati per rilevare oggetti distanti; infatti le caratteristiche

287

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

di rilevamento di un sensore a ultrasuoni non dipendono dalle caratteristiche cromatiche superficiali dell'oggetto da rilevare e possono essere sentite anche superfici trasparenti.

8.2.5

Sensori magnetici a contatti reed

I sensori di prossimit magnetici a reed sono costituiti da due lamine di materiale ferromagnetico (ferro-nichel), allinterno di un contenitore in atmosfera di gas inerte. Le lamine sono rivestite con un materiale che migliora la conduttivit e indurisce la superficie, per prevenire la formazione di microsaldature e microcrateri nel punto di contatto. Le lamine sono posizionate ad una piccola distanza fra loro. Quando la forza di attrazione tra le lamine supera la resistenza elastica delle lamine stesse, queste si flettono l'una verso l'altra, realizzando un contatto elettrico. La distanza di intervento funzione della sensibilit del reed, della intensit del campo magnetico e anche della sua forma nel caso in cui non uniforme (per es. nei cilindri con pistone magnetico). I materiali non ferrosi o ferrosi amagnetici, interposti tra sensore e magnete, non alterano il funzionamento del reed perch il campo magnetico attraversa queste pareti. Bisogna invece prestare particolare attenzione a materiali ferrosi o altri magneti posti a pochi centimetri dal campo magnetico (per es. trucioli di ferro, supporti, viti di fissaggio, cilindri con pistone magnetico) perch possono influenzare il campo e farlo deviare. Tali campi, generati da magneti permanenti o da bobine percorse da corrente, producono sulle lamine, per il fenomeno di induzione magnetica, polarit di segno opposto. Questi interruttori di prossimit (reed o hall-effect) sono principalmente usati per determinare la posizione del pistone magnetico in un cilindro pneumatico ed idraulico. Il loro utilizzo consigliato per sostituire interruttori meccanici a leva o a pulsante, ad esempio, per motivi di sicurezza, per impedire l'azionamento manuale di un interruttore. Disponibilit di varie versioni e modelli: normalmente aperto o normalmente chiuso, con o senza connettore. La chiusura dei contatti dipende dalla sensibilit del reed e dalla forza del magnete nella fase di avvicinamento. Le superfici di contatto delle lamine dei reed sono rivestite con materiale pregiato (oro, rodio, tungsteno) che le rendono adatte a comandare circuiti a basse correnti e a forti carichi induttivi. Rispetto ai contatti tradizionali ad azionamento meccanico si possono annoverare diversi vantaggi: la chiusura ermetica in gas protegge i contatti dalla polvere, dall'ossidazione e dalla corrosione l'azionamento dei contatti avviene senza complicati ed ingombranti meccanismi, sfruttando l'influenza di un campo magnetico

288

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

alta velocit di funzionamento, fino a 300 Hz per alcuni tipi; breve tempo di attrazione (1.5 - 3 ms, compresi i rimbalzi) la particolare concezione costruttiva e l'alta qualit dei materiali impiegati assicurano ai contatti una lunga vita (107 - 108 operazioni) assenza di manutenzione e ridottissimo ingombro.

8.3 Sensori di deformazione e di forza I controlli di sforzo si basano prevalentemente sugli estensimetri, ma molto utilizzati sono anche i sensori piezoelettrici . Come sappiamo, certi cristalli sotto pressione generano sulle facce opposte cariche elettriche proporzionali allo sforzo cui sono sottoposte; questi sensori sono particolarmente adatti ad impieghi con corrente alternata. I sensori piezoelettrici sono sensibili sia alla forza lungo un asse, sia alla coppia intorno all'asse stesso. Tali sensori permettono il controllo in tempo reale dell'intensit (ed anche della direzione) delle forze e delle coppie applicate dal robot agli oggetti manipolati. Generalmente, i sensori di sforzo vengono applicati tra il polso e la pinza, e solo recentemente sono stati messi a punto sensori a 6 gradi di libert (per misurare componenti multiple di forza) talmente leggeri e di dimensioni tali da poter essere montati sulle dita di una pinza per impianti robotizzati. I sensori di deformazione e di forza sono particolarmente interessanti per le operazioni di assemblaggio, quando ad esempio necessario correggere la posizione e l'orientamento del robot: questa correzione viene effettuata in funzione della forza esercitata nel manovrare i pezzi. Oppure, nelle applicazioni in cui necessario applicare una pressione costante (ad esempio operazioni di incollaggio) o, ancora, nella misurazione della forza di inserzione dei componenti elettronici in un circuito stampato. La forza viene misurata in newton (N); 1 N corrisponde a 0.102 Kg; e a 0.225 libbre. I trasduttori di forza sono spesso basati su trasduttori di spostamento come ad esempio la compressione di una molla che agisce su un LVTD. Dispositivi di questo tipo sono chiamati anche "celle di carico". Altre volte vengono usate celle di carico costituite da trasduttori piezoelettrici di forza.

289

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.3.1

Estensimetri

Alcune misure di spostamento si riferiscono a movimenti molto piccoli. In tali casi sono molto adatti i cosiddetti "strain gages", sensori di basso costo, di facile uso e che talora possono venire resinati nello stesso corpo in misura. Gli "strain gages" si basano sul principio che la resistenza (R) di un conduttore direttamente proporzionale alla resistivit () ed alla sua lunghezza (L), mentre inversamente proporzionale alla sua sezione (S). L R = -------S Se un conduttore tirato ed allungato, la sua lunghezza aumenta e la sua sezione diminuisce; conseguentemente la sua resistenza aumenta. Nella figura riportata una configurazione di strain gages a film o foglia, ottenuta con processo tipo circuito stampato. Le resistenze variano tra 30 e 3000 , con valori comuni attorno a 120 e a 350 ; le lunghezze variano tra i valori 0.1 e 100 mm. Normalmente viene usato un parametro specificativo indicante il rapporto tra la variazione di resistenza rapportata alla resistenza totale e la variazione di lunghezza rapportata alla lunghezza totale. Tale fattore, chiamato "gage factor", espresso da : R /R --------------L/L Supponendo che uno "strain gage" lungo 40 mm abbia una resistenza nominale di 350 e un "gage factor" di 2, vediamo di quanto aumenta la resistenza se lo "strain gage" viene allungato di 0.2 mm.

290

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Per prima cosa si calcola il denominatore dell'espressione precedente, cio L / L = 0.005 quindi si moltiplica questo valore per il "gage factor" ottenendo R / R = 2 x 0.005 = 0.01 infine, moltiplicando 0.01 per R = 350 si ottiene R = 3.5 .

8.3.2

Sensori tattili

Un altro settore in cui la ricerca molto intensa, oltre a quello della visione artificiale, quello dei sensori tattili, nella consapevolezza che il raggiungimento di una buona funzionalit anche in questo campo il primo requisito per affidare ai robot lavori sempre pi complessi. Il dotare la mano di un robot di capacit tattili vicine a quelle umane rappresenta un obiettivo molto attraente. Attualmente le ricerche sono orientate ad implementare un sensore tattile dalle seguenti caratteristiche: - array con 4 x 4 elementi sensibili ogni cm2 - tempo di risposta di ogni elemento sensibile compreso tra 1 e 10 ms - sensibilit di ogni elemento pari a 10 -3 Kg. - "pelle artificiale" robusta in grado di sopportare bene l'ambiente di fabbrica.

Sono stati provati diversi materiali quali gomma conduttiva, PZT (ceramica piezoelettrica), PVF2 (fluoruro di polivinile). Quest'ultimo sembra essere vincente essendo robusto, leggero, facilmente conformabile alle superfici complesse. E' inoltre privo di difetti dei concorrenti quali isteresi, scarsa linearit, deriva termica, ecc..... Un prototipo di sensore tattile consiste dunque di un foglio di PVF2 metallizzato su entrambe le superfici, per assicurare un buon contatto elettrico. Dal foglio viene ricavata una matrice di 16 (4 x 4) elementi sensibili, ognuno dei quali ha l'amplificatore di segnale e il convertitore A/D, una memoria RAM di 2 kbyte per 8 bit, una ROM di 4 kbyte per 8 bit ed un microprocessore. I 16 microprocessori portano le informazioni della cella relativa ad un microprocessore di supervisione che effettua le necessarie correlazioni e le invia, a sua volta, ad un elaboratore principale che ricostruisce l'immagine tattile vera e propria. Si tratta, come ci si pu rendere conto, di una apparecchiatura molto complessa.

291

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

8.4 Sensori di visione Il robot stato descritto come una macchina programmabile e multiscopo dedicata alla produzione. Questa flessibilit, tuttavia, nell'ambiente operativo fortemente condizionata dalle capacit sensoriali dei robot. In realt sappiamo che anche per la pi semplice applicazione il robot dotato di una rete sensoriale composta da: sensori di presenza pezzo, sensori di stato delle macchine di cui il robot "server", ecc... Tali sensori per influenzano solo la sequenza di esecuzione e la cadenza delle operazioni del robot senza aumentarne la flessibilit. Una maggiore flessibilit data dal controllo di tipo adattativo, un controllo cio che permetta, per esempio, di percorrere traiettorie indipendenti da quelle programmate sulla base di indicazioni fornite da sensori evoluti. In questo modo il programma che l'operatore introduce non contiene istruzioni di posizionamento che il manipolatore deve ripetere, ma piuttosto istruzioni che definiscono i movimenti che il robot deve compiere in funzione di segnali provenienti dai sensori. L'implementazione di un controllo che sappia adattarsi alle condizioni operative (controllo adattativo) deve essere il pi possibile generale, non orientata cio ad una specifica applicazione, in modo da lasciare la massima libert di scelta dei sensori da parte di chi deve inserire il robot in un processo produttivo. Tra i sensori che maggiormente consentono un controllo di tipo adattativo i pi importanti sono i sensori di visione, che, data la loro complessit, sono chiamati pi frequentemente sistemi di visione. I sensori di visione hanno lo scopo di identificare la posizione e l'orientamento dell'oggetto che si trova nel campo del sensore, al fine di guidare il robot verso l'oggetto stesso. Essi sono impiegati anche per riconoscere oggetti che per forma o colore sono difettosi o pi in generale per il controllo della qualit dei pezzi. La struttura tipica di un sistema di visione si sintetizza nel seguente funzionamento: il compito di riprendere le immagini affidato ad una telecamera a stato solido posta sopra la scena il rilevamento avviane per mezzo di un reticolo di elementi fotosensibili su un chip CCD (Coupled Charge Device). Su ciascun elemento si produce una tensione proporzionale alla luminosit del corrispondente punto della scena dopo una conversione analogico / digitale, i valori di tensione associati a ciascun elemento (detto pixel), proporzionali al suo livello di grigio, vengono memorizzati sotto forma di matrice numerica in un buffer di memoria RAM. Tale memorizzazione viene eseguita perch il tempo di acquisizione e conversione analogico / digitale dell'immagine di pochi millisecondi, mentre il tempo di elaborazione della stessa pu essere anche di alcuni secondi. Si fa notare che mentre l'occhio umano pu distinguere una trentina di livelli di grigio, i sistemi di visione operano su almeno 64 (512 nel caso dei sistemi di visione pi evoluti). Successivamente la matrice numerica viene elaborata per evidenziare il profilo degli oggetti rispetto allo sfondo della scena. Una volta evidenziati, questi vengono confrontati con quelli precedentemente memorizzati. L'identit dell'oggetto viene poi resa disponibile per il controllo
292

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

del robot al fine di attivare specifiche sequenze di operazioni quali selezione dell'end effector, azionamenti di dispositivi ausiliari, ecc... In base al profilo rilevato il sistema di visione determina la posizione dell'oggetto ed il suo orientamento e li trasmette al controllo del robot. Pertanto l'utilizzatore programmer: - il sistema di visione memorizzando le immagini che il sistema deve identificare (prototipi) - il robot inserendo un programma di manipolazione per ciascuno degli oggetti.

La procedura di ricerca del profilo degli oggetti consiste normalmente nella scansione della matrice numerica in cui sono stati memorizzati i valori di grigio di ciascun elemento di immagine (pixel). Durante tale scansione vengono "trovati" gli oggetti presenti nella scena. Per eseguire tale funzione, esistono due fondamentali tipi di algoritmi: a) algoritmo basato su di un livello di grigio (algoritmo binario) Consiste nel fissare, a seconda della situazione, un valore-soglia di grigio, al di sopra del quale il pixel deve considerarsi parte dell'oggetto; ad esso viene associato il valore 0. Se il pixel parte dello sfondo, ad esso viene associato il valore 1.. La successiva elaborazione verr eseguita sugli elementi di valore 1, e porter all'identificazione degli oggetti presenti nella scena.
293

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

Questo tipo di algoritmo il pi semplice e diffuso. La sua principale limitazione nella sensibilit alle variazioni di illuminazione della scena. Se gli oggetti non hanno bordi nettamente contrastanti con lo sfondo, variazioni dell'illuminazione possono implicare che parte dell'oggetto, vicino al suo profilo, abbia un livello di grigio inferiore ala soglia, e quindi venga trattato come sfondo o, viceversa, che la sua ombra abbia un livello di grigio superiore alla soglia e che quindi sia trattato come oggetto.

b) algoritmo basato sui gradienti di grigio Consiste nel fissare un valore della differenza tra i livelli di grigio di pixel adiacenti. Quando, durante la scansione, viene rilevato tale gradiente, il pixel relativo viene definito come un pixel di transizione. Gli insiemi dei pixel di transizione formanti linee chiuse individueranno i profili degli oggetti presenti nella scena. Questo tipo di algoritmo, pi complesso del precedente, ha il vantaggio di avere una sensibilit di gran lunga minore della variazione di illuminazione della scena, ma soprattutto salva una quantit di informazioni sull'oggetto, che con il sistema binario vanno disperse, come profilature interne al contorno dell'oggetto, scritte o colorazioni sufficientemente contrastanti, incisioni, ecc..., che il sistema binario semplicemente cancella. L'archivio delle immagini da identificare una base dati residenti nella memoria RAM del sistema, nella quale sono registrate, per ogni immagine, alcune delle sue caratteristiche geometriche (area, perimetro, lunghezza assi principali di inerzia, ecc... tali che i loro valori garantiscano l'identificazione univoca degli oggetti che potrebbero presentarsi nella scena riprese dalla telecamera. Tali caratteristiche, per taluni sistemi, devono essere introdotte dall'operatore mediante tastiera, per altri vengono elaborate dal sistema stesso, dopo che l'oggetto da archiviare stato "prototipizzato" una o pi volte. Creato tale archivio, il sistema potr identificare, nella scena, gli oggetti le cui caratteristiche sono gi state memorizzate. L'identificazione avviene dopo che il sistema ha evidenziato i profili degli oggetti presenti nella scena. Di ogni profilo vengono calcolati i valori e viene confrontata la mappa dell'immagine con quella di ciascuna delle immagini archiviate, fino a trovare, tra quelle, la combinazione che meno si discosta da quella del profilo in esame. Ne consegue che la scelta delle caratteristiche geometriche, che devono costituire la "carta d'identit'" degli oggetti in memoria, critica: occorre infatti evitare che due oggetti diversi possano avere la stessa combinazione di valori delle caratteristiche. Utilizzare molte caratteristiche evita questi inconvenienti, ma aumenta ovviamente il tempo di elaborazione, ed quindi necessario trovare un compromesso tra queste due esigenze. Tale scelta viene comunque operata dai progettisti del sistema, e raramente l'utilizzatore pu intervenire su questo aspetto. L'archivio immagini deve contenere, per ogni immagine, indicazioni per il prelievo del pezzo da parte del robot. Tali indicazioni consistono essenzialmente nella posizione che l'organo di presa del robot deve avere relativamente all'oggetto. Per esempio tale posizione pu essere definita utilizzando come sistema di riferimento gli assi principali di inerzia dell'immagine. Una volta identificati gli oggetti presenti sulla scena, il
294

A U T O M A Z I O N E

I N D U S T R I A L E

A . A .

2 0 0 5 - 2 0 0 6

sistema pu rilevare posizione ed orientamento di quelli che il robot deve prelevare, e trasmettere tali dati al controllo del robot stesso. Le procedure di riconoscimento sopra descritte presuppongono che rimanga fissa la posizione della telecamera rispetto alla base del robot. Per tale motivo necessario effettuare, a monte del processo di rilevamento ed elaborazione di immagine, una "calibrazione" della telecamera montata sul braccio del robot che permetta di mettere in relazione tra di loro, mediante trasformazioni di coordinate, i vari sistemi di riferimento relativi adottati (posizione camera posizione pinza - sistema di riferimento assoluto del robot).

295