UNIVERSITÀ DEGLI STUDI DI SIENA – SEDE DI AREZZO

Corso di Laurea in Ingegneria dell’Automazione

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 L’AUTOMAZIONE DEI PROCESSI INDUSTRIALI ................................................................................... 4 1.1 INTRODUZIONE ................................................................................................................................................... 4 1.2 IL PROBLEMA DELL’AUTOMAZIONE ................................................................................................................... 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 DELL’ALGEBRA 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 L’istruzione 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 NELL’AUTOMAZIONE........................................................................................................... 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

In senso più ristretto. Si comprende come gli uffici di progettazione degli impianti industriali si debbano in quel periodo trasformare rapidamente. 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. per “automazione industriale” si intende comunemente quell’insieme di teorie e tecniche operative utilizzate per progettare e realizzare nel campo industriale una progressiva sostituzione dell’attività umana con sistemi anche molto complessi di produzione. Si tratta quindi di una progettazione integrata. mentre le nuove esigenze richiedono competenze non superficiali di elettrotecnica. composti prevalentemente da macchine. dispositivi meccanici ed apparecchi elettrici. nei decenni successivi agli anni ’60. A . oleodinamica e. essenzialmente di cultura meccanica. prendendo delle decisioni ed agendo di conseguenza. elettronica. Per motivi storici essi erano. In un sistema automatico è dunque riconoscibile un sistema delle decisioni (sistema di comando) ed un sistema di attuazione delle decisioni (sistema di potenza).2 0 0 6 1 Capitolo 1 L’automazione dei processi industriali 1. all’epoca considerata. anche di informatica. con forte contenuto di attività interdisciplinari.A U T O M A Z I O N E I N D U S T R I A L E - A . Con l’aggettivo “automatico” si intende.1 Introduzione Il termine “automazione” entra nel vocabolario tecnico italiano agli inizi degli anni ’60 dopo essere stato coniato negli Stati Uniti. pneumatica. come già nel linguaggio comune. 4 . 2 0 0 5 . la proprietà di qualsiasi apparato di perseguire in modo autonomo gli obiettivi assegnati.

correzione ed adattamento dei componenti difettosi.. il panorama delle realizzazioni è estremamente vasto e variegato. la verifica di avanzamento del lavoro. 5 . 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. A seconda delle funzioni umane sostituite si ottiene la classificazione dei corrispondenti tipi di sistemi di automazione. produrre significa soprattutto trasformare. 2 0 0 5 . 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. Ogni stazione di lavoro é contraddistinta da una estrema specializzazione. quella dell'automazione industriale flessibile. La nuova soluzione. Nel settore specifico dell'automazione industriale dei processi di produzione. per le operazioni di montaggio.A U T O M A Z I O N E I N D U S T R I A L E - A . Per specificare tipologicamente il campo di interesse. L'uso dell'uomo in qualità di macchina operatrice entro una catena di montaggio. In campo industriale. Qualunque sia il tipo di processo impiegato. Sulla base di una comune tecnologia meccanica. cioè effettuare un cambiamento nello stato. é ampiamente menzionata come aspetto alienante dei tempi moderni. la trasformazione. implica la richiesta di un qualcosa che va leggermente oltre il concetto di robot: la linea integrata. comincia ora ad imporsi con l'evoluzione post-tayloristica dell'organizzazione del lavoro. si consideri un esempio semplificativo: quello di una stazione per la composizione automatica (montaggio e assemblaggio) di un gruppo meccanico.2 0 0 6 Il sistema di comando comprende sempre un sistema sensoriale che rileva costantemente gli effetti delle decisioni. A . il collaudo del gruppo ottenuto. si esegue una sola operazione in sequenza ed il moto é controllato da un dispositivo specificatamente costruito e non riconvertibile. nella forma e nella natura di un "oggetto" per conferirgli lo status di "bene". La messa a punto é spinta fino all'ottenimento delle prestazioni desiderate e l'economicità della soluzione é legata a produzioni in grande serie. la necessità di operare secondo i principi della flessibilità di montaggio e della qualità di produzione in un contesto altamente produttivo.. E' comunque una soluzione "flessibile" poiché sfrutta le potenzialità umane attribuendo all'operatore compiti molto ampi. ecc. tali cioè da includere: l'ispezione delle parti. Fino ad ora.

Il superamento delle difficoltà energetiche della produzione si é attuato in tre fasi: 1.A U T O M A Z I O N E I N D U S T R I A L E - A . Impiego di materiali tecnologicamente più evoluti Il superamento delle difficoltà organizzative ed informative della produzione si é attuato nelle seguenti cinque fasi: 1. Produzione di massa 4.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. Impiego di macchine al posto del lavoro umano: fase della meccanizzazione 2. Automazione rigida 5. 2 0 0 5 . i sistemi di produzione hanno avuto una evoluzione determinata dall'ottimizzazione e dall'espansione di tali due componenti. Automazione flessibile 6 . A . Alta concentrazione di manodopera 3. Sviluppo di nuovi processi fisici 3. Divisione del lavoro 2.

Gli obiettivi principali da raggiungere sono: Produrre a qualità costante Fornire le quantità che il mercato può assorbire Migliorare la produttività In altri termini. - Il livello di guida operatore. L’uomo è in questo caso escluso dalla gestione del processo. “Made in Korea”. Gli organi di controllo acquisiscono le informazioni. al conseguente intervento sul processo. Si tratta di una funzione passiva nei confronti del processo. può intervenire manualmente solo in caso di anomalie o interruzioni. che completa il precedente mediante elaborazioni più complesse delle informazioni ed offre ai gestori del processo gli elementi che consentono interventi di regolazione. L’automazione appare come una delle vie obbligatorie per conseguire gli obiettivi citati. che corrisponde all’automatizzazione completa di determinate funzioni: dall’acquisizione dei dati. ma anche seguirne l’evoluzione. come suggeriscono le moderne teorie legate alla fabbricazione flessibile. che risponde ad esigenze di conoscenza tecnica ed economica del processo controllato. Forse non ci siamo ancora resi conto che. alla sua complessità. - Il livello di comando. in condizioni di mercato come quelle attuali. Si hanno in particolare: 7 .A U T O M A Z I O N E I N D U S T R I A L E - A . quando acquistiamo dei beni di consumo anche ad elevato contenuto tecnologico. “Made in Thailand”. 2 0 0 5 . al loro trattamento. sincronizzazione e controllo delle macchine di produzione cercando contemporaneamente di migliorare il livello di efficienza delle stesse macchine e dei processi. Per essere competitiva. Il grado di automazione di un sistema varia notevolmente in base alla natura del processo. nella maggior parte dei casi questi portano il marchio “Made in Cina”. Anche l’automazione che interviene nell’ultimo dei tre livelli considerati può essere di tipo diverso.2 Il problema dell’automazione Stiamo assistendo oggi ad una progressiva “emigrazione” dei nostri processi produttivi più importanti verso quei paesi a basso costo di manodopera. è importante mantenere una presenza sul mercato. A .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. l’industria manifatturiera deve oggi produrre ad elevati livelli quantitativi e qualitativi. le analizzano e producono registrazioni e segnalazioni. Si possono distinguere almeno tre livelli di automatizzazione: - Il livello di sorveglianza. alla conoscenza che se ne possiede ed agli obiettivi legati al progetto. 1.

nei quali l’intervento umano è minimo. 8 . dati di lavorazione e dati gestionali. Un automatismo ben progettato: Semplifica considerevolmente il lavoro dell’uomo che. in campi assai diversi. realizzata su una macchina semplice o su parte di una macchina complessa. intersessa macchine più complesse o un insieme di macchine semplici. Si può trattare per esempio di automatizzare le funzioni di sicurezza o di sorveglianza dei tempi morti o di posizionamento dei pezzi. I comandi corrispondenti sono legati al funzionamento delle macchine.3 Gli automatismi industriali Gi automatismi industriali sono dei dispositivi che permettono alla macchina o agli impianti di funzionare automaticamente. 1. - L’automazione integrata. nelle macchine utensili…. 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à. Nella presente trattazione si prenderà in considerazione il livello di automazione intermedia. oltre che nel settore terziario. E’ questo il dominio tipico dell’automazione industriale. di fabbricazione. può dedicarsi ad altre attività più gratificanti.2 0 0 6 - L’automazione elementare. quali le industrie di trasformazione. Aumenta la sicurezza del personale Controlla e protegge gli impianti e le macchine L’automatismo interviene in tutti gli stadi delle operazioni industriali. Ne risultano sistemi automatizzati. 2 0 0 5 . facendole eseguire dalla macchina. - L’automazione intermedia. Gli automatismi corrispondenti sono generalmente ideati dal costruttore degli impianti cui sono destinati. riguarda infine un intero reparto o addirittura l’intera fabbrica. Elimina le fasi complicate. economica ed umana. liberato dalla presenza costante sulla macchina. A . di trasporto. Essi sono realizzati con lo scopo di risolvere dei problemi di natura tecnica.A U T O M A Z I O N E I N D U S T R I A L E - A . nel quale si collocano i controllori programmabili.. Si ha in questo caso una connessione tra comandi. noti come FMS. pericolose o indesiderabili.

grazie alla nostra memoria. A . Per analogia con un automatismo industriale. 9 . i cinque sensi corrispondono ai rilevatori periferici ed. Il cervello. tramite gli occhi. i colori. che ha memorizzato le azioni da effettuare all’apparire di questo o di quel messaggio. si sono prodotte anteriormente.A U T O M A Z I O N E I N D U S T R I A L E - A . elementi che costituiscono i suoni Senso dell’odorato: che permette di percepire gli odori Senso del gusto: che. per mezzo delle sensazioni tattili (contatto e pressione). 2 0 0 5 . tengono conto di tutte le variazioni che si generano. quindi dai nostri organi. analogamente. Queste eccitazioni provengono sia dall’interno del nostro organismo. Il nostro corpo contiene un certo numero di organi che sono dotati di tutti gli elementi necessari al loro funzionamento: automatismo cardiaco. genera tramite i nervi. acquisisce i sapori. Senso del tatto: ci fa conoscere le qualità palpabili dei corpi. automatismo dell’intestino. Esse agiscono sulla superficie del nostro corpo e più particolarmente su talune zone idonee alla ricezione di queste eccitazioni. provenienti da ricettori sparsi in tutti i nostri organi.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. A questi sensi si aggiunge quello dell’equilibrio che ci informa sulla posizione del nostro corpo rispetto alla terra e di numerose sensazioni interne che. gli organi stessi. Il funzionamento del nostro sistema nervoso dipende dal mondo esterno e le nostre cellule nervose entrano in attività sotto l’influenza di eccitazioni preliminari che vengono a manifestarsi o che. la forma degli oggetti nello spazio. automatismo dei centri vasomotori e respiratori. che sono sensibili a certe radiazioni Senso dell’udito: grazie all’orecchio ed al sistema uditivo noi percepiamo le vibrazioni. un movimento particolare o un insieme di movimenti. i messaggi provenienti dai nostri organi sono gli ordini di esecuzione che l’automatismo deve rispettare per assicurare lo svolgimento delle differenti operazioni.2 0 0 6 1. automatismo midollare. termiche (caldo e freddo) e dolorose Senso della vista: funzione per mezzo della quale noi percepiamo la luce. sia dal mondo esterno che ci circonda. motori che comandano i muscoli. per mezzo della lingua.

negli anni '40. La storia si conclude purtroppo con i robot che uccidono gli uomini e assumono il controllo del mondo. macchine "intelligenti". del Giappone e anche dell'Europa. nel 1954. dopo due decenni. 1. di un brevetto riguardante un braccio meccanico controllato e destinato ad operare nelle fabbriche. Fortunatamente. quindi." (i robot universali di Rossum). Il concetto di robot industriale fu oggetto. capaci di sostituire l'uomo in alcune funzioni che ne caratterizzano la classificazione.2 0 0 6 1. 2 0 0 5 . ancora oggi e forse per molto tempo ancora. Da allora migliaia e migliaia di robot sono stati introdotti nell'industria degli Stati Uniti.R. importante azienda americana che ha svolto un ruolo di pioniere nel settore. sono state coordinate con la coerenza propria di un settore di innovazione tecnologica la cui rilevanza applicativa é fra le più significative dell'ingegneria odierna. Il primo robot industriale fu invece installato nel 1961 dalla Unimation Inc. A . in cui le nozioni. In questa prospettiva i robot sono. per convenzione. ove l'Italia occupa una posizione avanzata.A U T O M A Z I O N E I N D U S T R I A L E - A . Ma robot antropomorfi.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. che parlano e che camminano sono. 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.1 La nozione di robot La presentazione della nozione "robot" si sviluppa secondo diverse angolazioni che spesso si appoggiano a concetti già noti. Lo stesso termine robot é entrato nel vocabolario inglese all'inizio degli anni '20.5. Capek era cecoslovacco e nella sua lingua "robota" significa semplicemente "schiavo lavoratore". In questi anni sono stati formalizzati insegnamenti di robotica. L'antropomorfismo di queste macchine risiede in una specifica attitudine di reagire a classi di stimoli esterni e. Risale agli anni '70 di questo secolo la formalizzazione di un campo disciplinare scientifico cui é riconoscibile una propria autonomia e compiutezza. 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 . Nella commedia. derivate da campi diversi. i robot erano automi umanoidi costruiti da Rossum e da suo figlio con l'obiettivo di creare macchine obbedienti e al servizio dell'uomo..U. sogni di pura fantascienza. con la traduzione della commedia di Karel Capek "R.

Il robot. costituiscono una serie estremamente diversificata di attività peculiari della natura originale del robot. é costituito da un sistema meccanico in grado di interagire con il mondo esterno attraverso sensori ottici. Queste primitive possono essere considerate anche come le istruzioni macchina del robot. tipicamente da acquisire durante il ciclo di lavoro della macchina.2 0 0 6 Un dispositivo con i predetti attributi fa parte della produzione industriale attuale. 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. quelle dedicate all'elaborazione dell'informazione. mentre quelle dedicate all'interazione con il mondo. Secondo questa schematizzazione un robot viene definito come sistema artificiale che interagisce con l'ambiente esterno e con le parti funzionali di se stesso. A . anzi. 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.A U T O M A Z I O N E I N D U S T R I A L E - A . inteso come sistema artificiale. per eseguire un compito di modifica che gli é stato preordinato. in parte. sono coincidenti con le istruzioni macchina di un calcolatore. 2 0 0 5 . avendo la capacità di elaborare informazioni. ovvero un certo numero di attività elementari che possono essere eseguite automaticamente dall'unità stessa. 11 . tattili e di manipolazione governati da un calcolatore elettronico dotato di capacità di calcolo e di memoria. é un sistema capace di fornire un certo insieme di primitive.

12 .2 0 0 6 Le nozioni di robot. sono trascorsi quasi venti anni prima che venisse elaborata una definizione formale del termine "robot". la Robot Industries Association (RIA) statunitense pubblicò la propria definizione ufficiale: " un robot industriale è un manipolatore riprogrammabile multifunzione concepito per spostare materiali. attrezzi od altri oggetti specifici.5. ed impiegato per una quantità di compiti diversi". da un'eccessiva dipendenza dalla morfologia e dalle esigenze applicative connesse. circa lo sviluppo futuro dei robot. 3) Il robot ha la capacità di apprendere e memorizzare tramite la programmazione che gli impartisce le istruzioni per effettuare determinate operazioni. 1. dopo quasi due anni di delibera. 2 0 0 5 . 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. pezzi. A . presentate fino a questo momento.2 Definizioni e classificazioni Nonostante i robot industriali abbiano fatto la loro comparsa in ambienti produttivi negli anni '60. sono svincolate da particolari realizzazioni e ciò rappresenta sicuramente un vantaggio al fine di staccare le considerazioni. attraverso movimenti variamente programmabili. Solo nel gennaio del 1980.A U T O M A Z I O N E I N D U S T R I A L E - A .

* JIRA ( Japanese Industrial Robots Association ) 1) manipolatori 2) robot sequenziali 3) robot ad apprendimento 4) robot a controllo numerico 5) robot intelligenti 13 . alla capacità dello stesso di controllare le apparecchiature con le quali sta lavorando o di sincronizzarsi con le stesse. a tutt'oggi. da un comando elettronico programmabile o da qualunque comando logico (sistema a camme..) 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. Può essere comandata da un operatore. Vari Enti di diversi Paesi hanno proposto le loro classificazioni che sono diventate standard solo nazionali. destinato ad applicazioni di automazione industriale. infatti. 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à. Né.2 0 0 6 Come si vede. ecc. dove il robot industriale viene definito come: "manipolatore a molteplici gradi di libertà. comandato automaticamente. 2 0 0 5 .. avente lo scopo di afferrare e o movimentare oggetti (pezzi o utensili) generalmente con diversi gradi di libertà. - La classificazione dei robot industriali è resa difficoltosa dall'estrema varietà di realizzazioni e di punti di vista con i quali possono essere interpretate. Vediamone alcuni esempi. ROMs. fisso o mobile. riprogrammabile. A . cioè con modifiche nella struttura meccanica o nel sistema di comando ad eccezione del cambio di cassette di programmazione.. questa definizione appare ormai fortemente datata. La definizione. Non esiste. non accenna assolutamente alla possibilità di interfacciare il robot con l'ambiente di lavoro. multiscopo. fa menzione della sua capacità di reagire a dei cambiamenti che si verificano all'interno del processo da esso svolto. una classificazione universalmente accettata. Recentemente è stato pubblicato un Rapporto Tecnico dell' ISO TR 8373. ecc." 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).A U T O M A Z I O N E I N D U S T R I A L E - A . tantomeno. a logica cablata.

A .2 0 0 6 * AFRI ( Association Française 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 . 2 0 0 5 .

l'ambiente in cui opera. un elemento di afferraggio. una pinza per montaggio.2 0 0 6 1. sia la parte più propriamente destinata alla presa. il calcolatore di controllo. o joint) in modo da potersi muovere l'uno rispetto all'altro in maniera relativa e che possono essere connessi in serie. 15 .. i suoi sensori. 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. i compiti da eseguire.5. in 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). una pinza di saldatura. una pistola di verniciatura. Sicuramente. L'elemento finale della catena cinematica viene chiamato estremità e può essere una pinza per afferraggio. l'elemento che maggiormente caratterizza il robot nella propria funzionalità e nel più indicato campo applicativo è la struttura meccanica. tra questi.A U T O M A Z I O N E I N D U S T R I A L E - A . La struttura generale portante determina la capacità di movimento del robot. I sistemi meccanici di manipolazione comprendono sia la struttura portante di un robot. ecc. 2 0 0 5 .. il software operativo e l'interazione con l'operatore. L'elemento iniziale della catena cinematica viene chiamato telaio (se fisso) o supporto mobile (se è mobile). parallelo o in forma mista.. La struttura meccanica generalmente utilizzata nei robot è costituita da una catena articolata di elementi meccanici connessi tra loro mediante articolazioni (giunti.3 Struttura operativa gradi di libertà ed architettura Operativamente un robot esegue una serie di funzioni connesse con la sua struttura meccanica. Catena articolata di elementi meccanici connessi tra loro mediante articolazioni (giunti) collegati relativamente tra loro con accoppiamenti rotoidali o prismatici connessi in serie. A .

spostandosi rispetto ad una terna cartesiana fissa (X. ecc. mediante n parametri indipendenti. polari. Un punto materiale che si muove su un piano possiede due gradi di libertà. 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. peso e stato della superficie. Una risoluzione generale del problema risulta impossibile ed è necessario affrontare i diversi problemi secondo gruppi di classi. ruotando attorno ai propri assi esso assume qualunque orientamento rispetto a quest'ultima. Così un punto materiale mobile su una retta o. catene di tipo polare. più in generale. sono adatte a robot di caricamento. perché occorrono tre parametri (le sue coordinate cartesiane. costituzionalmente più semplici ma intrinsecamente più imprecise. presa e verniciatura. che dovrebbero risultare il più possibile senza gioco e senza attrito. Diremo che un sistema ha n gradi di libertà quando si può rappresentare la sua posizione (o meglio la sua configurazione). di cui 3 di traslazione e 3 di rotazione.) per determinarne la posizione. su una linea ha un solo grado di libertà. la manipolazione ed il montaggio di elementi diversissimi tra loro per forma. Ad esempio. Strettamente connesso al problema dei cinematismi é quello dell'azionamento e del controllo. almeno in una certa regione dello spazio. Con traslazioni lungo i tre assi il corpo rigido effettua movimenti nello spazio.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. occorre realizzare cinematismi atti ad effettuare la presa.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. 2 0 0 5 . A . per i sistemi di corpi rigidi.Y. Legato naturalmente al problema della catena cinematica è quello della scelta delle articolazioni e dei giunti.5. Altro problema è quello della realizzazione di una struttura possibilmente modulare per risolvere. perché occorrono due parametri (le sue coordinate nel piano) per fissarne la posizione. comunque vincolati. o meglio.Z). Ad esempio. situazioni differenti. 16 . 1. la tenuta. Consideriamo adesso un corpo rigido nello spazio ed una terna cartesiana centrata sul suo baricentro (X'. in modo da favorire e guidare la manipolazione del pezzo stesso.A U T O M A Z I O N E I N D U S T R I A L E - A . con opportune aggregazioni. Catene cinematiche cartesiane che conducono a strutture chiuse e vincolate. dimensione. Nel campo dei sistemi meccanici destinati alla presa.Z'). e soprattutto l'esigenza di dotare gli organi di presa di sensori in grado di rilevare le caratteristiche intrinseche del pezzo da trattare. Si dice che il corpo rigido libero nello spazio possiede 6 gradi di libertà (GDL). sono più precise e meglio si prestano ad essere utilizzate in robot di montaggio o di misura. Tutto ciò è in stretta relazione con l'obiettivo di lavoro cui la macchina è destinata.Y'. un punto materiale libero ha tre gradi di libertà. 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..

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

A U T O M A Z I O N E I N D U S T R I A L E - A . Robot cartesiano Essa è molto simile a quella delle macchine a controllo numerico. 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. * ROBOT A COORDINATE CARTESIANE La struttura a geometria cartesiana viene utilizzata soprattutto quando si vuole ottenere una elevata precisione di posizionamento dell'organo terminale. Consiste in tre assi lineari ortogonali realizzati con slitte traslanti. 18 . che forniscono gli spostamenti secondo le tre traslazioni principali x. 2 0 0 5 .z.y.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.5.2 0 0 6 1. A . 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. in quanto le traiettorie e gli errori di posizionamento sono facilmente controllabili. essendo la risoluzione e la ripetibilità del braccio le stesse di tali macchine.

Robot a portale 19 . non sono molto diffusi industrialmente (fanno eccezione quelli per il montaggio elettronico di componenti superficiali SMD). Se l'estremità del robot deve tracciare un segmento di retta di L unità di lunghezza. 2 0 0 5 . Y. A . alla velocità v. * ROBOT A PORTALE Appartiene alla categoria dei cartesiani. le velocità assiali sono: Vx = (X/L)V Vy = (Y/L)V Vz = (Z/L)V dove L = X + Y + Z e Vx.A U T O M A Z I O N E I N D U S T R I A L E - A . in quanto mancano di flessibilità meccanica non potendo raggiungere punti sul pavimento o punti invisibili dalla base. 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à. I robot cartesiani. Vy. Z. rispettivamente. Questa struttura permette di gestire aree e volumi operativi molto ampi ed è spesso utilizzata in operazioni di manipolazione e pallettizzazione. in alcuni casi si impiegano algoritmi complessi. Vz sono le componenti di V nelle direzioni X. così attraenti in teoria. in cui le coordinate cartesiane vengono trasformate nelle coordinate dei giunti del manipolatore.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. Inoltre la velocità di lavoro sul piano orizzontale è generalmente più basa di quella tipica dei robot aventi una base rotante. Queste semplici relazioni non sono valide sempre per tutti i robot di tipo cartesiano.

05 mm. Il braccio orizzontale si muove avanti e indietro.06°. Robot cilindrico Questo è un limite dei robot cilindrici rispetto ai cartesiani. a sua volta. risulta che la risoluzione alla terminazione del braccio è αr.06 x π/180 = 1. Vengono soprattutto utilizzati per operazioni di alimentazione a carico di particolari meccanici. La risoluzione della base è α= 360°/6000 = 0. la massima lunghezza del braccio orizzontale è 1 metro. I robot a geometria cilindrica hanno però il vantaggio di una maggiore velocità dell'end effector in virtù della presenza dell'asse di rotazione. valutare la risoluzione peggiore all'estremità del braccio. che dipende.A U T O M A Z I O N E I N D U S T R I A L E - A . Se l'unità di risoluzione della base rotante è espressa in radianti. nella cui estremità è fissata la pinza. dall'end effector e dal relativo carico. consentendo una programmazione semplice per la determinazione dei valori delle coordinate necessarie a raggiungere il punto di lavoro.2 0 0 6 * ROBOT CILINDRICO Robot la cui struttura meccanica comprende un giunto di rotazione e due giunti di traslazione. 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 risoluzione all'estremità del braccio è: 1000 x 0.01). i cui assi sono disposti secondo un sistema di coordinate cilindriche. il carrello. La risoluzione in un robot cilindrico non è costante ma dipende dalla distanza r della colonna dalla pinza lungo il braccio orizzontale. Tuttavia tale velocità in molti robot è limitata a causa del momento d'inerzia del braccio. E' infatti 20 . A . 2 0 0 5 . si muove su e giù ed entrambi ruotano con la base. 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. I robot che utilizzano questo tipo di struttura lasciano ampia accessibilità alla zona di lavoro.

.A U T O M A Z I O N E I N D U S T R I A L E - A . di saldatura. da cui ne deriva una risposta dinamica del braccio non molto buona. Robot polare (o sferico) L'entità della rotazione è usualmente misurata da encoder incrementali montati sugli assi rotanti. dalla velocità. e dall'accelerazione degli altri giunti. I movimenti fondamentali affidati al braccio sono rappresentati dalla traslazione lungo l'asse X. Conseguentemente. ciò causa variazioni nella coppia e nel momento d'inerzia riflessi. 21 .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.. 2 0 0 5 . rispetto al braccio. A . Gli altri gradi di libertà sono ottenuti dando la possibilità di movimento alla testa di presa. * ROBOT POLARE (O SFERICO) La configurazione cinematica di un robot a coordinate sferiche è simile alla torretta di un carro armato. 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. Il momento d'inerzia riflesso sulla base dipende non solo dal peso dell'oggetto caricato. ecc. Robot di questo tipo si prestano bene ad operazioni di carico e scarico pezzi. dalla rotazione di inclinazione attorno all'asse Y e dalla rotazione di orientamento attorno all'asse Z.. il momento d'inerzia effettivo sulla base varia nel tempo e con la posizione della pinza. ma anche dalla distanza tra l'asse di base e l'oggetto manipolato. di verniciatura. Tale distanza è funzione della posizione istantanea della pinza e degli altri giunti durante il movimento.

22 . L'accuratezza di un robot articolato è bassa poiché gli errori ai giunti si accumulano all'estremità del braccio. la sua risoluzione spaziale dipende interamente dalla posizione del braccio. 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. Poiché un robot articolato ha tre assi di rotazione geometricamente diversi. 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. A .A U T O M A Z I O N E I N D U S T R I A L E - A . La sua struttura è stata studiata in Giappone dove. Il cinematismo assomiglia molto a quello di un braccio umano. E' particolarmente indicato per applicazioni di montaggio e manipolazione. 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. 2 0 0 5 . Esso può comunque muoversi ad alta velocità ed ha una eccellente flessibilità meccanica. tramite la spalla (shoulder) si connette alla base.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. La pinza corrisponde alla mano che si attacca all'avambraccio tramite il polso (wrist). Il terzo movimento (quello rettilineo dell'asse Z) è spesso realizzato con cilindri pneumatici. 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. Il gomito (elbow) connette l'avambraccio al braccio che a sua volta. aspetti che lo rendono il più diffuso tra i robot medio piccoli.

2 0 0 6 Robot SCARA 23 . A . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A .

includendo il tempo di stabilizzazione).A U T O M A Z I O N E I N D U S T R I A L E - A . Deriva della precisione di posa (Drift of pose accuracy) Lenta variazione della posa di risposta in un tempo specificato. dopo che il robot abbia dato il segnale di posa di risposta. 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.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. 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.Vocabulary". A .Performance criteria and related test methods" ed ISO 8373 "Manipulating industrial Robots . A tale scopo verrà fatto riferimento diretto alle normative Standard Internazionali ISO 9283 "Manipulating industrial Robots . 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. 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.2 0 0 6 1. 2 0 0 5 . 24 . Ripetibilità di traiettoria (Path repeatability) Campo di concordanza tra le traiettorie di risposta ottenute per la stessa traiettoria di comando ripetuta n volte.

Zc le coordinate teoriche del punto Pc da raggiungere . 2 0 0 5 . * Precisione di posizionamento ( Pose accuracy ) La precisione di posizionamento esprime la deviazione tra posa di comando e posa di risposta. E' quindi la deviazione massima ottenuta in posizionamento ed orientamento. Yg.Xc ) 2 + ( Yg .Yc ) 25 . Per verificare questo parametro si supponga di programmare il robot per effettuare “n“ spostamenti tra “m” posizioni. Yj . a titolo di esempio.Xj . .Xc ) ∆L y = ( Yg .6. Yc . Zj le coordinate effettive ottenute dal movimento di posa j . la verifica della precisione di posizionamento.1 Verifica della precisione e ripetibilità di posizionamento Tra tutte le caratteristiche sopra enunciate si è scelto.Xg . comparatore ).Yc ) 2 + ( Zg . A . Zg le coordinate del baricentro della media dei punti ottenuti dopo aver ripetuto il medesimo comando di "MOVE" per “n” volte.Zc ) 2 ______________________________________________________ ∆L x = ( Xg .A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 Cedevolezza statica (Static compliance) Spostamento massimo dell'interfaccia meccanica per unità di carico applicata.∆L la precisione di posizionamento ∆L = √ ( Xg . Si effettui per ogni punto una misura di posizione tramite un apposito strumento (es.Xc . passando per un numero di punti tali da determinare una traiettoria unidirezionale. 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. Siano: . 1. poiché ha un peso fondamentale nella scelta di un sistema robotizzato.

Partendo da P1. La precisione di posizionamento (pose accuracy) può essere così calcolata per ogni posa.Zc ) dove : 1 n 1 n Xg = ----.. n j=1 n j=1 1 n Zg = ----.. 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.. A . Ciclo 0 Ciclo 1 Ciclo 2 .Σ Y j . 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.Σ Z j . P1.. nonché di misura.. P3. 2 0 0 5 . Ciclo 30 P5 P4 P3 P2 P1 P5 P5 P4 P4 P3 P3 P2 P2 P1 P1 P1 26 .. il test consiste nel muovere successivamente l'interfaccia meccanica del robot passando attraverso P5..Σ X j . P2. P4.A U T O M A Z I O N E I N D U S T R I A L E - A ..2 0 0 6 ∆L z = ( Zg . Non vengano effettuate misure nel punto P1 durante il ciclo 0 ma si effettuino letture di misura per ogni posizionamento e per 30 cicli. Yg = ----....

A . del metodo di verifica della precisione di posizionamento del robot Adept 6 . /X5.Accuracy 2 . ---------------------------------------------------------------------------------------------------------8 . 2 0 0 5 . a cosa serva uno "spinto" valore di accuracy in un robot di manipolazione.2 SIGNAL . max_cicli TYPE /C23. " Robot pronto : premi RET per cominciare il test " PROMPT "". Proviamo ora a capire. 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 .A U T O M A Z I O N E I N D U S T R I A L E - A . con un esempio. Questo programma scritto in V+ descrive una possibile applicazione 5 . PROGRAM Test. 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. 4 . 7 .END END END SPEED 50 RIGHTY MOVE P1 BREAK PROMPT " Inserisci il numero di cicli da eseguire ". ---------------------------------------------------------------------------------------------------------3 . 27 .2 0 0 6 Esempio di programma scritto in V+ per realizzare il test in oggetto: 1 .Start_lettura[k] WAIT SIG (OK_lettura[k]) Nelle applicazioni pratiche questa caratteristica è molto importante perché determina l'effettivo grado di precisione del robot.

grazie allo sviluppo dei sistemi CAD / CAM / CAE. 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. Tali sistemi gestiscono non solo le caratteristiche elettriche della componentistica. Y1. Y' di origine O' mediante la seguente istruzione di programma: SET scheda = FRAME ( Tor. In questo caso.8 mm. 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. R1. anche la progettazione di circuiti stampati (PCB : Printed Circuit Board) viene gestita da calcolatore. per posizionare correttamente un componente nella relativa locazione di inserzione. In ogni scheda è infatti predefinito un sistema di riferimento rispetto al quale sono calcolate le coordinate in X. è 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 basta insegnare al manipolatore le posizione del sistema di riferimento scheda rispetto al sistema di riferimento assoluto. 28 . In fase di montaggio automatico non è necessario auto apprendere quindi tutte le singole posizioni di inserzione dei componenti. A .A U T O M A Z I O N E I N D U S T R I A L E - A . 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 ) Si definisca col generico nome di SCHEDA il sistema di riferimento relativo X'. in un foro da 0. Ty. Tx.) risulta chiaro come la precisione di posizionamento del braccio sia determinante ai fini di una corretta inserzione. Z1) la coordinata del componente elettronico da inserire nella scheda. riferita al sistema di riferimento cartesiano X'. Sia ad esempio P1=(X1. E' noto a tutti il fatto che oggi. 2 0 0 5 .2 0 0 6 Un caso lampante è quello dell'utilizzo di manipolatori per il montaggio di componenti elettronici su scheda. 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 e orientamento di ogni singolo componente. 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.6 mm. ma riferita al sistema di riferimento del robot. Y'. ma anche tutte le caratteristiche geometriche per facilitarne così la fase di montaggio.

anziché ripetere all'infinito una o poche operazioni. l'intero sistema industriale tradizionale ha subito grosse trasformazioni. per le sue diverse costruzioni e geometrie. Come abbiamo visto l'automazione rigida lascia il posto all'automazione flessibile ed é proprio in questo contesto che si inserisce il manipolatore programmabile che. Se la macchina a vapore può essere posta a capo della prima rivoluzione industriale. il robot può essere programmato con metodo 29 . Le nuove tecnologie hanno prodotto una nuova generazione di macchine operatrici di: . In questo caso i sistemi di automazione sono costituiti da manipolatori definiti a "sequenze limitate". con conseguente flessibilità operativa della macchina.Prima generazione Risale agli anni '60 ed è caratterizzata da una unità di controllo costituita da un sequenziatore. 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. il calcolatore elettronico deve essere certamente riconosciuto come "motore" della seconda.2 0 0 6 1.A U T O M A Z I O N E I N D U S T R I A L E - A . . realizzate ad esempio mediante programmatori a camme.montaggio . in quanto programmabili. Il sequenziatore può essere implementato in tecnologia elettromeccanica od elettronica cablata. Al pari delle altre macchine operatrici programmabili.Seconda generazione I sistemi di automazione della seconda generazione sono macchine controllate da un calcolatore digitale dedicato. ma molto più frequenti sono le soluzioni pneumatiche. Tali segnali disattivano un attuatore e permettono l'attivazione del successivo.fabbricazione .trasporto. . deriva da qui il tipico nome di sistema "pick and place" (prendi e metti). Ogni asse è servo-controllato ed ogni segmento del manipolatore è equipaggiato con adeguati sensori di posizione e di velocità. diventa l'elemento fondamentale delle molteplici applicazioni ipotizzabili.7 Evoluzione dei sistemi di automazione Nei pochi anni che ci separano dalla crisi energetica del 1973. 2 0 0 5 . A . quali ad esempio la macchina utensile a CN. Essi sono perciò in grado di ripetere indefinitamente la sequenza contenuta in una memoria a stato solido. manipolazione e immagazzinamento in grado di svolgere sequenze complete e variabili di operazioni produttive. I sistemi di automazione si sono evoluti rapidamente nel tempo passando da iniziali soluzioni rigide (cablate) a moderne soluzioni flessibili (programmabili). Tale sequenza di operazioni da svolgere può essere cambiata molto semplicemente. 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.

A . . Saranno sicuramente più leggeri. per questo motivo. 2 0 0 5 . Ma a differenza di ogni altra macchina operatrice.A U T O M A Z I O N E I N D U S T R I A L E - A . più veloci. con il minimo sforzo da parte di chi li deve programmare. Il loro sviluppo va certamente al passo con lo sviluppo dell'informatica e dell'elettronica. le più complesse esigenze operative. Grazie ai feedback dei dati sensoriali e dell'interfacciamento con banca dati. Probabilmente saranno costituiti da manipolatori del tipo non metallici. 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. .Quarta generazione Nessuno sa ancora con certezza come saranno i sistemi di automazione appartenenti a questa quarta generazione. indispensabile per lo svolgimento di operazioni molto complesse. 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. ci aspettiamo quindi sistemi ancor più flessibili degli attuali ed in grado di soddisfare. dal momento che i prezzi dei materiali ad alto contenuto tecnologico sono in costante diminuzione. 30 . più precisi e più accurati nelle realizzazioni ed utilizzeranno la percezione visiva e sensoriale in modo da raggiungere il vero coordinamento occhio-mano.2 0 0 6 linguistico mediante un apposito linguaggio di programmazione.Terza generazione Sono caratterizzati da notevoli capacità adattative e vengono. chiamati "intelligenti". sono inoltre in grado di inviare messaggi all'operatore che descrivono la natura e l'ubicazione degli eventuali stati di malfunzionamento.

63 sec. 2 e 4 di tipo rotatorio.Giunto 4 31 Cobra 600 600 mm 163 mm 210 mm ± 105° ± 150° ± 360° 5.Apertura radiale minima Corsa verticale .5 Kg carico Risoluzione .Giunto 3 .100 mm / sec 1.02 mm ± 0.Giunto 4 (rotazione) Velocità .Apertura radiale massima .Giunto 1 .Giunto 2 .Giunto 4 Carico utile al polso (inclusi attuatori di estremità e utensileria montata sull'estremità del braccio) Carico di inerzia .Giunto 1 .Piano X. I Robot Adept Cobra sono concepiti per interfacciarsi con un controller Adept MV e il telaio alimentazione PA-4.03° 360° / sec 672° / sec 1.Giunto 3 (direzione Z) Rotazione dei giunti .Giunto 1 .Giunto 2 . 2 0 0 5 . 0.2 0 0 6 2 Capitolo 2 Esempio di manipolatore: Adept robot Cobra 600 2.Giunto 3 . A .sull'asse de giunto 4 Forza di spinta verso il basso (giunto 3) Tempo ciclo Pick & Place . 0.01 mm ± 0.55 sec.00072° per conteggio di codifica 0.03125° per conteggio di codifica ± 0.0015 mm per conteggio di codifica 0. mentre quello del giunto 3 è di tipo traslatorio. Specifiche tecniche dei robot Adept Cobra 600: Descrizione Area di lavoro .1 Il manipolatore Il robot Adept Cobra 600 è un robot SCARA a quattro assi con movimento dei giunti 1.5 Kg 250 Kg cm2 25 Kg 0.47 sec.00045° per conteggio di codifica 0.Giunto 4 Reperibilità .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 .Giunto 3 (Z verticale) .0 carico .Y . 0.2 Kg carico .Giunto 2 .

A . 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 d’interfaccia 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 .2 0 0 6 Il robot si programma e si comanda tramite il controller Adept MV e il sistema di comando amplificatore PA-4. 2 0 0 5 .

agendo insieme.A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 Ogni articolazione del braccio viene identificata col nome di JOINT. le proprie rotazioni e i differenti sistemi di riferimento.Y. esiste quindi un'area posizionata dietro il manipolatore non raggiungibile dalla rotazione del joint 1 e dove sono posizionati i fermi meccanici dell'articolazione. A . il joint 3 è l'asse che "prende" e "mette" gli oggetti da manipolare. In una tipica applicazione. 2 0 0 5 . Nel joint 4 è posizionata la flangia di montaggio della mano o end-effector in grado di ruotare attorno all'asse verticale del joint 3. Il joint 3 (asse Z) è una articolazione a corsa lineare che permette di estendere e retrarre verticalmente l'estremità del braccio. provvedono al posizionamento della estremità del braccio nel piano X. Il joint 1 ruota intorno alla colonna verticale e il joint 2 ruota nel mezzo del braccio orizzontale. 33 . I joints 1 e 2. E' questo l'asse usato per orientare radialmente le parti da posizionare. La figure seguenti illustrano le 4 articolazioni del manipolatore. Il range di movimento del joint 1 è di 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 . Generalmente il robot Adept_Cobra 600 può raggiungere una locazione in qualsiasi delle due configurazioni di gomito. Il movimento del giunto 1 è limitato a ±105° Il giunto 2. provvede alla rotazione della connessione interna. 2 0 0 5 . la desiderata configurazione.2 0 0 6 Il giunto 1. 34 . Sotto il comando del programma. provvede alla rotazione della connessione interna. o “gomito”. il gomito del robot (visto da dietro il robot) punterà a destra o a sinistra. il robot si sposterà sempre nella posizione successiva con la configurazione ottimale che minimizza il percorso. per quel movimento. 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. Questi orientamenti del braccio vengono chiamati “sinistrorso” e “destrorso”. o “spalla”. Il movimento del giunto 2 è simile a quello di un gomito in grado di piegarsi sia in configurazione destra che sinistra. Il movimento del giunto 2 è limitato a ±150°. Quando si insegnano le posizioni al robot.

A U T O M A Z I O N E I N D U S T R I A L E - A . Limiti cartesiani: sul retro dei robot Adept Cobra è presente una zona di esclusione limitata dal software ampia 300 mm. Visto che la configurazione di questo manipolatore è paragonabile a quella di un braccio umano. Il giunto 3 provvede alla traslazione verticale dell'albero di rotazione. o “polso”. il movimento del robot può essere attivato solo dalla MCP. Il giunto 4. quando si cambia la modalità operativa.2 Modalità operative del robot Per poter muovere il robot in sicurezza. il suo movimento è tuttavia limitato dal software a ±360° 2. esistono anche qui delle configurazioni di gomito (elbow) che rappresentano l'operatività del braccio sinistro dell'uomo o del braccio destro. 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.2 0 0 6 E' possibile visualizzare il joint 2 del robot come un avambraccio esteso superiormente ed attaccato al corpo del manipolatore. occorre comprendere le due diversi modalità di funzionamento del robot. la potenza al manipolatore (High Power) viene automaticamente disattivata. Manuale ed Automatica. Il giunto 3 muove l'albero di rotazione verso il basso e verso l'alto con una corsa massima di 210 mm. Per motivi di sicurezza. Il CIP (Controller Inteface Panel) presenta un interruttore a chiave a due posizioni che comanda la modalità operativa del robot. provvede alla rotazione dell'albero. Pur non essendo fornito di fine corsa meccanici. 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. A . 2 0 0 5 .2. Ciò protegge l'operatore che si trova nell'area 35 . 2.1 Modalità operativa manuale Nella posizione Manuale (velocità <250 mm/s). in grado di compiere una rotazione di circa 150° a sinistra o a destra rispetto alla posizione di allineamento col joint 1.

In modalità manuale. 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.2. i contatti della barriera di sicurezza del cliente (Mute) sono esclusi e la funzione di sicurezza di tali contatti è disattivata. Il modulo portatile presenta un interruttore di abilitazione ad attivazione palmare che è collegato al circuito dell'arresto di emergenza del controller. oppure toglierlo dal controller e installare la presa ponticello del modulo portatile. non entrare nell'area di lavoro perché il robot o il dispositivo di movimento potrebbero spostarsi inavvertitamente. Quando la luce bianca di High Power sul CIP è accesa.2 Modalità operativa automatica La posizione di modalità automatica (100%) permette il comando del robot dal computer. Ciò permette a un operatore qualificato di entrare nell'area di lavoro quando High Power è attivata. La Figura seguente mostra come impugnare la MCP. Il fermaglio 36 . il modulo di funzionamento e il modulo di programmazione. Quando non utilizza l'MCP.2 0 0 6 di lavoro da movimenti imprevisti del robot. Se è un programma a muovere il robot o un dispositivo di movimento.A U T O M A Z I O N E I N D U S T R I A L E - A . questo può effettuare dei movimenti in momenti e lungo percorsi che l'operatore non è in grado di prevedere. 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. Ogniqualvolta l'interruttore viene rilasciato. l'operatore deve riporlo nello speciale supporto in dotazione. si disattiva la potenza (High Power) al dispositivo di movimento. 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). 2 0 0 5 . A . Vi sono due funzioni principali del modulo MCP. 2.

e le loro funzioni variano in base al programma in fase di esecuzione. oppure alla selezione fatta con i pulsanti di funzioni predefinite.A U T O M A Z I O N E I N D U S T R I A L E - A . Dal momento che questi pulsanti non hanno una definizione fissa (le etichette vengono definite dal programma che utilizza i pulsanti). Usare la mano destra per manovrare tutti gli altri pulsanti funzione. Pulsanti funzione I pulsanti di funzioni predefinite svolgono funzioni specifiche loro assegnate. A . I pulsanti programmabili vengono usati nei programmi applicativi del cliente. la sua funzione viene indicata nell'ultima riga del display del modulo portatile. 37 . Pulsanti ridefinibili I pulsanti ridefinibili svolgono diverse funzioni.2 0 0 6 di ritenzione del supporto mantiene premuto l'interruttore di attivazione quando il modulo portatile non è in uso. relative al sistema. 2 0 0 5 . In questa sezione sono illustrati i vari raggruppamenti di tasti del modulo portatile. Ogni qualvolta un pulsante ridefinibile è attivo. essi vengono chiamati pulsanti ridefinibili. a seconda del programma applicativo in fase di esecuzione. inserire la mano sinistra nell'apertura sulla sinistra del modulo portatile ed usare il pollice sinistro per attivarne le barre di velocità. Per attivare l'MCP.

Funzione Display : il pulsante funzione Display consente di visualizzare sull'MCP i valori attuali del giunto. il display visualizza: X = xxx.xx mm Z = xxx.xx° p = xxx.xx° r = xxx. Verranno visualizzati solo i valori relativi ai giunti effettivamente presenti sul robot o sul dispositivo di movimento.Quando si preme questo pulsante. la posizione world attuale. oppure l'ultimo messaggio di errore.xx Questi valori rappresentano le posizioni correnti dei giunti del robot o del dispositivo di movimento. 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 +.xx J3 = x. Joint Values . lo stato degli I/O digitali.xx J4 = x.A U T O M A Z I O N E I N D U S T R I A L E - A .xx mm Y = xxx. 38 . e i valori del giunto di traslazione sono espressi in millimetri. World Location .Quando si preme questo pulsante.xx J6 = x. il display visualizza: J1 = x. lo stato del sistema.xx° I valori rappresentano la posizione corrente del robot o del dispositivo di movimento nelle coordinate world.xx mm y = xxx. I valori del giunto rotazionale sono espressi in gradi. A .xx J2 = x.xx J5 = x.

premere i pulsanti ridefinibili sotto le etichette “+” o “–”. 2 0 0 5 . e uno “0” indica che il segnale è spento. A . i segnali 3-8 sono spenti e. nessun altro segnale è installato. Premere i pulsanti OUT. Il tipo di segnale che viene visualizzato è indicato dal LED sui pulsanti ridefinibili contrassegnati OUT.2 0 0 6 Status & ID . I pulsanti ID Software. il display visualizza: ------------------0000 0011 + 0032-0001 . in questa gamma.A U T O M A Z I O N E I N D U S T R I A L E - A . Controller. IN e SOFT per visualizzare le gamme dei segnali di ingresso (input). un “1” indica che il segnale è acceso.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). Speed indica la velocità corrente del monitor. Verrà visualizzata la gamma di segnali successiva o precedente.Quando si preme questo pulsante. I/O digitale . Un “–” indica che il canale non è installato. Left indica il numero di cicli rimanenti che il programma deve eseguire. e Robot visualizzano le informazioni di identificazione per quelle voci. il display visualizza: Status ID SOFTWARE CNTRLR ID ID ROBOT 'S Il pulsante Status visualizza: program. IN. L'esempio fornito mostra segnali di uscita digitale nella gamma da 1 a 32. uscita (output) o software (soft). Per visualizzare un'altra gamma di segnali.name Program 50 Speed 1 Cycle 0 Left Program mostra il nome del programma in fase di esecuzione o quello eseguito più recentemente. Pulsanti di inserimento dati 39 . Cycle indica il numero totale di cicli specificati quando era stato eseguito il programma.Quando si preme questo pulsante. I segnali 1-2 sono accesi. e SOFT.

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 richiedono che l'utente prema il pulsante REC/DONE per segnalare che un'operazione è stata completata. si preme REC/DONE per inviare i dati inseriti al controller. di solito in risposta a dei prompt di richiesta visualizzati sul display del modulo portatile. A . compare sul display dell'MCP. i tasti numerici (0-9). +/YES. In numerosi casi. Pulsante REC/DONE Funziona come il tasto Invio o Enter di una normale tastiera. il punto decimale. Queste opzioni sono descritte nel seguente paragrafo. DEL. Ultimato l'inserimento dei dati. Quando si inseriscono i dati. 40 . –/NO. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . 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. I programmi applicativi possono anche assegnare funzioni speciali al pulsante DEL.2 0 0 6 I pulsanti di inserimento dei dati illustrati nella Figura vengono usati per inserire dei dati. Questi tasti sono simili a quelli del tastierino numerico di una normale tastiera. Pulsante DEL Si comporta come il tasto Backspace (cancella carattere precedente) di una normale tastiera. I pulsanti di inserimento dati comprendono. e il pulsante REC/DONE.

occorre selezionare il giunto esatto con i pulsanti di comando manuale. il movimento nella direzione X. la flangia si muoverà in direzione X negativa.A U T O M A Z I O N E I N D U S T R I A L E - A . La Figura seguente illustra un robot SCARA Adept con tre giunti rotoidali (giunti 1.2 Stato Joint Quando si seleziona lo stato joint. A .4 Stati del robot 2.4. la flangia utensile del robot si muoverà in direzione X positiva. Il movimento positivo del giunto 3 è verso il basso. Il sistema di coordinate world per un robot SCARA è illustrato nella Figura seguente. 2 0 0 5 . e 4) e un giunto prismatico (giunto 3). La rotazione positiva dei giunti 1 e 2 è in senso antiorario. Il pulsante T 1 fa girare i solenoidi della pinza. 2. sul lato “–” per chiudere la pinza. il movimento avviene sugli assi del giunto specificato. vista dall' alto. Perché le barre di velocità muovano un giunto.4. o Z è parallelo all'asse di un sistema di coordinate cartesiane (world). 2. Y.1 Stato World Quando è selezionato lo stato world. Se si preme la barra di velocità “–”. 41 . Premere in qualunque punto del lato “+” della barra di velocità per aprire la pinza.2 0 0 6 2. si deve scegliere un asse di movimento con i pulsanti di comando manuale. Se si seleziona X1 e si preme la barra di velocità “+”. La rotazione positiva del giunto 4 è in senso orario vista dall'alto. Affinché le barre di velocità muovano il robot.

occorre selezionare un asse di movimento con i pulsanti di comando manuale. 2 0 0 5 . Sulla maggioranza dei robot. Y.A U T O M A Z I O N E I N D U S T R I A L E - A . Se si preme la barra di velocità “–” la flangia si muoverà in direzione X negativa. Quando si muove per la prima volta un robot con cui non si ha dimestichezza. Z- Z+ 2.2 0 0 6 Diversi robot o dispositivi di movimento avranno dei diversi numeri di giunto assegnati ai loro giunti. A . con l'asse Z che punta lontano dalla flangia. o Z avviene lungo un asse del sistema di coordinate tool. premendo la barra di velocità “+” la flangia utensile del robot si muoverà nella direzione positiva X. utilizzando lo stato joint.4. Perché le barre di velocità possano muovere il robot. e muovere con cautela il robot utilizzando i diversi numeri dei giunti per verificare in che modo l'MCP muove il robot. impostare la velocità di monitor a 10 o meno. 42 . l'asse positivo X è allineato con il centro dell'inchiavettatura della flangia utensile. collocare il robot in un'area sicura. Se si seleziona X1. il movimento in direzione X.3 Stato Tool Quando si seleziona lo stato tool. Il sistema di coordinate tool ha come centro la flangia utensile del robot.

Y. I primi due termini sono usati per riferire un punto nello spazio mediante le relative coordinate X. 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 . 2 0 0 5 . A .2 0 0 6 2. 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". Quindi quando il robot si sta dirigendo verso una "location". La parola "location" si riferisce invece ad un punto situato nell'area di lavoro del robot e con un definito orientamento. 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. Z.5 Robot Locations Le "Robot locations" sono usate per specificare la destinazione del movimento del robot.

2 0 0 6 1 . Una transformation è una rappresentazione indipendente della posizione e dell'orientamento dell'estremità del robot. Z = 125.A U T O M A Z I O N E I N D U S T R I A L E - A .. Y. è definita da tre angoli misurati dagli assi coordinati. and roll = 0. Questa è rappresentata dai valori X = 30. e Z. L'orientamento dell'estremità. Y = 100.l'estremità del robot ruota con un predefinito orientamento I dati che definiscono una locazione del robot possono essere autoappresi (Theach) come valori "location". In un robot SCARA. Questi angoli sono chiamati: . l’origine dello spazio cartesiano è alla base del manipolatore. che da ora in avanti per semplicità chiameremo pinza. E’ un insieme di 6 componenti che identificano in maniera univoca una locazione in una rappresentazione dello spazio cartesiano.Z) rispetto al riferimento assoluto fissato sulla base del robot."y" per yaw (giunto 4) . A . La seguente figura mostra la prima parte di una transformation. Questi valori possono essere riferiti e usati in diversi modi: 2. l’asse X punta dritto verso l’esterno e l’asse Y è orientato da sinistra verso destra rispetto al fronte del robot. La posizione del punto di estremità del robot è definita con le coordinate X. Tre coordinate identificano un punto nello spazio. 2 0 0 5 .Y."p" per pitch (giunto 5) .5."r" per roll (giunto 6) 44 .il robot si muove in maniera tale che la sua estremità raggiunga il punto specificato 2 . Y e Z.1 Transformations Una "transformation" è una identificazione di locazione riferita allo stato WORLD. I primi 3 elementi di una variabile transformation sono i valori dei punti negli assi X. Le seconde tre componenti di una transformation specificano l’orientamento dell’estremità (endof-arm tooling) e sono rappresentati dagli angoli di Eulero. L'indipendenza del robot è ottenuta definendo le locazioni in termini di rappresentazione Cartesiana (X. Per identificare univocamente un corpo nello spazio sono necessarie 6 coordinate. yaw = 0. pitch = 0. l’asse Z punta verso l’alto attraverso la colonna del robot.

ma a quella centrata nell’origine del sistema locale di riferimento. La transformation risultante è quindi rappresentata dai valori X = 30. Pitch Pitch è definita come rotazione del sistema locale di riferimento attorno al suo asse Y. yaw = 30. La seguente figura mostra l’asse YAW con una rotazione di 30° e l’asse PITCH con una rotazione di 40°. La transformation risultante è quindi rappresentata dai valori X = 30. La seguente figura mostra l’asse YAW con una rotazione di 30°. pitch = 40.A U T O M A Z I O N E I N D U S T R I A L E - A . Z = 125. 2 0 0 5 . Questa posizione può essere raggiunta da un robot solo se possiede il meccanismo del 5° asse 45 . Y = 100. and roll = 0. Questa rotazione non è da intendersi attorno all’asse Z principale. dopo che la rotazione YAW è stata applicata. cioè quello corrispondente alla estremità del robot.2 0 0 6 Yaw Yaw è la rotazione del sistema locale di riferimento attorno al suo asse Z. yaw = 30. pitch = 0. and roll = 0. Y = 100. A . Z = 125.

Y = 100. 2 0 0 5 . A . Questa posizione può essere raggiunta da un robot solo se possiede il meccanismo del 5° e 6°asse. Z = 125. pitch = 40. and roll = 20. La seguente figura mostra l’asse YAW con una rotazione di 30°.2 0 0 6 Roll Roll è definita come rotazione del sistema locale di riferimento attorno al suo asse Z. l’asse PITCH con una rotazione di 40° e l’asse ROLL con una rotazione di 20°.A U T O M A Z I O N E I N D U S T R I A L E - A . yaw = 30. dopo che la rotazione YAW e PITCH è stata applicata. La transformation risultante è quindi rappresentata dai valori X = 30. 46 .

2 0 0 5 . A . disponendo sempre delle coordinate di ogni singola posizione del vassoio rispetto al vassoio stesso. E' facile modificare una transformation per cambiare una locazione. solo la componente X della transformation necessita di un aggiustamento. Pertanto.xx mm Y = xxx. potremo fare riferimento alla seguente notazione: X = xxx. Il vassoio si muove su un sistema di trasporto a cinghia e non è detto che si fermi sempre nella stessa posizione. nonostante che i due movimenti possano avvenire in direzioni differenti. una transformation è definita per essere usata con un robot.xx mm y = 0° p = 180° r = xxx. Ad esempio. roll and yaw generano lo stesso movimento nello stesso piano. è possibile usare le relative transformation per costruire un’applicazione in cui le locazioni di assemblaggio cambiano periodicamente. Per esempio. 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°.2 0 0 6 Situazioni Particolari Quando l’assi Z del sistema di riferimento locale e primario sono paralleli. Relative Transformations Una delle caratteristiche più potenti delle transformation è chiamata "relative transformations"). è sufficiente autoapprendere solo la posizione che identifica il sistema di riferimento relativo del vassoio. poiché questo metodo di rappresentazione di locazioni è strettamente legato al layout dell'area di lavoro del robot. Consiste nella possibilità di definire una locazione in maniera relativa ad un’altra. ma può essere usata anche per differenti robot (anche di modello diverso).xx° Poiché le transformations sono definite in termini di coordinate nell'area di lavoro.xx mm Z = xxx. In questo caso. ogni volta che vorremo rappresentare un location in un robot SCARA.A U T O M A Z I O N E I N D U S T R I A L E - A . per spostare una locazione nella direzione X. e di costruire un sistema di riferimento relativo rispetto al quale rappresentare una posizione. 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. x’ X y’ Y 47 .

. DY = 20 mm e DZ = 30 mm e definire una nuova locazione loc_b come relativa alla loc_a . Move to the location MOVE loc_a BREAK . A .2 0 0 6 Esempio di programma per muovere un robot nella posizione loc_a (X=300.150. Move to a location offset -50mm in X. può generalmente raggiungere una data posizione con più di una configurazione. loc_b = -50. 48 . 20mm in Y. 30) BREAK . Z=350). 0. Il computo di questa conversione richiede un tempo di calcolo molto limitato ma può introdurre piccoli errori nel posizionamento. 20. to "loc_a" HERE loc_a:loc_b . La configurazione di un robot descrive la posizione relativa di ogni joint quando il robot è comandato a muoversi ad una specificata locazione. Una transformation definisce la posizione e l'orientamento della pinza del robot (tool) in termini di coordinate nello spazio di lavoro. Sfortunatamente ci sono anche degli svantaggi nell'utilizzo delle transformations. Y=150. Define "loc_b" to be the current location relative . senza ulteriori informazioni sulla specifica configurazione che il robot possiede nel punto raggiunto.350. Un altro svantaggio.0) .A U T O M A Z I O N E I N D U S T R I A L E - A . tramite una apposita istruzione. Uno di questi consiste nella richiesta del controllo di configurazione. Ad esempio.180.0. Define a simple transformation SET loc_a = TRANS(300. la configurazione voluta per il raggiungimento del punto. e le altre locazioni saranno traslate di conseguenza. se pur minore. E' compito del programmatore specificare. 20. un robot con 6 gradi di libertà. è 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. che ha quindi 6 joints. and 30mm in Z relative to "loc_a" MOVE loc_a:TRANS(-50. 0 BREAK Il vantaggio di questo tipo di definizione di locazione è che un cambiamento di posizione di uno degli oggetti intermedi può essere fatto. da qui spostarsi in maniera relativa di DX = -50 mm. 0. 2 0 0 5 . 30.

le transformations sono maggiormente utilizzate per la rappresentazione di locazioni. Aspetti positivi: Le Transformations sono robot indipendenti.5. A . 2 0 0 5 . 49 . Per tali motivi.A U T O M A Z I O N E I N D U S T R I A L E - A .2 Precision Points Precision Point è una identificazione di locazione riferita allo stato JOINT. 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. l'uso delle transformation è generalmente molto conveniente ed spesso applicato.2 0 0 6 Nonostante queste osservazioni. Questa forma di rappresentazione può essere molto vantaggiosa in certe situazioni. più che per i vantaggi nel loro utilizzo. Un valore di locazione è chiamato precision point quando la locazione del robot è rappresentata dall'esatta posizione di ogni singolo joints (valore angolare). 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. 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 l’orientamento del gomito (lefty o righty) Tempo di calcolo per conversione della rappresentazione cartesiana in rappresentazione angolare 2. 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. 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.

6 Variabili per identificazione di "Locations" Queste variabili permettono di collegare un nome alla locazione del robot per facilitarne l'identificazione. Se il sistema che legge i dati ha un numero di joints minore del numero delle componenti memorizzati nel disco. quelle dei precision points devono essere sempre precedute dal simbolo "#". il valore zero verrà assunto come default per le componenti mancanti. punti e caratteri di sottolineatura Le lettere usate per descrivere una variabile possono essere digitate sia in carattere maiuscolo che minuscolo. 2 0 0 5 . V+ visualizzerà sempre nomi in carattere maiuscolo I nomi di variabili possono avere al massimo 15 caratteri. Quando una precision point viene memorizzata in un "disk file" mediante i comandi di STORE e STOREL. 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). numeri. può essere letta dal disco da qualsiasi V+ robot system. Ad esempio: part_1 #pick per transformation per precision point 50 . quella extra verrà ignorata. 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. Esempio di nomi validi per identificare variabili di "location": p alimentatore pallet. Se invece il sistema che legge i dati ha un numero maggiore di joints rispetto al numero di componenti memorizzati. A . Se viene digitato un nome più lungo.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.2 0 0 6 Una precision point ha una componente per ogni joint del robot in uso nel momento in cui è stata definita. 2.A U T O M A Z I O N E I N D U S T R I A L E - A .

Il linguaggio V+ supporta matrici a una. L'indice della matrice deve essere un numero intero compreso tra 0 e 32767 ed una qualsiasi espressione matematica può essere utilizzata per specificarlo. "part [ ]" equivale a "part [0]" ).6. 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. A . Ogni valore della matrice è chiamato elemento.2 0 0 6 E' possibile usare lo stesso nome per esprimere precision points e transformations.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 [ 1. due e tre dimensioni. Ogni volta che una variabile è definita può essere utilizzata da qualsiasi programma operante nel sistema. 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. Nel caso di utilizzo di matrice multidimensionale.3 ] a [ 2.3 ] a [ 1. il comando LISTL part [ ] richiede di visualizzare tutti i valori di location contenuti nella matrice part. Ad esempio "part [7]" si riferisce all'elemento numero 7 della matrice mono dimensionale chiamata "part".4 ] a [ 2.2 ] a [ 1. il valore zero è assunto come indice (es.1 ] a [ 2. 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. a meno che questa non sia stata definita come locale in uno specifico programma.1 Variabili per identificazione di matrici ("Array") Le variabili di locazione possono essere di tipo semplice o matriciale. Quando si utilizza una chiamata ad un array senza specificarne l'indice. Ad esempio. 2 0 0 5 .2 ] a [ 2. ma non è possibile utilizzare lo stesso nome per transformations e variabili reali ("real").1 ] a [ 1. In certe situazioni l'omissione dell'indice significa che tutti i possibili valori di quella matrice devono essere considerati. 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. ed è specificato dall'aggiunta di un indice racchiuso tra parentesi quadra (tre nel caso tridimensionale) al nome della matrice.

A .2 Come definire le variabili Il V+ permette molteplici metodi per definire variabili di locations.2 ] a [ 2.2 0 0 6 Esempio scorretto di matrice di punti 2 x 4.2 ] E' possibile definire matrici sia di transformations che di precision points. a [ 1.6. 2 0 0 5 . la variabile risulterà non definita ed ogni tentativo di riferimento ad essa risulterà come condizione di errore. 2.2 ] a [ 4. i comandi T e TS possono essere utilizzati per iniziare una registrazioni di locations tramite Manual Control Pendant. Setta la variabile di sinistra uguale a quella di destra e permette un editing interattivo Durante l'editing di un programma.1 ] a [ 1.2 ] a [ 3. Ogni variabile è automaticamente definita la prima volta che gli viene assegnata un valore.1 ] a [ 3. Qualsiasi dei seguenti approcci può essere utilizzato per la definizione di variabili e per la assegnazione di relativi valori. Fino a che ciò non accade. Definizione di variabili durante l'esecuzione di un programma: L'istruzione HERE assegna un nome ad una locazione del robot quando l’istruzione è eseguita L'istruzione SET può essere usata per assegnare un valore di locazione ad una variabile 52 .1 ] a [ 4. 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.A U T O M A Z I O N E I N D U S T R I A L E - A .1 ] a [ 2.

.axis . A differenza delle relative transformations.A U T O M A Z I O N E I N D U S T R I A L E - A .y .7 Compound transformations (trasformazioni composte) Le compound transformations permettono di specificare locazioni relative a locazioni rappresentate da altre transformations.pos. Questo metodo è molto comodo in situazioni in cui molte locazioni devono essere definite come relative ad una locazione di riferimento. ".Release robot for use by the MCP PROMPT "Place robot at pallet origin. 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.Record positive y direction 53 . $ans HERE loc. Get the locations to define the pallet DETACH () .2 0 0 6 2. Il programma che segue autoapprende 3 locazioni che definiscono il sistema di riferimento relativo del PALLET e successivamente rimuove le parti in esso contenute. Quindi. ". un pallet è stato posizionato all’interno dell’aria di lavoro mediante un convogliatore.Record point on x-axis PROMPT "Place robot at point in positive y direction. in questo caso il sistema tiene conto anche dell’orientamento del frame. Nell’esempio mostrato in Figura.origin . ". 2 0 0 5 .Record the frame origin PROMPT "Place robot at point on the pallet x-axis.x. $ans HERE loc. Il programma funzionerà indipendentemente da dove il pallet sarà posizionato all’interno dell’aria di lavoro del robot. $ans HERE loc. A .

100 MOVE x 54 .frame = FRAME(loc.frame" SET pallet. Ad esempio.space) BREAK . loc.frame:grasp conviene usare SET x = pallet.Grab the part DEPART 25 . il codice di programma che autoapprende il frame del pallet deve girare solo quando il pallet cambia locazione. 2 0 0 5 .origin) cell.frame:grasp.frame:TRANS(i*cell.space.x.space.axis. L'utilizzo delle compound transformations può introdurre dei piccoli errori nel posizionamento a causa dei cumulativi errori computazionali che si possono verificare nel calcolo. A .2 0 0 6 ATTACH (). Create the local reference frame "pallet. 25 MOVE pallet.frame:grasp APPRO x. j*cell.space = 50 .A U T O M A Z I O N E I N D U S T R I A L E - A . nell'approccio ad una locazione di presa "grasp" ed al relativo movimento ad essa. invece di usare APPRO pallet. è vantaggioso fare uso dell'istruzione di SET per ridurre il numero di volte in cui viene calcolata.Settle robot CLOSEI .loc.space).MOVE to the drop off location END END Nel sopra citato esempio. Reattach the robot . loc.Spacing of cells on pallet . j*cell.y. In situazioni in cui una compound transformation venga utilizzata spesso.origin. 100 MOVE pallet.frame:TRANS(i*cell.pos. Remove the palletized items FOR i = 0 TO 3 FOR J = 0 TO 2 APPRO pallet.

la seconda versione porterà via meno tempo della prima in fase di esecuzione poiché il calcolo della compound transformation viene fatto solo una volta. come nella sequenza MOVE pick BREAK il robot comincia a muoversi verso la locazione accelerando regolarmente fino a raggiungere la velocità impostata. Comunque.1 SIGNAL 1 MOVE part. L'esecuzione di un programma in V+ continua non appena il robot ha cominciato il suo movimento alla destinazione specificata. il V+ aspetterà fino a quando il movimento a "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.2".1 MOVE loc. Quando una singola istruzione di movimento è processata.1" piuttosto che aspettare l'arrivo del robot alla locazione.8 Robot motions Il V+ processa le istruzioni di movimento del robot in modo differente da quello che di solito ci si aspetta. Quando viene eseguita una sequenza di istruzioni di movimento del tipo MOVE loc. subito dopo aver dato il via al movimento verso il punto "part. A . 2. cioè quando il robot si starà avvicinando alla locazione "pick". 2 0 0 5 . senza controllare direttamente l'attività del robot. la sequenza di istruzioni MOVE part.2 0 0 6 Mentre questi due segmenti di programma sono funzionalmente equivalenti. avrà inizio la fase di decelerazione fino alla fermata. Quando la seconda istruzione di movimento verrà incontrata. anche il secondo segnale digitale di uscita sarà settato in ON.2 BREAK 55 . Una istruzione di movimento come "MOVE pt1" è interpretata come inizio del movimento del robot per raggiungere la locazione "pt1". A questo punto.1" non sarà terminato.A U T O M A Z I O N E I N D U S T R I A L E - A . Qualche momento dopo.

1" non sarà raggiunta. Questo tipo di movimento è rappresentato da due "segmenti di movimento" poiché è stato generato da due istruzioni separate. La traiettoria continua 56 . 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). senza arresto.2". 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. Cambierà invece la sua direzione ed il robot inizierà a muoversi verso "loc. L’esecuzione parallela di istruzioni robot motions and non-motion permette a ogni successivo movimento di essere effettuato senza l’arresto del manipolatore. Queste azioni sono chiamate breaking continuos path. Questo è il normale metodo che utilizza il V+ per muovere il robot. Il transito regolare tra segmenti di movimento.2 0 0 6 il robot comincia a muoversi verso la locazione "loc.1" accelerando regolarmente fino a raggiungere la velocità impostata. Questa istruzione causa l'attesa dell'esecuzione dei passi di programma successivi fino a quando la "loc. quando sarà in prossimità di "loc.2".2".1 BREAK SIGNAL 1 L'istruzione MOVE comincia a far muovere il robot alla locazione "loc. Alla fine. 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. come accadeva anche prima. si verificherà la decelerazione fino all'arresto su "loc.(procedural motion).2" .1" e l'esecuzione del programma continua con l'istruzione di BREAK. Il risultato è che il segnale digitale di uscita #1 non sarà abilitato fino a che il robot non avrà raggiunto la sua locazione. è chiamato continuos-path operation.1 Procedural Motion Un’altra caratteristica del V+ è quella di effettuare movimenti secondo traiettorie rettilinee e archi di circonferenza con interpolazione di assi. 2 0 0 5 . Consideriamo la sequenza di istruzioni MOVE loc. ma senza decelerare o fermarsi su "loc.A U T O M A Z I O N E I N D U S T R I A L E - A . A . Una procedural motion è un loop di programma che calcola molti piccolo spostamenti per costruire il movimento finale richiesto.

). Procedural Motion Examples Di seguito sono descritti due semplici esempi di procedural motions. Poiché l’istruzione DURATION è stata usata. In ultimo si suppone che la variabile angle. Se il percorso non è pre memorizzato.2 0 0 6 (continuous-path) è una specifica del V + e smorza automaticamente la transizione tra segmenti di movimento. In questo caso si assume che la variabile reale “raggio” sia già stata assegnata come raggio dell’arco desiderato. y.5 secondi.center y = radius*SIN(angle)+y. (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. 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[ ].A U T O M A Z I O N E I N D U S T R I A L E - A .step sia stata definita come incremento angolare valido per ogni incremento di movimento.center e y. il programma muove la pinza per un incremento angle. 0. e il centro sia stato assegnato come coordinate x.center del rispettivo centro di curvatura. A . 2 0 0 5 . 180. Nel secondo esempio la pinza del robot si muove lungo una traiettoria circolare.step x = radius*COS(angle)+x.center MOVE TRANS(x. può essere descritto da una funzione matematica basata sul raggio e sul centro dell’arco di circonferenza da percorrere.step lungo un arco ogni 0.5 ALWAYS FOR angle = start TO last STEP angle. 0. Nel primo esempio il robot si muove lungo una traiettoria descritta da locazioni memorizzate in una matrice. 0) END 57 . DURATION 0.

il robot muove al 25% della sua velocità normale. Con la monitor speed settata a 50 e la program speed settata a 50. 2 0 0 5 . A .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. il robot muove alla sua velocità normale. Quanto velocemente si muove il robot tra la fase di accelerazione e di decelerazione durante un movimento (robot speed) 2. 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 l’istruzione di movimento successiva (a meno che non venga dichiarato ALWAYS). NORMAL SPEED: Velocità normale del robot (dichiarata dal costruttore) MONITOR SPEED: Velocità settata dal sistema operative come percentuale della NORMAL SPEED. 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.2 0 0 6 2. Con la monitor speed e la program speed settate a 100. 58 .A U T O M A Z I O N E I N D U S T R I A L E - A . Questo valore viene setto a 100 per default La velocità effettiva del Robot è quindi il prodotto di queste due velocità.

A U T O M A Z I 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 .

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 .

A .A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 61 . 2 0 0 5 .

A .A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 62 . 2 0 0 5 .

A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .2 0 0 6 63 . 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 U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .2 0 0 6 65 . A .

L'AWC occupa lo slot 1 della piastra posteriore. 66 . Il telaio MV-5 Adept ha una alimentazione da 250-watt. Si può unire ad un Telaio di alimentazione PA-4 Adept e le unità congiunte si possono montare in armadio standard da 19 pollici. La versione indipendente è orizzontale e si può montare in armadio standard da 19 pollici. Il telaio viene raffreddato da una ventola situata nella parte anteriore inferiore.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. A . fase singola auto limitante VAC 100120/200-240. La versione robot è verticale. 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 armadiatura standard da 19 pollici.2 0 0 6 2. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. 2 0 0 5 . La versione robot è verticale. L'MV-5 Adept richiede una scheda AWC in configurazione 68040 o 68060. Esistono tre modelli di controller. Si può unire ad un telaio di alimentazione PA-4 Adept e le unità congiunte si possono montare in armadio standard da 19 pollici. Adept MV-5. Controller MV-5 Il controller Adept MV-5 è un telaio a 5 slot disponibile sia come unità indipendente sia come configurazione robotica. e Adept Compact Controller.A U T O M A Z I O N E I N D U S T R I A L E - A . MV-10.

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 telaio MV-10 Adept ha una alimentazione da 350-watt. 67 . 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.2 0 0 6 L'MV-10 Adept richiede una scheda. una scheda AWC in configurazione 68040 o 68060. Il Controller Adept Compact richiede una scheda. una scheda AWC in configurazione 68040 o 68060. L'AWC occupa lo slot 1 della piastra posteriore. A . 2 0 0 5 . Il telaio a quattro slot è alimentato dalla piastra posteriore PA4 e non necessita di un'alimentazione esterna autonoma. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. 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).A U T O M A Z I O N E I N D U S T R I A L E - A . fase singola auto limitante VAC 100120/200-240. L'aria che entra viene pulita da un filtro riutilizzabile. I rimanenti slot si possono occupare con varie combinazioni di schede Adept optional. Il telaio viene raffreddato da una ventola situata nella parte anteriore inferiore. Il controller compact non è disponibile nella versione indipendente. L'AWC basato su 68060 si può utilizzare come processore del sistema ausiliario. L'AWC occupa lo slot 1 della piastra posteriore.

A . Gli altri 16 MB di RAM sull'AWC 060 vengono forniti mediante una memoria di espansione CPA. Adept la considera una parte integrante dell'AWC 060. L'AWC 060 viene testato e montato con la scheda di espansione della memoria installata.2 0 0 6 La scheda AWC comprende una Compact Flash RAM che prende il posto dell'unità a disco fisso tradizionale.5 a 2 volte potenza di elaborazione dell'AWC 040. La scheda AWC è un modulo VME con slot singolo 6U che si collega nella piastra posteriore di qualsiasi telaio MV Adept. alcuni sistemi utilizzando il Compact Flash (CF). MV-5 e MV-10. Benché sia rimovibile. Si può rimuovere e può essere spostata ad un'altra scheda AWC per la sostituzione e la verifica.A U T O M A Z I O N E I N D U S T R I A L E - A . 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. 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. 68 . L'AWC 060 utilizza un processore 68060 da 50 MHz con 24 MB RAM. Ci sono due configurazioni del processore/memoria per la scheda AWC. 2 0 0 5 . compresi MV-4. L'AWC 040 utilizza un processore 68040 da 25 MHz con 8 MB RAM. Comprende anche un collegamento Ethernet per le comunicazioni generali in rete e per l'interfaccia AdeptWindowsPC. Al posto della tradizionale unità a disco fisso. Non interferire con il PCA dell'espansione della memoria.

la maggior parte dei programmi V + dei clienti si adattano al Compact Flash con 8 MB. 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. all'unità floppy e alle ulteriori porte seriali. 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.A U T O M A Z I O N E I N D U S T R I A L E - A . La scheda del sistema di I/O (SIO) provvede alle funzioni del sistema di I/O del controller. A . Possiede un'unità a disco fisso. Compact Flash è destinata come unità D. 69 . Per i sistemi che non utilizzano AIM. Con i sistemi PC AdeptWindows si può utilizzare il software NFS fornito per montare le unità a disco fisso in modalità remota. Le unità A e C sono riservate alle unità floppy e a disco fisso sulla SIO.2 0 0 6 Compact Flash è disponibile in due misure. 2 0 0 5 . attualmente è di 30 MB (che può essere aumentata in futuro). un'unità floppy e tre porte seriali utente RS-232. La capacità CF che viene inviata insieme ai sistemi AIM. I sistemi basati su AIM richiedono una memoria superiore.

A . Inoltre la VGB ha un collegamento diretto del bus del video con la scheda EVI nei sistemi AdeptVision. La VGB ha connettori per monitor. La scheda grafica Adept (VGB) provvede alla capacità dei grafici per i controller Adept. AdeptWindowsPC è una sostituzione funzionale di VGB. che consente l'uso di un PC per visualizzare i grafici). trackball. ecc.A U T O M A Z I O N E I N D U S T R I A L E - A . 70 .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. 2 0 0 5 . (Si può anche utilizzare un PC e il software AdeptWindowsPC come interfaccia grafico operativo. tastiera e dispositivo di puntamento (mouse.) dedicati.

la scheda EVI è in grado di elaborare una convoluzione 3 x 3 su un'immagine 512 x 488 in sei millisecondi. 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. La scheda MI3 è una scheda VME a slot unico 6U progettata per comandare tre assi di movimento. La scheda EVI presenta un processore dedicato per avviare le convoluzioni.A U T O M A Z I O N E I N D U S T R I A L E - A . Schede d'interfaccia AdeptMotion (M13/M16) È necessaria una scheda d'interfaccia AdeptMotion (MI13 o MI16) per avviare il prodotto VME AdeptMotion. 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. 71 . La scheda EVI è in grado di supportare fino a quattro telecamere e due luci ad impulso stroboscopico. A .È dotata di un connettore telecamera/impulso stroboscopico per i segnali della telecamera e di impulso stroboscopico.2 0 0 6 Scheda d'interfaccia AdeptVision (EVI) La scheda d'interfaccia AdeptVision (EVI) necessita di prodotti AdeptVision sui controller Adept. È necessario AdeptNet quando si utilizza EVI con AdeptWindows. La scheda MI6 comanda 6 assi. 2 0 0 5 . Il connettore del bus del video è dotato di collegamenti diretti del segnale del bus del video con la scheda optional VGB. Ad esempio.

Altri componenti inclusi nel prodotto sono il modulo del software VME AdeptForce e l'unità del sensore della forza installata su un robot. A . La scheda EJI possiede dei connettori per il cavo del telaio alimentazione e per il cavo del segnale del braccio (robot). La scheda EJI si interfaccia con i codificatori e gli amplificatori del robot. 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. 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. Inoltre EJI costituisce l'interfaccia per i codificatori del nastro nelle applicazioni di trasporto dei robot Adept. 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. 72 . Tutte le entrate e le uscite dei dispositivi esterni sono optoisolate. 2 0 0 5 . La scheda VFI elabora i dati dal sensore della forza e poi effettua le letture della forza disponibili per i programmi dell'utente. Si possono installare fino a quattro schede MI6/MI3 in un Controller Adept. entrate di codifica incrementali e I/O digitali per il comando della macchina e dell'amplificatore. 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.2 0 0 6 Ogni scheda possiede uscite dall'unità del servomeccanismo. C'è un altro connettore per i codificatori esterni. La scheda VFI rappresenta l'interfaccia del sensore della forza che viene installato su un robot o su un dispositivo di movimento. solitamente si usa per il tracciato del nastro. La scheda VME AdeptForce (VFI) fa parte del Prodotto AdeptForce VME.A U T O M A Z I O N E I N D U S T R I A L E - A .

Le otto entrate all'interno di ciascun gruppo hanno una messa a terra comune. Si tratta di una scheda VME asservita 6U e tutti gli ingressi e le uscite sono optoisolate. Ogni connettore fornisce l'accesso a due gruppi d'entrata. Le otto uscite all'interno di ciascun gruppo hanno una fornitura comune di alimentazione e una messa a terra comune. Un'entrata viene attivata fornendo un potenziale positivo sul pin d'entrata corrispondente al pin di messa a terra del suo gruppo. Ogni gruppo richiede 10 pin: 8 segnali d'entrata e 2 masse a terra di riferimento. la corrente deve fluire nel pin d'ingresso). 73 . Ciascun gruppo è optoisolato elettricamente dagli altri gruppi e dalla circuiteria dei bus VME.A U T O M A Z I O N E I N D U S T R I A L E - A . Si accede alle entrate mediante i due connettori d'entrata D-sub a 26 pin sulla parte frontale della scheda. Ciascun gruppo è optoisolato elettricamente dagli altri gruppi e dal circuito dei bus VME. per avviarlo. 2 0 0 5 . I 32 canali d'uscita sono organizzati in quattro gruppi di otto. A . I 32 canali di ingresso sono organizzati in quattro gruppi di otto.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. Questo tipo di input viene considerato “di immersione” (ossia.

2 0 0 6 Si accede alle uscite mediante i due connettori d'uscita D-sub a 44 pin sulla parte frontale della scheda. 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. AdeptVision e sensore di forza oppure con la licenza di estensione optional V + si possono avviare diversi sistemi operativi V + . Ogni gruppo richiede 19 pin: 8 segnali d'uscita. Si possono installare fino a 8 schede DIO. Quando un'uscita è attivata. la corrente esce dal pin di uscita). 74 . 1 segnale di prova. 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. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . 9 per l'alimentazione (tutti collegati tra loro) e 1 di riferimento della messa a terra dell'alimentazione. Ogni canale (circuito) di uscita dovrà essere collegato a un solo dispositivo di uscita. Questo tipo di uscita viene considerato di “sourcing” (ossia. a seconda della disponibilità degli slot. A . Si può assegnare un processore ausiliario per gestire le operazioni di elaborazione di VME AdeptMotion. nello stato on. Ogni connettore consente l'accesso a due gruppi d'uscita. la corrente entra mediante i pin di alimentazione ed esce dai pin d'uscita.

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 l’intero meccanismo esegua il movimento comandato dall’operatore. come mostrato nella seguente figura. In primo luogo. 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. A . ammortizzatore e massa. comanda il motore. La retroazione viene eseguita 500 o 1000 volte al secondo per mezzo del software Adept Motion. 2 0 0 5 . posizionati su ogni joint. 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). raggiunge il sistema di controllo di ogni singolo motore ed. permette il monitoraggio della posizione di un convogliatore in movimento e genera il segnale per sincronizzare la telecamera nel sistema di visione. 75 . il sistema opzionale di Visione.2 0 0 6 2.A U T O M A Z I O N E I N D U S T R I A L E - A . 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. in base al valore di servo-loop rate impostato dall’utilizzatore.12 Descrizione del sistema di controllo Il sistema di interfaccia joints provvede ad effettuare due funzioni di controllo. trasmettono l'informazione sul posizionamento alle schede di controllo assi. La seguente figura mostra un diagramma del flusso di comando che parte dal programmatore. Gli encoder. controlla i motori che guidano il manipolatore ed inoltre. infine. Il V+ fa affidamento ad ogni singolo sistema di controllo assi per assicurare che i motori rispettino in modo accurato il proprio posizionamento. attraversa il sistema operativo. il motore potrà comportarsi come una molla passiva. Se il sistema di controllo è stato aggiustato correttamente.

2 0 0 5 . esattamente come la molla che tira dal suo centro. L’obiettivo 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. e non solamente dalla posizione comandata. l’oscillazione risultante sarà compensata così come agirebbe l’ammortizzatore attaccato alla molla e alla massa. 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 sull’errore. A . 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. perché il commando inviato al motore dal sistema di controllo è determinato sia dalla posizione attuale che dalla posizione comandata. con la posizione di setpoint impostata dal V+ che diventa il centro della molla.2 0 0 6 Come si incrementa l’errore di posizione del motore.A U T O M A Z I O N E I N D U S T R I A L E - A . Questo comportamento è chiamato risposta del closed loop. viene applicata una coppia correttiva che ha un effetto incrementante. Se il motore viene quindi rilasciato. In questo modo il sistema si comporta come una molla e un ammortizzatore. 76 .

2 0 0 6 Per la regolazione del sistema di controllo motori vengono utilizzate due misure primarie: time response frequency response L’analisi del time response misura il comportamento del motore ai cambiamenti di posizione del setpoint.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . per generare un errore di posizione che è utilizzato per calcolare il prossimo valore di coppia. A . L’analisi del frequency response misura come il sistema risponde ad un ingresso sinusoidale (sinewave setpoints) su diverse frequenze. Sulla base del comportamento del motore vengono aggiustati i parametri del sistema di controllo. l’ampiezza della risposta dovrà diminuire sensibilmente limitandosi ai valori di risonanza. 77 . il sistema di controllo riceve i comandi di posizionamento dal V+ ed esegue una serie di calcoli su percorso Proporzionale. Questo comando di coppia verrà filtrato dall’amplificatore ed inviato ad un convertitore Digitale/Analogico (DAC) che converte il segnale digitale di coppia in valore analogico (±10 volt signal) che alimenta l’amplificatore del motore. La posizione attuale del motore è comparata con il successivo comando di posizione V+. Come già detto. La figura mostra un diagramma a blocchi del sistema di controllo AdeptMotion VME. Ad alte frequenze. Integrale e Derivativo che permettono di determinare la coppia finale.

78 . Comandi di coppia con valore assoluto maggiore rispetto a questo. A . DAC Output Filter è un dispositivo digitale di filtro passa basso nel commando di coppia finale. che corrisponde ad un voltaggio compreso tra 0 e 10 Volt dopo che il comando è stato inviato al DAC. 1. 3. 2 0 0 5 . saranno tagliati o saturati.A U T O M A Z I O N E I N D U S T R I A L E - A . Motor Sign determina se un comando digitale positivo di coppia corrisponde a un voltaggio positivo o negativo. Sono visualizzati 3 parametri che hanno effetto sul valore di coppia finale prima che venga inviata all’amplificatore del motore. Il range di lavoro del DAC output è da 0 a 32767.2 0 0 6 2. Questo parametro è spesso utilizzato ad un basso valore 2.12. Maximum DAC Output specifica il massimo commando di coppia che dovrà essere inviato all’amplificatore.1 Amplifier Control Section La Figure mostra la sequenza dettagliata della sezione di controllo Amplificatori.

A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .2 0 0 6 2. A .13 Interconnessione hardware delle schede sul Controller Adept 79 .

Nomi di programmi e di variabili non possono eccedere i 15 caratteri. il programma di controllo di processo è in grado di monitorare e controllare simultaneamente processi interni o esterni. Esistono due tipologie principali di programmi: Executable Programs. 3. 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. con un normale TEXT EDITOR. 2 0 0 5 .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.A U T O M A Z I O N E I N D U S T R I A L E - A . I nomi devono cominciare con una lettera e possono essere seguiti da una sequenza di lettere. V+ visualizza sempre nomi di programmi e di variabili in lettere minuscole. 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 sull’utilizzo di Program Instructions. Durante l'esecuzione del programma di controllo del robot. I “Command programs” sono simili ai programmi “batch” per MS_DOS o UNIX e si basano sull’utilizzo di Monitor Commands. il programma di processo può alterare la sequenza delle operazioni tramite l'utilizzo di variabili interne o segnali di trasmissione I/O. trattini e caratteri di sottolineatura. 80 .2 0 0 6 3 3 Il linguaggio di programmazione V+ Il V+ è il linguaggio di programmazione dei controllori Adept. Le lettere possono essere digitate in maiuscolo o minuscolo. Mentre il programma di controllo del robot sta "guidando" la sequenza di movimento del manipolatore. A . numeri. I processi da controllare sono tipicamente comunicazioni con altre periferiche o interblocchi di sicurezza.

2 0 0 5 .1 Robot Control Programs Un robot control program è un programma V + che controlla direttamente un robot o un attuatori di movimento. or GLOBAL instructions devono precedere qualunque istruzione eseguibile del programma.2. or GLOBAL instructions La fine di un programma deve essere identificata da una riga che comincia con .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). I general programs possono anche comunicare con il Robot control program attraverso variabili globali e segnali software (soft signals). 3.Comment Il program_name nome è obbligatorio. A . Con un sistema robotizzato si possono avere più programmi in esecuzione contemporanea (multi tasking) che dialogano con il robot control program. LOCAL. Dopo la linea .2 0 0 6 3. In aggiunta. Questo significa che all'interno dello stesso elaboratore più "jobs" possono essere eseguiti contemporaneamente nello stesso tempo. I robot control programs sono normalmente eseguiti dalla program task #0.2 General Programs Un general program è un qualsiasi programma V + che non controlla direttamente un robot o un attuatori di movimento.A U T O M A Z I O N E I N D U S T R I A L E - A .PROGRAM program_name(parameter_list) . 3. Può contenere qualsiasi tipo di istruzione V+. ed ha il seguente formato: .1. 81 .PROGRAM e AUTO. Ad esempio. definirne gli argomenti che riceve o invia. ma possono essere eseguiti anche da altre task disponibili col sistema operativo V+. la scheda EJI si interfaccia con i codificatori e gli amplificatori del robot. Solo righe di commento o righe vuote sono permesse tra .PROGRAM ci sono sue restrizioni prima di passare alle istruzioni tradizionali: AUTO. 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). LOCAL. 3. La Task #0 si connette automaticamente con il robot quando comincia l’esecuzione del programma principale nella task #0.1. un programma addizionale può monitorare e controllare processi esterni attraverso segnali digitali o analogici. mentre parameter_list e comment sono opzionali.2 Organizzazione di un programma La prima istruzione per creare un nuovo programma V + PROGRAM serve per nominare il programma.END.

the numbers in the first column are program step numbers (these numbers are not displayed in the SEE editor). In the next code example. come riportate sui manuali di programmazione e User Guide Adept 3. 82 . The numbers in the second column are program labels. A . 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. che comprende le istruzioni si salti incondizionato e condizionato. anche se il robot si sta muovendo alla massima velocità. Questa interruzione di processo consuma approssimativamente 7 mS (1. 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). le seguenti pagine sono state lasciate volutamente in lingua inglese. The syntax for GOTO is: GOTO label label is an integer entered at the beginning of a line of program code.A U T O M A Z I O N E I N D U S T R I A L E - A .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. label is not the same as the program step numbers: Step numbers are assigned by the system.2 mS se il robot non è in movimento. il processore principale è in grado di eseguire fino a 600 istruzioni al secondo. 2 0 0 5 . Quindi. Per evitare fraintendimenti nella comprensione di questa parte. labels are entered by the programmer as the opening to a line of code. 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. 2 mS se il robot si sta muovendo in interpolazione di joints. tipiche di molti linguaggi di programmazione. 3.3.3 Program Control In questo capitolo introduciamo la struttura per il controllo di programmi disponibile in V+.2 0 0 6 Robot e processo sono controllati come di seguito descritto: Ogni 16 mS il processore principale viene interrotto.

2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . and the program being CALLed must be resident in system memory. 100 TYPE "The instruction GOTO 100 got me here. The simplified syntax for a CALL instruction is: CALL program (arg_list) program arg_list is the name of the program to be called. 65 66 . When the new program has completed execution. 64 . complicated program with many subroutine calls. CALL The CALL and CALLS instructions are used in V + to implement subroutine calls. suspends execution of the calling program. especially in a long. 62 63 ." GOTO 100 A GOTO instruction can branch to a label before or after the GOTO instruction. is the list of arguments being passed to the subroutine. execution of the original program resumes at the instruction after the CALL instruction. 83 . locy. A common use of GOTO is as an exit routine or exit on error instruction. These arguments can be passed either by value or by reference and must agree with the arguments expected by the program being called. The CALL instruction causes program execution to be suspended and execution of a new program to begin. executes check_data. locy. and (after check_data has completed execution) resumes execution of the calling program at step 50. The code: 48 49 50 . GOTO instructions can make program logic difficult to follow and debug. length) . CALL check_data(locx. passes the arguments locx. Use GOTO instructions with care. and length to program check_data. A . The program name must be specified exactly.2 0 0 6 61 .

A program can be interrupted based on a state transition of a digital input signal with the REACT and REACTI instructions.3. STOP. A . Program errors can be intercepted and handled with a REACTE instruction. suspends execution of the calling program. program is a string value. and DELAY instructions.A U T O M A Z I O N E I N D U S T R I A L E - A . Program execution can be terminated with the HALT. or expression. WAIT TIMER(1) > 10 suspends execution until timer 1 returns a value greater than 10. EVENT instruction. 84 . (The ABORT and PROCEED monitor commands can also be used to suspend and proceed programs).) The code: 47 48 49 50 . WAIT WAIT suspends program execution until a condition (or conditions) becomes true.2 0 0 6 CALLS The CALLS instruction is identical to the CALL instruction except for the specification of program. -1028) delays execution until digital input signal 1032 is on and 1028 is off. A program can be put on hold until a specific condition becomes TRUE using the WAIT instruction. and PAUSE commands. These instructions interrupt the program in which they are contained. WAIT SIG(1032. $program_name = $program_list[program_select] CALLS $program_name(length. 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. This allows you to call different subroutines under different conditions using the same line of code. For a CALLS instruction. 3. BREAK. width) . 2 0 0 5 . Any programs running as other tasks are not affected. variable. executes the specified program. passes the parameters length and width to the program specified by array index program_select from the array $program_list. Robot motion can be controlled with the BRAKE. and resume execution of the calling program at step 50.2 Program Interrupt Instructions V + provides several ways of suspending or terminating program execution. (These different subroutines must have the same arg_list.

EVENT suspends execution until another task issues a SET. 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.7 seconds. 3. If the SET.2008 can be used for REACT instructions. Digital signals 1001 . program execution resumes at the step executing when the digital transition was detected.EVENT instruction to the waiting task. When (and if) a transition is detected. program. Both instructions specify a subroutine to be run when the digital transition is detected. REACT and REACTI When a REACT or REACTI instruction is encountered. REACT and REACTI suspend execution of the current program and call a specified subroutine.A U T O M A Z I O N E I N D U S T R I A L E - A . The instruction: WAIT. the program begins monitoring a digital input signal specified in the REACT instruction. A .7 suspends execution for 3. number from 1 to 127 that indicates the relative importance of the reaction. 85 . The signal monitoring initiated by REACT/REACTI is in effect until another REACT/REACTI or IGNORE instruction is encountered. the subroutine (and its argument list) that is to be executed when a react is initiated.EVENT .2 0 0 6 WAIT. 2 0 0 5 . After the specified subroutine has completed. This signal is monitored in the background with program execution continuing normally until the specified signal transitions. the REACT/REACTI instruction has no effect on program execution. The syntax for a REACT or REACTI instruction is: REACT signal_number.1012 and 2001 . priority signal_number program priority digital input signal in the range 1001 to 1012 or 2001 to 2008.EVENT does not occur. the task waits indefinitely. REACTI issues a BRAKE instruction to immediately stop the current robot motion.EVENT The instruction: WAIT. If the specified signal transition is not detected before an IGNORE or second REACT/REACTI instruction is encountered. Additionally. the program suspends execution at the currently executing step.

10 . . A . This includes all robot errors. 86 . and execution resumes at step 44. 2 0 0 5 . and execution resumes at step 50. REACTE REACTE enables a reaction program that is run whenever a system error that causes program execution to terminate is encountered. 48. . and most system errors (it does NOT include I/O errors). REACTE cannot be deferred based on priority considerations.Defer any REACTions to "alarm" MOVE c MOVE d LOCK 0. IGNORE -1001 . REACT will be in effect for the following code REACT -1001.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. Unlike REACT and REACTI. alarm. and 49 completes (since the program had been given a higher priority than REACT). Look for a change in signal 1001 from "on" to "off". step 43 completes. steps 47.Allow REACTions MOVE e .A U T O M A Z I O N E I N D U S T R I A L E - A . If signal 1001 transitions during execution of step 47. the subroutine alarm is called. Disable monitoring of signal 1001 MOVE a MOVE b LOCK 20. . The main program has default priority of 0. Call subroutine "alarm if a change is detected. Set priority of "alarm" to 10 (default would be 1). The instruction: REACTE trouble enables monitoring of system errors and execute the program trouble whenever a system error is generated. hardware errors. the subroutine alarm is called.

After a PAUSE. Program execution is not suspended and the program (executing as task 0) continues to execute at the next instruction. This instruction can be issued from any task. execution of the current program cycle is terminated and the next execution cycle resumes at the first step of the program. NOTE: The PANIC monitor command halts program execution and robot motion immediately but leaves HIGH POWER on. If the STOP instruction is encountered on the last execution cycle. BREAK suspends program execution (defeats forward processing) until the current robot motion is completed. When a STOP instruction is encountered. and any open serial or disk units are DETACHED and FCLOSEd. 2 0 0 5 . program execution is terminated. (See EXECUTE for details on execution cycles. This allows you to verify the values of program variables and set system parameters. and DELAY BRAKE aborts the current robot motion. A . STOP. 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. and PAUSE When a HALT instruction is encountered. BRAKE. A DELAY instruction specifies the minimum delay between robot motions (not program instructions). program execution is terminated. PROCEED or RETRY will not resume execution.2 0 0 6 HALT. This is useful during program debugging. execution is suspended. the system prompt appears and Monitor Commands can be executed. 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 . and any open serial or disk units are DETACHED and FCLOSEd. PROCEED or RETRY will not resume execution.) When a PAUSE instruction is encountered. The monitor command PROCEED resumes execution of a program interrupted with the PAUSE command. BREAK.

Zero is considered 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 + . that resolve to 0. There are four system constants.2 0 0 6 BREAK Example APPRO point-1. A . and FALSE and OFF.3. Examples of valid Boolean expressions: y > 32 NOT(y > 32) x == 56 x AND y (x AND y) OR (var1 < var2) -1 88 . or an expression that resolves to true or false). 2 0 0 5 . 50 BREAK MOVE point-1 BREAK DELAY 3.A U T O M A Z I O N E I N D U S T R I A L E - A . any number (real or integer) can satisfy this requirement. TRUE and ON that resolve to –1. any nonzero number is considered true.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.

z is assigned a value of 0 since the Boolean expression x == y is false and would therefore resolve to 0.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .2 0 0 6 If x has a value of 6 and y has a value of 10. A relational operator never changes the value of the variables on either side of the relational operator. A . 89 . 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.

90 ...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.... but a condition can be attached to the branch..2 0 0 6 If x = 6 and y = 10. IF logical_expression GOTO label logical_expression label Real-valued expression whose value is tested for TRUE (nonzero) or FALSE (zero). A .THEN.3. 2 0 0 5 . 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.. If the instruction: IF x > 0 GOTO 100 is encountered..A U T O M A Z I O N E I N D U S T R I A L E - A .ELSE CASE value OF IF.GOTO IF..GOTO IF.. the branch to label 100 occurs only if logical_expression X > 0 has a value of true. Program step label of a step in the current program.GOTO behaves similarly to GOTO.

. step 60 is executed. Otherwise. then pick up the part . 2 0 0 5 .2 0 0 6 IF.CALL "check_num" if "num_parts" is greater than 75 IF num_parts > 75 THEN CALL check_num(num_parts) END . IF SIG(1033) AND need_part THEN MOVE loc1 CLOSEI DEPART 50 . 33 34 35 36 37 38 39 40 41 ELSE 91 . Otherwise.. 32 . execution resumes at step 62.THEN. else alert the operator..A U T O M A Z I O N E I N D U S T R I A L E - A .. it executes step 42 and resumes at step 44. if program execution reaches step 59 and num_parts is greater than 75. true... 56 .ELSE clause.. the program executes steps 38 to 40 and resumes at step 44. 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). If I/O signal 1033 is on and Boolean "need_part" is . if program execution reaches step 37 with input signal 1033 on and need_part true. In the following example..ELSE The basic conditional instruction is the IF. 57 58 59 60 61 62 In the following example.THEN. A .

A U T O M A Z I 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

Since the Boolean expression is tested before the loop is executed... Create a busy loop waiting for signal . in which case the program execution would stop. and the program continues at step 73... The following code shows a WHILE...DO loop being used to validate input. WHILE.A U T O M A Z I O N E I N D U S T R I A L E - A .... 2 0 0 5 .". A .. the code within the loop will be executed. In the following code.. The form of the WHILE. if digital signal 1033 is on when step 69 is reached. an operator could enter a nonnumeric value.UNTIL loops are. 65 .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. 1033 to turn "on" WHILE NOT SIG(1033) DO 97 . 21 22 23 24 25 END .Wait for signal . Loop until operator inputs value in the range 32-64 PROMPT "Enter a number in the range 32 to 64.DO loops are susceptible to infinite looping just as DO.2 0 0 6 WHILE.DO WHILE.. If digital signal 1033 is off. 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. the loop does not execute. ans In the above code.. the code within the loop will be executed only when the operator inputs an unacceptable value at step 23.DO is a looping structure similar to DO..DO instruction is encountered. 66 67 68 69 70 71 72 END .UNTIL except the Boolean expression is evaluated at the beginning of the loop instead of at the end.. the loop executes continually until the signal comes on. 20 . ans WHILE (ans < 32) OR (ans > 64) DO PROMPT "Number must be in the range 32-64. The expression controlling the loop must eventually evaluate to true for the loop to terminate. This means that if the condition indicated by the expression is true when the WHILE."..

A .2 0 0 6 3.A U T O M A Z I O N E I N D U S T R I A L E - A .4 Summary of Program Control Keywords 98 . 2 0 0 5 .

2 0 0 6 99 . A .A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .

A .2 0 0 6 100 . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A .

Tutte le operazioni di I/O fanno riferimento ad un valore intero chiamato "Logical Unit Number" o LUN. 101 ." Visualizza il testo contenuto tra le virgolette nella posizione corrente del cursore." Visualizza sul monitor The value of x is 27 L’istruzione TYPE è anche in grado di posizionare il cursore in un punto ben preciso del monitor. Quando un programma ha completato l'utilizzo della device. Ci sono due eccezioni a questa regola: 1) Le istruzioni di PROMPT. La stessa istruzione può essere utilizzata per visualizzare il contenuto di una variabile. non è "attaccata". 2 0 0 5 . La maggior parte di comandi I/O fallisce se la device richiamata. Questo numero permette un semplice metodo di identificazione con la device o file a cui è stata riferita la generica operazione di I/O. x. la "manual control Pendant”. In generale. 2) Ogni task di controllo programma può essere attaccata alla unità logica disco contemporaneamente senza problemi di interferenza. ".1 Terminal I/O L’istruzione di programma più usata per visualizzare output text sul monitor è TYPE. 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. è in grado di comunicare con l'esterno tramite semplici operazioni di Input / Output. periferiche esterne collegate via porta seriale ed operazioni di lettura e scrittura files su disco. per utilizzi più sofisticati. il V+ permette il dialogo semplificato con il terminale di programmazione. associata alla relativa LUN. Le istruzioni di I/O hanno valori di default appropriati per la maggior parte delle comuni applicazioni e.A U T O M A Z I O N E I N D U S T R I A L E - A . grazie alle avanzate funzioni di sistema operativo.2 0 0 6 3. ogni device I/O deve essere collegata utilizzando l'istruzione di ATTACH prima che essa sia accessibile dal programma. A . l’istruzione: TYPE "The value of x is ". The program line: TYPE "This is a terminal output instruction. 3.5 Principali operazioni di Input / Output Il controller.5. 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). questa deve essere scollegata utilizzando l'istruzione DETACH. Se una variabile x ha valore 27.

Questa istruzione inoltra una richiesta alla periferica attaccata ed indicata dal numero corrispondente a LUN. prima di visualizzare il testo. /U17. $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. DO PROMPT "Enter a value greater than 0: ". Ogni input digitato dovrebbe essere verificato per accertarsi che sia del data type giusto al fine di evitare il messaggio di errore. ed aspetta che si sia completata la procedura di ricevimento dati prima di passare all'esecuzione dell'istruzione successiva. x Ferma l’esecuzione del programma ed aspetta che l’operatore immetta un valore dalla tastiera (in questo caso un numero intero o reale). for example).2 0 0 6 L’istruzione TYPE /C34. il sistema genera un messaggio di errore e ferma l’esecuzione del programma. Funzioni di Input da periferiche esterne possono essere ottenute anche tramite l'impiego della istruzione READ. Se un tipo di valore non corretto viene editato. L’istruzione di programma in grado di accettare data input dalla tastiera è PROMPT. A . 102 ." Equivale a 34 ritorni di carrello (pulisce lo schermo) e posiziona il cursore 17 linee sopra la fine dello schermo.A U T O M A Z I O N E I N D U S T R I A L E - A . Se un valore è stato digitato. "This is the screen center. Un dato stringa è accettato solo se è stata specificata una variabile tipo stringa ($x. questo sarà associato alla variabile x. 2 0 0 5 . PROMPT non aggiunge nessun carattere. The program line: PROMPT "Enter a value for x: ".

Ogni qual volta che si richiama una funzione di I/O è conveniente verificarne il corretto funzionamento ricorrendo all'istruzione di IOSTAT. il valore indica il tipo di errore. A .A U T O M A Z I O N E I N D U S T R I A L E - A . e di FCLOSE per la chiusura di files. il file deve essere aperto nel canale corrispondente alla LUN utilizzata. Per le funzioni di output verso tutte le device si può ricorrere alla generica istruzione di WRITE specificando l'unità logica utilizzata.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. Per la lettura di dati da disco. Questa istruzione è comunemente utilizzata per leggere dati da porta seriale o da terminale di programmazione. Questo è possibile tramite l'istruzione di FOPEN per l'apertura. 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. 2 0 0 5 . 103 .

If you press CTRL+Z.A U T O M A Z I O N E I N D U S T R I A L E - A . or the string variable being assigned an empty string. The cursor is left at the end of the string. Consider changing the above instruction to: PROMPT "Enter the number of parts: ". The program must then process the string appropriately. an error occurs and program execution stops. the extra values are ignored. and waits for you to type in a line terminated by pressing the RETURN key. If there is no REACTE instruction active. $input 104 .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.2 0 0 6 PROMPT PROMPT-I PROMPT output_string. If you press the RETURN key. Each PROMPT instruction should request only one value to avoid confusion and to reduce the possibility of error. 2. output_string variable_list Optional string expression that is output to the system terminal. If a single string variable is specified as the variable list. variable_list Display a string on the system terminal and wait for operator input. 2 0 0 5 . Displays the text of the output string on the system terminal. and program execution resumes. This results in all the real variables being set to zero. The input line can be processed in either of two ways: 1. an empty line is read. the variable part. that receives the data. If more values are read than the number of variables specified. If a list of real-valued variables is specified as the variable list. Thus. or a single string variable. A . or press CTRL+C. the entire input line is stored in the string variable. Each number is converted from text to its internal representation. After you type a number and press the RETURN key. CTRL+Z can be a useful way to abort program execution at a PROMPT. part. an end-of-file error condition results. If data is read that is not a number. If fewer values are read. the line is assumed to contain a list of numbers separated by space characters and/or commas. the remaining variables are set to zero.count is set equal to the value typed. Examples Consider the instruction: PROMPT "Enter the number of parts: ". and its value is stored in the next variable contained in the variable list. program execution is terminated and an error message is displayed. A list of real-valued variables.

and waits for your input./C1. /X10. (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. /C1. /S PROMPT .) The following pairs of instructions are equivalent to the previous example: TYPE /B. /C1. If you want to include format specifications in the string output to the terminal (such as /Cn to skip lines). The application program can use the various string functions to extract numeric values from the input string. $input or TYPE /B./X10)+"Enter the number of parts: ". "Enter the number of parts: ". A . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . and to have the cursor remain on that line. /S PROMPT "Enter the number of parts: ".2 0 0 6 Even if you enter characters that are not valid for numeric input. the instruction PROMPT $ENCODE(/B. V + does not output an error message. spaces down a line. 105 . spaces over ten spaces.$input beeps the terminal. For example. $input Note that /S must be included in the TYPE instructions as shown to have the prompt string output on one line. outputs the string. you can use either the $ENCODE function or the TYPE instruction. /X10.

m /Fn. Otherwise use /En. Do not output a carriage return (CR) or line feed (LF) after displaying the current line.000. otherwise. which is evaluated to determine a value to be displayed. with m digits in the fractional parts. The following specifiers can be used to control the appearance of the output. which determines the format of the output message. A real-valued expression.) Output values in scientific notation (for example. 2 0 0 5 . (Scientific notation is used for values greater than or equal to 1. 2. Output n spaces. A .4) in fields n spaces wide. /D /En. with m digits the fractional parts. (If n is not 0 [see the note above]. A string expression.. 106 . –123. This will work correctly only if the TERMINAL parameter is correctly set for the terminal being used. The following format-control specifiers can be used to control the way in which numeric values are displayed.000.) Output values in fixed-point notation (for example.m /Gn. output_specification can consist of any of the following components (in any order) separated by commas: 1. This will result in n blank lines if the control specifier is at the beginning or end of an output specification.01 and will fit in fields n spaces wide. /In Output values as decimal integers in fields n spaces wide. its value must be at least five larger than the value of m. . The following specifiers can be used to perform control functions.m /Hn Use the default format. /On Output values as octal integers in fields n spaces wide.234E+2) in fields n spaces wide.. A blank line is output if no argument is provided. Move the cursor up n lines. output_specification Display the information described by the output specifications on the system terminal.. /Cn /S /Un /Xn Output the characters carriage return (CR) and line feed (LF) n times. n–1 blank lines will result. Output values in F format with m digits in the fractional parts if the values are larger than 0. which displays values to full precision with a single leading space.A U T O M A Z I O N E I N D U S T R I A L E - A .m format Output values as hexadecimal integers in fields n spaces wide. –1. 3. These settings remain in effect for the remainder of the instruction. Format-control information.2 0 0 6 TYPE TYPE-I TYPE output_specification. unless another specifier is used to change their effect.

2). i. the instruction displays Point 5 = ***** because the value (1000. point[i] sounds a beep at the system terminal (/B) and display the message Point 5 = 12. the instruction TYPE /B. Then.666666. " = " /F5.5. "Point".2 0 0 6 /B /N Beep the terminal (nongraphics-based systems only). A second output request will force program execution to wait for the first output if it has not yet completed. A . Example Assume that the real variable i has the value 5 and that array element point[5] has the value 12.A U T O M A Z I O N E I N D U S T R I A L E - A .) 107 .67 If point[5] has the value 1000. Initiate output without having program execution wait for its completion. 2 0 0 5 .2.00) is too large to be displayed in the specified format (/F5. (The instruction can display any value for point[5] if the format specification were /F0.

Examples You can write a message to the manual control pendant with the following instructions: ATTACH (1) . A . Program execution waits for the write operation to complete unless there is a/N format specifier in the format list. When accessing the TCP device. Consists of a list of output variables. you can include the /N specifier to prevent the V + system from waiting for a write acknowledgment.Output message to pendant DETACH (1) . If the value is not zero. lun record_num Real-valued expression that identifies the device to be accessed. records are numbered from one (to a maximum of 16. and format specifiers used to create the output record. In random-access mode. A record can contain an arbitrary list of characters. write a string to an attached and open TCP connection.Attach the control pendant WRITE (1) $message .2 0 0 6 WRITE WRITE-I WRITE (lun . (See the ATTACH instruction for a description of unit numbers. string expressions. this value is not used and can be omitted. The format list is processed exactly like an output specification for the TYPE instruction. record_num. mode format_list This is a general-purpose data output instruction that writes a record to a specified logical unit. This should be 0 (the default value) to write the next sequential record. the record is written in random-access mode (which requires that the records all have the same length). If the output is to a disk file.Detach the pendant A file with variable-length records can be written to the system disk drive with instructions such as the following: 108 . the device to receive the output must have been attached.A U T O M A Z I O N E I N D U S T R I A L E - A .777. Except for the monitor window or console serial port. or to any I/O device. 2 0 0 5 .216). For an AdeptNet device. the file must have been opened with an FOPENA or FOPENW instruction. Optional real-valued expression that represents the mode of operation. but must not exceed 512 characters in length. At present.) Optional real-valued expression that represents the number of the record to be written. mode) format_list Write a record to an open file.

Close the file DETACH (dlun) .Attach the disk interface FOPENW (dlun) "A:testfile.dat". 4) "SERIAL:1" WRITE (slun) "Hello from serial line 1" Write the string $str to the client defined by the handle. A .2 0 0 6 ATTACH (dlun.A U T O M A Z I O N E I N D U S T R I A L E - A . /N 109 .Open a file on drive "A" FOR i = 0 TO LAST($lines[]) . which must have been defined previously when the a message was received.Release the disk interface Attach to serial line 1 and write a greeting: ATTACH (slun. Do not wait for acknowledgment: WRITE (lun.Loop for all the elements WRITE (dlun) $lines[i] . 4) "DISK" . 2 0 0 5 .to be written END FCLOSE (dlun) . handle) $str.

2 0 0 6 READ READ-I READ (lun . this instruction continues to read characters until it has read exactly the number of characters specified during the corresponding FOPEN_ instruction. The value is interpreted as a sequence of bit flags as detailed below. a file must already have been opened with an FOPEN_ instruction. this parameter should be 0 or omitted. For files that are opened in fixed-length record mode. Optional real-valued expression that specifies the mode of the read operation. Records are numbered from one to a maximum of 16.777. The handle can be used to identify the client accessing a multiple-client server. 2 0 0 5 . A record can contain an arbitrary list of characters but must not exceed 512 characters in length. refer to the Example section for the IOSTAT real-valued function. this parameter is an optional real variable that returns the client handle number. (See the ATTACH instruction for a description of unit numbers. which receives the data (see following details). For nonfile-oriented devices or for sequential access of a file.) Optional real-valued expression that specifies the record to read for file-oriented devices opened in random-access mode (see the FOPEN_ instructions).216. mode var_list This is a general-purpose data input instruction that reads a record from a specified logical unit.) Either a list of real-valued input variables or a list of string variables. (All bits are assumed to be clear if no mode value is specified. Example Read a line of text from the disk and store the record in the string variable $disk.input For an example of using the READ instruction with the TCP device. the mode is used only for the terminal and serial I/O logical units. For file-oriented devices. 110 . lun record_num Real-valued expression that identifies the device to be accessed. Currently. When accessing the TCP device with a server program.input: READ (5) $disk. The logical unit referenced by this instruction must have been attached previously.A U T O M A Z I O N E I N D U S T R I A L E - A . mode) var_list Read a record from an open file or from an attached device that is not file oriented. A . For an AdeptNet device. read a string from an attached and open TCP connection. record_num.

variable-length record input/output. When reading from the terminal. The characters are appended to the string variable $field. or expression (interpreted as an integer) that specifies the mode of the read operation. 2 0 0 5 . The logical unit must be attached by the program for normal. The value is interpreted as a sequence of bit flags as detailed below. variable. a Ctrl+Z character (26 decimal) is returned. mode) Return the next character (byte) from a device or input record on the specified logical unit.) character.A U T O M A Z I O N E I N D U S T R I A L E - A . or expression (interpreted as an integer) that identifies the device to be accessed. a negative error code number is returned. Example The following program segment reads characters from a disk file until a comma (.2 0 0 6 GETC GETC-R GETC (lun.) DO $field = $field+$CHR(c) c = GETC(5) END IF c < 0 THEN TYPE $ERROR(c) HALT END 111 . (The disk file must have already been opened for accessing variable-length records. When the end of a disk file is reached. which will have their normal terminal control functions. and Ctrl+W.) $field = "" c = GETC(5) WHILE (c > ^H1F) AND (c <> ’. lun mode Real value. variable. When reading from a record-oriented device such as the system terminal or a disk file. If an input error occurs. the byte value returned is in the range 0 to 255 (decimal). Currently. the carriage-return and line-feed characters at the end of records are also returned.) The next byte from the device is returned. Ctrl+Q. GETC will return the next character entered at the keyboard. A . except Ctrl+S. (All bits are assumed to be clear if no mode value is specified. Normally. or an I/O error is encountered.) Real value. All control characters will be read. (See the ATTACH instruction for a description of unit numbers. the mode is used only for the terminal and serial I/O logical units. Ctrl+O. a control character.

alle quali sono solitamente associate funzioni di fondamentale importanza per il corretto funzionamento della cella integrata.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 convogliatore potrebbe aver bisogno di un dispositivo meccanico di arresto del pezzo in transito. La gestione di queste unità periferiche. chiamerà una routine di allarme per avvertire l’operatore che l’alimentatore deve essere caricato.0512 1001 . Nell’esempio sopra citato.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.5.2 0 0 6 3. solenoidi e motori. Il controller Adept mette a disposizione dell'utente più linee di segnali digitali che sono spesso utilizzate in combinazione con microcontatti. Le istruzioni WAIT e SIG sono utilizzate per sospendere l’esecuzione del programma fino a quando il segnale di input specificato raggiunge lo stato richiesto. sensori. il programma IF SIG(1002) THEN CALL service. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . Se il segnale 1002 è un sensore indicante che l’alimentatore dei pezzi da assemblare è vuoto.1512 2001 . fotocellule o carichi induttivi tipo. Il controller Adept vede i segnali suddivisi nella seguente forma: OUTPUT INPUT "SOFT " SIGNAL SIGNAL SIGNAL LINES LINES LINES 0001 . per indicare che il pezzo da assemblare è arrivato alla giusta posizione di prelievo. dopo che il segnale 1001 ha rilevato la presenza del pezzo in posizione di prelievo.feeder() END Controllerà lo stato del sensore e. 112 . relè. se il sensore è ON. A . WAIT SIG(1001) sospende l’esecuzione del programma fino a quando il sensore (o altra device esterna di ingresso) collegato al canale digitale di ingresso 1001 commuta sullo stato ON. è estremamente semplificata dall'utilizzo di una codifica. L’istruzione SIGNAL è utilizzata invece per comandare lo stato di una uscita digitale.

A U T O M A Z I O N E I N D U S T R I A L E - A . causando l’arresto del nastro di trasporto che è pilotato da questo segnale.2 0 0 6 L’istruzione SIGNAL(-33) commuta in OFF il segnale di uscita 33.(-35) 113 . 2 0 0 5 . Più segnali possono essere commutati contemporaneamente usando la seguente istruzione: SIGNAL(33).(35) Or SIGNAL(-33).(34). A . il segnale 33 verrà riattivato dalla seguente istruzione: SIGNAL(33) I canali relative ai segnali digitali di uscita sono numerate da 1 a 512. Quando il robot ha finito di processare la sua fase di processo sul pezzo. e la parte può continuare la sua corsa sul convogliatore.(-34).

. If the sign of the signal_num parameter is negative. 2010 114 . To check your current digital I/O configuration.2 0 0 6 SIGNAL SIGNAL-I SIGNAL signal_num. Signal 3002 is the state of the hand-open solenoid. the signal is turned off. A positive value indicates turn on. digital inputs are checked every 16 milliseconds by the V + operating system. a negative value indicates turn off. and internal software signal #2010 on: SIGNAL –1. use the IO monitor command. 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). the signal is turned on. (SIGNAL ignores parameters with a zero value. If the sign of the signal_num parameter is positive. NOTE: All V + digital output instructions do not wait for a 16 millisecond V + cycle. 4 Turn external output signal #1 off.. 4. external output signal #4 on. 2 0 0 5 . signal_num Real-valued expression that evaluates to a digital output or internal signal number.) The magnitude of a signal_num parameter determines which digital or internal signal is to be considered. However.A U T O M A Z I O N E I N D U S T R I A L E - A . and turn on external output signal #4: SIGNAL –reset.. signal_num Turn on or off external digital output signals or internal software signals.. A . 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. Signals 3001 and 3002 refer to the robot selected by the current task. Signal 3001 is the state of the hand-close solenoid. they are turned on immediately. Only digital signals that are actually installed and configured as outputs can be used.

signal_num) Returns the logical AND of the states of the indicated digital signals.0 (TRUE) 115 .0 (TRUE) SIG(1004) . NOTE: SIG(0) returns a value of TRUE. signal_num Real-valued expression that evaluates to a digital I/O or internal signal number.A U T O M A Z I O N E I N D U S T R I A L E - A . Signals 1 .. .0 (FALSE) SIG(–1004) . Signal 3001 is the state of the hand-close solenoid. 2 0 0 5 . Signals 1001 .2 0 0 6 SIG SIG (signal_num.Returns –1. SIG will return TRUE if all the specified signal states are TRUE. Signals 3001 and 3002 refer to the robot selected by the current task.1012 and 1033 . You can use the IO monitor command (or the SIG.INS function) to check your current digital I/O configuration. Example Assume that the following digital I/O signals are installed and have the indicated values.Returns –1.–1004) .512 are digital outputs.Returns –1. A negative value indicates negative logic for that signal. That is. the signal is interpreted as being TRUE if it has a high value.0 (FALSE) SIG(1001.Returns 0.8 and 33 . Signal 3002 is the state of the hand-open solenoid. • 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) . Only digital signals that are actually installed can be used. SIG will return FALSE.Returns 0.1004) . A .. Returns a TRUE (–1) or FALSE (0) value obtained by performing a logical AND of the states of all the indicated digital signals. If the sign of a signal_num parameter is negative.0 (TRUE) SIG(1001.. If the sign of a signal_num parameter is positive. The magnitude of each signal_num parameter determines which digital or internal signal is to be considered.1512 are digital inputs. the signal is interpreted as being TRUE if it has a low value. Signals 2001 to 2512 are internal (software) inputs or outputs. Otherwise.

variable. For this reason.2 0 0 6 WAIT WAIT condition Put the program into a wait loop until the condition is TRUE. Poll once each 16-millisecond V + cycle: WHILE SIG(1000. condition Optional real value. checking the condition and performing RELEASEs. the state of one or more external signals can be used for the condition for continuation. effectively locking out any lower-priority tasks in the slice. -1003) DO WAIT END 116 . WAIT will suspend program execution until a desired condition exists. A . 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. you should execute two consecutive WAIT instructions (with no arguments). System cycles occur at 16 millisecond intervals. Use WAIT. If the WAIT condition is specified and is FALSE. If no condition is supplied. An executing WAIT instruction in an application program can be canceled by using the PROCEED monitor command. It is equivalent to: WHILE NOT condition DO RELEASE END NOTE: If two high-priority tasks perform releases in the same time slice. If you need to guarantee at least a 16-millisecond delay (for example.EVENT rather than WAIT to wait for a specific amount of time. Examples Stop program execution while external input signal #1001 is on and #1003 is off. while manipulating signals monitored by REACT or REACTI). or expression that is tested for a TRUE (nonzero) or FALSE (zero) value.A U T O M A Z I O N E I N D U S T R I A L E - A . they pass control back and forth to each other. 2 0 0 5 . Adept does not recommend using WAIT with a condition specified. program execution is suspended until the next system cycle. See the Examples below for the proper use of WAIT. V + enters an internal loop. A WAIT with no condition is especially useful in programs that need to perform an operation only once each system cycle. For example.

2 0 0 6 Wait for a global variable set to be cleared by another task.A U T O M A Z I O N E I N D U S T R I A L E - A .Must specify -1 to prevent lockout END 117 . Poll as often as possible without locking out other tasks. WHILE lock_variable DO RELEASE -1 . 2 0 0 5 . A .

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. For example.A U T O M A Z I O N E I N D U S T R I A L E - A . the programs could be made more tolerant of unusual events such as error conditions. NOTE: The programs in this manual are not necessarily complete. A .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 program keywords are detailed in the V + Language Reference Guide. 118 . In most cases further refinements could be added to improve the programs.2 0 0 6 3. 2 0 0 5 .

4 .A U T O M A Z I O N E I N D U S T R I A L E - A . A .Close the hand DEPARTS height1 .Make sure configuration is correct MOVE start .8 . The robot picks up parts at one location and places them at another. /I0.End of the program . ABSTRACT: Pick up parts at location pick and put them down at place parts = 100 .2 Pick and Place This program demonstrates a simple pick-and-place application.16 . 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 . 2 0 0 5 . " parts processed" RETURN .Back away APPRO place.Go toward the put-down MOVES place .Move to safe starting location FOR i = 1 TO parts .6.Number of parts to be processed height1 = 25. height2 .Back away END .Approach/depart height at "pick" height2 = 50.Move to the destination OPENI .Process the parts APPRO pick.parts() . parts.2 0 0 6 3.Set up for slow hand OPEN .Go toward the pick-up MOVES pick . ".Move to the part CLOSEI .Make sure the hand is open RIGHTY .END 119 .Loop for next part TYPE "All done.PROGRAM move. height1 .Release the part DEPARTS height2 .TIME = 0.Approach/depart height at "place" PARAMETER HAND.

you should also make sure that the robot has the desired hand opening.) Use variables to represent constants for two reasons: Using a variable name throughout a program makes the program easier to understand. . This is important if there are obstructions in the workspace that must be avoided.4 millimeters (that is. If there are any special requirements for use of the program. height2 sets the height of the robot path when approaching and departing from the put-down location. height2 = 50.parts() This line identifies the program to the V + system. initialization of the robot location. they should be included as well.parts. A . It is set to 50. RIGHTY Make sure the robot has a right-handed configuration (with the elbow of the robot to the right side of the workspace).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. The first line of every program must have the form of the line below.8 millimeters (2 inches). initialization of variables.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .TIME so that sufficient time is allowed to actuate the robot hand. (Most programs requires a more extensive summary. height1 = 25. Initially. . This setting causes OPENI and CLOSEI instructions to delay program execution for 160 milliseconds while the hand is actuated. parts = 100 Tell the program how many parts to process during a production run. and notice to the operator of completion of the task.16 Set the system parameter HAND.4 Height1 controls the height of the robot path when approaching and departing from the location where the parts are to be picked up. In this case we see that the name of the program is move. 120 . Each of these sections is described in detail below.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. and only one program line must be modified if the value of the constant is changed. performance of the desired motion sequence. PARAMETER HAND.8 Similar to height1. It is a good practice to follow that line with a brief description of the purpose of the program.PROGRAM move. is at a safe starting location. and that SCARA robots have the desired configuration.TIME 0. Here it is set to 25. 100 parts are processed. In this case. 1 inch).

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

these instructions cause the part to be moved to the put-down location and released. operation selections on the system terminal. 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 .END This line is automatically included by the V + editor to mark the program’s end. 100 pieces processed.PROGRAM sub. it is good programming practice to include a RETURN (or STOP) instruction at the end of every program. the program executes the desired 122 .menu() . input from the keyboard.3 Menu Program This program displays a menu of operations from which an operator can choose.A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 OPENI DEPARTS height2 Similar to the above motion sequence. END This marks the end of the FOR loop. When this instruction is executed. ABSTRACT: This program provides the operator with a menu of . A .. 2 0 0 5 .6." The above instruction outputs the message: All done. TYPE "All done. After accepting . . 3. The final section of the program simply displays a message on the system terminal and terminates execution. " pieces processed. control is transferred back to the FOR instruction for the next cycle through the loop (unless the loop count specified by parts is exceeded).) RETURN Although not absolutely necessary for proper execution of the program. ". /I0. parts. (The /I0 format specification in the instruction causes the value of parts to be output as an integer value without a decimal point.

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

The program automatically records the location for later use (in this case.6.4 Teaching Locations With the MCP This program demonstrates how an operator can teach locations with the manual control pendant.Connect to the pendant DETACH (0) . 2 0 0 5 .display. and "start" for the "move. SIDE EFFECTS: Robot is detached while this routine is active AUTO $clear.parts" program. for the pick-andplace program).Blink LED on control pendant WAIT PENDANT(3) ."pick". /S 124 . A .Record the location "start" WAIT not pendant(3) .display.A U T O M A Z I O N E I N D U S T R I A L E - A .display = $CHR(12)+$CHR(7) ATTACH (1) . . "place". place. "RECORD". . Output prompt to the display on the manual control pendant WRITE (1) $clear. $CHR(3). /S WRITE (1) $CHR(30). "RECORD". .Wait for key to be pressed HERE start . /S . $CHR(5). $CHR(5).2 0 0 6 3. The two-line liquid crystal display (LCD) of the pendant is used to prompt the operator for the locations to be taught. "Move robot to ’START’ & press RECORD" WRITE (1) /X17. Prompt for second location WRITE (1) $clear. . start) . place. 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 . and start . $clear. OUTPUT PARAM: pick.Release control of the robot . thus allowing the controller to operate without a system terminal.PROGRAM teach(pick. "Move robot to ’PICK’ & press RECORD" WRITE (1) /X17. ABSTRACT: This program is used for teaching the locations .display. The operator can then manually position the robot at a desired location and press a key on the pendant. INPUT PARAM: None .

Wait for key to be pressed HERE pick . A . teach the reference location AUTO $answer TYPE /C1. /C1. /C2.tool’ equal to the ". /S WAIT PENDANT(3) . "Move robot to ’PLACE’ & press RECORD" WRITE (1) /X17.Record the location "place" WAIT not pendant(3) ATTACH (0) .". "Press ". ".Record the location "pick" WAIT not pendant(3) . "RECORD".Release the robot to the user WAIT PENDANT(8) .tool 125 . /S DETACH (0) . 3.Attach the pendant PROMPT "Revising a previously defined tool (Y/N)? ". . $answer IF $answer <> "Y" THEN TYPE /C1. "PROGRAM TO DEFINE TOOL TRANSFORMATION".Release the pendant RETURN .".Wait for key to be pressed HERE place .Wait for user to press REC/DONE button ATTACH (0) .Return to calling program .2 0 0 6 WAIT PENDANT(3) . $CHR(5).Reconnect to the robot DETACH (1) . /S TYPE "location.A U T O M A Z I O N E I N D U S T R I A L E - A .Regain control of the robot . "Set ’ref. ABSTRACT: Invoke a new tool transformation based on a predefined reference . /S TYPE "the REC/DONE button on the manual control pendant when ". /S TYPE "ready to proceed.6.END. "Move the tool tip to the selected reference ". 2 0 0 5 . optionally.display. /S TYPE "transformation for this location.5 Defining a Tool Transformation The following program establishes a reference point from which tool transformations can be taught.PROGRAM def. location and.tool() . /C1 ATTACH (1) . Prompt for third location WRITE (1) $clear.(automatically wait for COMP mode) TOOL ref.

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

2 0 0 5 . PROGRAM store. records.6 Others Esempio di programma che memorizza i valori di una matrice stringa in un file disco.2 0 0 6 3. $ERROR(error) FCLOSE (disk) 20 . error ) LOCAL disk.A U T O M A Z I O N E I N D U S T R I A L E - A .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 : ".array($data [ ] . rec disk = 5 error = 1 ATTACH (disk) IF IOSTAT (disk) < 0 GOTO 10 FOPENW (disk) "datafile.6. . esce se non ci sono errori 127 . END DETACH (disk) RETURN . A .

codice ASCII per il carattere ETX 128 . In questo programma si ipotizza che la trasmissione dei dati da porta seriale termini con il carattere ETX. che non è visualizzato.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 . done.END TYPE "SERIAL LINE I/O ERROR: ". $ERROR(IOSTAT(line)) PAUSE DETACH (line) RETURN .A U T O M A Z I O N E I N D U S T R I A L E - A . line etx = 3 line = 10 ienod = -526 ATTACH (line) IF IOSTAT (line) < 0 GOTO 10 $buffer = "" done = FALSE DO c = GETC (line. A . legge un byte dalla linea seriale . 2 0 0 5 . .2 0 0 6 Esempio di programma che legge i dati da una porta seriale utilizzando l'istruzione di GETC. etx. ienod. PROGRAM display() LOCAL $buffer.qualcosa() WAIT c = GETC (line. char. Codice errore per no data .1) WHILE c == ienod CALL fai.

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 l’unità viene detta cifra meno significativa o di minor peso. 2.2 + 0. E’ chiaro che cifre uguali hanno diverso peso a seconda della posizione occupata dal numero. ad esempio. 3. il numero decimale intero 212. è detta cifra di maggior peso o più significativa. 9. 2 0 0 5 . 7. Si consideri. Il sistema numerico decimale è quello usato più frequentemente nella vita odierna. mentre la cifra più a sinistra. Così la matematica viene spiegata e comunicata attraverso il linguaggio della lingua parlata o scritta. per descrivere le regole della grammatica italiana ci serviamo dell’italiano 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.27 = 500 + 20 + 5 + 0.A U T O M A Z I O N E I N D U S T R I A L E - A . Anch’esso 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. 6. 4.27. Linguaggio e metalinguaggio possono però talvolta coincidere.1 Sistema numerico decimale Ogni linguaggio. ha bisogno di un metalinguaggio. Ad esempio.07 = = 5 x 102 + 2 x 101 + 5 x 100 + 2 x 10-1 + 7 x 10-2 129 . 1. 5. A . Si consideri ora il numero decimale frazionario 525.2 0 0 6 4 Capitolo 4 Sistemi numerici e algebra di Boole 4. è detto a base dieci in quanto per rappresentare un numero qualsiasi sono necessarie dieci cifre: 0. che rappresenta le centinaia. per essere scritto e comunicato. 8.

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. Nel caso in cui N= 5 2 5 ... Vengono infatti usate soltanto due cifre 0 e 1 indicate usualmente col termine bit (abbreviazione di binary digit) per la formazione del numero binario. 2 0 0 5 . + 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.27)10 4.2 + p.. B la base del sistema.1 B ... + p0 B + p-1 B + .2 Sistema numerico binario E’ il sistema usato nei calcolatori elettronici ed è un sistema a base o radice due. ognuna delle quali moltiplicata per una cifra che può essere 0 o 1... + p0 B0 = Σ pjBj Essendo N il numero intero. 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 + . A . 130 .... Un qualsiasi numero in un sistema binario può essere rappresentato da una serie di bit equivalente alla somma di potenze del DUE.. pj la cifra nella generica posizione j ed n il numero delle cifre.2 B ..A U T O M A Z I O N E I N D U S T R I A L E - A .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 + . 2 p 2 p1 p0 2 j=-m 7 p-1 p-2 j=-2 N = Σ pj Bj = p.

A . dove il bit di minor peso è il resto della prima divisione e il bit di maggior peso è quello dell’ultima. Il primo metodo consiste nella divisione ripetuta per 2 fino ad avere un quoziente nullo.= 2 + 0 2 2 ---. 2 0 0 5 .= 4 + 0 2 131 . Il numero binario risultante è composto dai resti delle successive divisioni.= 19 + 1 bit di minor peso 2 19 ---.= 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 ---.= 9 + 1 2 9 ---.2 0 0 6 Per rappresentare o convertire in forma binaria un numero decimale possono essere usati diversi metodi.= 4 + 1 2 4 ---.A U T O M A Z I O N E I N D U S T R I A L E - A . Conversione binaria del numero 39 39 ---.

(15)10 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = (1111)2 132 . In maniera del tutto analoga a quanto descritto precedentemente per il sistema decimale. A . pari a 23 unità.A U T O M A Z I O N E I N D U S T R I A L E - A . Il più grande raggruppamento contenuto nel numero è il gruppo da 8 unità. 2 0 0 5 .= 1 + 0 2 1 ---. che contengono un gruppo da 2 = 21 unità. Un secondo metodo consiste nell’esprimere il numero decimale come somma di potenze del due e moltiplicarle per le cifre 0 e 1 appropriatamente.2 0 0 6 4 ---. Abbiamo poi 7 unità che contengono un gruppo da 4 = 22 unità e 3 unità. Si voglia ad esempio sapere quale binario corrisponde al decimale 15. e così di seguito per ciò che rimane.= 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 0 Il metodo appena descritto presenta però l’inconveniente di non poter essere usato per numeri con parte frazionaria.= 2 + 0 2 2 ---. Infine rimane una unità semplice 1 = 20 unità. si guarda la più grande potenza di 2 (cioè il più grande tra i possibili raggruppamenti) contenuta nel numero decimale.

la tabella per l’addizione 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.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 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 quest’ultime in quanto le cifre usate sono soltanto due.5)10 = 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 = (1111. dove essendo 9 la cifra più alta.5)10 4. a) Addizione binaria Viene eseguita allo stesso modo di quella decimale.2. A . 2 0 0 5 . ogni somma maggiore di 9 richiede il riporto di una cifra. quando la somma è maggiore di uno essa richiede il riporto di una cifra in pieno accordo a quanto avviene nel sistema decimale.2 0 0 6 (15.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.A U T O M A Z I O N E I N D U S T R I A L E - A . 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 . 2 0 0 5 . Essa può essere eseguita analogamente al sistema decimale. 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.A U T O M A Z I O N E I N D U S T R I A L E - A . prendendo in prestito una cifra dalla colonna di ordine superiore tutte le volte che la differenza scende sotto lo 0. 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 . Il metodo del complemento a due viene usato nei calcolatori elettronici poiché offre una maggiore facilità di meccanizzazione. La differenza fra i due numeri si trova addizionando il complemento del sottraendo al minuendo e trascurando l’eventuale riporto dell’ultima cifra. cioè scambiando gli 1 in zero e viceversa.2 0 0 6 b) Sottrazione binaria E’ l’operazione inversa dell’addizione. e aggiungendo 1 al risultato.

intesa come addizione ripetuta.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. A . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . 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 1 prodotto 135 . segue le stesse regole della moltiplicazione decimale.

A U T O M A Z I O N E I N D U S T R I A L E - A . 136 . A . 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 1 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 0 0 Da quanto descritto si può notare che l’operazione aritmetica fondamentale del sistema binario è l’addizione.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. In realtà questa operazione viene eseguita dai calcolatori elettronici per sottrazioni ripetute. in quanto tutte le altre operazioni possono essere ricondotte ad essa. 2 0 0 5 . Il risultato è detto quoziente.

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 .

A U T O M A Z I 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. Nell’uso 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, l’utilizzo 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 l’informazione 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 nell’algebra 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 dell’algebra 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 l’equazione 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 all’equazione 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 l’operazione viene chiamata “prodotto logico”. Il simbolo grafico dell’operatore AND è così schematizzato:

142

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.A U T O M A Z I O N E I N D U S T R I A L E - A . 143 . 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. premo PLAY da telecomando 2. “Ascolto il disco se premo PLAY dal telecomando o dal front panel dell’apparecchio” In questo caso esistono due condizioni per l’ascolto del disco: 1. 2 0 0 5 . A .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 dell’apparecchio stesso. 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.

. 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 l’equazione algebrica Y = A + B in quanto il lettore CD parte se viene premuto il tasto PLAY da telecomando o da front panel. A . in cui compaiono tutte le 2n possibili configurazioni delle variabili indipendenti.... Nella seguente figura è mostrato un circuito elettrico che realizza la funzione OR 144 .. Vale 0 quando tutte le variabili assumono il valore 0.. + N La somma logica Y vale 1 quando una o (OR) più variabili assumono il valore 1.... 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.A U T O M A Z I O N E I N D U S T R I A L E - A . Generalizzando si può concludere che in un sistema a n variabili: Y = A + B + C + ..2 0 0 6 E’ possibile compilare ora una tabella. con n numero delle variabili. 2 0 0 5 .. detta tabella della verità (truth-table)...

2 0 0 6 Assegnando ad ogni contatto una variabile binaria che vale 0 quando il contatto è aperto e 1 quando è chiuso. il circuito sopra riportato soddisfa all’equazione algebrica: Y = A + B + C + .. Il simbolo operazionale di questa funzione è " + ".... non ascolto più se premo STOP A = ingresso (STOP) Operatore Logico (controllore) Y = uscita (musica) I valori delle variabili sono: 145 . 2 0 0 5 . e quindi si accende la lampada. Per questo motivo l’operazione viene chiamata “somma logica”....A U T O M A Z I O N E I N D U S T R I A L E - A . continuo ad ascoltare se non premo STOP 2. se almeno uno dei contatti è chiuso. “Continuo ad ascoltare la musica se non premo STOP” In questo caso esistono due condizioni per l’ascolto del disco: 1... A . e indicando con 0 lo spegnimento della lampada e con 1 la sua accensione.. + N propria della funzione OR in quanto circola corrente... Il simbolo grafico dell’operatore 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..

146 . A .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 lampada è spenta (Y=0) perché cortocircuitata quando il contatto A è chiuso (A=1). La tabella della verità che verifica l’operazione 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. A=0).A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . accesa quando il contatto A è aperto (Y=1. Un circuito invertitore NOT può essere realizzato elettricamente mediante il seguente schema.

2 0 0 6 Il simbolo grafico dell’operatore NOT è così schematizzato: I circuiti finora considerati che realizzano le operazioni di prodotto. somma e negazione sono detti porte logiche in quanto l’uscita Y assume il valore 1 soltanto per determinate configurazioni di ingressi. chiamate universali. L’espressione algebrica per un NAND a due ingressi vale ____ Y=A*B 147 . Questo circuito esegue il prodotto logico complementato delle variabili di ingresso. 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.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . E’ possibile definire altre operazioni logiche elementari. A .

L’espressione algebrica per un NOR a due ingressi vale 148 . In altre parole è un circuito OR seguito da un NOT.A U T O M A Z I 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 l’uscita 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.

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 .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 Dall’esame della tabella si può notare che l’uscita 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à. 2 0 0 5 . A .

A U T O M A Z I O N E I N D U S T R I A L E - A .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 l’uscita di una porta logica XOR vale 1 soltanto se i due ingressi sono diversi Uno dei simboli con cui si esprime l’operazione OR esclusivo è il seguente: 150 . 2 0 0 5 . A .

2 0 0 5 .5 Teoremi fondamentali dell’algebra 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 6 4..

2 0 0 6 Teorema dei complementi Teorema di idempotenza 152 . A .A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .

2 0 0 6 1° Teorema dell’assorbimento 2° Teorema dell’assorbimento _ 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 dall’uno all’altro sostituendo l’operatore ( * ) con l’operatore ( + ) il valore 1 con il valore 0 e viceversa.A U T O M A Z I O N E I N D U S T R I A L E - A . A . 153 . 2 0 0 5 .

A U T O M A Z I O N E I N D U S T R I A L E - A . 2. 2 0 0 5 .2 0 0 6 Ogni teorema inoltre può essere verificato con il metodo dell’induzione matematica. 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. operazione che consiste nel verificare la relazione con tutti i possibili valori delle variabili. A . _____ _ _ (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 .

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. A .2 0 0 6 Il primo stabilisce che la complementazione della somma di due variabili è uguale al prodotto delle stesse variabili complementate.A U T O M A Z I O N E I N D U S T R I A L E - A . Il secondo stabilisce che la complementazione del prodotto di due variabili è uguale alla somma delle stesse complementate. 2 0 0 5 . 155 .

L’ingresso della pneumatica nel settore della meccanizzazione e dell’automazione inizia a metà del 20° secolo. Il termine "pneumatica".2 0 0 6 5 Capitolo 5 Automazione ON / OFF 5. Per utilizzare la pneumatica in modo ottimale è necessario che l’utente dei componenti e dei sistemi pneumatici apprenda almeno le nozioni fondamentali su questa tecnologia. A . impianti per posta pneumatica. Tale concetto è parte delle più antiche conoscenze dell'umanità. significa trasmettere energia o segnali impiegando come mezzo di trasmissione l’aria compressa. locomotori ed altri dispositivi ausiliari rappresentano esempi dello sviluppo verificatosi su larga scala. ma si è dovuto attendere il secolo scorso per vederne sorgere lo studio sistematico e le prime applicazioni industriali. L’utilizzo sistematico dell’aria compressa nella tecnologia si verifica tuttavia solo verso la metà del 19° secolo. 2 0 0 5 . L’aria 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 . martelli pneumatici. In successivi sviluppi l’aria compressa viene impiegata nella costruzione di organi. nell’industria mineraria e nel settore metallurgico. respiro). Già intorno all’anno 2500 avanti Cristo si trova traccia dei primi impieghi dell’aria compressa sotto forma di soffietti.A U T O M A Z I O N E I N D U S T R I A L E - A . Pneumatica: utilizzo dell'aria come fluido di lavoro per compiti di azionamento e di controllo in macchine ed impianti industriali. derivato dal greco (neuma = fiato.1 Pneumatica Da molti anni la pneumatica ha conquistato una posizione insostituibile in numerosissimi settori della tecnica di comando e di azionamento. Utensili pneumatici.

Vi sono poi veri e propri motori rotativi in grado di compiere rotazioni continue. A .A U T O M A Z I O N E I N D U S T R I A L E - A .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. 157 . Vi sono attuatori alternativi che compiono spostamenti. sia per il comando di pinze o organi di afferraggio. di ampiezza limitata e che sono costituiti da vari tipi di cilindri. o rotazioni. 2 0 0 5 . Le funzioni compiute sono molte. 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 questa aria o gas compresso.

si scarica in atmosfera insieme con l’aria di scarico. 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. vibrazioni meccaniche. impurità.2 0 0 6 5. sicurezza di esercizio e lunga durata degli attuatori e degli elementi di comando o Sicurezza di esercizio anche in condizioni d’esercizio gravose o Economicità dei comandi e degli azionamenti pneumatici o E’ necessario il trattamento preventivo dell’aria o Data la comprimibilità dell’aria non è possibile realizzare con mezzi semplici un’accurata regolazione di velocità o Le perdite per tra filamento riducono l’economicità di esercizio o Gli scarichi sono rumorosi o La nebbia d’olio che viene dispersa nell’aria compressa (attraverso i lubrificatori) per la lubrificazione dei componenti.1. 158 .A U T O M A Z I O N E I N D U S T R I A L E - A . umidità e campi elettrici o Possibilità di sovraccarico degli organi motori fino all’arresto o Non occorrono tubazioni di ritorno o L’aria compressa non richiede di essere riciclata ma si può scaricare liberamente in atmosfera o Semplice conversione dell’energia 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à. A .1 Caratteristiche della pneumatica o L’aria è disponibile ovunque. gratis ed in quantità illimitata o L’aria compressa si trasporta facilmente in tubazioni. 2 0 0 5 . anche flessibili e di piccolo diametro.

una rete di tubazioni provvede alla sua distribuzione ai vari punti di utilizzazione: macchine pneumatiche.000 2. Nei cilindri la camera in pressione viene successivamente posta allo scarico in atmosfera.2 0 0 6 Dalla disponibilità gratuita dell'aria deriva una caratteristica importante degli impianti ad aria compressa: lo scarico libero in atmosfera. da quello di una motrice a vapore. Determina una buona regolarità di flusso indipendentemente dal numero e dalla intermittenza delle singole utilizzazioni 3. Di qui.000 5. L'aria compressa viene quindi continuamente consumata. Smorza le eventuali pulsazioni della portata generata dal compressore (specie se questo è alternativo).. 5. Consente di disporre di una pressione sempre costante 2. Questa dipende dalla densità dell’atmosfera e dall’altitudine del punto considerato. Se il consumo dell'impianto fosse regolare. quindi è compressa fino alla prevista pressione di lavoro. In pratica poiché. 159 . per cui non presenta un valore costante. Pressione atmosferica E’ la pressione prodotta dal peso dell’atmosfera da cui è avvolta la terra.2 Il concetto di pressione Pressione atmosferica normale in funzione dell’altitudine Altitudine (mt) 0 500 1. prelevata dall'atmosfera in luoghi generalmente lontani da fonti di inquinamento. raramente il consumo è regolare. negli utensili basati sui motori pneumatici l'aria di ammissione va allo scarico dopo aver prodotto il lavoro.000 8.1.000 Pressione (mbar) 1. specie nei piccoli . al contrario degli impianti oleodinamici. Si tratta di una macchina il cui funzionamento non differisce. un compressore dimensionato per fornire la necessaria portata oraria di aria sarebbe del tutto sufficiente... 2 0 0 5 . ecc. viene impiegato un serbatoio di accumulo. ed immagazzinata nel serbatoio-polmone. L'organo generatore dell'energia di pressione è il compressore. dove lo scarico degli attuatori è continuamente raccolto e rimesso in circolo. nelle linee essenziali.medi impianti. occorre precisare il sistema di riferimento adottato. L'aria.013 955 899 795 540 356 Quando si parla di pressione atmosferica e si forniscono i valori numerici concernenti la pressione. tenendo presente che tutti i sistemi agisce la pressione atmosferica. il quale svolge tre importanti funzioni: 1. è sottoposta ad una preliminare filtrazione. utensili.A U T O M A Z I O N E I N D U S T R I A L E - A . A .

2 0 0 5 .033 -------.8 -------.~ 0. 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.013 hPa = 760 Torr L'unità di pressione nel Sistema Internazionale è il Pascal (Pa).~ 1 bar cm2 cm2 m2 Kp N N 1 at = 1 -------. In particolare il chilopound (simbolo: kp).013 bar = 1.= 1.A U T O M A Z I O N E I N D U S T R I A L E - A .= 1.02 Kp / cm2 160 .8 -------. se ne impiega un multiplo chiamato bar: 105 Pa = 1 bar Sono però ancora in uso unità di misura del Sistema Tecnico. a 0°C.2 0 0 6 Pressione atmosferica normale Per poter fornire valori di pressione esattamente definibili.98 x 105 ------. nome dato al chilogrammoforza (Kgf) ed equivalente a: 9.= 0. L'atmosfera fisica equivale quindi a 1.98 bar cm2 cm2 m2 1 bar = 1 atm = 1.= 9. le norme internazionali hanno stabilito una pressione di riferimento: la pressione atmosferica “normale” a livello del mare è di 1.01 x 105 ------. malgrado le oscillazioni della pressione atmosferica.033 x 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.033 Kp/cm2. 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. A .

81 x 10-5 6.3 Cambiamento di stato dei gas Lo stato di un gas viene determinato dalle tre grandezze pressione.= ---V2 T2 Volume e Temperatura V2 V1 T2 T1 161 .2 0 0 6 Tabella di conversione tra valori della pressione espressi in diverse unità di misura Pa (N/m2) 1 9.013 x 10 5 10 5 133 9.013 1 1.42 x 10-3 1 Torr (mm Hg) 75 x 10-4 736 760 750 1 7.1. 2 0 0 5 .981 1.) p x V = cost p1 x V1 = p2 x V2 p1 V1 p2 V2 A pressione costante il volume d’aria è direttamente proporzionale alla sua temperatura assoluta (isobara : p = cost. In) 1.81 69 x 10 3 Bar 10-5 0.9 x 10-52 Psi (lbf/sq. A .81 x 104 1. volume e temperatura.92 x 10-2 1.) V1 T1 ---.22 14.A U T O M A Z I O N E I N D U S T R I A L E - A .33 x 10-3 9.36 x 10-2 51. 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.68 14.72 5.45 x 10-4 14.5 1.

A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .) p1 T1 ---. subisce un raffreddamento 162 .1. quindi.= cost. A .2 0 0 6 Pressione e Temperatura A volume costante la pressione dell’aria è direttamente proporzionale alla sua temperatura assoluta (isocora : V = cost. Durante la compressione si produce calore.4 Aria compressa Per aria compressa s’intende aria atmosferica compressa che in questa condizione ha accumulato energia sotto forma di pressione e. in altra forma: pxV=mxRxT dove : p : pressione V : volume m : massa T : temperatura assoluta R: costante dei gas (per l’aria R=287) 5. Quando l’aria compressa si espande.= ---------.= ---p2 T2 p1 p2 T1 T2 Equazione generale di stato Raggruppando questi principi si giunge all’equazione generale di stato per i gas p2 x V2 p1 x V1 ---------. T1 T2 Oppure. è in grado di effettuare un lavoro.

12. il mantello è in alluminio. 250. ed al suo spostamento che è pari alla corsa. La forza generata sul pistone dalla pressione viene poi di norma portata all'esterno mediante un puntone detto stelo. Il lavoro utile prodotto è direttamente proporzionale alla pressione esercitata sull'area del pistone. La lunghezza del mantello definisce la corsa massima del cilindro. sia libero di spostarsi. è 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. 63. 25. 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. A . 32. 320. o alesaggi standard dei cilindri o pneumatici: 8. 80. Infatti. anteriore e posteriore. Il mantello (o camicia) è generalmente costituito da un tubo di acciaio trafilato senza saldatura. 40. 16. 2 0 0 5 . 125. 20. ottone o bronzo. 200. Più raramente. 50. Il lato che si muove si chiama pistone. il CETOP (Comitato Europeo Trasmissioni Oleodinamiche e Pneumatiche) ha emanato l’unificazione della serie dei diametri interni.2 0 0 6 5.A U T O M A Z I O N E I N D U S T R I A L E - A . Recentemente.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. Il mantello è racchiuso tra due testate. mentre il suo diametro interno ne definisce l’alesaggio. 100. 400. 500 mm 163 . 160. per poter raccogliere lavoro all'esterno. la prima con un foro centrale con guarnizione raschia polvere entro il quale scorre lo stelo.

che provvede alla lubrificazione dello stesso. 164 . Cilindro a semplice effetto a riposo Cilindro a semplice effetto in lavoro La spinta dell’aria compressa agisce solo in un senso mentre il movimento in senso opposto avviene per effetto di una molla. l’entrata e l’uscita dell’aria dal cilindro. La testata anteriore. in cui entrambe le corse si producono grazie all'aria compressa.A U T O M A Z I O N E I N D U S T R I A L E - A . è di preferenza acciaio legato. Il materiale dello stelo. in acciaio o in materie plastiche. mentre nel senso opposto il moto di ritorno è affidato alla molla. Gli svantaggi sono dati da una corsa limitata e dal fatto che anche limitata è la velocità di ritorno affidata alla molla.1 Cilindri a semplice effetto Nei cilindri a semplice effetto il moto del pistone in una direzione è affidato all'azione di una molla. Lo stelo può essere semplice o passante. 5. a seconda che debba uscire da una sola o da entrambe le testate. A . o asta. Si costruiscono cilindri a semplice e a doppio effetto. Il corpo del pistone deve essere progettato in modo che le guarnizioni siano spinte dall’aria stessa a migliorare la tenuta tra la camera lato stelo e lato pistone del cilindro. 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. Le testate possono essere realizzate per fusione di lega leggera e devono assicurare la tenuta meccanica e pneumatica col mantello. da cui esce lo stelo. Il pistone è spinto in un verso dall'aria compressa che entra attraverso il condotto di alimentazione. la guida e la lubrificazione dello stelo.2. 2 0 0 5 . ha incorporata una bronzina.2 0 0 6 Il corpo del pistone è costruito in lega leggera.

A .A U T O M A Z I O N E I N D U S T R I A L E - A . Sono indicati inoltre per impieghi in cui. Cilindro pneumatici commerciali 165 . per motivi di sicurezza. 2 0 0 5 . in caso di mancanza d’energia il cilindro deve assumere una posizione definita.2 0 0 6 Caratteristiche: o Consumo d’aria in un solo senso o Posizione definita anche senza energia o Forza d’avanzamento 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.

I valori di forza ottenibili con un cilindro a semplice effetto. azionamento di valvole. A . Cilindro a doppio effetto a riposo Cilindro a doppio effetto in lavoro La spinta dell’aria compressa agisce nei due sensi (spinta – tiro) Simbolo grafico DIN/ISO 1219 – Cilindro a doppio effetto 166 . Se il cilindro deve spostare grandi masse. di dato alesaggio D. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . si ottengono moltiplicando i valori di superficie per i valori di pressione su queste agenti. con posizione di riposo: asta tutta fuori).2 Cilindri a doppio effetto Nei cilindri a doppio effetto la spinta dell’aria compressa può agire nei due sensi. 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. Questi ultimi vengono usati per situazioni di emergenza derivanti da mancanza di alimentazione). Questi sono raccomandati per grossi diametri e corse lunghe. viene fornito di ammortizzatori di fine corsa per evitare gli urti del pistone contro le testate di fine corsa. 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. espulsori.2 0 0 6 Esempio di impiego: serraggio.

punzonatura. formatura. pressatura. inclinazione. selezionamento. alimentazione. 2 0 0 5 . piegatura.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. assemblaggio. di dato alesaggio D e di diametro stelo d. Esempi di impiego: serraraggio. Disegno meccanico di un cilindro pneumatico Nel caso di cilindri a doppio effetto. A . 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 .

2 0 0 5 . la resistenza di attrito è quella statica. 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 . nel caso di un cilindro a doppio effetto. A .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 il calcolo del volume d'aria in pressione basta moltiplicare la corsa utile del cilindro per l'area utile di spinta e.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. Poiché la forza si misura staticamente. durante il movimento la resistenza di attrito è minore. 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.A U T O M A Z I O N E I N D U S T R I A L E - A .85 %. Si usa tenere conto delle circostanze dette attraverso un rendimento il cui valore può assumersi nel campo 80 . corrispondente alla partenza. e cioè: π ( D2 .

3 cm = 3.3 cm 4 4 perciò la Forza di spinta sviluppata risulta: N 2 Fs = p As = 60 ----. A . 2 0 0 5 . 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.4 4 4 perciò la Forza di tiro sviluppata risulta: N Ft = p At = 60 ----.x 50.= -------------.14 x 82 2 As = ---------. Un cilindro a doppio effetto ha un diametro di 80 mm ed un diametro dello stelo di 25 mm.= 45.x 45. 169 2 . Quali solo le forze teoriche sviluppate nelle corse avanti e indietro? Soluzione La superficie utile di spinta è: π D2 3.2 0 0 6 Esercizi sui cilindri 1.018 N 2 cm La superficie utile di tiro è: π ( D2 . in base alle necessità delle apparecchiature servite ed alle condizioni dell'ambiente in cui deve operare.52 ) At = -----------------.A U T O M A Z I O N E I N D U S T R I A L E - A .= --------------------.d2 ) 3.14 ( 82 – 2.= 50.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. La pressione di esercizio è di 6 bar (60 N/cm2).

Definizione della corsa massima consentita per non incorrere in fenomeni di instabilità al carico di punta. A . 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. cilindri a membrana. 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. Questi cilindri sono usati quando occorre una guida migliore di quanto diano i normali cilindri. Grazie all’esistenza di supporti alle due estremità. Dimensionamento dell'alesaggio in funzione dello sforzo di lavoro richiesto 2.3 Altre tipologie di cilindro Oltre al classico schema di cilindro con asta che fuoriesce dalla testata anteriore. cilindri senza stelo. cilindri rotativi. cilindri a più posizioni. Cilindri a stelo passante.A U T O M A Z I O N E I N D U S T R I A L E - A .2. Cilindri a più posizioni. Nel caso di un cilindro a quattro posizioni due cilindri a doppio effetto sono affiancati con gli steli posti da parti 170 . e cioè con presenza di carichi radiali sull'asta. per cui sono uguali anche le forze sviluppate nei due sensi. nei robot e nei manipolatori vengono usate numerose varianti e cilindri di tipo particolare per soddisfare le molteplici esigenze. hanno pertanto una uguale forza di spinta in entrambi i versi di movimento. Questo si attua in due fasi: 1.2 0 0 6 Stabilito il tipo si può passare al dimensionamento. 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. Tra i vari tipi ricordiamo: cilindri a stelo passante. Sono forniti di stelo sporgente da entrambe le testate. 2 0 0 5 . Servono per fermare l'asta del cilindro in più posizioni intermedie e non solo nelle due posizioni estreme come avviene nei cilindri normali. 5.

Lo schema può essere esteso a più cilindri ed il numero delle posizioni ottenibili da questo sistema è 2n. Questo elemento viene utilizzato per il serraggio rapido di pinze e ganasce per l'afferraggio ed il bloccaggio di pezzi durante la movimentazione. Dispositivi di questo genere si basano sull'uso di arresti meccanici che agiscono sul moto dei pistoni (azionamento di scambi.A U T O M A Z I O N E I N D U S T R I A L E - A .05 mm. Le precisioni ottenibili sono dell'ordine di 0. Si comporta come un cilindro di serraggio a semplice effetto poiché. Simbolo grafico DIN/ISO 1219 – Cilindro a più posizioni Cilindri a membrana.000 N) o Corse molto limitate o Installazione semplice o Prezzo conveniente 171 . Sono costituiti da una membrana che si deforma sotto l'azione dell'aria compressa espandendosi e spostando l'organo di forza. la membrana riacquista la sua configurazione iniziale. azionamento di valvole. in assenza di pressione. La presenza della membrana. il montaggio e la generica manipolazione.2 0 0 6 opposte. ecc…). A . modifica di fermi. 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. 2 0 0 5 . 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. dove n è il numero dei cilindri accoppiati.

Sono forniti di un albero di uscita in grado di compiere rotazioni alternative. A . sollevamento. Simbolo grafico DIN/ISO 1219 – Cilindro rotativo Cilindro rotativo 172 . o quando si vuole avere un ingombro ridotto ed una costruzione compatta. Questi cilindri vengono impiegati quando esistono problemi di carico di punta sullo stelo a causa dell’elevata lunghezza della corsa Vantaggio fondamentale è un ingombro ridotto. apertura. alimentazione di pezzi da lavorare.2 0 0 6 Cilindri senza asta.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . Es: inserimento. Cilindro senza stelo Cilindri per motori rotativi. costituiti da un cilindro in cui lo stantuffo è direttamente utilizzato per compiere il lavoro meccanico senza bisogno dell'interposizione dell'asta. Sono attuatori di tipo lineare. dato che è l'intera canna del cilindro che è utilizzata direttamente per ricavare la funzione di forza. azionamento di porte. spostamento. Settori d’impiego principali: per grandi corse e dove sono richieste quote di montaggio contenute. chiusura. trasporto. Vengono generalmente adoperati quando occorre avere angoli di rotazione superiori a 120°.

acqua. 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.3 Motori pneumatici I motori pneumatici trasformano energia di pressione in lavoro meccanico con movimento rotativo. invertendo il senso del flusso. i motori pneumatici presentano ovviamente differenze costruttive più o meno accentuate. La rotazione del motore può essere oraria o antioraria. In tutti i tipi è evidente la netta dipendenza della velocità di rotazione dal valore della coppia resistente. A . funzionando perciò come un attuatore pneumatico. 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. convertendo energia di pressione in energia meccanica di rotazione. 2 0 0 5 . 173 . o Possibilità di sovraccarico fino all’arresto o Tempo di inserzione illimitato o Protezione antideflagrante totale o Nessun autoriscaldamento o Insensibilità ad influenze ambientali come polvere. umidità o Manutenzione semplice o Facilità ed immediatezza di inversione del senso di rotazione o Possibilità di alimentazione anche con fluidi diversi dall’aria Le macchine volumetriche sono in linea di principio reversibili: un compressore può funzionare come motore. rendimento e consumo d'aria in funzione della velocità percentuale rispetto a quella caratteristica a vuoto. invertibile con facilità. Il comportamento medio dei diversi tipi di motore pneumatico risulta dalle curve di coppia.A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 5. ne consentono un impiego economico e tecnicamente ottimale. Rispetto a questi. La tipologia è dunque la medesima dei compressori. che in molti casi.

sia soprattutto dallo scarico finale. la riduzione della densità delle molecole in esso contenute causa una diminuzione della pressione assoluta del gas residuo. la pressione atmosferica è solitamente di 1013 mbar. per il quale i vari sistemi silenziatori sono purtroppo un palliativo molto blando. hanno però il grande pregio di non risentire dei sovraccarichi: possono essere caricati fino all'arresto sotto carico senza pericolo. In genere si tratta di attuatori molto rumorosi: la rumorosità deriva sia dal moto dell'aria entro i condotti e nei diversi componenti.2 0 0 6 Avvitatore pneumatico Una applicazione tipica dei motori pneumatici a palette e quella degli avvitatori pneumatici. 2 0 0 5 . Ogni pressione inferiore a questo valore rappresenta il VUOTO. 174 . Ciò che accade in effetti all’interno di un sistema nel quale si vuol creare il vuoto consiste nell’evacuazione delle molecole d’aria all’interno del circuito. Le due tipologie di applicazione esistenti sono: Circuito a tenuta (ermetico) Circuito con perdite (poroso) In un circuito a tenuta. Al livello del mare. A . originando il vuoto. 5. in cui si ha l'arresto dell'utensile al superamento del valore della coppia di serraggio che coincide col massimo della caratteristica meccanica.4 La teoria del vuoto Il vuoto può essere definito come una pressione inferiore a quella atmosferica.A U T O M A Z I O N E I N D U S T R I A L E - A . A differenza dei motori elettrici.

L’aria compressa è paragonabile all’elettricità che alimenta una pompa a vuoto elettromeccanica. al livello del mare la pressione atmosferica è solitamente 1013 mbar. 175 .2 0 0 6 Per ottenere il vuoto in un circuito con perdite occorre rimuovere un numero di molecole d’aria superiore a quelle che sono in grado di rientrare nel sistema. L’aumento del grado di vuoto corrisponde ad una diminuzione della velocità di evacuazione. ogni pressione inferiore a questo valore viene definita vuoto. La portata d’aria libera può essere paragonata alla cilindrata di un motore che dice poco a riguardo delle sue caratteristiche di efficienza e prestazioni. Aria compressa E’ la fonte di energia che alimenta una pompa a vuoto del tipo ad eiettori. I più importanti termini da comprendere e utilizzare nello sviluppo di un circuito di vuoto sono: Vuoto E’ la pressione inferiore a quella atmosferica. 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. Di solito viene misurata in l/min (litri al minuto).A U T O M A Z I O N E I N D U S T R I A L E - A . o la quantità di atmosfera residua. Il termine viene spesso utilizzato dai costruttori di pompe a vuoto per indicarne le caratteristiche. 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. oppure la quantità d’aria che fluisce attraverso una pompa. Il grado di vuoto determina la forza di sollevamento di una ventosa. Questa viene prodotta da un compressore. 2 0 0 5 . A . e distribuita mediante tubazioni. Grado di vuoto Il termine definisce il livello di pressione all’interno di un circuito. che viene solitamente misurato in kPa (kilo Pascal). Portata E’ la velocità di evacuazione della pressione atmosferica all’interno di un sistema. Questo dato spesso può confondere poiché non indica le prestazioni ai diversi gradi di vuoto. Come detto precedentemente. La portata determina anche la capacità di compensare eventuali perdite. Pressione dell’aria compressa La pressione dell’aria compressa viene misurata in bar. Solo parlando la stessa lingua si possono fare paragoni reali. La terminologia utilizzata nel campo del vuoto deve essere coerente sia nel caso di sistemi elettromeccanici che ad aria compressa.

Vuoto di processo Trattasi di un vuoto superiore a 99 kPa.A U T O M A Z I O N E I N D U S T R I A L E - A . l/min che una pompa a vuoto necessita per generare il grado di vuoto desiderato. Il vuoto industriale viene utilizzato dalla manipolazione alla termoformatura.1 Grado di vuoto Il vuoto viene solitamente suddiviso in tre aree applicative. Solitamente l’unità di misura utilizzata è il Torr. vi è una minima presenza di atomi. Il più alto livello di vuoto raggiunto sulla terra si discosta notevolmente dal valore di vuoto assoluto che rimane un valore puramente teorico. Volume E’ l’area totale di un circuito comprendente tutti gli spazi nocivi. e quindi in assenza di atmosfera. Per queste applicazioni vengono utilizzate delle pompe elettromeccaniche del tipo a girante. 2 0 0 5 . A . Consumo di energia E’ la quantità di energia espressa in hp.4. Forza di sollevamento E’ la capacità di sollevamento di una ventosa determinata mediante il rapporto tra la pressione e l’area della superficie di contatto. kW. inclusa l’area di applicazione. La serigrafia sui tessuti rientra tra le applicazione tipiche che necessitano di un basso grado di vuoto. 176 . che dipendono dal grado di vuoto richiesto: Basso vuoto Solitamente impiegato in tutte quelle applicazioni dove è necessario un elevato flusso d’aria. Il flusso di aspirazione è minimo e le applicazioni di tipo scientifico comprendono simulazioni spaziali. Anche nello spazio. Vuoto industriale Con il termine vuoto industriale si intende un vuoto compreso tra 20 e 99 kPa. 5. Questo range comprende la maggior parte delle applicazioni.2 0 0 6 Tempo di evacuazione E’ il tempo che occorre per evacuare un dato volume d’aria ad un grado di vuoto prestabilito.

La pressione esterna atmosferica spingerà la ventosa contro la superficie di un pezzo che potrà essere in tal modo afferrato e spostato. fluiscono attraverso lo scarico (A+B). cercando di riportare il sistema in equilibrio. 2 0 0 5 . passando attraverso una strozzatura. raggiunge una velocità supersonica (A) che attira le molecole a bassa pressione. A .A U T O M A Z I O N E I N D U S T R I A L E - A . Il grado di vuoto che un eiettore può raggiungere dipende dalla configurazione dell’eiettore. Il mix di aria compressa passante per l’eiettore e l’aria a pressione atmosferica esterna. I generatori di vuoto ad aria utilizzano il principio di Bernulli basato sull’esistenza di una relazione tra pressione e velocità: l’alta velocità di un fluido (come aria o acqua) corrisponde ad una bassa pressione e viceversa. Nelle pompe a singolo stadio si inietta aria compressa all’interno di un ugello conico chiamato eiettore. al suo interno può essere creato il vuoto.4.2 Generatore di vuoto I generatori di vuoto sono basati sull'effetto Venturi: l'aria in pressione. La maggior riduzione della sezione dell’ugello porta ad un aumento della velocità che corrisponde ad una riduzione di pressione. attraverso l’ugello conico. L’aria compressa.2 0 0 6 5. Se ai capi di questo condotto si pone una ventosa. crea una depressione che genera il vuoto entro un condotto che fa capo alla strozzatura. La pressione atmosferica esterna (B) fluirà. 177 .

La ventosa aderisce ad una superficie nel momento in cui la pressione circostante è maggiore della pressione esistente tra la ventosa e la superficie dell’oggetto.2 0 0 6 Il generatore di vuoto è sempre accoppiato ad un vacuostato. maggiore è il vuoto all’interno della ventosa. La rettifica del labbro permette di ottenere la perfetta tenuta anche al minimo appoggio. sicurezza. A . o perché estremamente deformabili. Le ventose sono accessori per il vuoto indispensabili là dove si presenti un problema di sollevamento o di manipolazione di oggetti. economia. Ventose per applicazioni industriali Una corretta applicazione delle ventose assicura semplicità. al superamento di una certa soglia regolabile di depressione. più o meno resistenti ad oli. perché privi di appigli. perché fragili. il peso e la porosità dell’oggetto. lastre o altri corpi "difficili da prendere" con gli altri metodi tradizionali di serraggio. e più o meno flessibili. Si trovano normalmente disponibili con diverse mescole. fornisce un segnale che avrà il significato di presa effettuata. ventose a cono profondo per oggetti con spigoli. quest’ultima viene collegata ad una pompa a vuoto. grassi. Al fine di creare una depressione all’interno di una ventosa. presupposti questi. 178 . Prima di selezionare una ventosa occorre considerare la superficie. ventose a soffietto per compensare dislivelli. Minore è la pressione. ventose con rinforzi interni per evitare di deformare gli oggetti manipolati. 2 0 0 5 . più elevata risulterà la forza di sollevamento.A U T O M A Z I O N E I N D U S T R I A L E - A . fondamentali per la perfetta realizzazione di ogni automatismo. idrocarburi e gas. la conformazione. 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 in gomma espansa per oggetti difficili da manipolare o ventose ovali per oggetti a forma allungata. un sensore pneumatico che.

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 . 2 0 0 5 . A .

A U T O M A Z I 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 dell’aria 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 l’aria 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 l’uscita 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

NA ( o "in chiusura") o di scambio: un contatto apre un circuito e ne chiude un altro. Il relè è inoltre costituito da un certo numero di contatti. Chiudendo il circuito della bobina (circuito secondario o di comando). l'ancora viene attratta e. NC ( o "in apertura" all'eccitazione della bobina) o normalmente aperti. aprendoli se sono NC. 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). che possono essere: o normalmente chiusi. e l'amperaggio nei due può anche essere notevolmente diverso. a tali contatti è collegato il circuito principale.8 Il Relè Il relè è un apparecchio che contribuisce in larga misura a risolvere i problemi circuitali elettrici. I due circuiti possono essere alimentati in corrente continua o alternata.2 0 0 6 5. A . E' costituito da un elettromagnete (nucleo + bobina). con il suo movimento a bilanciere. chiudendoli se sono NA. agisce meccanicamente sui contatti. da una armatura mobile posta ad una estremità del nucleo e mantenuta distante dallo stesso mediante l'azione di molle. 185 . 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). ogni volta che arriva un impulso di corrente alla bobina. 2 0 0 5 . In questo caso. a seconda delle esigenze. Il relè considerato in figura è di tipo monostabile.A U T O M A Z I O N E I N D U S T R I A L E - A . di solito la bobina comanda uno o più contatti di scambio. mentre esistono ad impulsi (detti anche "passo-passo).

A . 2 0 0 5 . cioè un dispositivo in grado di aprire e chiudere un circuito. cioè normalmente aperto. ma da un elettromagnete. In questo modo. Cos'è e come funziona un relè Un relè è sostanzialmente un interruttore. dato impulsivamente. Vi sono molte circostanze nelle quali un segnale di comando. A differenza dell'interruttore però. al secondo impulso vengono aperti. il relè non viene azionato a mano. costituito da una bobina di filo avvolto intorno ad un nucleo di materiale magnetico. aperto quando il relè non è eccitato. deve provocare effetti duraturi: occorre perciò un circuito che "ricordi" tale comando. perché è tale quando il relè è a riposo.A U T O M A Z I O N E I N D U S T R I A L E - A . o di autoritenuta. Nel caso dei relè monostabili è necessario un circuito di automantenimento. l'ancoretta ruota e spinge il contatto centrale C verso destra.2 0 0 6 l'ancora viene attratta. il collegamento tra il contatto centrale e quello di sinistra (NC) si apre. e provoca la rotazione di una camma: al primo impulso i contatti vengono chiusi. perpetuandone l'effetto anche oltre la sua cessazione. secondo la freccia orizzontale. si crea un campo magnetico che attira l'ancoretta secondo la freccia rossa verticale. 186 . Allo stesso modo l'altro contatto. Il contatto di sinistra viene definito NC. cioè normalmente chiuso. e così via. Quando passa corrente nella bobina di filo. mentre si chiude il collegamento tra il contatto centrale e quello di destra (NA). Questo si costruisce con estrema facilità collegando in modo opportuno il contatto che deve provocare l'azione stabile. viene definito NA.

la minimizzazione..1 Circuiti combinatori e numerici Il progetto e la successiva costruzione di un sistema digitale.9 Sistemi di controllo digitali Per gli automatismi più veloci e complessi. per scendere via via ad una selezione dei problemi di tipo assemblativo (down). invece. dai sensori) e le azioni che sul processo devono essere comandate (variabili di uscita. non trovano oggi grossi utilizzi perché sono stati superati dall'impiego nelle applicazioni di Automazione Industriale dei PLC. conosciuto come top-down. A . rimanendo inizialmente il più possibile dai problemi di hardware. la manipolazione di porte logiche.. viene utilizzato soprattutto nella realizzazione di sistemi digitali complessi quali microprocessori. privilegia un approccio di tipo hardware. ecc. le cui problematiche esulano dagli intenti di questo corso. In qualche caso è l'esperienza e l'inventiva del progettista che può far superare ostacoli altrimenti insormontabili. utilizzando microprocessori. Tutti i circuiti digitali che saranno trattati nel seguito si suddividono in due grandi tipi: 1. le equazioni logiche che risultano dall'analisi del processo devono essere minimizzate. se il problema è combinatorio. che in definitiva. programmando una ROM.. In questo capitolo sono esposte le cognizioni di base necessarie per progettare e realizzare un circuito combinatorio di media complessità. Circuiti sequenziali 187 . Questi metodi. In pratica. può prendere l'avvio in due diversi modi corrispondenti a due diverse filosofie. consumo e costo. ci si accosta al progetto visto nella sua totalità (top). si impone necessaria la realizzazione del sistema di comando con tecnologia elettronica. Questo metodo. 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). Un secondo metodo consiste.2 0 0 6 5. 2 0 0 5 . Se possibile. Circuiti combinatori 2. Un primo modo consiste nel porre l'accento principalmente sui problemi quali l'assegnazione degli stati e la costruzione delle tabelle della verità.9. compattezza. in cui ci sia bisogno cioè di elaborare le informazioni con specifiche stringenti in termini di affidabilità. verso gli attuatori). nell'affrontare i problemi cercando di scoprire una soluzione sistematica per la realizzazione del progetto ed il suo controllo. microcomputer. Si devono inizialmente stabilire quali sono i segnali provenienti dal processo (variabili di ingresso..A U T O M A Z I O N E I N D U S T R I A L E - A . ecc.. 5. pur sempre validi. 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 figura è mostrato lo schema di principio del processo. tenendo presente che le variabili scelte e la loro assunzione ad uno stato logico piuttosto che un altro è del tutto arbitraria. quei circuiti che non hanno nessuna capacità di memorizzare quanto è accaduto precedentemente. 2 0 0 5 . A . data una o più variabili di ingresso I. Viceversa. Per un corretto funzionamento dell'impianto è necessario fornirgli delle informazioni. Sono.2 0 0 6 Per circuiti di tipo combinatorio si intendono quei blocchi funzionali in cui. si può cercare d'impostare il problema definendo. le uscite Y sono funzione solo dello stato attuale degli ingressi. nel modo più generale possibile. 1 . permette di chiarire in modo più diretto le problematiche incontrate. 188 . pur nella sua limitazione. in altre parole.A U T O M A Z I O N E I N D U S T R I A L E - A . 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.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. 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 chiamano sequenziali quei circuiti la cui condizione dipende anche dagli stati precedenti delle uscite. alcune fasi di lavoro successive. ma il metodo è comunque valido per qualsiasi altro tipo di assunzione.

costituito dal processo da controllare e dal circuito di controllo. tramite opportuni circuiti di interfaccia. ed infine un segnale di allarme (A) che spenga tutto l'impianto ed accenda una spia.2 0 0 6 Tali informazioni potrebbero essere le seguenti: la temperatura dell'ambiente che si vuole riscaldare (Ta). Dall'elaborazione di queste informazioni fornite dal processo al circuito digitale. ad esempio 30°C. che può oppure no superare una soglia prefissata. A . L'intero sistema. in caso di guasto.A U T O M A Z I O N E I N D U S T R I A L E - A . la temperatura dell'acqua contenuta nella caldaia (Tc) che non deve superare una determinata soglia. di superare una data soglia di sicurezza. ad esempio 60°C. si presenta secondo lo schema a blocchi di figura: 189 . devono essere generati dei segnali di uscita per il comando. la temperatura dell'acqua oltre la quale la pompa di circolazione deve entrare in funzione. infine un manometro di sicurezza che deve impedire alla pressione. dell'accensione del bruciatore (Cb). della pompa (Cp). 2 0 0 5 .

190 . semplificando. 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 60°C acqua al di sopra di 60°C Tp acqua al di sopra di 30°C acqua al di sotto di 30°C 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 A allarme non in funzione allarme in funzione 2 . risulta più agevole stendere una tabella della verità contenete solo la rappresentazione degli stati possibili. l'acqua nella caldaia è fredda e la pompa che la spinge in circolazione è ferma. invece. A . Nel tipo di processo in esame si è supposto il seguente funzionamento: inizialmente l'ambiente che si vuol riscaldare è freddo.A U T O M A Z I O N E I N D U S T R I A L E - A .Stesura della tabella della verità Nella stesura della tabella della verità se il numero delle variabili di ingresso è limitato (come nel caso in studio. la pompa entra in funzione non appena l'acqua supera i 30°C di temperatura e si spegne solo in caso di allarme o se la temperatura scende nuovamente sotto i 30°C. notevolmente il successivo lavoro di minimizzazione. Nel caso. in cui il numero di esse sia elevato ed il numero delle situazioni impossibili od indifferenti non sia più trascurabile. in cui sono quattro). si possono rappresentare tutte le loro possibili combinazioni anche se alcune di esse sono indifferenti o impossibili a verificarsi. così. Dopo l'accensione del bruciatore.

invece. acqua > 30°C processo in Allarme Temp. 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 . 2 0 0 5 . 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. quando l'ambiente ha raggiunto la temperatura voluta o quando l'acqua sale al di sopra di 60°C.) 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. il manometro emette un segnale (Sp).A U T O M A Z I O N E I N D U S T R I A L E - A . che deve spegnere tutto l'impianto ed accendere una lampada spia. acqua > 60°C (imposs.Traduzione della tabella in funzioni Booleane Osservando la tabella della verità è evidente che. che si ha se la pressione supera un determinato valore. Si spegne. non scaldare processo in Allarme ambiente caldo e pompa attiva processo in Allarme 3 . Nel caso di allarme. A .2 0 0 6 Il bruciatore si accende fintanto che l'ambiente è freddo e l'acqua nella caldaia è al di sotto di 60°C.

per rendere minimo l'ingombro del circuito.A U T O M A Z I O N E I N D U S T R I A L E - A . Tra i vari metodi di semplificazione esistenti si è in questo caso adoperato quello delle mappe di Karnaugh. A . 2 0 0 5 . il costo e la complessità.2 0 0 6 4 . che dà i seguenti risultati: _ _ _ Cb = Ta Tc Sp _ Cb = Tp Sp 192 .Semplificazione delle funzioni Lo scopo della semplificazione è quello di diminuire le porte necessarie. l'assorbimento di potenza.

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. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . si può prelevare la variabile Sp all'uscita dell'inverter (negata) utilizzato per ottenere la variabile Cp. A . Così.2 0 0 6 A = Sp 5 . risparmiando un inverter. ad esempio. 193 . Una di queste consiste nell’usare parti di circuito realizzato da porte che sono usate per implementare un'altra funzione.

Continuando in questo modo e facendo uso delle leggi dell'algebra di commutazione. utilizzare sempre tutte le porte in esso contenute. 2 0 0 5 . A . per ragioni di ingombro. quanto più è complesso il circuito da realizzare. 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.2 0 0 6 Un altro metodo per l'ulteriore semplificazione si può ottenere applicando le leggi di De Morgan. Naturalmente questo modo di operare risulta tanto più utile. 194 . il circuito di partenza può ottenersi in un'estrema varietà di configurazioni più o meno valide a seconda delle necessità di progetto.A U T O M A Z I O N E I N D U S T R I A L E - A . Va in ogni modo sempre tenuto presente che ogni qualvolta si sceglie un integrato è bene. potenza e costo.

di conteggio o aritmetiche o esegue le funzioni assegnate ad un automatismo. sostituendo ormai ovunque i sistemi di controllo a relè.A U T O M A Z I O N E I N D U S T R I A L E - A . meno affidabili e caratterizzati da problemi di cablaggio. A . il PLC viene impiegato per automatismi logici. la loro estensione ha interessato tutti i settori industriali. relativamente più lenti. di temporizzazione. sequenziali.2 0 0 6 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. 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. per il quale è dotato delle opportune interfacce. Secondo il NEMA (National Electrical Manufactures Association). espresse attraverso un apposito programma di istruzioni. 2 0 0 5 . 195 . come funzioni logiche. Molto più frequentemente. Gradualmente. 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. a media complessità.

i segnali di ingresso provenienti da sorgenti quali sensori. i PLC lavorano tenendo sotto controllo. A . 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. dal quale si differenzia per le modalità di utilizzo dei singoli componenti.A U T O M A Z I O N E I N D U S T R I A L E - A . 196 . con una struttura costruttiva che rispecchia a tutti gli effetti quella di un calcolatore. finecorsa o pulsanti. display ed allarmi. Quando rilevano delle variazioni nei segnali di ingresso tali da cambiare lo stato logico (segnali on / off). controlli per motori. concepito per risolvere problemi di controllo di automazione. 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. 2 0 0 5 .2 0 0 6 Nella loro concezione più semplice. 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è. Un PLC è dunque un dispositivo di tipo industriale. attraverso scansioni cicliche. 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.

invece. condizioni di allarme e di errore. A . esegue la scansione del programma. in particolare. eventuali modifiche al programma richiedono la cancellazione del chip di memoria e la sua riprogrammazione. Nel secondo caso. Una batteria "tampone" mantiene i dati nel caso di caduta della tensione di alimentazione EPROM: (per programma definitivo) . perché contiene i circuiti che gestiscono tutte le attività del controllore e. il programma deve essere memorizzato tramite un particolare dispositivo chiamato programmatore di EPROM. ma per poter essere "scritta" richiede un particolare dispositivo (programmatore di EPROM).Non richiede alimentazione.2 0 0 6 La CPU è il cuore del PLC.A U T O M A Z I O N E I N D U S T R I A L E - A . Nel primo caso. 2 0 0 5 . RAM: (per sviluppo e collaudo) . 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. la lettura degli ingressi ed il pilotaggio delle uscite. la programmazione e le eventuali modifiche avvengono direttamente tramite "consolle" dedicata o personal computer. 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 L’unità di memoria di sistema contiene il sistema operativo (firmware) del PLC.Consente rapide operazioni di lettura/scrittura. modalità operativa. Può essere a sola lettura (EPROM) oppure a lettura e scrittura (RAM o EEPROM). La cancellazione avviene tramite raggi ultravioletti EEPROM: (sia per fase di sviluppo che per versione definitiva) Riassume i vantaggi di Ram ed EPROM - - 197 . Deve essere sempre alimentata. La CPU è in genere dotata di LED di segnalazione che indicano lo stato di funzionamento: presenza dell'alimentazione.

Questa parte è spesso modulare e può risiedere in un rack separato. Controllo assi.) La sezione di ingresso/uscita (I/O) comprende i dispositivi di interfacciamento ed i relativi cablaggi. sono corredati di LED di segnalazione.a.DC. direttamente interfacciabili con sensori PNP o NPN e moduli di uscita dotati di uno stadio finale a relè o a transistor. ossia tramite emissione luminosa. La fase di scaricamento della batteria viene segnalata in modo automatico dal PLC.A U T O M A Z I O N E I N D U S T R I A L E - A . . reti di comunicazione. sia di ingresso che di uscita.. Contatori veloci. o c. A seconda delle specifiche esigenze di progetto. che ne permettono il collegamento al sistema da controllare. Triac) Moduli di comunicazione Moduli speciali (AD-DA. è necessario effettuare sulle aree dati veloci operazioni di lettura e di scrittura. che indicano costantemente lo stato di ciascun punto. in funzione delle elaborazioni del programma.2 0 0 6 Memoria dati Contiene le informazioni relative alle varie aree dati interne e di I/O Poiché. 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. Il foto-accoppiatore trasferisce il segnale tramite un fotodiodo.c.) Unità periferiche Permettono il "colloquio" tra l'operatore (programmatore) ed il PLC Consolle di programmazione 198 . moduli conversione analogico / digitale. Uno scaricamento completo determina la perdita di dati e programma (se questo è in RAM).. La batteria ha una durata nominale di circa 5 anni (in relazione all' uso e all' ambiente).AC/DC) Moduli di USCITA DIGITALE (Relè. A . ecc. PID. viene assicurato da una batteria tampone. oppure essere integrata con la CPU. controllo assi. è possibile utilizzare soltanto memorie di tipo RAM Batteria Il mantenimento della memoria dati anche a fronte di cadute di alimentazione. Questa batteria alimenta anche l'eventuale RAM utilizzata per la memoria programmi. è possibile scegliere tra moduli di ingresso alimentati in c. 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. Per assicurare la massima immunità ai disturbi. Transistor. Tutti i moduli... Moduli I/O Permettono il collegamento del PLC al mondo esterno Sono disponibili: Moduli di INGRESSO DIGITALE (AC. 2 0 0 5 .

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.70 millisecondi. il PLC legge lo stato degli ingressi. Quelli più potenti arrivano a tempi di elaborazione di 1 millisecondo per 1K di istruzioni.A U T O M A Z I O N E I N D U S T R I A L E - A . A . richiedono un tempo di elaborazione dell'ordine di 10 . 2 0 0 5 . e compiono quindi la scansione di 1K di memoria di istruzioni in 10 . si può dire che alcuni PLC tra i più economici.70 millisecondi per eseguire una istruzione.2 0 0 6 - Consolle di programmazione grafica Interfaccia per personal computer Interfaccia stampante Programmatore di EPROM 6. producendo le uscite corrispondenti. ed esegue su questi le operazioni logiche indicate nelle istruzioni del programma. A puro scopo indicativo. PROGRAMMA SCANSIONE: INTERVALLO DI TEMPO NECESSARIO PER ESEGUIRE UN CICLO DEL 199 .1 Principio di funzionamento Un PLC è un sistema di comando a cui si collegano quindi sensori ed attuatori per l'elaborazione delle relative informazioni. leggendo le corrispondenti celle di memoria.

A U T O M A Z I O N E I N D U S T R I A L E - A . A .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 . 2 0 0 5 .

2 0 0 6 2. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . 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 .

A . stampanti. 2 0 0 5 ..A U T O M A Z I O N E I N D U S T R I A L E - A . . terminali.…. 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 . 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.2 0 0 6 Dove si usano i PLC In tutte quelle applicazioni dove . .

anche in pneumatica. i contatori e gli altri dispositivi discreti normalmente utilizzati per costruire sistemi di controllo elettromeccanici. A . ecc. come se dovesse disegnare uno schema funzionale. Intendiamo riferirci alla logica booleana ed alle sue regole. Per programmare uno schema di controllo. è altrettanto vero che questo non deve avvenire a costo di una forzata riqualificazione del personale. NOT. per "logici". che infatti vedrà prendere corpo sullo schermo della consolle. più genericamente. utilizzando uno dei vari metodi noti (mappe di Karnaugh. infatti.). Per realizzare uno schema di controllo. temporizzatori e contatori. 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). i temporizzatori. connessioni in serie (funzioni AND) o in parallelo (funzioni OR). diagrammi di Quine-McCluskey. Le loro applicazioni iniziali. Nella programmazione con i diagrammi a relè restano tuttavia in uso i simboli dei quadri elettromeccanici.. I PLC devono cioè inserirsi in azienda nel modo più naturale possibile. ma con caratteristiche di flessibilità ed affidabilità notevolmente superiori. ecc. quindi con enormi vantaggi in termini di tempo e di costi. che continua a lavorare come prima. Chi programmerà il PLC e che conoscenze dovrà avere? Se è vero che queste macchine possono portare numerosi vantaggi alle aziende che le utilizzano. ecc. bobine. l'utente non deve fare altro che premere in sequenza i tasti che gli servono. Analogamente ai linguaggi elettromeccanici. necessari per collegare i relè. OR. A questo punto si procede alla sintesi del sistema.. La sola differenza è che al cacciavite ed al filo elettrico.. Ciò ha spinto i costruttori ad offrire delle macchine utilizzabili esattamente come se contenessero al loro interno dei componenti quali relè. dove le relazioni tra le variabili sono espresse sotto forma di operatori logici elementari (AND. vedevano soprattutto la sostituzione dei PLC ai quadri di comando a relè. Tali relazioni sono spesso rappresentate dalle tabelle della verità. si sostituisce la console si programmazione.2 La programmazione dei PLC I circuiti a logica interna dei PLC sostituiscono i relè. gli operatori logici sono specificati nel PLC mediante codici corrispondenti. essendo essi basati su una simbologia utilizzata.. 203 . per esempio. L'effettivo funzionamento della macchina avviene come se tali componenti fossero presenti. si stabiliscono inizialmente i legami richiesti fra i segnali di ingresso e le variabili di uscita. permettendo di mantenere le stesse metodologie di impiego delle apparecchiature che vanno a sostituire.A U T O M A Z I O N E I N D U S T R I A L E - A . Rispetto ad uno schema fisico. Secondo metodo di programmazione Un'altra categoria di linguaggi è quella che potremmo definire per "elettronici" o. lo schema programmato offre la possibilità di apportare facilmente qualsiasi modifica o estensione. Il risultato finale è una serie di espressioni logiche. anche se con una elettromeccanica "virtuale".2 0 0 6 6. tuttavia. Essa tuttavia riporta tutti i simboli a cui i tecnici sono abituati: contatti normalmente aperti o chiusi. con vantaggi simili a quelli già descritti. 2 0 0 5 . senza richiedere il rifacimento del cablaggio. Il fatto che tali componenti non siano fisicamente presenti nel PLC può essere ignorato dall'utente.).

ALTRIMENTI.A U T O M A Z I O N E I N D U S T R I A L E - A . nella sequenza in cui essa si sviluppa. almeno in termini generali. che anche i costruttori di PLC si siano adeguati presentando dei linguaggi che ne permettono la programmazione quasi fossero dei personal computer. quindi. 204 . Inoltre è più facile costruire dei programmi modulari.. Naturale. quindi più flessibili e riutilizzabili. per esempio.. I linguaggi di questo tipo permettono di aggiungere alle funzioni di controllo delle utili funzioni di calcolo. il controllo PID. Si tratta in genere di versioni semplificate del BASIC o di linguaggi sviluppati ad hoc.). L'introduzione del personal computer a tutti i livelli della fabbrica ne ha diffuso notevolmente la conoscenza.. spesso chiamati "colloquiali" perché basati su una serie di comandi espressi con parole di facile comprensione (SE. 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. Scegliere questi linguaggi significa infine adottare un metodo omogeneo per programmare PLC.. cosa che sarà indispensabile in vista della "Factory Automation".ALLORA. Quarto metodo di programmazione L'ultima nata è la programmazione grafica (GRAFCET)che si basa sulla considerazione che ciascun utente conosce bene la propria applicazione. importanti per risolvere con maggior facilità applicazioni complesse quale. 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"..... personal computer ed altre apparecchiature "intelligenti".

Sulle righe circuitali vengono posti i vari contatti che si collegano alla parte destra. e OFF se il bit è OFF. mentre si usa una condizione negata quando si vuole che accada qualcosa quando il bit è OFF. Viceversa. Lo stato del bit associato a ciascun contatto determina la condizione di esecuzione per l’istruzione seguente.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. allora lo stato è ON se il bit è OFF e OFF se il bit è ON. 6. I contatti che prevedono dei tratti diagonali vengono chiamati contatti chiusi e corrispondono alle istruzioni LOAD NOT. le righe circuitali possono avere a loro volta diverse diramazioni che poi si collegano nuovamente. Prima di analizzarlo però. La barra verticale è chiamata “bus”.A U T O M A Z I O N E I N D U S T R I A L E - A . Qui sotto è riportato un circuito in diagramma a relè. le diramazioni vengono chiamate ”righe circuitali”. AND NOT o OR NOT.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. AND o OR. vengono detti contatti aperti e corrispondono alle istruzioni LOAD. Il numero in corrispondenza di ciascun contatto indica l’operando (in questo caso un bit) dell’istruzione. La combinazione logica di questi contatti determina quando e come le istruzioni poste a destra devono essere eseguite. nel caso di condizione negata. 205 . è bene chiarire altri termini base. Ogni coppia di tratti verticali è chiamata contatto. A . In generale viene usata una condizione normale quando si vuole che accada qualcosa quando il bit è ON. Come si può osservare. Il modo in cui opera ciascuna istruzione in base allo stato dei contatti viene descritto successivamente.3.2 0 0 6 6. 2 0 0 5 . Nel caso i contatti non siano dotati di un tratto diagonale.

dei temporizzatori/contatori. Bit di operando Gli operandi possono essere. viene detto blocco logico. per ciascuna istruzione.2 0 0 6 Condizioni per l’esecuzione In un programma in diagramma a relè. 2 0 0 5 . in un diagramma a relè. Blocco di istruzioni Un blocco di istruzioni consiste di tutte quelle istruzioni che sono interconnesse all’interno di un diagramma a relè. è necessario comprenderne bene il significato per realizzare una efficace programmazione. quando si programma in lista istruzioni. A . a parte LOAD e LOAD NOT. Le istruzioni LOAD e OUT possono anche utilizzare i relè temporanei TR. SR. ma questi vengono usati solo in casi speciali. richiedono una condizione per l’esecuzione. la combinazione logica di condizioni ON e OFF prima di una istruzione determina la condizione necessaria affinché l’istruzione venga eseguita. qualsiasi bit delle aree IR. LR o TC. che sia ON o OFF. Blocchi logici Il modo in cui i contatti influenzano le istruzioni è determinato dalle relazioni logiche tra i vari contatti presenti all’interno delle singole righe circuitali. Questa condizione. Sebbene i diagrammi a relè possano venire scritti senza analizzare i singoli blocchi logici. viene chiamata condizione per l’esecuzione dell’istruzione. AR. dei bit interni. dei flag. ecc. può essere dato dallo stato degli I/O. Tutte le istruzioni. L’inizio 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. 206 . Tutte le istruzioni all’interno di tali punti costituiscono il blocco di istruzioni. Ciascun gruppo di contatti che definisce un certo risultato logico. HR.A U T O M A Z I O N E I N D U S T R I A L E - A . Ciò significa che un contatto.

Verificare se il programma contiene degli errori. Disegnare uno schema di controllo.2 0 0 6 6.. Preparare una tabella che mostri la corrispondenza tra i bit di I/O ed i dispositivi di I/O. La prima cosa da fare è quindi valutare il numero ed il tipo di I/O richiesti dall'applicazione. 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. che non deve mai superare la capacità massima del controllore (riportata fra i dati caratteristici).) o che da questo devono ricevere un segnale (attuatori. ossia eseguirlo. Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. periferiche. sommato al numero dei punti di uscita. 4.. in base alla natura di ciascuno di essi. servocomandi. 2. ecc.2 Creazione di un programma Nella creazione del programma di controllo in diagramma a relè vengono generalmente seguite otto fasi fondamentali: 1. è necessario riportare. utilizzando i simboli dei diagrammi a relè. fornisce il numero complessivo dei punti I/O. 6. Selezionare i dispositivi di ingresso e di uscita del PLC. Per utilizzare un PLC in una applicazione di controllo. sistemi di visualizzazione. nella corretta sequenza. 2 0 0 5 . in base al tipo di PLC scelto ed alle funzioni offerte dalla console stessa. occorre in primo luogo determinare le specifiche del sistema. A .) decidendo. E' necessario quindi identificare le relazioni di 207 . pulsanti. ecc. Il numero dei punti di ingresso. 3. i segnali di ingresso e di uscita possono avere tensioni o correnti diverse. Come in un normale schema funzionale. le funzioni richieste e le loro correlazioni. 5. meno legate al particolare PLC selezionato.3. Esaminiamo più in dettaglio le prime quattro fasi. ed in particolare le specifiche di ingresso e uscita.. quanti punti elementari (bit) sono necessari. 8. Codificare i simboli dello schema in un formato adatto per l'inserimento nella CPU tramite la consolle di programmazione. Attivare il programma. Correggere gli errori e memorizzare il programma finito.A U T O M A Z I O N E I N D U S T R I A L E - A . Il passo successivo consiste nel determinare la sequenzialità degli eventi e la successione temporale secondo la quale fornire i comandi. In base ai moduli di I/O selezionati. Ciò richiede l'identificazione di tutti i dispositivi che devono inviare un segnale di ingresso al PLC (sensori.. 7. permettendo quindi un adattamento ottimale del PLC alle condizioni di impianto. Trasferire lo schema codificato (programma) nella CPU.

2 0 0 6 ciascun dispositivo controllato nei confronti degli altri ad esso legati (ad esempio. e contatori. A . in genere. Ad esempio. delimitate sul lato sinistro da una barra verticale. I relè ausiliari interni equivalgono quindi ai relè interni dei quadri elettromeccanici. in una applicazione di controllo. Dopo aver reso identificabili mediante indirizzi tutti gli elementi di ingresso e uscita e gli indirizzi interni che faranno parte dello schema di controllo. occorre assegnare i relè ausiliari interni del PLC. per controllare altri relè. di uscite interne. una fotocellula può essere collegata funzionalmente ad un motore tramite un contatore interno al PLC. E' necessario ricordare che: 208 . ma sono usati come aree di memorizzazione o elaborazione dei dati. 0000 identifica quindi il primo punto del primo canale. Ciascun canale comprende normalmente 16 punti ed ogni punto è identificato mediante un numero di quattro cifre. 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. Funzionalmente. 2 0 0 5 . mentre le due cifre a destra identificano il punto all'interno del canale. SECONDA FASE Molti controllori programmabili utilizzano il concetto di canali I/O per identificare i singoli punti. non vi possono essere contemporaneamente un temporizzatore 01 ed un contatore 01.A U T O M A Z I O N E I N D U S T R I A L E - A . Le due cifre a sinistra identificano il canale. fra una fotocellula ed un motore) ed anche le risposte reciproche. si può passare alla terza fase. temporizzatori. 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. mentre 0104 identifica il quinto punto (04) del secondo canale (01). Si parla quindi. Per esempio. Si tratta di relè che non controllano direttamente dei dispositivi esterni. 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. TERZA FASE E' ora necessario codificare con un diagramma a relè quanto messo a punto nelle due fasi precedenti. Oltre ai punti di I/O.

In altri casi.2 0 0 6 ogni riga deve terminare con la bobina di un relè. Bit che svolgono funzioni specifiche come bit di controllo e flag. sono indicati da sigle. a differenza degli schemi elettrici. 209 . il numero dei contatti in serie o in parallelo utilizzabili su una riga circuitale è spesso limitato. A .3 Aree di memoria I dati e i flag che possono essere usati con ciascuna istruzione. Area dati Descrizione IR SR HR AR LR TC Bit che possono essere assegnati ai terminali di I/O esterni. QUARTA FASE Non appena le funzioni di controllo sono state compiutamente espresse sotto forma di diagramma a relè.3. relè interni o relè speciali Bit che svolgono funzioni specifiche come bit di controllo e flag. di un temporizzatore/contatore o con un blocco funzionale (istruzione speciale). Gli indirizzi sono delle posizioni di memoria nelle quali si possono registrare istruzioni o dati. Utilizzata per le connessioni di dati 1 a 1 con altri PC. 6. nei diagrammi a relè non è sempre necessario disegnare la barra destra. Vengono utilizzati gli stessi numeri per temporizzatori e contatori. occorre trasformare quest'ultimo nel linguaggio utilizzabile dal PLC. è sufficiente riscrivere il diagramma a relè utilizzando la tastiera e seguendo le indicazioni che appaiono sullo schermo. è necessario trasformare il diagramma a relè in un codice mnemonico. 2 0 0 5 . utilizzando i dati da cui sono seguite. Spesso. Bit che memorizzano i dati e mantengono lo stato ON/OFF quando viene disattivata l’alimentazione. Per determinarli in modo univoco ci si deve riferire al manuale specifico del PLC interessato. se la consolle di programmazione lo consente.A U T O M A Z I O N E I N D U S T R I A L E - A . Le istruzioni servono per spiegare al PLC che cosa deve fare.

Bit di I/O Di seguito vengono illustrate le funzioni dell’area IR. Questi bit riflettono lo stato ON/OFF dei segnali di ingresso e uscita. mentre quelli di uscita da IR 01000. A . ma possono essere impiegati più volte in blocchi di istruzioni diversi. questi bit vengono utilizzati per memorizzare temporaneamente le condizioni ON/OFF nei rami del programma.Flag Quando un diagramma a relè complesso non può essere programmato in codice mnemonico in modo completo. 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. Programmando direttamente con il software di programmazione. i bit TR vengono gestiti in modo automatico. 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 . Gli stessi bit TR non possono essere utilizzati più di una volta nell’ambito dello stesso blocco di istruzioni. I bit dell’area IR da IR 00000 a IR 01915 vengono assegnati ai terminali del modulo CPU e dei moduli I/O. Lo stato ON/OFF dei bit TR non può essere controllato da una unità periferica.A U T O M A Z I O N E I N D U S T R I A L E - A . I bit di ingresso iniziano da IR 00000. Questi bit vengono impiegati solo per il codice mnemonico. 2 0 0 5 .2 0 0 6 Area IR . 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 l’alimentazione 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 l’alimentazione 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 un’area 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 l’accesso 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 l’importanza 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 l’istruzione. Qualsiasi identificatore usato dall’istruzione viene anche contenuto nel primo canale. Inoltre, se una istruzione richiede soltanto un unico bit di operando (senza identificatore), anche il bit dell’operando viene programmato sulla stessa linea circuitale dell’istruzione. I canali restanti, necessari all’istruzione, 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 l’istruzione non richiede un identificatore o bit di operando, la riga per la colonna dell’operando 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 l’istruzione. Quando si effettua una conversione in codice mnemonico è meglio iniziare dall’indirizzo 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 l’istruzione posta sul lato destro è ON quando il contatto è ON. Per l’istruzione LOAD (contatto normalmente aperto) la condizione operativa è ON se IR 00000 è ON, viceversa per l’istruzione 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 un’istruzione 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.

L’istruzione 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 dell’AND logico tra la condizione operativa (somma di tutte le condizioni operative che precedono quel punto) e lo stato del bit associato all’istruzione 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 dell’AND 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 un’istruzione 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

L’istruzione 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 dell’OR logico tra la condizione operativa e lo stato del bit associato all’OR. 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 dell’AND con lo stato del bit 00002, che definisce la condizione operativa dell’AND 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 l’istruzione 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 l’istruzione Output, il bit operando sarà ON finché la condizione operativa resta ON e sarà OFF finché la condizione operativa resta OFF. Con l’istruzione 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

quindi torna ad eseguire la prima istruzione del programma. 6. L’istruzione OR LOAD esegue l’OR logico fra le condizioni operative risultanti da due blocchi logici. 2 0 0 5 . Abbiamo terminato le istruzioni che servono a scrivere un semplice programma di I/O. L’istruzione AND LOAD esegue l’AND logico fra le condizioni operative risultanti da due blocchi logici. Prima di terminare con la programmazione in diagramma a relè e passare all’inserimento del programma nel PLC. 10001 i bit di uscita assegnati dal PLC.7 AND LOAD Le istruzioni dei blocchi logici non corrispondono direttamente a un contatto in diagramma a relè. A . Il periodo in cui un bit resta ON o OFF.A U T O M A Z I O N E I N D U S T R I A L E - A . 216 . L’istruzione END non necessita di operandi e sulla stessa linea non può essere inserita nessun’altra istruzione.2 0 0 6 Nell’esempio precedente. bensì descrivono le relazioni fra più blocchi logici.5. il programma non può venire eseguito. In questo caso 00000 e 00001 rappresentano i bit di ingresso e 10000. Se non è stata programmata alcuna istruzione di End. vediamo le istruzioni dei blocchi logici (AND LOAD e OR LOAD) che sono spesso utili anche in programmi di grande semplicità. Sebbene una istruzione END possa venire messa in qualunque punto del programma. ovvero i segnali che arrivano ai punti di ingresso associati a 00000 e 00001 controllano rispettivamente i punti di uscita 10000 e 10001. può venire controllato combinando opportunamente delle istruzioni OUTPUT e OUTPUT NOT con l’istruzione Timer. (utile in fase di debug) nessuna istruzione successiva ad essa può venire eseguita. 6. Il numero che segue l’istruzione END rappresenta il codice mnemonico dell’istruzione stessa e viene utilizzato quando il programma viene inserito nel PLC. il bit 10000 starà ON finché 00000 resta ON e il bit 10001 starà OFF finché 00001 resta ON.6 L’istruzione END L’ultima istruzione di qualunque programma deve essere l’istruzione END.5. La CPU esegue tutte le istruzioni fino al primo END.

deve venire eseguito l’AND logico tra le condizioni operative risultanti da questi due blocchi logici.: 00002 è ON e 00003 è OFF). Il contatto 00002 è ancora un’istruzione LOAD mentre il contatto sottostante è una istruzione OR NOT tra lo stato del bit 00002 e lo stato negato di 00003. A . OR NOT tra IR 00002 e IR 00003 viene perso e l’OR NOT termina producendo come risultato un OR NOT tra IR 00003 e il risultato di un AND tra IR 00002 e il primo OR.: o 00000 o 00001 è ON). Una istruzione di LOAD o LOAD NOT viene utilizzata ogni qual volta esistano in una linea circuitale più contatti in serie o in parallelo. Una condizione operativa inutilizzata viene generata da una istruzione LOAD o LOAD NOT. Per poter eseguire l’istruzione posta a destra. Analizzando il circuito in termini di istruzioni. in quanto opera con 217 . Il precedente diagramma a relè non può essere convertito in lista istruzioni utilizzando unicamente le istruzioni AND e OR. richiede una istruzione AND LOAD. e quando almeno una delle condizioni del blocco destro è ON (es. il contatto 00000 è un’istruzione LOAD. 2 0 0 5 . Se si tenta un AND tra IR 00002 e il risultato di un OR tra IR 00000 e IR 00001. il diagramma riportato qui sotto. L’istruzione AND LOAD non necessita di operandi propri. la condizione di esecuzione corrente viene salvata in un buffer speciale e il processo logico viene fatto partire. Qui ”LOAD” si riferisce al caricamento dell’ultima condizione di esecuzione. Quando queste istruzioni vengono utilizzate in questo modo.A U T O M A Z I O N E I N D U S T R I A L E - A . AND LOAD esegue un AND tra la corrente condizione operativa e l’ultima non utilizzata. Lo studio di questo esempio mostra che si genera una condizione operativa ON quando almeno una delle condizioni del blocco logico sinistro è ON (es. 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 un’istruzione AND LOAD o un’istruzione OR LOAD.2 0 0 6 Sebbene semplice all’apparenza. La conversione può essere effettuata utilizzando le istruzioni LOAD o LOAD NOT. mentre il contatto sottostante è un’istruzione OR tra lo stato del bit 00000 e lo stato di 00001. I due blocchi logici sono evidenziati dalle linee tratteggiate. Ciò di cui si necessita è una modalità per eseguire l’OR indipendentemente dal NOT e quindi combinarne i risultati. L’istruzione AND LOAD permette di eseguire proprio questo.

5. il secondo metodo. o meno. 218 . cioè se sono richieste sette. sia la istruzione AND LOAD sia l’istruzione OR LOAD. utilizzabile dall’istruzione posta a destra. L’altro è quello di codificare tutti i blocchi da collegare. Uno è quello di codificare l’istruzione logica del blocco che si trova dopo i primi due blocchi ed in seguito quella dopo ciascun blocco aggiuntivo. In questo caso si devono collegare per prime le istruzioni dell’ultimo paio di blocchi e poi tutti i blocchi precedenti procedendo a ritroso fino al primo. Una condizione operativa ON. il seguente circuito richiede una istruzione OR LOAD tra il blocco logico superiore e quello inferiore.8 OR LOAD Sebbene non descritto in dettaglio. quello relativo alla codificazione di tutte le istruzioni di blocco logico insieme. risulta quando 00000 è ON e 00001 è OFF o quando sia 00002 sia 00003 sono ON. Sia con AND LOAD che con OR LOAD vi sono due metodi per fare questo.A U T O M A Z I O N E I N D U S T R I A L E - A . Anche in questo caso i trattini indicano che non devono essere inseriti o designati operandi. istruzioni di blocco logico. Naturalmente in alcuni circuiti è necessario adottare. Il funzionamento del codice istruzioni per l’istruzione OR LOAD è esattamente lo stesso dell’istruzione AND LOAD tranne che in OR LOAD la condizione di esecuzione corrente è posta in OR con la condizione di esecuzione che precede.2 0 0 6 condizioni operative pregresse. può essere usato solo se si stanno collegando al massimo 8 blocchi. 2 0 0 5 . Sebbene entrambi i metodi producano esattamente lo stesso risultato. il circuito deve essere suddiviso in blocchi logici.5. iniziando ciascun blocco con LOAD o LOAD NOT. 6. 6. A . 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. e quindi codificare le istruzioni di blocco logico che li collegano.9 Istruzioni di blocchi logici in serie Per codificare i circuiti con istruzioni di blocchi logici in serie.

Il primo contatto di ciascuna coppia viene convertito in LOAD con il bit operando associato e quindi posto in AND con l’altro contatto. A . Nell’illustrazione sono anche contenute le due opzioni per la codifica del programma.A U T O M A Z I O N E I N D U S T R I A L E - A . Il circuito seguente richiede che le istruzioni OR LOAD siano convertite in codice mnemonico perché le tre coppie di contatti sono collegate in parallelo. seguiti da OR LOAD. 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. 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. e da un altro OR LOAD. 219 . La figura seguente mostra i codici mnemonici per entrambi i metodi. dall’ultima coppia di contatti blocco. 2 0 0 5 . oppure si possono codificare prima i tre blocchi seguiti da due OR LOAD.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. I primi due blocchi possono essere codificati per primi.

6. gli operandi di tutte le istruzioni mantengono il loro stato. L’istruzione di Salto può perciò essere usata per controllare dei dispositivi che richiedono un’uscita ritentiva. Se la condizione operativa del salto è OFF. Ci sono due tipi di salto. 220 . 2 0 0 5 .5. queste devono essere inserite consecutivamente seguendo l’ultima condizione sulla linea di istruzione. A .A U T O M A Z I O N E I N D U S T R I A L E - A . ad esempio la strumentazione elettronica.2 0 0 6 6. con le istruzioni di salto. I salti si ottengono tramite le istruzioni di Salto JMP(04) e Fine Salto JME(05). l’esecuzione del programma ignora le istruzioni comprese tra il JMP e il JME senza modificare alcuno stato. ad esempio dispositivi pneumatici e idraulici. L’istruzione di interblocco può essere usata per controllare dispositivi che non richiedono la ritenzione delle uscite.11 Salti Una parte del programma può essere saltata in conformità ad una certa condizione operativa. Il numero del salto ne identifica il tipo.10 Come codificare più istruzioni Se ci sono più di istruzioni di uscita eseguite con la stessa condizione di esecuzione. Una istruzione di salto può venire identificata usando un numero tra 01 e 99 una sola volta. Sebbene ciò sia simile a quanto avviene quando la condizione operativa per un Interblocco è uguale a OFF. cioè ciascun numero viene usato una volta sola nella istruzione JMP e una volta nella JME.5. A tutte le istruzioni JMP e JME vengono assegnati dei numeri tra 00 e 99. Se la condizione operativa del JMP(04) è ON il programma viene eseguito normalmente come se questa istruzione non esistesse. Nell’esempio che segue l’ultima linea di istruzione contiene una condizione in più che corrisponde ad un AND con 00004.

viene creata assegnando al JMP il numero 00. L’istruzione SET imposterà il bit a ON quando la condizione di esecuzione va ad ON. non porterà il bit ad OFF quando la condizione operativa cambierà ad OFF.5. Inoltre possono venire usati anche più JMP 00 consecutivi senza alcun JME 00 tra di essi. Anche in questo caso lo stato delle istruzioni comprese in una sezione di Salto.2 0 0 6 Quando viene eseguita l’istruzione di JMP. Il circuito B può venire modificato come mostrato qui sotto per utilizzare le istruzioni di salto. Le istruzioni di Salto non influenzano minimamente lo stato delle istruzioni tra il JMP e JME. non viene modificato. però la ricerca della istruzione di Fine Salto JME(05) 00 comporta un leggero prolungamento del tempo di scansione. A . Rispetto alle precedenti configurazioni. Sebbene 01 sia stato usato come numero di salto. il tempo di esecuzione del circuito B così modificato è più breve.A U T O M A Z I O N E I N D U S T R I A L E - A .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. 6. 221 . ma a differenza dell’istruzione OUTPUT. Quando si utilizza il numero 00 per l’istruzione di salto. L’altro tipo di istruzione di salto. il controllo passa immediatamente dopo all’istruzione JME con lo stesso numero. non porterà il bit ad ON quando la condizione operativa cambierà ad OFF. quando il bit 00000 è OFF. come se non ci fosse nessuna istruzione compresa tra il JMP e il JME. qualsiasi altro numero tra 02 e 99 potrebbe venire assegnato ad altre istruzioni di salto in altre parti del programma. In questo caso è possibile definire un numero di salti JMP(04) desiderato. Entrambe le istruzioni non alterano lo stato del bit a fronte di condizioni di esecuzione OFF. 2 0 0 5 . L’istruzione RESET imposterà il bit a OFF quando la condizione di esecuzione va ad ON ma a differenza dell’istruzione OUTPUT NOT. il programma non esegue le istruzioni comprese il JMP 00 e JME 00.

Per eseguire nuovamente l’istruzione di DIFU(13) sarà necessario portare ad OFF e poi ad ON lo stato di 010000. il bit operando va ON se la condizione operativa passa da OFF a ON. Quando invece 00101 va ad ON.5. 6. Il seguente esempio è equivalente al precedente. 2 0 0 5 . 222 . Con l’istruzione DIFU(13) il bit 01000 va ON per una scansione dopo che il bit 00000 è diventato ON.2 0 0 6 Nell’esempio che segue 10000 verrà portato ad ON quando 00100 va ad ON e rimarrà ad ON a prescindere dallo stato di 00100. Entrambe queste istruzioni occupano una sola linea di codice mnemonico. 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). A . il bit 01001 verrà riportato ad OFF quando verrà utilizzata nuovamente la funzione DIFD(14) 01001. RESET porrà 10000 ad OFF.A U T O M A Z I O N E I N D U S T R I A L E - A .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. Usando la DIFD(14). ma in questo caso vengono usate le istruzioni DIFU e DIFD. viceversa l’istruzione differenziale sul fronte di discesa manda ON il bit operando se la condizione operativa passa da ON a OFF.

l’OR logico fra la condizione di esecuzione e l’inverso dello stato del suo bit operando. Lo stato del bit operando (B) assegnato a LD o LD NOT determina la prima condizione di esecuzione. Flag Non ci sono flag influenzati da queste istruzioni. OR prende l’OR logico fra la condizione di esecuzione e lo stato del suo bit operando. l’AND logico fra la condizione di esecuzione e l’inverso dello stato del suo bit operando. Il simbolo a relè per caricare i bit TR è differente da quando sopra descritto.1 LOAD. Le istruzioni che seguono ci torneranno utili per lo svolgimento di alcuni esercizi dimostrativi che verranno trattati nei prossimi paragrafi. LOAD NOT. 2 0 0 5 .2 0 0 6 6. posto come limite la capacità di memoria del PLC. Ognuna di queste istruzioni e ogni indirizzo di bit possono essere usati tutte le volte che è necessario. AND NOT. Descrizione: Le sei istruzioni di base corrispondono alle condizioni logiche di un diagramma a relè. 223 . AND. OR e OR NOT Limitazioni: Non ci sono limitazioni al numero delle istruzioni o restrizioni all’ordine in cui queste possono venire usate.A U T O M A Z I O N E I N D U S T R I A L E - A . Lo stato dei bit assegnato ad ogni istruzione determina le condizioni di esecuzione per tutte le altre istruzioni appartenenti allo stesso ramo circuitale.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è. 6. Le istruzioni a blocco logico sono usate per mettere in relazione parti più complesse del diagramma. AND prende l’AND logico fra la condizione di esecuzione e lo stato del suo bit operando. OR NOT.6. AND NOT. A .

A U T O M A Z I O N E I N D U S T R I A L E - A . vengono usate AND LD e OR LD. AND LD e OR LD uniscono logicamente due condizioni di esecuzione.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. Per ridurre il numero delle istruzioni richieste. 6. OUT NOT.6. DIFU(13). RSET e KEEP(11). Per stilare un diagramma a relè non sono necessarie le istruzioni AND LD e OR LD. DIFD(14). Poiché le operazioni AND e OR uniscono logicamente lo stato di un bit ad una condizione di esecuzione. Esse sono invece necessarie per convertire il programma ed inserirlo in forma mnemonica. SET. Queste istruzioni vengono usate per operare cambiamenti di stato sui bit con modalità differenti.7. come è possibile dal software di programmazione. quella in corso e la precedente. Queste sono OUT. 6. occorre avere una comprensione di base delle istruzioni AND LD e OR LD.7 Istruzioni per il controllo dei bit Ci sono sette istruzioni che possono essere generalmente usate per controllare lo stato di singoli bit. né sono necessarie per inserire direttamente diagrammi a relè.1 OUTPUT e OUTPUT NOT – OUT e OUT NOT 224 . 2 0 0 5 . Flag: Non ci sono flag influenzati da queste istruzioni. A .2 0 0 6 6.

RSET differisce da OUT NOT perché quest’ultima commuta ad ON il bit operando quando la sua condizione esecutiva è ad OFF. IR 10000 sarà commutato ad ON o ad OFF ogni volta che IR 00000 va a ON o a OFF. Gli esempi che seguono mettono in evidenza la differenza fra OUT e SET/RSET.2 0 0 6 Limitazioni: Un bit di uscita può essere solitamente abbinato ad una sola istruzione che ne controlla lo stato. può essere usato per controllare altre istruzioni.7. Flag Esempi Non ci sono flag influenzati da queste istruzioni. Ciò è particolarmente utile e permette di utilizzare una serie complessa di condizioni per controllare lo stato di un singolo bit di lavoro.A U T O M A Z I O N E I N D U S T R I A L E - A .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. OUT attiva il bit designato a ON a fronte di una condizione di esecuzione ON. Parimenti. Nel secondo esempio 225 . e a OFF per una condizione di esecuzione ON. poi. Con un bit TR. Nel primo esempio (Diagramma A). Il periodo in cui un bit è ON o OFF può essere controllato dalla combinazione di OUT o OUT NOT con TIM. 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. e non influenza lo stato del bit operando quando la condizione di esecuzione è OFF. questo bit di lavoro. 2 0 0 5 . Descrizione: OUT e OUT NOT vengono usate per attivare il bit designato a seconda delle condizioni di esecuzione. e a OFF per una condizione di esecuzione OFF. Flag: 6. OUT NOT attiva il bit designato a ON a fronte di una condizione di esecuzione 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 l’interlock o una condizione di salto (vale a dire quando o IL(002) oppure JMP(004) sono eseguite con condizione di esecuzione OFF). L’operazione SET differisce da quella di OUT perché questa commuta il bit operando ad OFF quando la sua condizione di esecuzione è ad OFF. OUT e OUT NOT possono venire usati per controllare l’esecuzione forzando a ON e poi a OFF i bit che sono designati alla gestione delle condizioni sul diagramma a relè. A . determinando quindi le condizioni di esecuzione per altre istruzioni. OUT appare ad un punto di diramazione piuttosto che alla fine di una linea di istruzione.

DIFU(13) o metterà il bit designato a OFF. Possono essere usate anche con istruzioni con formato non differenziale. Descrizione: DIFU(13) e DIFD(14) vengono utilizzate per impostare su ON per un solo ciclo il bit specificato. o fra le istruzioni JMP e JME. Il bit designato quindi non sarà mai su ON più a lungo che per una scansione. Esempi sono illustrati in seguito. 6. Ogni volta che DIFU(13) viene eseguita. Il bit designato quindi non sarà mai su ON più a lungo che per una scansione. Jump e Jump End – JMP(04) e JME(05) e Sottoprogrammi (subroutine) e INTERRUPT CONTROL – INT(89).2 0 0 6 (Diagramma B). qui di seguito).7. assumendo che l’istruzione venga eseguita ad ogni scansione (vedi Precauzioni. DIFD(14) abiliterà (ON) il bit designato. DIFD(14) o metterà il bit designato a OFF o lo lascerà a OFF.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. DIFU(13) attiverà il bit designato a ON. Ogni volta che DIFD(14) viene eseguita. 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. confronta la condizione di esecuzione in corso con la condizione dell’esecuzione precedente. confronta la condizione di esecuzione in corso con la condizione dell’esecuzione precedente. quando il loro uso semplifica la programmazione. assumendo che l’istruzione venga eseguita ad ogni scansione. Per informazioni.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . o in sottoprogrammi. Se la condizione dell’esecuzione precedente era ON e quel la corrente è ON oppure OFF. Se la condizione dell’esecuzione precedente era OFF e quella corrente è ON. Se la condizione di esecuzione precedente era OFF e quella corrente è ON oppure OFF. Flag: Non ci sono flag influenzati da queste istruzioni. 226 . far riferimento Interlock e Interlock Clear – IL(02) e ILC(03). Vengono usate queste istruzioni quando non è possibile utilizzare quelle differenziali (quelle che hanno il prefisso @) ed è richiesta un’esecuzione a singola scansione per una particolare istruzione. o lo lascerà a OFF (se il bit designato è già a OFF). A . 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. Se la condizione di esecuzione precedente era ON e quella corrente è OFF.

non occorre il prefisso. Quando sono usati come identificatori in istruzioni Timer e Counter.A U T O M A Z I O N E I N D U S T R I A L E - A . richiedono un numero TC ed un valore di predefinizione (SV). Nel contesto il significato del termine dovrebbe essere chiaro: il primo è sempre 227 . I numeri TC possono essere designati come operandi di istruzioni che richiedono sia dati di tipo bit sia dati di tipo canale. fornisce un bit che ha il significato di “flag di fine conteggio”. Il valore PV di un timer o counter può quindi essere usato come un operando in CMP(20). gli si può assegnare il prefisso TIM per utilizzarlo come un operando in determinate istruzioni. i quali attivano delle subroutine predefinite. Questo prefisso è usato indipendentemente dall’istruzione Timer che è stata usata per definire il timer. Una volta che un numero TC è stato definito come timer. Una volta che un numero TC è stato definito come counter. Quando il numero TC è designato come un operando che richiede dati di tipo canale. Ciò è fatto designando il numero TC utilizzato per definire l’accesso di quel timer o counter alla locazione di memoria dove è contenuto il valore PV. CNT è un’istruzione di decremento del counter e CNTR(12) di contatore reversibile. 6. per indicare quando il tempo/conteggio è finito. gli si può assegnare il prefisso CNT per utilizzarlo come un operando in determinate istruzioni. una volta definiti. IR 10014 andrà a ON per un ciclo quando IR 00000 passa da OFF a ON. 2 0 0 5 . cioè una volta che è stato usato come l’identificatore di una istruzione Timer o Counter. il bit. Anche questo prefisso è usato indipendentemente dall’istruzione di counter che è stata usata per definire il counter. e per designare il valore PV di questo timer. IR 10015 andrà ON per un ciclo quando IR 00000 passa da ON a OFF. CTBL(63). Un numero TC può essere definito solo una volta. non può essere usato ancora. INT(89) e PRV(62) sono utilizzabili per gestire il contatore veloce.8 Istruzioni per temporizzatori e contatori TIM e TIMH (15) sono funzioni di decremento di un temporizzatore con ritardo all’eccitazione. Entrambe necessitano di un numero TC e di un valore SV. Si noti che “TIM 000” viene usato per designare l’istruzione di Timer definita con il numero TC 000. STIM(69) è utilizzata per controllare gli interrupt a tempo. si posizionerà a ON quando il valore SV predisposto sarà trascorso. INT(89) è utilizzato anche per interrompere l’uscita. possono essere utilizzati quanto si vuole come operandi in altre istruzioni. Quando il numero TC è definito come un operando che richiede dati di tipo bit. che è normalmente OFF. oltre che a quelle di Timer e Counter.2 0 0 6 Esempio: In questo esempio. per designare il flag di fine conteggio per questo timer. A . o in qualsiasi altra istruzione per la quale è ammessa l’area TC. I numeri TC vanno da 000 a 255 nei PLC CPM2A/CPM2C e da 000 a 127 nei CPM1/CPM1A/SRM1(-V2). fornisce una locazione di memoria che contiene il valore corrente (PV) del timer o counter. Inoltre entrambe sono collegate a linee di istruzioni multiple che servono come segnali di ingresso e di ripristino. I numeri TC.

9. i numeri da TC 004 a TC 007 non devono essere utilizzati in TIM se sono necessari per TMHH(––). l’Unità di Ingresso può essere collegata in modo tale che il valore SV può essere predisposto esternamente per mezzo di contraves o simili.1 secondo. Nei PLC CPM2A/CPM2C. Se la condizione di esecuzione rimane a ON sufficientemente a lungo perché il tempo di TIM si azzeri. Descrizione: Un timer è attivato quando la sua condizione di esecuzione diventa ON ed è ripristinato (al valore SV) quando la condizione di esecuzione diventa OFF.2 0 0 6 un’istruzione. 2 0 0 5 . Un valore SV può essere inserito come costante o canale in un’area dati. 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). devono essere in BCD. Tutti i valori SV. Il punto decimale non è inserito. TIM decrementa il SV in unità di 0. Ogni numero TC può essere usato come identificatore in una sola istruzione timer o counter. se sono necessarie le istruzioni TIMH(15). Una volta attivato. La seguente illustrazione mostra la relazione fra la condizione di esecuzione di TIM e il flag di completamento ad esso assegnato. il secondo è sempre un bit operando e il terzo è sempre un canale operando. I numeri TC vanno da 000 a 255 nei PLC CPM2A/CPM2C e da 000 a 127 nei CPM1/CPM1A/SRM1(-V2). In modalità RUN o MONITOR i timer e counter collegati in questo modo possono essere predisposti solo esternamente.1 TIMER – TIM Limitazioni: Il valore SV è compreso tra 000. I numeri da TC 000 a TC 015 (TC 000 a TC 003 nel CPM1/CPM1A/SRM1) non dovrebbero essere usati come TIM.0 e 999. 6.A U T O M A Z I O N E I N D U S T R I A L E - A . 228 .8. A . compresi quelli predisposti esternamente. Se un canale dell’area IR assegnato ad un’Unità di Ingresso è designato come indirizzo canale. Lo stesso vale per tutti gli altri numeri TC con prefisso TIM o CNT.

il PV viene resettato sull’SV. Il PV per CNT non verrà resettato nelle sezioni del programma a interlock o da eventuali interruzioni dell’alimentazione. il PV di CNT non verrà cambiato. Le modifiche a condizioni di 229 . in qualsiasi CNT che viene eseguita con condizione di esecuzione ON per il CP essendo OFF la condizione di esecuzione nell’esecuzione precedente. Flags ER: Il canale DM indirizzato indirettamente non è disponibile. SV È il valore di partenza del conteggio per i contatori sottraendi o il valore massimo di conteggio di un contatore reversibile. (Il contenuto del canale *DM non si trova in BCD oppure non è compreso all’interno dell’area DM).2 0 0 6 Precauzioni: I timer nelle sezioni interbloccate del programma sono ripristinati quando la condizione di esecuzione per IL(02) è OFF. Se viene richiesto un timer che non sia azzerato da queste condizioni. Se la condizione di esecuzione non è stata modificata da ON a OFF. gli impulsi dei bit dei clock interni dell’area SR possono essere conteggiati usando l’istruzione CNT. il valore corrente (PV) verrà ridotto di uno. Descrizione: L’istruzione CNT viene utilizzata per eseguire il conteggio in discesa dell’SV quando la condizione di esecuzione dell’impulso di conteggio CP passa da OFF a ON. Anche le interruzioni dell’alimentazione ripristinano i timer. Per informazioni. vedi paragrafo 7-15-5 Counter CNT. Nei PLC CPM2A/CPM2C i numeri TC vanno da 000 a 255 e da 000 a 127 nei PLC CPM1/CPM1A/SRM1(-V2).A U T O M A Z I O N E I N D U S T R I A L E - A . 6. Ad esempio. Per i timer indica il ritardo all’eccitazione. 2 0 0 5 . 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.8. L’istruzione CNT viene resettata con l’ingresso di reset R. A . Quando R passa da OFF a ON. Il conteggio in discesa dell’SV ricomincia quando R passa su OFF. Il PV non verrà ridotto quando R si trova su ON.2 COUNTER – CNT Limitazioni: Ogni numero TC può essere utilizzato come identificatore solo in una istruzione TIMER o COUNTER. Il valore di predisposizione è abbreviato con SV.

IR 00000 viene utilizzato per controllare le volte in cui CNT viene eseguita. Precauzioni: L’esecuzione del programma continua anche se viene utilizzato un SV non in BCD. 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 dell’area SR. A . L’altezza della linea relativa al PV indica solo le modifiche al PV.1 secondo non devono essere utilizzati per creare temporizzatori con le istruzioni CNT. flag di completamento e PV vengono illustrate di seguito. 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.02 secondi e 0.2 0 0 6 esecuzione. Poiché nell’esempio seguente l’SV per CNT 001 è 700. gli impulsi di clock di 0. ma l’SV non sarà corretto. In particolare. 230 . Anche in questo caso. Il risultato sarà evidenziato dal passaggio di IR 20002 su ON. CNT 001 conta il numero di volte che il bit a impulso di clock di 1 secondo (SR 25502) passa da OFF a ON. (Il contenuto del canale *DM non si trova in BCD oppure non è compreso all’interno dell’area DM). 2 0 0 5 . Flag: ER: Il canale DM indirizzato indirettamente non è disponibile.A U T O M A Z I O N E I N D U S T R I A L E - A . 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.

Se la condizione di esecuzione P non è cambiata. il registro a scorrimento non sarà influenzato. 2 0 0 5 . Comunque il programma sarà eseguito come scritto. A . Se un bit di uno dei canali usati in un registro a scorrimento viene usato anche per un’istruzione quale KEEP (11). Su P la condizione di esecuzione funziona come un’istruzione differenziale. se I è OFF. ed il bit più a sinistra del registro è perso. 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. viene fatto scorrere uno 0.1 Istruzioni di scorrimento SHIFT REGISTER – SFT(10) Limitazioni: Il canale E deve essere maggiore o uguale a St e.9 6. E designa quello più a sinistra. Il registro a scorrimento include entrambi questi canali e tutti i canali compresi. oppure è andata da ON a OFF. Flag ER: St e E non si trovano nella stessa area oppure St è superiore a E. Lo stesso canale può essere designato per St e E per creare un registro a scorrimento a 16 bit (cioè 1 canale).9. 231 . Se SFT(10) viene eseguita e – 1) la condizione di esecuzione di P è ON ed era OFF all’ultima scansione e. St designa il canale più a destra del registro a scorrimento. e R.A U T O M A Z I O N E I N D U S T R I A L E - A . Quando è fatto scorrere I nel registro. se I è ON. sulla Console di Programmazione o su altre Unità di Programmazione sarà generato un errore (“COIL DUPL”) di sintassi. P. sia St sia E devono essere nella stessa area dati. ovvero. tutti i bit precedentemente contenuti nel registro sono fatti scorrere a sinistra. Per un esempio di programmazione vedi Esempio 2: Bit di controllo in registro a scorrimento. 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. viene fatto scorrere un 1 nel registro. che controlla lo stato dei bit individuali. Descrizione: L’istruzione SFT(10) è controllata da tre condizioni di esecuzione: I.2 0 0 6 6. cioè I sarà fatto scorrere nel registro solo quando P è ON ed era OFF all’ultima scansione. Quando la condizione di esecuzione di R va a ON.

2 0 0 6 Esempio: L’esempio seguente usa il clock interno di 1 secondo (25502) cosicché la condizione di esecuzione prodotta da 00000 è fatta scorrere ogni secondo. 2 0 0 5 . Flag: ER: Il canale DM indirizzato indirettamente non esiste. 232 .A U T O M A Z I O N E I N D U S T R I A L E - A . non viene eseguita. L’uscita 10000 va ad ON ogniqualvolta un ”1” viene fatto scorrere nel bit 07 del canale 10. EQ: ON quando ogni zero viene trasferito in D. oppure è stato superato il confine dell’area DM). Descrizione: Quando la condizione di esecuzione è OFF MOV(21). Esempio: Nell’esempio seguente.10. 6. È comunque possibile variare facilmente un valore PV di un temporizzatore o di un contatore usando l’istruzione BSET(71). quando il contatto IR00000 passa da OFF a ON.1 MOVE – MOV(21) Limitazioni: I DM 6144 a DM 6655 non possono essere usati come D. Precauzioni: I numeri TC non possono essere designati come D per cambiare il valore PV del temporizzatore o contatore.10 Istruzioni di spostamento dati 6. A . copia il contenuto di S in D. (Il contenuto del canale *DM non è in BCD. Quando è ON MOV(21). l’istruzione @MOV(21) viene utilizzata per copiare il contenuto dell’IR001 nel canale HR05.

CMP(20) non viene eseguita.1 COMPARE – CMP(20) Limitazioni: Quando si paragona un valore al valore corrente (PV) di un temporizzatore o di un contatore. GR: ON se Cp1 è maggiore di Cp2. Accertate di gestirli prima che ne venga modificato lo stato. Flag : ER: Il canale DM indirizzato indirettamente non esiste.11.2 0 0 6 6. LE e GR. Precauzioni: Inserendo altre istruzioni fra CMP(20) e l’operazione che accede ai flag di EQ. EQ. e LE dell’area SR. A .11 Istruzioni di comparazione 6. (Il contenuto del canale *DM non è in BCD. oppure è stato superato il confine dell’area DM). 2 0 0 5 . Quando la condizione di esecuzione è ON. 233 . CMP(20) confronta Cp1 e Cp2 ed assegna il risultato ai flag di GR. EQ: ON se Cp1 è uguale a Cp2. LE: ON se Cp1 è inferiore a Cp2. questo deve essere espresso in BCD. Descrizione: Quando la condizione di esecuzione è OFF.A U T O M A Z I O N E I N D U S T R I A L E - A . è possibile che lo stato di questi flag sia variato.

10201 è abilitato (ON). 234 . facendo diventare inutile l’uso del TR 0. se il contenuto di 010 è inferiore a quello di HR 09. Con questo tipo di programmazione. 10202 è abilitato (ON). 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. In alcune applicazioni potrebbe essere necessario solo uno dei tre OUT. A .A U T O M A Z I O N E I N D U S T R I A L E - A . 10201 e 10202 sono aggiornati solo quando viene eseguita CMP(20). se i due contenuti sono uguali. 10200 è abilitato (ON). 10200. Se il contenuto del canale 010 è maggiore di quello di HR 09.

INTERLOCK CLEAR e JUMP END). riportato di seguito. Sebbene possano venire scritti circuiti molto complessi non è possibile posizionare nessun contatto sulle linee verticali che uniscono due righe circuitali.2 0 0 6 6. 2 0 0 5 . deve essere ridisegnato come circuito B. Ad eccezione delle istruzioni per le quali non è consentita alcuna condizione (ad esempio. Il circuito A mostrato qui sotto non è possibile e di conseguenza deve essere ridisegnato come circuito B. Spesso i programmi vengono inutilmente complicati per cercare di minimizzare il numero di volte che un contatto viene usato.A U T O M A Z I O N E I N D U S T R I A L E - A .12 Accorgimenti di programmazione Il numero di contatti che possono venire collegati in serie o in parallelo è illimitato. 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 all’uso di un contatto all’interno di un programma. Inoltre il circuito A. è possibile utilizzare un Flag su ON (SR). Se occorre eseguire sempre un’istruzione (se un’uscita deve essere sempre impostata su ON durante l’esecuzione del programma). qualsiasi riga di istruzione richiede almeno una condizione che definisce la condizione di esecuzione dell’istruzione posta sul lato destro. A . 235 .

A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . A . 236 . Per esempio. Con il PLC OMRON CPM1A è possibile usare due diversi tipi di console di programmazione: CQM1–PRO01–E e C200H–PRO27–E.2 0 0 6 6. Tenere premuto il tasto SHIFT per inserire una lettera mostrata nell’angolo in alto a sinistra del tasto o per inserire la funzione più in alto di un tasto con due funzioni. Con il CPM1A è possibile usare due diversi tipi di console di programmazione: l’CQM1– PRO01–E e C200H–PRO27–E. il tasto AR/HR di CQM1–PRO01–E può specificare l’area AR o HR. I tasti funzione di queste due console di programmazione sono identici. premere e rilasciare il tasto SHIFT e poi premere il tasto AR/HR per specificare l’area AR.13 La console di programmazione Questo paragrafo descrive il collegamento e l’utilizzo di una console di programmazione.

il tasto AR/HR di CQM1–PRO01–E può specificare l’area AR o HR. la visualizzazione originale resterà sulla pagina della console di programmazione e non apparirà la visualizzazione della modalità. 237 . A . si può modificare la modalità del PLC CPM1A. Tenere premuto il tasto SHIFT per inserire una lettera mostrata nell’angolo in alto a sinistra del tasto o per inserire la funzione più in alto di un tasto con due funzioni. <MONITOR> o <RUN>) apparirà sulla pagina della console di programmazione. Il CPM1A inserirà automaticamente la modalità RUN se un dispositivo periferico come una console di programmazione non è collegata al momento dell’accensione del CPM1A. Premere CLR per annullare la visualizzazione e per permettere le operazioni con i tasti. Per esempio. Il tipo di display (<PROGRAM>. Non possono essere eseguite operazioni con i tasti durante la visualizzazione della modalità della console di programmazione. 2 0 0 5 .2 0 0 6 I tasti funzione di queste due console di programmazione sono identici. Se il tasto SHIFT viene premuto mentre viene attivato il selettore di modalità.A U T O M A Z I O N E I N D U S T R I A L E - A . Dopo il collegamento della console di programmazione. premere e rilasciare il tasto SHIFT e poi premere il tasto AR/HR per specificare l’area AR.

2 0 0 5 . Modalità Modalità Avvertenza Prima di modificare la modalità di funzionamento del PLC. RUN Questa è la modalità operativa normale del CPM1A. 6. i bit I/O di set e reset forzato. e modificando i temporizzatori e i contatori SV/PV ecc. Usare la modalità PROGRAM per creare e modificare il programma.1 Funzionamento della console operativa La tabella seguente mostra le funzioni di programmazione e di monitoraggio che possono essere eseguite con la console operativa. MONITOR Il programma CPM1A viene eseguito in modalità MONITOR e gli vengono I/O vengono gestiti come la modalità RUN.13.A U T O M A Z I O N E I N D U S T R I A L E - A . per cancellare la memoria o per verificare gli errori del programma. accertarsi che non si verificheranno effetti indesiderati sul sistema. Lo stato operativo del CPM1A può essere monitorato da un dispositivo periferico. 238 .2 0 0 6 Modalità PROGRAM Il programma CPM1A non viene eseguito in modalità PROGRAM. A . Utilizzare la modalità MONITOR quando viene controllato il sistema monitorando lo stato operativo del CPM1A. ma i bit non possono essere sottoposti a set/reset forzato e lo SV/PV dei temporizzatori e dei contatori non può essere cambiato.

A . Avvertenza: Il setup del PLC (da DM 6600 a DM 6655) sarà cancellato quando viene eseguita questa operazione. 2 0 0 5 .13. È effettuabile soltanto in modalità PROGRAM. Cancellazione totale La seguente procedura cancella completamente la memoria.2 0 0 6 6.A U T O M A Z I O N E I N D U S T R I A L E - A . nonché il contenuto della memoria della console di programmazione.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. Prima di iniziare a programmare per la prima volta o prima di scrivere un nuovo programma. cancellare tutte le aree. 239 .

premere il tasto che indica l’area di questione dopo avere premuto i tasti SET. 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 dimostrare questa operazione. 240 . il tasto CNT per indicare tutta l’area temporizzatori/contatori e il tasto DM per indicare l’area DM.A U T O M A Z I O N E I N D U S T R I A L E - A . NOT e RESET. È possibile solo nella modalità PROGRAM. TC o DM. inserire 030. A . seguire la procedura seguente per conservare l’area temporizzatori/ contatori e gli indirizzi della memoria di programma da 000 a 122: 6. Tutte le aree dati che appaiono ancora sul display verranno cancellate premendo il tasto MONTR. Per conservare i dati contenuti nelle aree HR. Il tasto HR viene usato per indicare sia l’area AR che l’area HR.13. sarà inserita una condizione NA IR 00105 nell’indirizzo di programma 00206 e verrà cancellata una condizione NA IR 00103 nell’indirizzo 00205 (vedi diagramma seguente). Dopo avere indicato l’area di memoria da conservare.3 Inserimento e cancellazione delle istruzioni Questa operazione permette di inserire o cancellare un’istruzione dal programma. specificare il primo indirizzo della memoria di programma da cancellare. Per esempio. È inoltre possibile conservare una parte della memoria di programma partendo dal primo indirizzo di memoria fino a un indirizzo specificato. per lasciare inalterati gli indirizzi da 000 a 020 e cancellare gli indirizzi da 030 fino alla fine della memoria di programma. A scopo dimostrativo.

2 0 0 5 . Cancellazione Seguire la procedura seguente per cancellare la condizione NA IR 00103 nell’indirizzo 00205.2 0 0 6 Inserimento Seguire la procedura sotto indicata per inserire la condizione NA IR 00105 nell’indirizzo 00206. A .A U T O M A Z I O N E I N D U S T R I A L E - A . 241 .

Per esemplificare questa procedura. In entrambi i casi. il contenuto della memoria di programma viene sovrascritto.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . È possibile solo nella modalità PROGRAM. A . verrà inserito il programma mostrato nel diagramma seguente.13.2 0 0 6 6.4 Inserimento o scrittura dei programmi Questa procedura viene utilizzata per inserire o scrivere programmi. 242 . La stessa procedura viene usata sia per inserire un programma per la prima volta sia per modificare un programma già presente.

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 .

13.5 Verifica del programma Questa operazione verifica gli errori di programmazione e visualizza l’indirizzo e l’errore del programma in caso di anomalie.2 0 0 6 6. 244 . A . È possibile solo in modalità PROGRAM. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A .

245 . 6.A U T O M A Z I O N E I N D U S T R I A L E - A .14 Esempio di programmazione mediante console Questo capitolo descrive tutte le fasi necessarie per la programmazione con la console di programmazione.2 0 0 6 6. 2 0 0 5 . A . eseguire la seguente procedura fino alla fase 3 (cancellazione della memoria).14.1 Operazioni preliminari Scrivendo per la prima volta un programma per il CPM1A.

Questo programma rende intermittente l’uscita IR 01000 (un secondo ON. A .A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 6.2 Esempio Il seguente programma a relè illustrerà come scrivere un programma con la console di programmazione.14. 2 0 0 5 . un secondo OFF) per dieci volte dopo l’attivazione dell’ingresso IR 00000. 246 .

(Cancellare la memoria prima di inserire un nuovo programma). 2 0 0 5 .14. A . 6.A U T O M A Z I O N E I N D U S T R I A L E - A .3 Procedure di programmazione Il programma dell’esempio verrà registrato nel CPM1A secondo l’elenco mnemonico riportato in Esempio. La procedura viene eseguita partendo dal display iniziale. 247 .2 0 0 6 L’elenco mnemonico di questo esempio è illustrato nella tabella seguente.

Per i timer indica il ritardo all’eccitazione. Il valore di predisposizione è abbreviato con SV.A U T O M A Z I O N E I N D U S T R I A L E - A .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. 2 0 0 5 . 248 . A .

A .2 0 0 6 249 . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A .

14. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . A .4 Verifica del programma Verificare la sintassi del programma in modalità PROGRAM per accertarsi che il programma sia stato inserito in modo corretto. 250 .2 0 0 6 6.

A U T O M A Z I O N E I N D U S T R I A L E - A .14.2 0 0 6 6. 2 0 0 5 .5 Esecuzione del test in modalità MONITOR 251 . A .

252 . Non appena sono stati contati cinque prodotti. lo schema di figura. il circuito eccita un solenoide (elettrovalvola) che riceve la corrente per due secondi e viene quindi diseccitato. A . Il circuito serve a rilevare e contare il numero di prodotti trasportati su una linea di assemblaggio robotizzata. 2 0 0 5 . Utilizziamo a tale scopo l'indirizzo 0000. 1 Consideriamo. 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. Abbiamo scelto il relè 0500. Questa istruzione è utilizzata ogni volta che inizia una nuova riga circuitale dalla barra verticale. che verrà memorizzato. 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. lo scriveremo accanto al codice AND. Scriveremo questa istruzione nell'indirizzo 0002 e sceglieremo l'indirizzo del relè di uscita sul quale inviare il segnale. Con questa prima istruzione abbiamo ordinato al PLC di prendere in carico lo stato del contatto 0005. In tale indirizzo scriviamo una istruzione che indica la prima operazione del programma: LD (LOAD). Il dato per l'istruzione AND è il secondo contatto. Si tratta di due contatti in serie (AND). Resta soltanto da dire al PLC che il programma è finito. accanto all'indirizzo 0000 riportiamo l'istruzione LD. Per codificare questo schema. riportato nella colonna dei dati. Sul foglio di programmazione. che ha in questo caso l'indirizzo 0006. Scriveremo quindi una istruzione END nell'indirizzo 0003. L'elemento successivo del diagramma a relè è l'istruzione AND a cui nel programma assegneremo l'indirizzo di memoria 0001. Esempio n.2 0 0 6 6.15 Esempi applicativi di programmazione per PLC Omron Esempio n. il dato è 0005. ossia l'indirizzo (questa volta di I/O) che abbiamo assegnato al contatto. lo scriveremo nella colonna dei dati.2 Proviamo ora con un programma un po' più complesso. Immaginiamo un circuito di controllo per una macchina di imballaggio.A U T O M A Z I O N E I N D U S T R I A L E - A . Ora ci serve una istruzione per mettere in uscita il risultato dei due contatti in serie: l'istruzione OUT (OUTPUT). la cui simultanea chiusura permette di eccitare una bobina di uscita. Nel nostro caso. per esempio. Sul foglio di programmazione.

il sistema attiva una elettrovalvola che comanda il ciclo di imballaggio d) L’attuatore 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).A U T O M A Z I O N E I N D U S T R I A L E - A . 0000 Relè d'uscita n. Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. un temporizzatore ed un contatore. 2 0 0 5 . 0500 Relè ausiliario interno n. un dispositivo di uscita (elettrovalvola). un relè ausiliario di controllo. 1000 CNT47 TIM00 Terza fase Il diagramma a relè che rappresenta questo circuito è riportato nella seguente figura: 253 .2 0 0 6 Seguiamo le fasi di programmazione descritte. 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. Fotocellula Uscita sul solenoide (attivazione elettrovalvola) Relè di controllo (X1) Contatore CC Temporizzatore T Relè d'ingresso n. A .

In genere. A . tanto più frequentemente verranno aggiornate le uscite e saranno acquisiti gli ingressi. 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). diamo al temporizzatore il numero 00 ed al contatore il numero 47. Per esempio. 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. In base a queste considerazioni si può quindi ottenere il programma codificato riportato in figura. o La codifica deve avvenire seguendo il diagramma da sinistra a destra e dall'alto in basso. un modo comodo per eseguire l'assegnazione è iniziare da un estremo del campo per i temporizzatori e dall'altro estremo per i contatori. Infatti. consentendo al PLC di seguire l'evoluzione del processo in tempo reale. A questo punto viene eseguita la lettura degli ingressi e vengono pilotate le uscite sulla base dell'immagine delle stesse presenti in memoria. 254 . però. Prima. come termine di paragone.A U T O M A Z I O N E I N D U S T R I A L E - A . ma devono utilizzare un relè di uscita. 2 0 0 5 . mentre non si può più assegnare la stessa bobina. Il contatto di tale relè può essere utilizzato più volte nel diagramma.2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè. o I temporizzatori ed i contatori non possono generare direttamente una uscita. Ciò significa che se il processo richiede tempi stretti è necessario adottare un PLC che abbia un tempo di scansione molto basso. quanto più la CPU è rapida nell'eseguire le istruzioni. si considera il tempo di esecuzione medio necessario per eseguire 1000 istruzioni.

A U T O M A Z I O N E I N D U S T R I A L E - A . 255 . il PLC emette delle uscite di controllo per azionare il motore di apertura e chiusura della porta. c) In risposta ai segnali di ingresso forniti da questi sensori. La sorgente luminosa emette un fascio di luce costantemente captato dal ricevitore. Il primo rileva il limite superiore del movimento della porta ed il secondo il limite inferiore. Il PLC riceve inoltre degli ingressi da due sensori addizionali. a) Un interruttore a ultrasuoni rileva la presenza di un veicolo in avvicinamento (l’onda emessa dall’interruttore viene riflessa dal veicolo verso l’interruttore) b) Una fotocellula è formata da 2 elementi: una sorgente luminosa ed un ricevitore. A . Seguiamo le fasi di programmazione descritte. Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza.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. Se un veicolo interrompe il fascio di luce. 2 0 0 5 . la fotocellula ne rileva la presenza. in modo da permettere l’uscita di un veicolo che si avvicina.

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 . 2 0 0 5 . A .

2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè. o Quando il relè ausiliario interno 1000 si eccita. però. la condizione AND è soddisfatta per un ciclo di scansione. Questo contatto è normalmente chiuso. il segnale della fotocellula (ingresso 0001) è collegato ad un blocco circuitale che genera un’uscita sul fronte di discesa del segnale stesso (blocco DIFD). durante il quale l’uscita 0501 diventa attiva avviando a sua volta il motore che abbassa la porta 257 . Prima. o Quando l’ingresso 0000 viene attivato.A U T O M A Z I O N E I N D U S T R I A L E - A . A . si attiva l’ingresso 0002 che fa interrompere il segnale di uscita 0500 ed arresta il motore. per un solo ciclo di scansione. Tale collegamento provoca l’eccitazione del relè ausiliario 1000 assegnato all’istruzione DIFD. il PLC eroga un segnale (uscita 0500) che attiva il motore di apertura della porta. o Contemporaneamente. indichiamo alcuni punti su cui fare attenzione: o Ai temporizzatori Il segnale inviato dall’interruttore ad ultrasuoni (ingresso 0000) è messo in AND con il finecorsa (ingresso 0002) di movimento superiore della porta. 2 0 0 5 . che rileva il limite inferiore di movimento della porta. o Il relè ausiliario interno 1000 è messo in AND con un secondo finecorsa. sul fronte di discesa dell’ingresso 0001. o Quando la porta raggiunge il suo limite superiore.

Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza.2 0 0 6 Esempio 4 Distributore automatico di olio lubrificante In questo esempio il PLC viene usato per regolare l’erogazione di olio lubrificante agli ingranaggi ed ai cuscinetti di di una linea di assemblaggio. viene erogato l’olio.A U T O M A Z I O N E I N D U S T R I A L E - A . a) Quando l’elemento da lubrificare (ad esempio un ingranaggio) raggiunge un punto prestabilito ed è rilevato da un sensore. usura di parti e energia assorbita dai motori. A . 2 0 0 5 . 258 . riducendo così attrito. b) Una valvola elettromagnetica eroga una quantità nota di lubrificante per un certo tempo T c) Se il livello dell’olio scende al di sotto di una soglia minima prestabilita. un sensore di livello lo segnala al PLC che attiva una segnalazione di Allarme.

A U T O M A Z I O N E I N D U S T R I A L E - A .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 . 2 0 0 5 . A .

indichiamo alcuni punti su cui fare attenzione: o Il sensore di ingresso (ingresso 0000) rileva l’elemento da lubrificare il posizione. o Il PLC emette un comando che accende una spia di allarme sul quadro di controllo (uscita 0501). o Il PLC apre l’elettrovalvola elettromagnetica (uscita 0500) per un tempo prestabilito (temporizzatore TIM00). con la conseguente erogazione dell’olio 260 . però.A U T O M A Z I O N E I N D U S T R I A L E - A . o Il livello dell’olio nel serbatoio è controllato da un sensore (ingresso 0001).2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè. 2 0 0 5 . o L’eccitazione del relè ausiliario interno 1000 provoca l’apertura della valvola attraverso l’uscita 0500. Prima. 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. il sensore lo segnala al PLC. o Se il livello scende sotto il limite prestabilito. A .

quando il tempo stabilito è trascorso.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. la posizione delle piastre è rilevata da sensori di prossimità collocati vicino a ciascun segmento del nastro. 2 0 0 5 . A . Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. mentre quelle vuote restano ferme. Si possono così azionare unicamente le sezioni del nastro che stanno effettivamente trasportando un oggetto. 261 . viene attivato un temporizzatore e. b) Finché la piastra metallica è nel campo di lettura di un sensore.A U T O M A Z I O N E I N D U S T R I A L E - A . a) Il nastro trasporta piastre metalliche. c) Quando invece la piastra esce dal campo di lettura del sensore di prossimità. il motore del segmento in cui il pezzo è transitato si ferma. il PLC emette un segnale di controllo che provoca il funzionamento del motore associato al segmento successivo.

A .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 . 2 0 0 5 .

o Quando l’ingresso 0002 diventa attivo. ovvero il tempo richiesto dalla piastra metallica per raggiungere il segmento successivo del nastro. Prima.. 263 .2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . 2 (ingresso 0001) e 1 (ingresso 0000) in questa stessa sequenza. il PLC genera l’uscita 0500 che corrisponde al motore 1 o Il motore 2 resta in funzione solo per 2 secondi. A . però. indichiamo alcuni punti su cui fare attenzione: o La piastra metallica è rilevata dai sensori 3 (ingresso 0002). o Il primo segnale d’ingreso nel diagramma a relè proviene dal sensore 3 (ingresso 0002). il PLC genera l’uscita 0501 che corrisponde al motore 2 o Quando l’ingresso 0001 diventa attivo.

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 U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . A . 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 .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 . 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A .

la valvola di spruzzo si apre. indichiamo alcuni punti su cui fare attenzione: o Quando si preme il pulsante di partenza (ingresso 0000).2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè. viene attivata l’uscita 0501 per avviare le spazzole (a meno che il relè ausiliario interno 1001 sia aperto). che può servire anche come ingresso di reset. 266 . o Quando il rilevatore di veicoli invia un segnale al PLC (ingresso 0001). la macchina di lavaggio inizia a funzionare e. o L’uscita del relè ausiliario interno 1000 è anche direttamente collegata all’uscita 0500. o Questo risultato viene quindi messo in AND con l’ingresso 0002 (condizione per la quale la macchina di lavaggio si ferma) o Finché la condizione di questo circuito AND è soddisfatta. o L’ingresso 0000 e il relè ausiliario interno 1001 sono collegati in AND ed il risultato è posto in uscita sul relè ausiliario interno 1000. o Il processo di lavaggio prosegue finché il relè ausiliario interno 1001. facendo spostare l’apparato di lavaggio per tutta la lunghezza del veicolo.A U T O M A Z I O N E I N D U S T R I A L E - A . che apre la valvola dello spruzzatore. l’uscita 0502 resta attiva. A . però. Prima. 2 0 0 5 . si apre. contemporaneamente.

A . b) Il PLC conta inoltre il numero dei prodotti difettosi. c) Se la loro quantità raggiunge un numero prestabilito.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. 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 . Prima fase: Determinare che cosa il sistema di controllo deve fare e secondo quale sequenza. 2 0 0 5 . 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.

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 .A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 .

Occorre inoltre specificare il canale dei dati (nell’esempio. nel caso particolare del PLC Omron Sysmac C20. Questa istruzione. che avvia il trasportatore B. Dopo 5 bottiglie difettose viene attivata l’uscita 0502 e si accende la spia di allarme 269 . o Quando il relè 1001 viene attivato. il cui stato è memorizzato nel punto 1000 del canale 10. deve essere programmata assegnando nell’ordine: l’ingresso dati (0000). o Al prossimo segnale su 0001. però. il canale 10). o Viene quindi attivata l’uscita 0500. è attivato l’ingresso 0000. lo stato del punto 1000 del canale 10 è traslato in 1001. nell’esempio impostato al valore di 0005. è generata anche l’uscita 0501. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . o Quando l’uscita 0500 viene attivata. o Quando viene rilevato un prodotto difettoso. Prima. l’ingresso di clock (0001 e l’ingresso di reset (0002). o L’ingresso 0003 viene attivato quando il braccio del robot ritorna nella sua posizione originale dopo aver rimosso la bottiglia difettosa. il braccio del robot rimuove il prodotto difettoso dal trasportatore A e lo colloca sul trasportatore B.2 0 0 6 Quarta fase: Dobbiamo codificare il diagramma a relè. o Gli ingressi 0000 e 0002 servono anche come ingressi di conteggio e di reset del contatore (mediante il blocco speciale “contatore CNT”. a meno che sia applicato l’ingresso 0003. A . 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 nell’elenco dei codici mnemonici.

Molto facili da miniaturizzare. ad esempio. Nel campo della automazione il sistema attuatore comprende l'attuatore propriamente detto e l'organo trasmettitore. caratterizzati da un servizio intermittente.accelerazione 5000 rad/sec2 Il rapporto fra la coppia massima sviluppabile ed il momento d'inerzia del rotore è quasi sempre il parametro più importante. Gli attuatori elettrici impiegati nella automazione sono i motori a corrente continua. Si prestano anche molto bene alla variazione di velocità con tecnologie elettroniche semplici e a costo ridotto. un manipolatore dà attuazione alle "decisioni" prese dagli organi programmatori delle operazioni: tra questi rivestono particolare importanza gli attuatori elettrici.2 0 0 6 7 Capitolo 7 Attuatori elettrici Gli attuatori sono organi finali di un sistema automatico.1 Motori a corrente continua I motori a corrente continua a eccitazione separata sono ancora ampiamente utilizzati per l’azionamento delle macchine a velocità variabile.400 giri/min . si impongono nelle potenze molto basse. 7. 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. la loro funzione è quella di eseguire le operazioni controllate dal sistema medesimo. in motore o in generatore. A titolo di esempio si può riportare qualche dato numerico: .velocità 300 .coppia 3 . 2 0 0 5 . Agli attuatori impiegati nei sistemi di automazione. E' tramite l'azione degli attuatori che. quelli a corrente alternata ed i motori passo-passo. m. per prestazioni elevate fino a potenze rilevanti (diversi megawatt). 270 .A U T O M A Z I O N E I N D U S T R I A L E - A . Le loro caratteristiche consentono anche una regolazione precisa della coppia. La loro velocità di rotazione nominatesi adatta facilmente per costruzione a tutte le applicazioni.4 N m . 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. poiché non collegata alla frequenza di rete. A . Le coppie ottenibili non superano solitamente qualche decina di N.1. Tuttavia sono richiesti anche motori con coppie assai più elevate di quella indicata e più alte velocità.

Per introdurre l'argomento si richiama brevemente il principio di funzionamento di un motore DC (Direct Current ). Tra gli attuatori di movimento e spostamento.A U T O M A Z I O N E I N D U S T R I A L E - A . A . Inoltre notevoli sono stati recentemente i progressi nei magneti permanenti. In particolare l'impiego degli azionamenti elettrici rispetto a quelli idraulici o pneumatici è rapidamente aumentato in virtù di: .precisione ed affidabilità del comando .eliminazione dei riduttori di velocità . destinati ad avere un impiego sempre maggiore nei robot di piccole e medie dimensioni. 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. 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.limitata rumorosità.possibilità di montaggio diretto sugli assi . i motori in corrente continua hanno sicuramente una posizione di primo piano soprattutto nei casi in cui non è richiesta una eccessiva potenza.facilità di manutenzione . fino a quelli più recenti.2 0 0 6 Sono tuttavia meno robusti dei motori asincroni e richiedono una manutenzione regolare del collettore e delle spazzole. 271 . 2 0 0 5 . che hanno consentito l'eliminazione degli induttori.

sottoposti ad una forza.A U T O M A Z I O N E I N D U S T R I A L E - A . I motori a corrente continua sono costituiti quindi di uno statore (INDUTTORE) realizzato in ferro. con espansioni polari. L'avvolgimento di rotore è collegato a segmenti di commutazione (collettore) e riceve corrente attraverso spazzole che strisciano sul collettore stesso. E’ un elemento del circuito magnetico immobile sul quale. in modo che essa scorra sempre nella direzione corretta e fornisca una coppia che determina la rotazione in un senso. Altro elemento che costituisce il motore in corrente continua è il rotore (INDOTTO). crea un campo magnetico nell’itraferro. vengono percorsi da correnti di senso uguale e quindi sono. Il principio di funzionamento si basa sul fatto che. Questo campo magnetico “entra” nell’indotto dal lato del polo nord dell’induttore ed “esce” dall’indotto dal lato del polo sud dell’induttore. Le due forze creano una coppia che fa ruotare l’indotto del motore. quando l’induttore è alimentato. diretto in base ai raggi dell’indotto. 2 0 0 5 . I conduttori posizionati sotto l’altro polo. 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. A . è sbobinato un avvolgimento. sono sottoposti ad una forza avente stessa intensità e senso opposto. in tal caso. secondo la legge di Laplace.2 0 0 6 Nella figura è illustrata la struttura di base. I motori elettrici in corrente continua sono gli attuatori più comunemente usati nei sistemi di controllo per piccole potenze (meno di 100 W). anch'esso in ferro. Prima di descrivere il funzionamento dei vari tipi di motori DC per automazione è opportuno accennare alle caratteristiche elettriche e meccaniche desiderate. Il circuito di rotore è percorso dalla corrente di indotto o di armatura mentre nelle lame del collettore avviene la commutazione tramite le spazzole. si controllano bene sia la velocità che la coppia del motore. operando il cosiddetto "controllo di armatura". L’elettromagnete così realizzato presenta tra i poli una cavità cilindrica. Il sistema di eccitazione impiegato in questo tipo di motori è normalmente quello che prevede l'eccitazione stessa attuata indipendentemente: infatti. posizionati sotto lo stesso polo induttore (dallo stesso lato delle spazzole). L’indotto si muove intorno al suo asse ed è separato dall’induttore mediante un intraferro. 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 . Quando l’indotto è alimentato. nelle cui cave è situato l'avvolgimento costituito da fini matasse ai cui estremi sono collegate le lame del collettore. i suoi conduttori. Il collettore e le spazzole formano un commutatore per la corrente del rotore. per produrre un campo magnetico. E’ un circuito in lamiere isolate e perpendicolari all’asse del cilindro.

per una determinata tensione.1.A U T O M A Z I O N E I N D U S T R I A L E - A . 7.c. è il sistema collettore . In automazione e in robotica si impiegano preferibilmente motori con induttore costituito da magneti permanenti poiché tale soluzione offre. 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.cobalto 7. la decelerazione e l'inversione di marcia seguano con fedeltà il segnale di ingresso. o brushless.2 0 0 6 la potenza P deve essere proporzionale all'effettiva richiesta del carico e. costruito con magneti permanenti che danno luogo ad un campo magnetico rotante. alla corrente di armatura Nella loro costruzione si impiegano i seguenti tipi di magneti permanenti: ceramici a terre rare . avendo supposto le caratteristiche lineari. che vede l'alimentazione degli avvolgimenti realizzata per via elettronica e non meccanica. Nel motore senza spazzole. rispetto ai motori DC tradizionali.spazzole. Grazie a questa soluzione. gli avvolgimenti possono essere trasferiti sullo statore. che scambia le proprie funzioni con quelle del rotore. dai due precedenti punti.1. Il motore trifase è difficilmente 273 . in prima approssimazione.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. 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.2 Motori "brushless" a magnete permanente La principale limitazione di un motore in c. 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. sede di usura e scintillii. A . 2 0 0 5 . e li alimenta.

L'alimentazione di un motore in corrente alternata deve presentare una uscita variabile in tensione e frequenza.a. Altre prerogative sono la frenatura. la robustezza. Elevando opportunamente la resistenza rotorica si riesce a distendere la caratteristica meccanica del motore fino ad ottenere una forma pressoché lineare come richiesto. 7. L'inverter è chiamato a tensione impressa perché un grosso filtro capacitivo fissa rigidamente la tensione di alimentazione al secondo stadio. il secondo effettua una conversione continua-alternata a data frequenza. ciò si ottiene invertendo la tensione di armatura. Gli azionamenti in c. in questo modo la tensione di uscita verso il motore non viene influenzata dalla natura del circuito. 2 0 0 5 .a.c.2 0 0 6 impiegato per le difficoltà ad ottenere una elevata coppia allo spunto e per le difficoltà di regolazione della velocità. Esso è realizzato normalmente con un rotore a gabbia di scoiattolo. La tensione di controllo può variare in ampiezza per realizzare il controllo di velocità. Mentre nel controllo della velocità dei motori in c.1. Il compito dei due avvolgimenti è quello di generare un campo magnetico rotante sotto la cui azione il rotore viene trascinato in rotazione. Nell'ambito delle piccole potenze (da qualche watt a qualche decina di watt) il motore bifase è risultato spesso preferibile al motore a corrente continua. A . Questi motori si basano sul principio di funzionamento del campo rotante a scatti.c. con un determinato e costante incremento di rotazione dell'albero. : una delle principali prerogative è la facilità dell'inversione del senso di marcia.A U T O M A Z I O N E I N D U S T R I A L E - A . basta semplicemente invertire due delle tre fasi di alimentazione. a frequenza variabile presentano prerogative non riscontrabili nei corrispondenti c. nel caso c. I due avvolgimenti sono alimentati con tensioni sinusoidali sfasate di π/2: una è la tensione di controllo e l'altra di riferimento. La corrente erogata è approssimativamente costante. Sono anche chiamati "stepper motors". 274 . il minor costo e l'affidabilità.4 Motori passo-passo I motori passo-passo sono componenti elettromagnetici che trasformano un impulso elettrico in forma meccanica. Nella rotazione si può andare avanti o indietro e questo dipende dall'ordine con cui i suoi avvolgimenti sono eccitati. 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. Naturalmente si abbassa notevolmente il rendimento ed è per questo che il motore bifase non si costruisce che per piccole potenze.

quando sono eccitati. reagiscono successivamente su un nucleo di ferro dolce o magnete permanente. 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. La velocità in giri al minuto sarà: f N = 60 ----n La buona precisione di posizionamento ne permette un impiego in catena aperta. nel senso che un elevato rapporto aumenta lo smorzamento. I motori passo-passo sono di tipo sincrono. 275 . 2 0 0 5 . facendolo ruotare di un angolo.A U T O M A Z I O N E I N D U S T R I A L E - A . 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). avvolgimenti che. Ad ogni passo si avrà una certa oscillazione la cui ampiezza dipende dal rapporto coppia resistente / momento di inerzia del carico. per semplicità.2 0 0 6 Il motore passo-passo può essere paragonato ad una serie di avvolgimenti disposti in cerchio. che quest'ultimo sia schematizzabile come mostrato in figura (struttura di base. A . poli magnetici e circuiteria di azionamento). cioè senza retroazione con conseguente risparmio dell'elettronica di controllo.

276 . Un altro svantaggio è la potenza limitata cui già si è accennato. La loro coppia è proporzionale alla corrente e possono avere un numero elevato di passi a giro. 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. c) Motori ibridi Sono basati su una tecnica composta.2000 passi / s 1.4 N m a 200 passi / s . ovvero della massima frequenza a cui il motore è in grado di effettuare il singolo passo.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.Coppia massima rotazione 0. Queste due caratteristiche limitano l'impiego del motore alle applicazioni in cui sono in gioco piccoli carichi.2 N m a 500 passi / s 0. Con una opportuna sequenza di alimentazione è possibile creare un susseguirsi di posizioni di equilibrio e quindi la rotazione. che servono a polarizzare i poli salienti. 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. 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.Velocità massima . A . creano un flusso che si richiude attraverso la carcassa. Quando la corrente percorre un determinato avvolgimento.A U T O M A Z I O N E I N D U S T R I A L E - A .Risoluzione 1000 . I denti del rotore e dello statore rendono variabile la riluttanza del traferro e con i poli contribuiscono a determinare il passo del motore.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. I parametri caratteristici del motore sono i seguenti: . 2 0 0 5 .Angolo corrispondente al passo . I magneti permanenti del rotore.

2 0 0 5 .31° 15° . basso alta alta bassa alta media buono alta Rilutt.8° . variabile medio-alto bassa media media bassa alta scarso bassa Ibrido alto media media media bassa molto alta buono medio-alta 0.1.2° . La seguente tabella riporta le caratteristiche principali dei motori passo-passo.2 0 0 6 Gli statori sono disposti in modo identico e gli avvolgimenti sono comuni alle due parti.5.1.30° 277 .5° .6° Angolo tipico di passo 1.25° . in quanto quelli a riluttanza variabile si impiegano quando occorre riferirsi a vari parametri.5° .18°. A .15° .7.9° .9° .8° . Normalmente la scelta avviene tra i motori a magnete permanente e motori ibridi.6.1.7° .8° .A U T O M A Z I O N E I N D U S T R I A L E - A .3. Tipo motore Costo Efficienza Coppia residua Coppia dinamica Inerzia rotore Velocità Smorzamento Potenza erogata Magnete perm.

è 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. Nella prima classe sono compresi. sono compresi tutti i sensori che non fanno parte delle prime due. secondo una legge nota. A .sensori usati per il corretto funzionamento del programma del robot.. alla fantastica sofisticazione del suo sistema sensoriale ed alla capacità di elaborazione del suo cervello. anche gli interruttori di fine corsa o simili. si possono individuare tre classi di sensori: Classe A . Alla seconda classe appartengono tutti i dispositivi che presiedono alla sicurezza della macchina e dell'ambiente circostante (fine-corsa e sensori di sforzo eccessivo. Secondo questo criterio. paragonabile a quella dell'uomo. Più importante della definizione è però una classificazione dei sensori. dai più semplici ai più complessi. Mentre molti hanno tentato classificazioni in base al tipo o in base alle grandezze che essi misurano. ecc. infine. occorre dotare il robot di sensori di diverso tipo e sfruttare in maniera più completa possibile tutte le informazioni che da questi provengono. da uno o più parametri fisici del robot e/o dal mondo che lo circonda.. 2 0 0 5 . quando vengono usati come riferimenti di posizione (ad esempio negli azionamenti passopasso). Se si vuole quindi ottenere da un robot una capacità di manipolazione che sia.A U T O M A Z I O N E I N D U S T R I A L E - A . un sensore può essere definito come un dispositivo che emette segnali elettrici dipendenti.Sensori usati per il corretto funzionamento della macchina Classe B . Nella terza classe.Sensori usati per garantire la sicurezza (operatori compresi) Classe C . Questa definizione include qualunque tipo di sensore collegabile a robot industriali. 278 . più che al suo apparato motorio flessibile ma impreciso.2 0 0 6 8 Capitolo 8 I sensori nell’automazione E' noto che le capacità di manipolazione dell'uomo sono dovute. oltre ai dispositivi che negli azionamenti retroazionati forniscono le informazioni di velocità e posizione. pur lontanamente. e tutti i dispositivi le cui informazioni sono necessarie al funzionamento del robot. sbarramenti fotoelettrici. pulsanti di emergenza.). Per quanto riguarda le applicazioni ai robot.

il cui principio è quello di convertire una posizione in un valore di resistenza elettrica. 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. perché le loro informazioni sono utilizzate direttamente dalla unità che esegue il programma di utente. oltre ad intraprendere opportune azioni all'insorgere di situazioni di emergenza.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. Un esempio di questo tipo di collegamento si trova in quei robot dove i sensori di classe B agiscono direttamente sugli alimentatori dei motori. A . 8. perché le strutture dei sistemi di controllo possono essere molto diverse fra loro. E' evidente che in questo caso. mentre R è la resistenza di tutto il potenziometro. 8.2 0 0 6 A proposito di questa classificazione. "sentire" e "prendere" oggetti con una determinata pressione.1 Potenziometri I più semplici sensori impiegati per questo scopo sono i potenziometri. I sensori di classe C di basso livello. 279 . ed il risultato di questa operazione è l'unica informazione interessante. si possono fare alcune considerazioni di carattere generale. è necessario confrontare la grandezza rilevata con soglie opportune. della correttezza della traiettoria in termini di percorso. velocità ed accelerazione. vale un ragionamento analogo: essi devono essere collegati al sistema di controllo al livello più basso possibile.1. Anche se non è possibile dare una metodologia generale per il collegamento dei sensori. devono essere collegati al livello più alto. o sui microcalcolatori che li controllano. 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". in modo che il programma del robot possa essere interrotto e sostituito con opportune routine di uscita dalla situazione di emergenza. infine. I sensori di classe A devono essere collegati direttamente ai dispositivi che azionano i singoli attuatori. il sistema deve essere in grado di informare i livelli più alti dell'accaduto. 2 0 0 5 . Il passaggio da posizione a variazione di resistenza e infine a variazione di tensione è molto semplice.A U T O M A Z I O N E I N D U S T R I A L E - A . del loro posizionamento iniziale e finale. è opportuno osservare che i sensori di classe B sono necessariamente dispositivi binari: qualora essi siano implementati con rilevatori analogici. in modo che eventuali malfunzionamenti dell'hardware non ne compromettano il buon funzionamento. Per quanto riguarda i sensori di classe B.

A U T O M A Z I O N E I N D U S T R I A L E - A . da difetti meccanici. potenza dissipabile: insieme al valore di R.α α max dove α max è il massimo angolo di corsa del cursore. 2 0 0 5 . A .2 0 0 6 Il valore di Vu dipende dal valore di Vi che alimenta il potenziometro. da scintillio. 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. a un giro o a più giri. risoluzione: indica lo spostamento minimo del cursore per avere un delta di scostamento in tensione. la potenza dissipabile Pd definisce le caratteristiche elettriche del potenziometro. da polvere che interrompe la continuità del contatto. Nel caso dei tipi a spostamento angolare vale la seguente relazione: Vu = Vi ------. Si possono avere potenziometri a spostamento lineare o a spostamento angolare. rumore: va sotto questo nome qualunque scostamento in tensione provocato da errori di linearità. Vi può essere indifferentemente una tensione continua o alternata. - 280 . Qualsiasi variazione del coefficiente di proporzionalità viene riferita come errore di linearità.

sugli avvolgimenti secondari viene indotta una tensione. Nella figura è riportato lo schema tipico di un trasformatore differenziale.A U T O M A Z I O N E I N D U S T R I A L E - A .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.1. 2 0 0 5 . 281 . la tensione dei due avvolgimenti varierà. 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. Il coefficiente di accoppiamento dipende dalla posizione del nucleo.1. La sensibilità del sistema è abbastanza buona. A . Quando l'avvolgimento primario viene eccitato dalla corrente alternata. La tensione di uscita è così la differenza tra le due tensioni.3 Codificatori (encoder) Allo scopo di illustrare il principio di funzionamento di un codificatore di posizione. La tensione sarà nulla quando il nucleo è in posizione centrale. spostandosi il nucleo. nella seguente figura viene presentato lo schema a blocchi di un sistema di posizionamento di un braccio di robot. I due avvolgimenti secondari sono connessi in serie in opposizione cosicché le due tensioni sono in opposizione di fase.2 0 0 6 8. comunemente chiamato "encoder".

Il secondo anello. il quale fornisce in uscita impulsi corrispondenti alla posizione angolare dell'albero.2 0 0 6 I posizionamenti vengono. impiegando contatori up/down vengono contati gli impulsi inviati dal trasduttore encoder. eseguiti con motori in corrente continua. Su un lato del disco è situata la sorgente luminosa e sull'altro una o più fotocellule. A . un trasduttore di posizione molto impiegato nei sistemi robotici è l'encoder. 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. 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. i quali. 2 0 0 5 . se riferiti al tempo. L'encoder è un dispositivo azionato da un albero rotante. esprimono la velocità (codificatore tachimetrico).A U T O M A Z I O N E I N D U S T R I A L E - A . produce gli impulsi di tensione (sotto forma di onda quadra) in uscita. l'anello di velocità è gestito in maniera hardware. istante per istante. e al processore non rimane che leggere i dati raccolti dal contatore a intervalli regolari. con regolazione ad anello chiuso. relativo al posizionamento. di norma. E' necessario. Il cambio della luminosità della fotocellula causato dalla rotazione del disco. può essere realizzato prevalentemente in maniera hardware e software: per esempio. Esso contiene al suo interno un disco rotante diviso in segmenti alternativamente opachi e trasparenti. 282 . Lo spostamento angolare dell'albero è misurato dal numero di impulsi. In ogni caso.

BCD. che permettono di ricavare anche decine di migliaia di bit per giro. L'encoder descritto viene detto di tipo incrementale in quanto i segnali di uscita sono proporzionali in modo incrementale allo spostamento effettuato.A U T O M A Z I O N E I N D U S T R I A L E - A . 2 0 0 5 . nei quali ad ogni posizione dell'albero corrisponde un valore ben definito. Gray ecc. compresa l'eventuale interruzione della alimentazione. Nel codificatore assoluto sono previste sul disco tracce capaci di fornire segnali in codice. Questi errori possono essere eliminati con l'impiego di encoder assoluti. I codici impiegati sono quelli di tipo binario. con la logica del circuito esterno. Esiste inoltre un'altra fotocellula che fornisce un impulso indicatore della posizione di riposo (riferimento zero). a causa del conteggio errato provocato da disturbi. 283 . è possibile misurare. A . Gli encoder incrementali possono fornire purtroppo errori. e quindi posizioni non corrette.. il senso di rotazione rilevando se il segnale A precede il B o viceversa. Per rilevare la luce che passa attraverso il disco è prevista una fotocellula per ogni traccia. I due canali in quadratura evitano anche l'errata misura nel caso di vibrazioni del codificatore tachimetrico.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..

frequenza della radiazione usata e quindi per settore d'impiego. Questo tipo di sistema è generalmente impiegato dove sono richieste elevate distanze d'intervento. 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. Naturalmente non può essere utilizzato per rilevare oggetti molto riflettenti come metalli levigati. I sistemi di funzionamento reflex. A . Viene usato un riflettore prismatico il quale riflette il raggio trasmesso e pertanto viene rilevato. 2 0 0 5 . fluidico.2. I sensori ottici più tradizionali funzionavano con luce visibile. in prossimità del sensore stesso. Essi impiegavano generalmente sorgenti a filamento e rilevatori di tipo a fotoresistenza.0.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. Questi dispositivi comportavano tuttavia alcuni inconvenienti fra i quali la durata limitata della sorgente (alcune migliaia di ore) e la velocità di risposta modesta.A U T O M A Z I O N E I N D U S T R I A L E - A . con distanze trasmettitore / ricevitore comprese fra qualche metro.7 . adatti per medie distanze di intervento. si adatta bene alla regione di assorbimento del silicio. La banda di emissione dell'arseniuro di gallio (circa 0. magnetico.2 0 0 6 8. capacitivo. Prestazioni nettamente superiori sono state ottenute impiegando emettitori a LED (per esempio arseniuro di gallio) e rivelatori al silicio (fotodiodo o fototransistor).1 Sensori fotoelettrici (o sensori ottici) In questa categoria di sensori si possono annoverare dispositivi assai diversi per concezione. hanno il trasmettitore e il ricevitore integrati nello stesso contenitore. I dispositivi commerciali a barriera funzionano infatti. Mediante più misure lineari a direzioni diverse si possono poi agevolmente determinare posizioni ed orientamenti di pezzi semplici e complessi. 8. I sensori di prossimità possono basarsi su numerosi principi fisici: induttivo. infatti. Un sensore di prossimità può anche essere predisposto per misurare distanze: il sensore produce un segnale continuo (anziché on-off) proporzionale alla distanza. luminoso ed ultrasonico. Qualunque oggetto non trasparente interposto interrompe il raggio luminoso (light beam) e viene pertanto rilevato. 284 . a seconda dei tipi.9 µm). Questo sistema viene utilizzato per piccole o medie distanze oppure laddove è impraticabile l'impiego di un trasmettitore e un ricevitore separati.

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

I sensori non amplificati sono costituiti da un oscillatore e vengono utilizzati per ottenere segnali a basso livello atti a comandare un amplificatore separato.2 0 0 6 8. godono di una normalizzazione a livello internazionale (CENELEC). a sua volta. 2 0 0 5 .A U T O M A Z I O N E I N D U S T R I A L E - A . Queste correnti provocano una perdita di energia nell'oscillatore. I sensori induttivi rappresentano senza dubbio i sensori di prossimità più diffusi su macchine automatiche e sono gli unici che. unitamente alle precedenti caratteristiche. A . La bobina di un circuito oscillante genera un campo elettromagnetico ad alta frequenza che induce. smorzando l'ampiezza del segnale. 286 . una durata ed un numero di operazioni illimitate rispetto ad altri tipi di interruttori di prossimità. riducendo altresì ogni problema di manutenzione. La riduzione dell'ampiezza dell'oscillazione è rilevata da un amplificatore di soglia con isteresi che. L'assenza di contatto meccanico fra azionatore e sensore consente. Essi si suddividono in due categorie: autoamplificati e non amplificati. comanda uno stadio amplificatore finale per l'azionamento di un carico esterno.2. grazie alla maturità raggiunta dalla tecnologia. in azionatori metallici vicini.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. correnti parassite. I sensori autoamplificati si dividono a loro volta in sensori a corrente continua e sensori a corrente alternata.

dato il principio di funzionamento descritto. permette al sensore di stabilire se l'azionatore è o meno in campo. ecc.2.. Il sensore ad ultrasuoni rappresenta dunque una vantaggiosa alternativa nei confronti dei sensori ottici. un sensore di prossimità capacitivo può essere utilizzato come rilevatore di oggetti metallici e non metallici come legno. 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. sfruttano la variazione di capacità parassita che si crea tra sensore ed oggetto da rilevare. I parametri sono simili a quelli dei sensori induttivi mentre le distanze di intervento per i tipi cilindrici di diametro 18 . L'emissione avviene tramite un apposito trasduttore elettroacustico di tipo piezoceramico. materiali plastici. essendo proporzionale alla distanza azionatore / sensore. o sensori capacitivi.A U T O M A Z I O N E I N D U S T R I A L E - A .30 mm. molto diffusi nell'industria.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. cioè il tempo che intercorre fra l'istante di emissione di un impulso e l'istante di ricezione dello stesso.2 0 0 6 8. 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.3 Sensori a principio capacitivo I sensori di prossimità a principio capacitivo. In corrispondenza di una determinata distanza dell'oggetto dalla faccia sensibile del sensore. L'onda riflessa è rilevata da un analogo trasduttore la cui funzione è quella di riconvertire i segnali acustici in segnali elettrici. 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.2. Pertanto il tempo di ritardo.20 mm. 2 0 0 5 . sono nel campo 8 . Impieghi tipici si hanno per esempio nei dispositivi contapezzi. 8. A . liquidi. comunemente utilizzati per rilevare oggetti distanti. Il segnale emesso è costituito in genere da un treno di impulsi viaggianti alla velocità del suono nell'aria (340 m/s circa). infatti le caratteristiche 287 . nei controlli di livello in recipienti.

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

I sensori piezoelettrici sono sensibili sia alla forza lungo un asse. 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. La forza viene misurata in newton (N). I sensori di deformazione e di forza sono particolarmente interessanti per le operazioni di assemblaggio. compresi i rimbalzi) la particolare concezione costruttiva e l'alta qualità dei materiali impiegati assicurano ai contatti una lunga vita (107 . questi sensori sono particolarmente adatti ad impieghi con corrente alternata. ancora. i sensori di sforzo vengono applicati tra il polso e la pinza.A U T O M A Z I O N E I N D U S T R I A L E - A .5 .3 ms. 289 . fino a 300 Hz per alcuni tipi. 8. Dispositivi di questo tipo sono chiamati anche "celle di carico". Come sappiamo.225 libbre.102 Kg. nelle applicazioni in cui è necessario applicare una pressione costante (ad esempio operazioni di incollaggio) o. 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. ma molto utilizzati sono anche i sensori piezoelettrici . A . 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.108 operazioni) assenza di manutenzione e ridottissimo ingombro. 1 N corrisponde a 0. e a 0. Generalmente. nella misurazione della forza di inserzione dei componenti elettronici in un circuito stampato.2 0 0 6 - alta velocità di funzionamento.3 Sensori di deformazione e di forza I controlli di sforzo si basano prevalentemente sugli estensimetri. certi cristalli sotto pressione generano sulle facce opposte cariche elettriche proporzionali allo sforzo cui sono sottoposte. sia alla coppia intorno all'asse stesso. breve tempo di attrazione (1. Oppure. Altre volte vengono usate celle di carico costituite da trasduttori piezoelettrici di forza. 2 0 0 5 . I trasduttori di forza sono spesso basati su trasduttori di spostamento come ad esempio la compressione di una molla che agisce su un LVTD.

con valori comuni attorno a 120 e a 350 Ω.1 Estensimetri Alcune misure di spostamento si riferiscono a movimenti molto piccoli. le lunghezze variano tra i valori 0. vediamo di quanto aumenta la resistenza se lo "strain gage" viene allungato di 0. Le resistenze variano tra 30 e 3000 Ω. 290 . Nella figura è riportata una configurazione di strain gages a film o foglia. A .A U T O M A Z I O N E I N D U S T R I A L E - A . In tali casi sono molto adatti i cosiddetti "strain gages".1 e 100 mm.2 mm. chiamato "gage factor". Tale fattore. Gli "strain gages" si basano sul principio che la resistenza (R) di un conduttore è direttamente proporzionale alla resistività (ρ) ed alla sua lunghezza (L). è 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. la sua lunghezza aumenta e la sua sezione diminuisce. 2 0 0 5 . conseguentemente la sua resistenza aumenta. L R = ρ -------S Se un conduttore è tirato ed allungato. 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. ottenuta con processo tipo circuito stampato. mentre è inversamente proporzionale alla sua sezione (S). sensori di basso costo. di facile uso e che talora possono venire resinati nello stesso corpo in misura.3.2 0 0 6 8.

. di una apparecchiatura molto complessa. una memoria RAM di 2 kbyte per 8 bit. PZT (ceramica piezoelettrica). Un prototipo di sensore tattile consiste dunque di un foglio di PVF2 metallizzato su entrambe le superfici. A . 8. come ci si può rendere conto.005 quindi si moltiplica questo valore per il "gage factor" ottenendo ∆R / R = 2 x 0. . ecc.array con 4 x 4 elementi sensibili ogni cm2 . I 16 microprocessori portano le informazioni della cella relativa ad un microprocessore di supervisione che effettua le necessarie correlazioni e le invia. per assicurare un buon contatto elettrico.005 = 0. oltre a quello della visione artificiale..01 per R = 350 Ω si ottiene R = 3. leggero. Attualmente le ricerche sono orientate ad implementare un sensore tattile dalle seguenti caratteristiche: .5 Ω."pelle artificiale" robusta in grado di sopportare bene l'ambiente di fabbrica. Il dotare la mano di un robot di capacità tattili vicine a quelle umane rappresenta un obiettivo molto attraente. Sono stati provati diversi materiali quali gomma conduttiva. PVF2 (fluoruro di polivinile). ognuno dei quali ha l'amplificatore di segnale e il convertitore A/D.2 Sensori tattili Un altro settore in cui la ricerca è molto intensa.01 infine. nella consapevolezza che il raggiungimento di una buona funzionalità anche in questo campo è il primo requisito per affidare ai robot lavori sempre più complessi. Si tratta. cioè ∆L / L = 0..sensibilità di ogni elemento pari a 10 -3 Kg.3. è quello dei sensori tattili. 2 0 0 5 . Quest'ultimo sembra essere vincente essendo robusto. facilmente conformabile alle superfici complesse.2 0 0 6 Per prima cosa si calcola il denominatore dell'espressione precedente.tempo di risposta di ogni elemento sensibile compreso tra 1 e 10 ms . deriva termica. E' inoltre privo di difetti dei concorrenti quali isteresi. ad un elaboratore principale che ricostruisce l'immagine tattile vera e propria. moltiplicando 0.. a sua volta. Dal foglio viene ricavata una matrice di 16 (4 x 4) elementi sensibili. scarsa linearità. 291 .A U T O M A Z I O N E I N D U S T R I A L E - A . una ROM di 4 kbyte per 8 bit ed un microprocessore.

non orientata cioè ad una specifica applicazione. Successivamente la matrice numerica viene elaborata per evidenziare il profilo degli oggetti rispetto allo sfondo della scena. A . tuttavia.2 0 0 6 8. sensori di stato delle macchine di cui il robot è "server". 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). ma piuttosto istruzioni che definiscono i movimenti che il robot deve compiere in funzione di segnali provenienti dai sensori. Una maggiore flessibilità è data dal controllo di tipo adattativo. questi vengono confrontati con quelli precedentemente memorizzati. Tale memorizzazione viene eseguita perché il tempo di acquisizione e conversione analogico / digitale dell'immagine è di pochi millisecondi. proporzionali al suo livello di grigio. data la loro complessità. i sistemi di visione operano su almeno 64 (512 nel caso dei sistemi di visione più evoluti). 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. per esempio.. mentre il tempo di elaborazione della stessa può essere anche di alcuni secondi. I sensori di visione hanno lo scopo di identificare la posizione e l'orientamento dell'oggetto che si trova nel campo del sensore. Una volta evidenziati. L'identità dell'oggetto viene poi resa disponibile per il controllo 292 . In questo modo il programma che l'operatore introduce non contiene istruzioni di posizionamento che il manipolatore deve ripetere. che. Su ciascun elemento si produce una tensione proporzionale alla luminosità del corrispondente punto della scena dopo una conversione analogico / digitale. in modo da lasciare la massima libertà di scelta dei sensori da parte di chi deve inserire il robot in un processo produttivo. sono chiamati più frequentemente sistemi di visione. In realtà sappiamo che anche per la più semplice applicazione il robot è dotato di una rete sensoriale composta da: sensori di presenza pezzo. Si fa notare che mentre l'occhio umano può distinguere una trentina di livelli di grigio. Tali sensori però influenzano solo la sequenza di esecuzione e la cadenza delle operazioni del robot senza aumentarne la flessibilità. di percorrere traiettorie indipendenti da quelle programmate sulla base di indicazioni fornite da sensori evoluti. ecc. 2 0 0 5 . Tra i sensori che maggiormente consentono un controllo di tipo adattativo i più importanti sono i sensori di visione.A U T O M A Z I O N E I N D U S T R I A L E - A ..4 Sensori di visione Il robot è stato descritto come una macchina programmabile e multiscopo dedicata alla produzione. i valori di tensione associati a ciascun elemento (detto pixel). L'implementazione di un controllo che sappia adattarsi alle condizioni operative (controllo adattativo) deve essere il più possibile generale. al fine di guidare il robot verso l'oggetto stesso. Questa flessibilità. vengono memorizzati sotto forma di matrice numerica in un buffer di memoria RAM. nell'ambiente operativo è fortemente condizionata dalle capacità sensoriali dei robot. un controllo cioè che permetta.

esistono due fondamentali tipi di algoritmi: a) algoritmo basato su di un livello di grigio (algoritmo binario) Consiste nel fissare. Durante tale scansione vengono "trovati" gli oggetti presenti nella scena. 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). 2 0 0 5 .il sistema di visione memorizzando le immagini che il sistema deve identificare (prototipi) .A U T O M A Z I O N E I N D U S T R I A L E - A .2 0 0 6 del robot al fine di attivare specifiche sequenze di operazioni quali selezione dell'end effector. un valore-soglia di grigio. ad esso viene associato il valore 0. al di sopra del quale il pixel deve considerarsi parte dell'oggetto. 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. ad esso viene associato il valore 1.. Se il pixel è parte dello sfondo. La successiva elaborazione verrà eseguita sugli elementi di valore 1..il robot inserendo un programma di manipolazione per ciascuno degli oggetti. A . 293 . azionamenti di dispositivi ausiliari. ecc. Pertanto l'utilizzatore programmerà: .. a seconda della situazione. e porterà all'identificazione degli oggetti presenti nella scena. Per eseguire tale funzione.

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

e trasmettere tali dati al controllo del robot stesso.sistema di riferimento assoluto del robot). i vari sistemi di riferimento relativi adottati (posizione camera posizione pinza . 295 . A .A U T O M A Z I O N E I N D U S T R I A L E - A . una "calibrazione" della telecamera montata sul braccio del robot che permetta di mettere in relazione tra di loro. a monte del processo di rilevamento ed elaborazione di immagine. 2 0 0 5 . Per tale motivo è necessario effettuare. mediante trasformazioni di coordinate. Le procedure di riconoscimento sopra descritte presuppongono che rimanga fissa la posizione della telecamera rispetto alla base del robot.2 0 0 6 sistema può rilevare posizione ed orientamento di quelli che il robot deve prelevare.

Sign up to vote on this title
UsefulNot useful