UNIVERSITA’ POLITECNICA DELLE MARCHE FACOLTA’ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA E DELL’AUTOMAZIONE (A DISTANZA) Esperienze didattiche riguardanti l’applicazione dei PLC nei sistemi di controllo Laureando: Relatore: LELIO SPADONI Prof. LEOPOLDO JETTO Sessione Autunnale Anno Accademico 2005 - 2006 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Indice Prefazione pag. 4 Parte prima: “Introduzione ai sistemi di controllo” Sistemi di controllo nell’ambito dell’automazione industriale Sistemi di controllo a catena aperta e a catena chiusa Controlli automatici di tipo numerico Caratteristiche di un controllore pag. pag. pag. pag. 6 7 8 9 Parte seconda: “Il controllore a logica programmabile” Programmable Logic Controller (PLC) Considerazioni storiche Configurazione minima di un PLC Il modulo processore I moduli di ingresso/uscita Il modulo alimentatore L’armadio Il terminale di programmazione pag. pag. pag. pag. pag. pag. pag. pag. 12 12 13 13 16 17 17 17 Parte terza: “La programmazione dei PLC” I linguaggi di programmazione Il Grafcet. Sequential Funcional Chart (FSC). Il linguaggio a contatti Ladder Il successo dello schema a contatti Ladder Lista di istruzioni Passaggio da uno schema grafcet a uno schema Ladder pag. pag. pag. pag. pag. pag. 20 20 23 24 25 25 Parte quarta: “Esempi di architetture di controllo” Elementi della CPU 226 utilizzati nelle esperienze Modo di procedere comune a tutte le esperienze condotte Esperienza n° 1: Avviatore reversibile per l’inversione del senso di rotazione dei motori trifasi. Esperienza n° 2: Frenatura in corrente continua di un motore asincrono trifase. Esperienza n° 3: Controllo di posizione di un motore passo-passo Esperienza n° 4 / Proposta di lavoro: Controllo di velocità di un motore in cc realizzato con la funzione PID del PLC S7-200 CPU 226. Esperienza n° 5: Controllo di temperatura di un forno elettrico. Appendice A Caratteristiche del PLC S7-200 CPU 226 Pag. 2 pag. 30 pag. 32 pag. 34 pag. 44 pag. 53 pag. 69 pag. 77 pag. 87 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Appendice B Data sheet encoder E5 Data sheet L297- L298 Caratteristiche motore passo-passo Unità di ampliamento analogica EM 235 pag. 96 pag. 98 pag. 100 pag. 102 Appendice C Funzione speciale PID pag. 106 Bibliografia pag. 115 Si allega il CD contenete il file in formato .doc relativo al presente lavoro. Pag. 3 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Prefazione La prima parte del lavoro costituisce un’introduzione, a livello generale, ai sistemi di controllo. Nella seconda parte invece, si parla del controllore a logica programmabile, con riferimento alle sue caratteristiche e alle sue componenti tipiche. Nella terza parte si considera la programmazione dei PLC, mettendo in evidenza gli elementi che permettono una progettazione del software di controllo efficiente. La quarta e ultima parte, è relativa alle esperienze didattiche condotte sui PLC, per il controllo di grandezze fisiche di varia natura come, per esempio, la velocità, la temperatura, la posizione, ecc... L’ambizione di tale testo è quella di diventare un manuale d’uso per tutti gli utenti che, anche a digiuno di esperienze con i PLC, vogliono avvicinarsi a questo dispositivo divenuto oramai un elemento importante nelle automazioni industriali. Per tale motivo tutte le esperienze condotte sono perfettamente funzionanti e ripetibili in qualsiasi momento grazie al grado di dettaglio con cui sono descritte. Da un punto di vista didattico dunque, il lavoro rappresenta la base di partenza per ulteriori approfondimenti che sono in un certo senso dovuti, proprio perché dato lo scopo didattico del lavoro non si sono certamente utilizzate tutte le notevoli potenzialità di elaborazione del PLC. Solo nell’esperienza numero quattro, che in realtà è una proposta di lavoro, viene utilizzata una funzione avanzata del PLC relativa all’operazione di regolazione proporzionale, integrativa e derivativa (PID). Nelle esperienze svolte si potrà notare che non esiste una progettazione del blocco regolatore (il controllore); mediante un “approccio diretto” si parte dalle specifiche richieste per costruire il modello desiderato del processo, che è riconducibile a quello del controllore con poche modifiche concettuali. Pag. 4 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ PARTE PRIMA Introduzione ai sistemi di controllo Pag. 5 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Sistemi di controllo nell’ambito delle automazione industriali Per sistema di controllo nell’ambito delle automazioni industriali si intende, in generale, un sistema automatizzato composto da un processo fisico e da un sistema di controllo, vedere figura 0. Figura 0. Modello di un sistema automatizzato Il processo fisico può essere definito come una combinazione di operazioni che agiscono su entità appartenenti al mondo fisico cambiandone alcune caratteristiche. Un processo fisico riceve in ingresso dei materiali, sotto forma di prodotti grezzi, e dell’energia; riceve, inoltre, dal sistema di controllo delle informazioni sotto varie forme quali, valori di tensione o di corrente elettrica, di pressione di un fluido, oppure sequenze di valori binari codificati. Il processo produce in uscita materiali, sotto forma di prodotti finiti e scarti, ed energia: invia inoltre delle informazioni al sistema di controllo. Anche i disturbi provenienti dall’ambiente che agiscono sul processo si possono considerare come ingressi al processo. Le informazioni in uscita dal processo fisico, sono fornite da appositi dispositivi formati da un componente detto sensore, il quale trasforma la variabile da misurare nel tipo di grandezza che si adotta per la misura, e da un componente detto trasduttore, il quale accetta un’informazione sotto forma di variabile fisica e la converte in una grandezza di natura tipicamente elettrica, adatta ad essere trasmessa. Molto spesso sensore e trasduttore coincidono nello stesso elemento. Pag. 6 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Le informazioni in entrata al processo fisico, sono utilizzate dagli attuatori per alterare il valore delle variabili di controllo per il processo. Di solito gli attuatori veri e propri sono preceduti dai pre-attuatori, i quali provvedono a realizzare le conversioni delle informazioni e le amplificazioni di potenza. I sensori, gli attuatori, e i pre-attuatori possono essere considerati come facenti parte del processo fisico e ne costituiscono l’interfaccia verso il sistema di controllo. Il sistema di controllo, quindi, riceve informazioni sullo stato del processo tramite i sensori, le elabora secondo algoritmi specificati e invia agli attuatori le informazioni relative alle azioni da mettere in atto per realizzare il controllo del processo fisico. A tale scopo esso riceve anche informazioni da una o più unità esterne, le quali possono essere degli operatori o altri sistemi di controllo gerarchicamente superiori; inoltre è in grado di fornire a queste entità esterne informazioni sul suo stato e su quello del processo controllato. Sistemi di controllo a catena aperta e a catena chiusa Il controllo è l’insieme delle azioni atte a far variare nella maniera voluta una certa grandezza fisica. Il controllo di una grandezza fisica può avvenire in catena aperta o in catena chiusa. Nel primo caso si hanno i sistemi di controllo a catena aperta che possono essere schematizzati come in figura 1, dove un generatore del segnale di comando (A) fornisce il segnale di riferimento (o di comando) all’organo attuatore (B) che provvede a sua volta a pilotare opportunamente il processo controllato (C). Figura 1. Sistemi di controllo a catena aperta Con il metodo ora descritto si può raggiungere il valore desiderato della grandezza da controllare u(t) agendo sul segnale di riferimento e(t). Se però, adesso, si generano dei disturbi che provocano la variazione della grandezza controllata l’unico modo per riportarla sui valori desiderati è quello di agire manualmente sul segnale di riferimento (cioè in maniera non automatica, generalmente con l’intervento di un operatore esterno), oppure compensando direttamente il disturbo. Un approccio alternativo utilizza un sistema di controllo a catena chiusa dove è presente una linea di reazione che la grandezza controllata in ingresso. Facendo Pag. 7 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ riferimento alla figura 2 si nota che la grandezza controllata u(t) viene confrontata con il segnale di Figura 2. Sistemi di controllo a catena chiusa riferimento e(t) dando origine ad un segnale differenza d(t) che viene utilizzato per agire sulla grandezza da controllare u(t); quando interviene un qualsiasi disturbo che provoca una variazione della grandezza da controllare, si origina il segnale differenza d(t) in modo tale da compensare in gran parte l’effetto del disturbo. Poiché ciò avviene in forma automatica si parla di controllo automatico. Controlli automatici di tipo numerico Un sistema di controllo è detto digitale quando per la sua realizzazione si impiegano componenti digitali. I sistemi di controllo digitale hanno assunto nel tempo un’importanza sempre maggiore e la tendenza attuale è quella di utilizzarli, ove sia possibile, anche nel caso in cui i processi da controllare siano analogici. Le ragioni principali di questa scelta sono da ricercarsi nella minor complessità circuitale, nella più agevole manutenzione e nella possibilità di apportare modifiche al controllo senza stravolgerne la struttura. Inoltre le tecniche digitali di trasmissione del segnale consentono un’elevata immunità al rumore e costi contenuti. Tuttavia alcuni dispositivi analogici, quali trasduttori, attuatori e amplificatori di potenza, non possono essere sostituiti da analoghi componenti digitali. Pertanto in un sistema di controllo digitale sarà necessario prevedere l’impiego di appositi convertitori analogico/digitale che convertono i dati analogici, relativi al processo da controllare, in segnali digitali manipolabili dall’elaboratore e analogamente convertitori digitali/analogici che svolgano la funzione inversa, ovvero convertano i segnali digitali emessi dall’elaboratore in segnali analogici che agiscano direttamente o indirettamente sul processo. Pag. 8 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Sotto l’aspetto funzionale la differenza fondamentale tra i sistemi di controllo digitale e quelli analogici è che il nodo di confronto è realizzato da dispositivi di natura digitale che possono essere rappresentati dal più semplice componente tipo, ad esempio, il comparatore digitale fino al più elevato rappresentato dall’elaboratore. Figura 3. Sistemi di controllo a catena chiusa In particolare l’elaboratore può ancora essere utilizzato per implementare gli algoritmi che definiscono i tipi di regolatore descritti per il controllo analogico, quali, ad esempio, le regolazioni ON-OFF, proporzionale, integrativa, derivativa ed eventualmente le loro combinazioni. Inoltre può essere sviluppato un software apposito che consente di risolvere agevolmente i problemi che si presentano quando esiste un notevole livello di interazione tra le varie parti del processo e quando il legame tra le variabili del processo non è lineare. Caratteristiche di un controllore L’elemento fondamentale di un sistema di controllo è il controllore. Questo dispositivo è in grado di ricevere segnali in ingresso provenienti dal processo fisico, di elaborare internamente tali informazioni e di fornire in uscita dei segnali elettrici destinati agli attuatori. Questi ultimi, di conseguenza, potranno modificare il processo fisico secondo le modalità scelta dal progettista. I controllori si possono dividere in tre categorie: monolitici, con architettura a bus, personal computer. Monolitici: prendono il nome di microcontrollori e sono dispositivi che inglobano tutti gli elementi necessari per realizzare le funzioni di controllo in un unico chip. Hanno ingressi/uscite analogiche o digitali (in numero limitato), capacità (limitata) di memorizzare i dati in modo volatile o permanente e non hanno un sistema operativo, ma è l’utente che, nello scrivere i programmi, si deve occupare della corretta gestione delle risorse. Pag. 9 Sono generalmente presenti negli UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ elettrodomestici, negli apparecchi telefonici, ecc…, ed in generale dove non è necessaria una elevata potenza di elaborazione. Controllori con architettura a bus: sono pensati per quelle situazioni in cui sono necessarie una notevole capacità di elaborazione, un elevato numero di ingressi/uscite, una sofisticata interfaccia utente e la possibilità di comunicare attraverso reti informatiche. Gli elementi di questi controllori sono tra loro collegati attraverso uno o più bus (insieme di conduttori aventi caratteristiche ben definite) quali: VME, EISA, ecc… Una simile configurazione è espandibile a piacimento con il semplice collegamento al bus di opportuni moduli di espansione (I/O, memorie, contatori, ecc…). Personal computer: è il calcolatore “general purpose” che offre notevoli vantaggi quali: prezzo relativamente basso, bassa professionalità per il suo utilizzo, semplificazione della manutenzione, ecc… Lo svantaggio principale è che il Personal computer ha una limitata interfaccia di processo (pochi ingressi/uscite) e, soprattutto, non è robusto, cioè non adatto in ambienti ostili come quelli industriali. L’utilizzo delle reti informatiche ha di fatto ridimensionato l’ultimo svantaggio; infatti il PC può controllare i vari processi pur rimanendo a debita distanza, in un ambiente meno ostile. Pag. 10 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ PARTE SECONDA Il controllore a logica programmabile PLC Pag. 11 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Programmable logic controller Il controllore a logica programmabile, che da questo punto in avanti chiameremo con l’acronimo PLC, è il più diffuso dispositivo di controllo per l’automazione industriale. Grazie alla sua architettura a bus, il PLC, è un’apparecchiatura talmente versatile che collegando più moduli di espansione (interfacce) ad una unità base, si possono ottenere migliaia di punti di ingresso o di uscita sia analogici, sia digitali. I costruttori di questi dispositivi, inoltre, da sempre impegnati nell’ampliamento del mercato di riferimento, progettano e realizzano moduli di espansione dedicati al controllo di particolari sistemi, quali: il controllo di motori asincroni trifasi, il controllo di motori passo-passo, il controllo di livello e di temperatura, solo per citarne alcuni. Il PLC è a tutti gli effetti un calcolatore composto da componenti elettronici e memorie destinate a contenere sia dati sia programmi e in grado di leggere ed eseguire le istruzioni dei programmi stessi. In particolare però, si tratta di un calcolatore concepito per l’installazione in ambiente industriale, dove sono presenti gravose variazioni di temperatura, umidità, vibrazioni, disturbi elettrici, ecc. Questa peculiarità attribuisce al controllore a logica programmabile la caratteristica di robustezza. E’ dotato di sistemi operativi proprietari real-time multi-tasking molto efficienti. Grazie a questo elaboratore è possibile realizzare una notevole quantità di sistemi di controllo di tipo digitale anche quando le grandezze da controllare sono analogiche. Considerazioni di natura storica Fino agli anni ’70 i sistemi di controllo dei processi e movimentazioni industriali erano risolti utilizzando circuiti in logica elettromeccanica, come relè e temporizzatori, contatori, ecc... Questi sistemi erano scarsamente flessibili in quanto qualsiasi variazione della sequenza logica richiedeva modifiche del cablaggio, cioè quella parte fisica degli elementi facenti parte dell’automatismo; in più non avevano una elevata velocità di elaborazione dei segnali ed erano molto costosi. Intorno agli anni ’70 con l’avvento dei microprocessori si iniziò a sostituire i vecchi sistemi di controllo dei processi industriali, Pag. 12 basati su elementi a logica UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ cablata, con i controllori a logica programmabile detti comunemente PLC. Questi nuovi dispositivi avevano una maggiore flessibilità unita a una grande semplicità di utilizzo, permettendo la variazione della logica di controllo semplicemente modificando via software il programma relativo (eventualmente sul luogo di funzionamento). Erano di concezione modulare ed avevano una facile manutenzione. Inoltre, erano abbastanza robusti, occupavano meno spazio rispetto ai sistemi utilizzati fino ad allora, ed erano competitivi nei costi. Come abbiamo già detto, attualmente un PLC di alta classe è basato su un sistema multiprocessore, integra la possibilità di connessione in rete informatica ed è capace di eseguire funzioni molto complesse. E’, in sostanza, basato sulle stesse tecnologie di un calcolatore convenzionale “general purpose”, ma è adatto al suo utilizzo principale: il controllo dei processi industriali. Configurazione minima di un PLC La configurazione minima di un PLC è composta dai seguenti cinque elementi fondamentali: l’armadio, il modulo processore, i moduli di ingresso e di uscita, il modulo alimentatore, il terminale di programmazione. L’armadio, o rack, contiene tutti gli altri moduli di un sistema basato su PLC: dall’unità base (CPU), ai moduli I/O e via via fino all’alimentatore. Il modulo processore è costituito da una scheda a microprocessore con architettura simile a quella dei calcolatori general pur pose. Esegue e controlla tutte le operazioni svolte all’interno del sistema. I moduli ingresso/uscita sono le interfacce attraverso cui l’elettronica del PLC si collega con il mondo esterno. Il modulo alimentatore alimenta l’intero rack in cui è ospitato il PLC ed eventualmente le interfacce ad esso collegate. Il terminale di programmazione era in origine una tastiera alfanumerica con cui si inseriva in memoria il programma utente. Attualmente il terminale di programmazione è un personal computer nel quale è caricato il software per la gestione dell’interfaccia utente e della programmazione vera e propria. Il modulo processore E’ il vero e proprio cuore del PLC ed è costituito da una scheda con uno o più microprocessori con un’architettura simile a quella dei calcolatori tradizionali. Il Pag. 13 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ microprocessore esegue i programmi del sistema operativo proprietario e quelli dell’utente, prelevando le istruzioni da eseguire dalla memoria volatile o da quella permanente. Il funzionamento tipico è quello ciclico, come rappresentato in figura 4. Figura 4. Ciclo tipico di funzionamento di un PLC Come si può vedere dalla figura 4, il PLC esegue la lettura degli ingressi ( e la scrittura nelle uscite) una sola volta in ogni ciclo. Ciò comporta il fatto che se il segnale in ingresso cambia stato durante l’esecuzione del ciclo, la variazione non viene rilevata. Gli attuali PLC però, prevedono dei modi di funzionamento che permettono di accedere direttamente, ed in qualsiasi momento, ai moduli di ingesso e di uscita. Inoltre, i PLC, offrono la possibilità di gestire le interruzioni temporizzate (per realizzare, per esempio, algoritmi di controllo numerico) o collegate allo stato di uno dei segnali di ingresso. Per caratterizzare la velocità di esecuzione dei programmi applicativi da parte di un PLC, si definiscono i seguenti tempi: tempo di scansione e tempo di risposta. Il primo rappresenta il tempo che intercorre tra due attivazioni successive della stessa porzione del programma applicativo (comprende anche il tempo per l’aggiornamento degli ingressi e delle uscite). Il tempo di risposta invece è il massimo intervallo di tempo che intercorre tra la rilevazione di un evento e l’esecuzione dell’azione della risposta programmata (comprende anche i ritardi introdotti dai moduli di ingresso/uscita). Pag. 14 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Il sistema operativo è composto da un insieme di programmi di supervisione memorizzati in una memoria permanente, e dedicati al controllo delle attività del dispositivo, all’elaborazione dei programmi utente, alla comunicazione, alla diagnostica interna e ad altre funzioni come, ad esempio, il controllo della presenza della tensione di alimentazione o della tensione della batteria tampone. Di conseguenza il sistema operativo potrà indicare degli indicatori di stato (memoria OK, batteria OK, ecc…) Il PLC può lavorare in diverse modalità operative necessarie per la fase di programmazione, la fase di test del programma utente introdotto e quella di esecuzione del programma stesso in cui sono prese in considerazione le variazioni dello stato degli ingressi: la modalità di programmazione, nella quale il codice sviluppato dall’utente viene caricato nella memoria del PLC: la modalità di validazione , nella quale i programmi utente vengono eseguiti, senza che le uscite vengano aggiornate, per verificare la correttezza del codice sviluppato; la modalità di esecuzione, nella quale i programmi utente vengono completamente eseguiti, aggiornando conseguentemente ingressi ed uscite. La memoria di un PLC è solitamente suddivisa in aree distinte come riportato in figura 6. Figura 6. Organizzazione tipica della memoria di un PLC - L’area del S.O., contiene i programmi del S.O. che devono essere memorizzati permanentemente; - L’area di lavoro del S.O., è utilizzata per la memorizzazione dei dati intermedi da parte dei programmi del S.O.; Pag. 15 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ - L’area ingressi/uscite, necessaria per la memorizzazione degli stati degli ingressi e delle uscite; - L’area programmi utente, utilizzata per la memorizzazione dei programmi utente; - L’area dati utente, indispensabile per la memorizzazione dei dati utilizzabili dai programmi utenti. Le aree di memoria RAM sono generalmente alimentate da una batteria tampone per evitare la perdita di informazione nel caso venga a mancare la tensione di alimentazione. Riguardo ancora al modulo processore si vuole segnalare l’esistenza di moduli particolari, detti di “sicurezza”, progettati per essere impiegati in applicazioni che richiedono gradi di sicurezza molto elevati. I moduli di ingresso/uscita I moduli di ingresso e di uscita sono la parte del PLC che comunica con il processo fisico; rilevano gli eventi o i dati provenienti dai sensori e comandano le azioni degli attuatori ad essi collegati. Da un punto di vista esclusivamente elettrico essi devono adattare i livelli di tensione con cui opera il PLC, ai livelli di tensione del mondo esterno. Questo permette generalmente di collegare direttamente al PLC i vari dispositivi presenti nel campo, senza bisogno di ulteriori condizionamenti. Gli ingressi digitali sono di solito protetti attraverso fotoaccoppiatori, per evitare che eventuali sbalzi di tensione provenienti dall’esterno danneggino l’elettronica del dispositivo. I moduli di ingresso digitali sono anche forniti di circuiti di filtraggio contro il rumore e i rimbalzi. Le uscite digitali sono invece protette da fusibili. Quelle in corrente continua sono realizzate con dei transistor; quelle in corrente alternata con dei TRIAC o SCR; mentre quelle (le più diffuse) in corrente alternata e continua, con dei relè. I moduli di ingresso e di uscita analogici sono in grado di acquisire e di trasmettere i segnali analogici. I moduli di ingresso, con degli appositi convertitori A/D, convertono i segnali analogici in digitali, fino a renderli disponibili al PLC per le successive elaborazioni. I moduli di uscita, al contrario, attraverso un convertitore D/A, rendono disponibile sulle apposite uscite segnali analogici. Pag. 16 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Per la loro diffusione si segnalano anche i moduli di ingresso progettati per l’utilizzo diretto con i sensori di temperatura. Esistono inoltre una certa quantità di moduli che realizzano delle funzionalità speciali. Tra di essi si segnalano: i moduli PID per le regolazione Proporzionale-Integrale-Derivativa; i moduli servo che realizzano direttamente ed in maniera autonoma, l’asservimento di motori di diversi tipi; moduli encoder che semplificano l’interfacciamento con encoder assoluti e incrementali; moduli interfaccia operatore, che semplificano l’interazione tra l’uomo e la macchina; moduli per la connessione in rete; moduli I/O remoti; moduli coprocessore ed altri. Il modulo alimentatore L’alimentatore fornisce l’alimentazione elettrica stabilizzata a tutti i moduli del sistema PLC. Questo componente deve essere dimensionato in base alla potenza assorbita dall’insieme dei vari moduli. Esso, inoltre, deve fornire la tensione di alimentazione costante anche in presenza di microinterruzioni o abbassamenti/innalzamenti della fornitura elettrica. Gli alimentatori hanno degli indicatori luminosi che mostrano il loro stato (attivo, corto circuito, ecc…). Alcuni di essi possiedono delle funzioni che permettono la comunicazione con il PLC; per esempio, quando la tensione di alimentazione scende sotto certi valori, l’alimentatore può avvisare il PLC, che a sua volta, lancia dei programmi per il salvataggio dello stato attuale del sistema e/o dei dati presenti in memoria RAM. L’armadio E’ il contenitore in cui vengono alloggiati i vari moduli di cui abbiamo parlato in precedenza. L’armadio oltre ad essere il supporto meccanico dei vari moduli, ne assicura anche la loro connessione dal punto di vista elettrico, che avviene secondo una architettura a bus (insieme di collegamenti elettrici). Il terminale di programmazione Oggi si utilizzano veri e propri sistemi di sviluppo basati su personal computer i quali facilitano molto la programmazione e la configurazione del PLC, che possono Pag. 17 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ essere effettuati anche off-line. Sono connessi al PLC o direttamente o attraverso una rete informatica. Sono inoltre previste funzioni per il monitoraggio dell’esecuzione del programma in esecuzione, eseguibili anche durante il normale funzionamento del dispositivo. Pag. 18 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ PARTE TERZA La programmazione dei PLC Pag. 19 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Linguaggi di programmazione Tra i più diffusi linguaggi di programmazione adottati per tradurre gli algoritmi di controllo dei processi industriali, si possono ricordare i seguenti linguaggi grafici: - diagramma sequenziale funzionale (Sequential Functional Chart – SFC); - linguaggio a contatti Ladder Riguardo ai linguaggi testuali si sottolinea quello chiamato “lista delle istruzioni”. Il Grafcet. (Sequential Functional Chart – SFC) Il grafcet è un sistema grafico che permette la modellizzazione del processo che si vuole comandare, controllare o automatizzare. Fu adottato nel 1988 dal Comitato Elettrotecnico Internazionale, nello standard internazionale 848. Il Grafcet costituiva una semplificazione delle Reti di Petri, uno strumento grafico più generale per la rappresentazione e l’analisi dei sistemi ad eventi discreti. A partire dalle specifiche richieste, che generalmente sono descritte in maniera informale attraverso una descrizione verbale, con il diagramma grafcet è possibile formulare una descrizione del comportamento dell’automatismo in modo rigoroso eliminando eventuali conflitti, incoerenze, punti morti (deadlock), nell’ambito del funzionamento. Il grafcet si compone di due livelli ognuno dei quali ha lo scopo di descrivere con diversa precisione il sistema di controllo che si vuole realizzare: • il livello funzionale in cui sono descritte le operazioni da svolgere e gli eventi che devono succedersi per risolvere il problema desiderato, senza tener conto dell’aspetto tecnologico cioè di che tipo sono gli attuatori, i pulsanti o i sensori da utilizzare; • il livello operazionale in cui le operazioni e gli eventi sono descritti con riferimento ai componenti fisici che si utilizzano (contattori, pulsanti, ecc..). In un grafcet il funzionamento dell’automatismo è rappresentato graficamente da un insieme di elementi quali, ad esempio, quelli indicati in figura 7. Pag. 20 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Figura 7. Passi, transizioni, archi orientati - PASSI a cui sono associate una o più azioni da compiere ogni volta che il passo è attivo. Le azioni possono essere esterne (uscite – ordini emessi verso la parte operativa es. attuatori) o interne (lancio di temporizzatori, conteggi, ecc…); - TRANSIZIONI a cui sono associate delle condizioni che rappresentano le informazioni provenienti dal processo e che permettono l’evoluzione del sistema. Una transizione indica la possibilità di evoluzione tra un passo e il successivo. Questa evoluzione si compie mediante il superamento della transizione. Una transizione può essere abilitata o non abilitata; essa è abilitata se i passi che la precedono (ad essa collegati) sono attivi. Se la condizione logica associata alla transizione è verificata e se i passi ad essa collegati sono attivi, allora la transizione può scattare e il sistema può evolvere disabilitando il passo precedente e abilitando il passo successivo. Figura 8. Stati (o passi) attivi e transizioni abilitate Pag. 21 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ In altri termini, lo scatto di una transizione disabilita l’azione associata al passo precedente e abilita l’azione associata al passo successivo. Figura 9. Azioni associate agli stati (o passi) Generalmente le condizioni sono le informazioni relative ai comandi da parte dell’utente o informazioni che i vari sensori generano in relazione allo stato del sistema; - ARCHI ORIENTATI indicano come i vari passi sono tra loro collegati fino a formare l’intero sistema. Le strutture classiche presenti nel grafcet sono: • Scelta: un passo è seguito da più transizioni, con condizioni di scelta mutuamente esclusive, realizzate eventualmente imponendo priorità tra le transizioni (figura 10.a). • Convergenza: più attività terminano nello stesso passo attraverso transizioni diverse (figura 10.b). Figura 10. a) Scelta, b) Convergenza • Parallelismo o concorrenza: una transizione è seguita da più fasi (figura 11.a). • Sincronizzazione: più passi precedono una stessa transizione, che viene superata solo quando tutti i passi ad essa collegati sono attivi (figura 11.b). Pag. 22 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Figura 11. a) Parallelismo o concorrenza, b) Sincronizzazione Linguaggio a contatti Ladder Il linguaggio a contatti, meglio conosciuto con il nome inglese di Ladder Diagram (la cui traduzione letterale è “diagramma a scala”, dalla forma cha assume il programma) è quello maggiormente usato in campo internazionale per la programmazione dei PLC. Si compone di una serie molto limitata di segni grafici e risulta estremamente congeniale ai programmatori con conoscenza logica elettromeccanica, perché richiama in un certo senso lo schema elettrico funzionale. Figura 12. Esempio di schema ladder Lo schema ladder strutturalmente è composto da due linee verticali e da linee orizzontali sulle quali vengono disegnati gli elementi costituenti il sistema da gestire (figura 12). Si distinguono: - l’alimentazione (riga verticale sinistra), cui fanno capo tutti gli elementi di input; - la massa comune (riga verticale destra che spesso viene omessa), cui fanno capo tutte le variabili di uscita (output); Pag. 23 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ - la zona di test : in questa parte dello schema vengono disegnati i vari contatti di input in serie o in parallelo, seguendo la logica di evoluzione del processo: - la zona di output destinata alle variabili di uscita abilitate o meno dalla zona precedente. In una rete in linguaggio a contatti, il flusso di energia può andare sempre e solo da sinistra verso destra, senza possibilità di inversione. Inoltre, l’esecuzione delle istruzioni avviene dall’alto verso il basso e da sinistra verso destra. Nell’esempio di figura 12 il contatto n.c. sulla prima linea permette il passaggio del flusso di energia che attiva l’uscita (bobina) collegata nella medesima linea. Nella terza linea invece si può notare che il flusso di energia è interrotto da un contatto n.a. per cui non si avrà l’attivazione dell’uscita connessa su quella linea. Il successo dello schema a contatti (ladder) Le ragioni sono da ricercarsi nel fatto che prima dell’avvento dei PLC i sistemi di controllo o più in generale le automazioni erano realizzate in logica cablata il cui progetto è formalizzato attraverso lo schema funzionale. La figura 13 mostra un semplice comando per un relè monostabile K con pulsanti di set (SB1), reset (SB2) e autoritenuta K, secondo gli schemi funzionale e a contatti. L’autoritenuta è quella configurazione che permette ad un contattore di rimanere abilitato (attivo, eccitato), pur in assenza di ulteriori impulsi di comando. Dalla figura 13 (c) si può notare che una volta premuto, anche per un solo istante, il contatto SB1, il contattore K rimane sempre attivo; questo è possibile perchè il suo contatto ausiliario K permette al flusso di corrente di scorrere da un estremo dell’alimentazione (linea orizzontale alta) fino al contattore K, che ha l’altro punto del circuito di comando collegato all’altro estremo dell’alimentazione (linea orizzontale bassa). Figura 13. Esempio di schema funzionale (a) e a contatti (b) Pag. 24 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Possiamo notare che lo schema a contatti è simile (almeno nei progetti più semplici) allo schema funzionale con la particolarità di essere sviluppato in orizzontale piuttosto che in verticale. Lista istruzioni E’ un linguaggio di tipo letterale denominato anche mnemonico, risulta molto potente, non utilizza segni grafici ed è generalmente utilizzato da programmatori esperti. Inoltre è un linguaggio di basso livello, di tipo assemblativo, composto da sequenze di istruzioni, ognuna su una riga diversa. Il set di istruzioni che contiene le abbreviazioni mnemoniche del linguaggio, dipende dal PLC; solitamente i PLC permettono di tradurre in automatico un tipo di linguaggio in un altro. Comune a tutti i PLC è la riga di istruzioni così caratterizzata: INDIRIZZO - ISTRUZIONE - OPERANDO Dove: - indirizzo è la locazione della memoria utente; - istruzione è il comando per il PLC (cioè che cosa deve eseguire); - operando è la conseguenza del comando (cioè su quale elemento hardware/software deve essere eseguito il comando stesso. In pratica il PLC viene istruito riga per riga sull’operazione che deve compiere. Con riferimento al PLC S7-200 della Siemens si fornisce un esempio (figura 14) di lista di istruzioni: Figura 14. Esempio di lista di istruzioni Nelle esperienze condotte nel seguito il programma scritto in lista di istruzioni non viene mostrato sia perché non è di immediata lettura come il ladder sia perché è un linguaggio più complesso destinato all’uso da parte di programmatori esperti. Passaggio da uno schema grafcet ad uno schema ladder Il passaggio da uno schema grafcet ad uno schema ladder è per molti versi un procedimento automatico. Naturalmente quando la struttura diviene complessa si Pag. 25 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ dovranno valutare volta per volta le modifiche da fare in deroga alla normale procedura di seguito riportata: ogni stato viene attivato dallo stato precedente e dalla condizione indicata nella transizione in ingresso; si autoritiene e viene disattivato dall’attivazione dello stato successivo. Per mostrare la procedura consideriamo l’esempio di figura 15. Figura 15. Esempio Lo stato zero è attivato dallo stato precedente (lo stato due) e dalla transizione in ingresso (evento pressione pulsante di stop); si autoritiene con un contatto che porta il suo nome (autoritenuta) e viene chiuso dallo stato successivo che è lo stato uno; tutto questo si traduce in ladder nel modo seguente (figura 16): Figura 16. Stato zero Proseguendo a tradurre il grafcet di figura 15, si ha che lo stato uno è attivato dallo stato precedente (lo stato zero) e dalla transizione in ingresso (evento interruttore generale attivo); si autoritiene con un contatto che porta il suo nome (autoritenuta) e viene chiuso dallo stato successivo che è lo stato due; tutto questo si traduce in ladder nel seguente modo (figura 17): Figura 17. Stato uno Pag. 26 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Per finire, lo stato due è attivato dallo stato precedente (lo stato uno) e dalla transizione in ingresso (evento pressione pulsante start); si autoritiene con un contatto che porta il suo nome (autoritenuta) e viene chiuso dallo stato successivo che è lo stato zero; tutto questo si traduce in ladder nel seguente modo (figura 18): Figura 18. Stato due Pag. 27 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ PARTE QUARTA Esempi di architetture di controllo Pag. 28 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Nelle esperienze che seguiranno si farà uso del PLC S7-200 della Siemens, nella versione CPU 226 DC/DC/DC: alimentazione a 24 V dc, ingressi a 24 V dc e uscite a 24 V dc. La scelta di un PLC piuttosto che un altro, nulla toglie alla generalità degli argomenti trattati. I PLC in commercio, infatti, offrono tutti le stesse funzioni di base, differenziandosi però per le funzioni aggiuntive che variano da costruttore a costruttore. La serie S7-200 è una linea di controllori programmabili di dimensioni ridotte in grado di controllare un’ampia varietà di applicazioni. La compattezza del design, i costi contenuti e l’esteso set di istruzioni ne fanno una soluzione ottimale per le piccole automazioni industriali. Per questo motivo può essere utilizzato con grande vantaggio anche per le esperienze didattiche. Inoltre il tool di programmazione in ambiente Windows garantisce la flessibilità necessaria per affrontare e risolvere i più svariati problemi di automazione. Alcune tra le principali caratteristiche del PLC sono riportate in appendice A e fanno riferimento sostanzialmente ai dati riportati nel seguente testo di riferimento: “Manuale di sistema – Sistema di automazione S7-200” SIEMENS edizione 05/2003 numero di ordinazione 6EST298-8FA23-8EH0. Pag. 29 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Elementi della CPU 226 utilizzati nelle esperienze seguenti Merker (memorie interne) I merker sono delle memorie interne utilizzate come relè di controllo per memorizzare lo stato intermedio di un’operazione o altre informazioni di controllo. Figura 19. Esempio di utilizzo di un merker Nella figura 19 si osserva che l’attivazione dell’ingresso I0.0 attiva il merker M0.0 (riga uno); il relativo contatto abilita l’uscita Q0.0 (riga 2). I merker non vengono visualizzati all’esterno perché fisicamente rappresentano un’area della memoria interna. Temporizzatori I temporizzatori sono elementi che permettono di far evolvere il sistema in istanti di tempo ben precisi. La CPU 226 ne contiene 256 suddivisi in tre categorie: temporizzatori di ritardo all’inserzione TON, temporizzatori con ritardo alla disinserzione e temporizzatori con memoria. La figura 20 mostra un temporizzatore T32 con ritardo all’inserzione impostato ad un valore pari a 10ms. Quando viene premuto l’ingresso I0.0 si attiva il temporizzatore che inizia a contare il tempo fino a quando non arriva al valore preimpostato; a questo punto il temporizzatore attiva un contatto (utilizzabile in una qualsiasi parte del programma) che porta il suo stesso nome che nell’esempio è utilizzato per attivar l’uscita Q0.0. Figura 20. Esempio di utilizzo di un temporizzatore con ritardo all’inserzione Pag. 30 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Contatori I contatori servono invece per contare degli eventi. La CPU ne contiene 256 che si dividono in: contatori in avanti, contatori indietro e contatori avanti/indietro. Figura 21. Esempio di utilizzo di un contatore in avanti. Nell’esempio della figura 21 il contatore C0 è impostato ad un valore di conteggio uguale a 4 (PV = +4). Ogni volta che il contatto I0.0 è attivo C0 incrementa il suo valore attuale; arrivato a quattro attiva il suo contatto interno che ha il suo stesso nome. In questo caso il contatto C0 è utilizzato per attivare l’uscita Q0.0. Con I0.1 si pone il valore attuale uguale a zero (reset). Ingressi Gli ingressi del PLC S7-200 con CPU 226 sono sensibili a una tensione pari a 24 V DC. Seguendo lo schema elettrico in figura 22 si vede che la chiusura di un interruttore crea una caduta di potenziale pari a 24 V DC tra il punto M1 (massa dei segnali di ingresso) e il relativo ingresso; si genera così una corrente che viene utilizzata per mandare in conduzione il relativo MOS; questa condizione viene interpretata dal PLC come ingresso attivo Figura 22. Schema elettrico degli ingressi del PLC Pag. 31 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ In generale i PLC in commercio possono accettare diverse tensioni in ingresso sia continue che alternate. Uscite Nella CPU 226 anche le uscite sono a 24 V DC. Osservando la figura 23 si può notare che quando viene attivata una uscita (mediante la conduzione del relativo MOS), a seguito dell’elaborazione del programma utente caricato nella memoria del PLC, ai capi dell’utilizzatore cade una tensione pari a 24 V DC. Figura 23. Schema elettrico delle uscite del PLC In generale i PLC in commercio possono avere diversi tipi di uscite; la più comune è senz’altro l’uscita a relè (figura 24) che permette il collegamento diretto di diversi attuatori con tensioni di alimentazione in alternata o in continua. Figura 24. Schema elettrico delle uscite a relè di un PLC Modo di procedere comune a tutte le esperienze condotte In primo luogo, vengono descritte le esperienze facendo riferimento in particolare al funzionamento desiderato (specifiche del problema) e alla descrizione dei componenti utilizzati. Pag. 32 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Viene quindi prodotto uno schema elettrico in cui sono visibili tutti i collegamenti elettrici necessari allo scopo e viene sviluppato il programma da inserire nella memoria del PLC necessario allo scopo. Ciò detto, il tutto si traduce nella stesura di una serie di tavole di lavoro che vengono commentate in dettaglio e che sono la base di partenza per realizzare in pratica le varie esperienze. La realizzazione pratica è stata effettuata presso il laboratorio “Sistemi 5” della specializzazione di Elettrotecnica ed automazione dell’I.T.I.S. “V.Volterra” di Torrette di Ancona. Pag. 33 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Esperienza n° 1 Pag. 34 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Descrizione Il primo problema rappresenta un sistema a catena aperta in cui un operatore comanda l’azionamento di un motore asincrono trifase scegliendone il senso di rotazione orario od antiorario. Per ottenere l’inversione del senso di rotazione di un motore asincrono trifase è sufficiente invertire due delle tre fasi di alimentazione. La documentazione di riferimento è composta da tre tavole che sono di seguito commentate. Funzionamento: Il pulsante “orario” nell'ingresso I0.0 consente di avviare il motore in senso orario, il pulsante “antiorario” nell'ingresso I0.1 consente di avviarlo in senso antiorario. Il pulsante STOP nell'ingresso I0.2 ferma la rotazione del motore. Il senso di rotazione può essere invertito solo dopo che è stato premuto il pulsante STOP e dopo che siano trascorsi 5 sec. Ciò consente al motore di frenare e riavviarsi nella direzione opposta. Se vengono attivati contemporaneamente entrambi i pulsanti I0.0 e I0., il motore si arresta senza riavviarsi. Tavola N°1 La prima tavola mostra i collegamenti di potenza che sono necessari allo scopo. L’alimentazione trifase viene portata al motore attraverso i contatti di potenza dei due contattori Ko oppure Ka (il contattore è un apparecchio usato per chiudere o aprire un circuito mediante un comando elettromagnetico, meccanico o pneumatico; il suo nome commerciale è teleruttore); Figura 25. Contattore: contatti di potenza e circuito di comando Pag. 35 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ attivando il contattore Ko con un impulso sul circuito di comando, il motore inizia a ruotare in senso orario, mentre attivando Ka si ottiene l’inversione di due delle tre fasi dell’ alimentazione per cui la rotazione diviene antioraria. Disattivando entrambi si toglie l’alimentazione al motore facendolo fermare. Sempre nella prima tavola si possono vedere anche i componenti in ingresso e in uscita al PLC. I primi (quelli in ingresso – figura 26) sono naturalmente i pulsanti (o a seconda dei casi i sensori) di cui l’operatore si serve per selezionare il funzionamento desiderato; Figura 26. Sezione degli ingressi i secondi (quelli in uscita - 27) sono i collegamenti che permettono di attivare o disattivare gli attautori che agiscono fisicamente sul processo secondo un sequenza che dipende dal programma utente in esecuzione nel PLC (nel nostro caso sono i contattori Ko e Ka). Figura 27. Sezione delle uscite Tavola n°2 In questa tavola si possono vedere gli schemi dei due livelli grafcet. Pag. 36 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Il primo stato ad essere abilitato al momento dell’accensione dell’alimentazione del PLC, è lo zero dove non viene eseguita nessuna operazione (wait); in questo modo sono abilitate le due transizioni t1 e t2 che sono mutamente esclusive, infatti il motore può girare in un verso o nell’altro ma mai contemporaneamente nei due versi; premendo il solo pulsante “antiorario” (evento associato alla transizione t1) si abilita lo stato uno in cui si genera l’impulso in uscita dal PLC per attivare il contattore Ko; premendo invece il solo pulsante “orario” (evento associato alla transizione t2) si abilita lo stato due in cui si genera l’impulso in uscita dal PLC per attivare il contattore Ka. In entrambi i casi si ha che il motore si porta in rotazione. Dopo aver raggiunto indifferentemente lo stato uno o lo stato due, si ha che una delle due transizioni t3 e t4 sono abilitate, per cui premendo il pulsante di “stop” (evento associato sia alla transizione t3 sia alla transizione t4) si disattiva uno degli stati precedenti (uno o due) in modo che il motore si fermi, e si attiva lo stato tre che provvede ad abilitare il temporizzatore T37 a contare il tempo pari a 5 sec. La transizione t5 è abilitata e potrà scattare solo quando si verifica l’evento ad essa associato è cioè dopo che il temporizzatore avrà contato per un tempo pari a 5 sec. Con lo scatto della transizione t5 si abilita di nuovo lo stato zero e il procedimento può essere ripetuto un’altra volta. Tavola n° 3 Nella tavola 3 è presente anche la tabella di assegnazione degli elementi in cui sono riportati: - i nomi dei pulsanti con il relativo ingresso al PLC (in altre parole si indica il quale ingresso del PLC il pulsante è collegato), es: il pulsante orario è collegato fisicamente all’ingresso I0.0; - i nomi degli attuatori con la relativa uscita, es: il contattore Ko è collegato all’uscita Q0.1 del PLC; - tutti gli altri elementi che sono stati utilizzati per la stesura del programma: memorie interne (merker), temporizzatori, e quant’altro utilizzato.Ciascun PLC possiede un numero di identificazione dei propri elementi hardware e software, descritto nel manuale d’uso; è necessario abbinare tale numerazione agli elementi funzionali individuati per il corretto funzionamento del sistema di controllo (pulsanti, sensori, ecc…). L’assegnazione comprende anche elementi non hardware temporizzatori, contatori, memorie interne, shift register, ecc…). Pag. 37 quali: UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ La tabella è estremamente utile al programmatore per avere sempre riferimenti software congruenti con le impostazioni hardware. Tavola n° 4 L’ultima tavola riporta lo schema a contatti (ladder) relativo al diagramma grafcet riportato nella tavola 2. Le righe 1,2 e 3 rappresentano i passi del programma necessari all’abilitazione del primo stato (stato zero): come si può vedere al momento dell’accensione del PLC viene abilitato lo stato zero (e solo quello) perché il merker (memoria interna o contatto interno) M10.0 è normalmente chiuso e permette il passaggio del flusso di corrente che abilita il merker M0.0. Si noti che i merker possono essere associati sia ai contatti sia alle bobine (uscite interne che non vengono riportate sulle uscite fisiche del PLC). A questo punto si ha la chiusura del contatto M0.0 della prima riga che abilita la bobina M10.0; questa si autoritiene (riga2) e nello stesso tempo apre il contatto M10.0 che da chiuso diventa aperto. La particolarità di questo modo di inizializzare lo stato zero (che non è l’unico), è che la procedura fin qui descritta verrà eseguita una ed una sola volta in tutto il corso dell’elaborazione del programma. Le righe 1,2 e 3 dopo la prima esecuzione non influiscono più sull’evoluzione del programma. Le righe da 4 a 14 sono il corpo del programma ottenuto applicando le regole definite nel paragrafo relativo alla traduzione dallo schema grafcet allo schema a contatti indicate a pag. 14. Gli stati da zero a tre sono rappresentati dalle bobine interne (merker), rispettivamente da M0.0 a M0.3. La riga 13 mostra il temporizzatore di tipo TON (ritardato all’inserzione). Dalle caratteristiche relative ai temporizzatori, che non sono state inserite nel presente lavoro ma possono essere trovate sul manuale del PLC, si evince che il T37 ha una risoluzione di 100 ms; per cui impostando il temporizzatore a 50 si ottiene un ritardo di 5 sec, infatti 50 × 100ms = 5 sec (1.1). Le righe 15 e 16 formano la sezione delle uscite. In questa parte del programma si effettua l’associazione tra gli stati del grafcet e le uscite fisiche del PLC. Gli stati in cui si effettuano delle azioni sono chiaramente gli stati uno e due, e sono rappresentati come abbiamo detto dalle bobine interne M0.1 e M0.2. La riga 15 associa a M0.1 l’uscita fisica Q0.0, infatti quando il programma si trova nello stato uno (M0.1) il PLC deve dare l’impulso di comando al contattore Ka che permette la Pag. 38 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ rotazione del motore in senso antiorario. La riga 16 invece, associa a M0.2 l’uscita fisica del PLC Q0.1, infatti quando il programma si trova nello stato due (M0.2) il PLC deve dare l’impulso di comando al contattore Ko per la rotazione oraria del motore. Pag. 39 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 40 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 41 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 42 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 43 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Esperienza n° 2 Pag. 44 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Descrizione In questa seconda esperienza realizzeremo un automatismo per la frenatura di un motore asincrono trifase, che può essere rappresentato con un sistema a catena chiusa per il controllo di velocità o per meglio dire, di quel particolare valore di velocità che è lo zero giri/min. Tipi di frenatura: frenatura in controcorrente e frenatura in corrente continua La frenatura contro corrente consiste nell’invertire repentinamente due fasi d’alimentazione del motore fino all’istante in cui il motore è a 0 giri. Il sistema per rilevare che il motore è a 0 giri è dato da un dispositivo calettato meccanicamente sull’albero motore. Il dispositivo chiamato comunemente “dispositivo di frenatura alnico” dal nome del materiale magnetico da cui è costituito, contiene due contatti elettrici espandibili in concomitanza del senso di rotazione. Con opportuni collegamenti elettrici dei contatti è possibile interrompere l’alimentazione al motore quando è a 0 giri, evitando così che s’inverta il senso di rotazione. Con questo sistema si ottiene una frenatura rapida ma violenta con notevoli sollecitazioni meccaniche del motore. La frenatura in corrente continua consiste nell’inviare una corrente continua da 60-80V in due dei tre avvolgimenti del motore, dopo averne staccato l’alimentazione di potenza. La corrente continua deve avere un valore non superiore a 3-4 volte la corrente nominale di lavoro. Essa è ottenuta tramite un raddrizzatore monofase a onda intera. Il sistema di frenatura che adotteremo è quello in corrente continua perchè permette una frenatura più dolce e controllata. Funzionamento: il pulsante “marcia” nell'ingresso I0.0 consente di avviare il motore, il pulsante “arresto” nell'ingresso I0.1 consente di fermare il motore senza far intervenire la frenatura, mentre il pulsante di “frenatura” nell'ingresso I0.2 frena il motore fino a quando non si ferma. Il contatto del sensore (relè alnico) all’ingresso I0.3 permette di stabilire quando il motore è arrivato a zero giri/min (fermo) in modo tale da interrompere il flusso di corrente continua negli avvolgimenti del motore. Pag. 45 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Tavola n° 1 In questa prima tavola si vedono i collegamenti di potenza al motore e i collegamenti dei vari dispositivi al PLC. La prima cosa da notare è che la tensione continua necessaria per la frenatura del motore è ottenuta grazie ad un trasformatore monofase (primario = 380 V, secondario = 60 V) seguita da un ponte raddrizzatore a diodi; questa tensione continua potrà essere inserita su due fasi del motore attivando il contattore Kf. Il motore asincrono trifase è alimentato invece, da una tensione trifase a 380 V attraverso il contattore Km. Calettato sull’albero motore c’è il sensore di zero giri/min chiamato relè alnico. Questo dispositivo rende disponibile un contatto che è aperto quando il motore è fermo (figura 28.b) mentre è chiuso quando il motore è in rotazione (figura 28.a). Figura 28. Contatti del relè alnico Tavola n° 2 Partendo dallo stato zero che è abilitato all’atto dell’accensione del PLC, risulta attiva la prima transizione t1, che scatta quando si verifica l’evento ad essa associato cioè la pressione del pulsante “marcia” da parte di un operatore/addetto. Dopo lo scatto della t1 il sistema giunge nello stato uno in cui è abilitata l’uscita Q0.1 e di conseguenza è attivo il contattore Km per cui il motore entra in rotazione. A questo punto risultano abilitate le due transizioni t2 e t3: • se l’operatore decide di inserire la frenatura preme il pulsante “frenatura” (evento associato alla transizione t2) in modo tale da far passare il sistema nel nuovo stato due in cui si attiva l‘uscita Q0.0 alla quale è collegato il contattore Kf che permette l’inserimento della tensione continua per la frenatura. Ora la transizione abilitata è la t4 alla quale è associato l’evento apertura del contatto del sensore di zero giri/min (relè alnico) che non appena Pag. 46 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ si verifica riporta il sistema nello stato iniziale (lo stato zero) in cui il motore non è più in rotazione; • se l’operatore decide invece di fermare il motore senza far intervenire la procedura di frenatura, allora preme il pulsante “arresto” (evento associato alla transizione t3) portando il sistema nel nuovo stato tre: questo stato è inserito unicamente per risolvere un problema di traduzione dal grafcet al ladder che non vale la pena di prendere in considerazione in questa sede. Ma dallo stato tre si passa subito allo stato iniziale (stato zero) in quanto la transizione t5 è sempre verificata (nello schema questo fatto è indicato con il simbolo “= 1”). Il motore risulta non più in rotazione e l’operatore, se vuole può ripetere nuovamente tutte le operazioni viste fin ora. Tavola n° 3 Nella tavola 3 è presente la tabella di assegnazione degli elementi in cui sono riportati: - i nomi dei pulsanti e del sensore (relè alnico) con il relativo ingresso al PLC (in altre parole si indica il quale ingresso del PLC il pulsante è collegato), es: il pulsante “marcia” è collegato fisicamente all’ingresso I0.0; - i nomi degli attuatori con la relativa uscita, es: il contattore Kf è collegato all’uscita Q0.0 del PLC; - tutti gli altri elementi che sono stati utilizzati per la stesura del programma: memorie interne (merker), temporizzatori, e quant’altro utilizzato. Tavola n°4 Nella quarta tavola è disegnato il diagramma ladder relativo al diagramma grafcet riportato nella tavola 2 pronto per essere inserito nella memoria del PLC. Come per la precedente esperienza le righe 1,2 e 3 rappresentano i passi del programma necessari all’abilitazione del primo stato (stato zero): come si può vedere al momento dell’accensione del PLC viene abilitato lo stato zero (e solo quello) perché il merker (memoria interna o contatto interno) M10.0 è normalmente chiuso e permette il passaggio del flusso di corrente che abilita il merker M0.0. Si noti che i merker possono essere associati sia ai contatti sia alle bobine (uscite interne che non vengono riportate sulle uscite fisiche del PLC). A questo punto si ha la chiusura del contatto M0.0 della prima riga che abilita la bobina M10.0; questa si autoritiene (riga2) e nello stesso tempo apre il contatto M10.0 che da chiuso diventa aperto. La Pag. 47 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ particolarità di questo modo di inizializzare lo stato zero (che non è l’unico), è che la procedura fin qui descritta verrà eseguita una ed una sola volta in tutto il corso dell’elaborazione del programma. Le righe 1,2 e 3 dopo la prima esecuzione non producono più alcun effetto durante l’evoluzione del programma. Le righe da 4 a 13 sono il corpo del programma ottenuto applicando le regole definite nel paragrafo relativo alla traduzione dallo schema grafcet allo schema a contatti indicate a pag. 14. Gli stati da zero a tre sono rappresentati dalle bobine interne (merker), rispettivamente da M0.0 a M0.3. Le righe 14 e 15 formano la sezione delle uscite. In questa parte del programma si effettua l’associazione tra gli stati del grafcet e le uscite fisiche del PLC. Gli stati in cui si effettuano delle azioni sono chiaramente gli stati uno e due, e sono rappresentati come abbiamo detto dalle bobine interne M0.1 e M0.2. La riga 14 associa a M0.1 l’uscita fisica Q0.1, infatti quando il programma si trova nello stato uno (M0.1) il PLC deve dare l’impulso di comando al contattore Km che permette la rotazione del motore . La riga 15 invece, associa a M0.2 l’uscita fisica del PLC Q0.0, infatti quando il programma si trova nello stato 2 (M0.2) il PLC deve dare l’impulso di comando al contattore Kf per iniziare la procedura di frenatura in contro corrente. I due contatti normalmente chiusi M0.1 e M0.2 presenti in queste due ultime righe di codice del programma, servono unicamente per evitare che le due uscite vengano attivate contemporaneamente (mutuamente esclusive). Pag. 48 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 49 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 50 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 51 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 52 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Esperienza n° 3 Pag. 53 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Descrizione Con la terza esperienza realizzeremo un sistema di controllo di posizione per un motore passo-passo. Il sistema è un esempio si sistema a catena chiusa in quanto il PLC comanda un motore passo-passo affichè esso ruoti per un certo numero di giri e un encoder (incrementale) restituisce, sotto forma di impulsi, la posizione effettiva raggiunta dal motore. Se il confronto tra queste due informazioni dà esito positivo, allora il sistema evolve regolarmente, altrimenti è necessario intraprendere delle azioni atte a ricondurre il sistema verso il funzionamento desiderato. Data la valenza didattica di questa esperienza supporremo che il confronto dia sempre esito favorevole in modo tale da non dover intraprendere nessuna azione correttiva che porterebbe ad una notevole complicazione sia hardware che software della prova di laboratorio in esame; un semplice modo di risolvere il problema di posizionamento, è quello di ridurre la velocità di lavoro. Funzionamento: con la pressione del pulsante “start” (ingresso I0.2) si dà inizio ad un ciclo di lavorazione. Il controllore impone al motore la seguente sequenza di lavoro (peraltro arbitraria): 1. movimento orario di 72° dell’albero del motore passo-passo (corrispondente a 12 impulsi generati dall’encoder - 12 x 6°); 2. movimento antiorario di 144° dell’albero del motore passo-passo (corrispondente a 24 impulsi generati dall’encoder - 24 x 6°); 3. movimento orario di 72° dell’albero del motore passo-passo (corrispondente a 12 impulsi generati dall’encoder - 12 x 6°). Dopo aver completato la sequenza di lavoro il motore si riporta nella posizione iniziale. Nella descrizione della sequenza di lavoro abbiamo implicitamente supposto che ad un passo angolare del motore passo-passo corrisponda un impulso generato dall’encoder (i due dispositivi hanno la stessa risoluzione). In realtà il motore utilizzato ha un passo angolare di 7,5° mentre l’encoder fornisce un impulso ogni 6°. Per tale motivo lo spostamento effettivo dell’albero motore sarà di 75° durante la prima fase, a150° durante la seconda e di 75° durante la terza; alla fine del ciclo si ritorna comunque alla posizione iniziale (vedere figura 29). Pag. 54 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Figura 29. Corrispondenza movimento motore/encoder Come possiamo notare osservando la parte evidenziata in giallo della figura 29, i dodici impulsi generati dall’encoder fanno supporre che il motore sia fermo nella posizione di 72°; in realtà, il motore potendosi muovere solo di 7,5° alla volta, oltrepassa tale posizione fermandosi in quella corrispondente a 75°. Questo inconveniente si sarebbe potuto evitare se avessimo avuto a disposizione un encoder e un motore passo-passo con la stessa risoluzione. Breve descrizione dei componenti utilizzati Per raggiungere lo scopo si utilizza un encoder che viene collegato al motore passo-passo per mezzo di una cinghia. Figura 30. Collegamento del motore passo-passo all’encoder Il motore passo-passo I motori passo-passo sono dispositivi elettromeccanici nei quali il movimento avviene in modo discontinuo e possono essere considerati come la versione digitale dei motori in cc. Infatti essi trasformano una sequenza di impulsi in uno spostamento angolare prefissato detto passo (step) con una cadenza imposta dal circuito di comando. Figura 31. Motore passo-passo Pag. 55 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Encoder Gli encoder sono dei dispositivi elettromeccanici che convertono una posizione angolare o lineare in un treno di impulsi (encoder incrementali) o in una parola codificata di n bit (encoder assoluti). Essi trovano largo impiego in campo industriale; infatti la necessità di valutare la posizione angolare di un qualsiasi dispositivo è di fatto parte integrante delle macchine a controllo numerico, dei plotter, dei dispositivi, del controllo di posizione delle antenne radar e tante altre applicazioni. Possono anche essere impiegati come trasduttori di velocità sfruttando il fatto che la velocità risulta espressa dal rapporto tra lo spostamento ed il tempo impiegato per effettuare tale spostamento. Figura 32. Principio di funzionamento di un encoder Le caratteristiche complete dell’encoder utilizzato sono riportate in appendice B, mentre per ora ci interessa sapere che il dispositivo fornisce 60 impulsi ogni giro ovvero un impulso ogni 6 gradi di spostamento. Circuito di potenza L297-L298 Il circuito di potenza è composto dai due integrati L297 e L298 ed è progettato per il pilotaggio di motori passo-passo. Il circuito genera le fasi necessarie per far muovere di un passo alla volta il motorino ad esso collegato; inoltre prevede alcuni ingressi dedicati quali: - clock, in cui si deve inserire un segnale ad onda quadra di frequenza variabile in funzione della velocità di rotazione del motore passo-passo desiderata; Pag. 56 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ - orario/antiorario, per selezionare il senso di rotazione. Quando è presente una tensione di 0 V su questo ingresso il motore ruota in senso orario, mentre se è presente una tensione di 5 V il motore gira in senso antiorario; - marcia/arresto, per mettere in movimento il motore o per fermarlo. Quando è presente una tensione di 0 V su questo ingresso il motore si ferma, mentre se è presente una tensione di 5 V il motore si mette in rotazione. Funzione speciale del PLC S7-200 : PTO (Pulse Train Output) Questa funzione, caratteristica del PLC S7-200, è utilizzata per generare il clock necessario alla scheda di potenza L29-L298. La frequenza del clock può essere variata a piacimento imponendo così diverse velocità di avanzamento del motore. La funzione PTO fornisce in uscita un treno di impulsi o per meglio dire un’onda quadra con un duty cycle del 50%, per un dato numero di cicli e per un dato tempo di ciclo (vedere la figura 33). Figura 33. Uscita di treni di impulsi Nella figura 34 è possibile vedere un treno di impulsi disponibile all’uscita Q0.0 che ha un tempo di ciclo pari a 1000ms e viene ripetuto per 4 volte. Figura 34. Esempio di utilizzo della funzione PTO La funzione PTO ha diversi registri di controllo. Tre di questi sono fondamentali per il suo funzionamento: registro SMB67 destinato a contenere il byte di configurazione della funzione PTO. Nel nostro caso è inserito il valore esadecimale 8D, ottenendo cosi il funzionamento descritto dalla tabella seguente (figura 35). Pag. 57 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Figura 35. Byte di controllo della funzione PTO In sostanza la tabella indica che devono essere caricati il numero degli impulsi o cicli e il tempo di ciclo espresso in ms, prima di richiamare la funzione PTO attraverso la chiamata PLS. registro SMW68 nel quale deve essere caricato il valore del tempo di ciclo PTO (1000, nel nostro caso). registro SMD72 nel quale deve essere caricato il numero di cicli o impulsi desiderato (10, nel nostro caso). Tutta la fase di inizializzazione della funzione PTO è descritta in dettaglio nella tavola n°5 all’interno del sottoprogramma SBR_0. Da notare il blocco PLS che serve a richiamare la funzione attivandola sull’uscita desiderata (Q0.0). Tavola n° 1 Come sempre lo schema elettrico fornisce una visione completa di come è composto il sistema e quali siano i componenti utilizzati per la sua realizzazione. Abbiamo già detto nella sezione dedicata alla “Breve descrizione dei componenti utilizzati” , che il motore è collegato ad un encoder il quale fornisce un impulso ogni 6° di spostamento. Il treno di impulsi arriva all’ingresso I0.0 del PLC che provvede a contarli attraverso vari contatori (vedere programma). Il collegamento tra l’encoder e il PLC non è però diretto in quanto il primo fornisce un treno di impulsi di ampiezza uguale a 5 V mentre il PLC accetta in ingresso solamente tensioni a 24 V. Per tale motivo il segnale proveniente dall’encoder viene adattato alla tensione di 24 V attraverso il circuito T2 – R3- R4. Per lo stesso motivo il segnale di clock di ampiezza pari a 24 V generato dal PLC e disponibile all’uscita Q0.0, deve essere adattato ad una tensione pari a 5 V in quanto la scheda di potenza accetta in ingresso un segnale di tale ampiezza. Il circuito dedicato allo scopo è allora quello composto da T1 – R1 – R2. Anche i due segnali disponibili alle uscite Q0.2 e Q0.3 (relativi alle funzioni di marcia/arresto e senso di marcia orario/antiorario) devono essere adattati alla tensione di 5 V. In questo caso vengono utilizzati i relè al posto del circuito con il Pag. 58 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ transistor semplicemente perché questi componenti erano già collegati al PLC in seguito ad un loro utilizzo in una prova di laboratorio precedente. Il pulsante “start” collegato all’ingresso I0.2 è utilizzato per dare il via alla sequenza di movimenti del motore e inoltre per inizializzare i contatori (vedere programma). Tavola n° 2 Partendo dallo stato iniziale zero (abilitato come di consueto al momento di alimentare il PLC – vedere esperienze precedenti) il PLC provvede a generare il segnale di clock che da questo punto in avanti è sempre disponibile all’uscita Q0.0 (la procedura per generare il segnale di clock è descritta in dettaglio nella sezione relativa alle tavole 3 - 4 - 5). La transizione t1 risulta abilitata e il verificarsi dell’evento ad essa associato (pressione del pulsante “start”) fa passare il sistema dallo stato zero allo stato uno in cui devono essere eseguite diverse azioni: 1) il motore deve essere portato in rotazione per cui il relè 1 deve essere eccitato attraverso l’attivazione dell’uscita Q0.2 - nota: si è scelto di far rimanere attiva per tutta la sequenza di lavoro questa uscita per indicare che comunque sia il motore, una volta iniziata la sequenza assegnata la porta a termine senza arrestarsi mai -; 2) viene scelto il senso di rotazione orario diseccitando il relè 2 attraverso l’uscita Q0.3 che viene disabilitata; 3) si contano gli impulsi (contatore C0) provenienti dall’encoder che indicano la posizione del motore come richiesto dalla prima parte della sequenza di lavoro. La transizione t2 è abilitata allo scatto, che avviene quando il contatore C0 ha contato 12 impulsi. A questo punto il sistema passa dallo stato uno allo stato due dove viene selezionato il senso di rotazione antiorario eccitando il relè 2 attraverso l’abilitazione dell’uscita del PLC Q0.3; inoltre in questo stato vengono contati dal contatore C1 i 24 impulsi richiesti dalla seconda parte della sequenza di lavoro. La transizione t3 è abilitata allo scatto che avviene quando il contatore C1 ha contato 24 impulsi. Il sistema passa dallo stato due allo stato tre, viene selezionato il senso di rotazione orario diseccitando il relè 2 attraverso la disabilitazione dell’uscita Q0.3, vengono contati i 12 impulsi richiesti dalla terza parte della sequenza di lavoro (contatore C2). La transizione t4 è abilitata e scatta quando il contatore C2 ha contato i 12 impulsi. Dopodiché il sistema ritorna nello stato iniziale ed è pronto per ricominciare un nuovo ciclo della sequenza desiderata. Pag. 59 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Tavole 3 – 4 – 5 In questa esperienza il programma è stato diviso in tre sezioni: MAIN, SBR_0 e INT_0. MAIN: è la sezione del programma principale. La prima riga di codice richiama, durante il primo ciclo di esecuzione attraverso il bit speciale SM0.1, il sottoprogramma SBR_0 in cui riportato il codice per inizializzare e richiamare la funzione PTO (Pulse Train Output) per generare il segnale di clock. Le righe dalla 4 alla 6 servono per l’inizializzazione dello stato zero, come ampiamente descritto nelle esperienze precedenti. Dalla riga 7 alla 14 ci sono le righe di codice che scaturiscono dall’applicazione delle regole di traduzione dal grafcet al ladder descritte nella relativa sezione a pag. 14. Dalla riga 15 alla 26 invece si osserva il codice relativo all’abilitazione dei contatori C0 – C1 – C2. Commentiamo solo le righe dalla 15 alla 18 relative al contatore C1 in quanto per gli altri contatori la procedura è perfettamente identica. Innanzi tutto il contatore viene resettato al momento della pressione del tasto “start” (I0.2), dopodiché vengono contati gli impulsi provenienti dall’ingresso I0.0, a patto però che lo stato del sistema si trovi in una situazione congruente e cioè si abbia M0.1 attivo ovvero il sistema si trovi nello stato uno; raggiunto il valore di impostazione (PV) uguale a 12 il contatore C0 chiude il suo contatto interno che a sua volta abilita la bobina interna M10.2 utilizzata per resettare il contatore a conteggio ultimato. La sezione delle uscite riguarda le ultime righe 27 a 30. Le righe 27,28 e 29 in particolare, mostrano che l’uscita Q0.2 è sempre (infatti si è già detto che il motore deve essere sempre in moto durante le tre fasi di lavorazione richieste). L’uscita Q0.3 presente alla riga 30 viene semplicemente abilitata quando è attivo lo stato due e cioè è richiesto il senso di rotazione antiorario. SBR-0: questa è la sezione in cui viene inizializzata e richiamate la funzione PTO che genera un clock disponibile sull’uscita Q0.0. Quando il sottoprogramma SBR_0 viene richiamato vengono attivati immediatamente diversi componenti; questo avviene semplicemente perché il bit speciale SM0.0, in serie a tutti gli altri componenti, è un bit sempre attivo (caratteristico del PLC S7-200). Riga 01: imposta il byte di controllo SMB67 con il dato esadecimale 8D (vedi la descrizione della funzione PTO nelle sezione relativa ad una “breve descrizione dei componenti utilizzati” nelle pagine precedenti); Pag. 60 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Riga 03: viene scritto il dato 1000 nel registro di controllo SMW68 per impostare il tempo di ciclo a 1000ms (questo fa si che il motore compia una rotazione di un passo ogni secondo); Riga 04: viene scritto nel registro di controllo SMD72 il dato 10 per indicare il numero di cicli desiderato; Riga 07: questo componente associa all’evento 19 (l’evento è verificato ogni volta che il numero di cicli effettuati dalla funzione PTO è uguale a quelli impostati – nel nostro caso 10); allora ogni 10 cicli viene richiamato in automatico il sottoprogramma INT_0; Riga 09: abilita tutte le interruzioni; Riga 10: richiama la funzione PTO attivandola sull’uscita Q0.0 (la stessa funzione potrebbe essere attivabile anche sull’uscita Q0.1). INT-0: questo sottoprogramma non è strettamente necessario, ma è stato inserito per indicare che ogni qualvolta viene richiamato è possibile variare il tempo di ciclo in modo tale da avere un segnale di clock di frequenza variabile (ad indicare che il motore si può muovere con diverse velocità). Nel nostro esempio il tempo di ciclo rimane invariato per cui non si ha una variazione di velocità. Tavola n° 6 Tabella assegnamenti degli elementi. Calcolo dei valori delle resistenze dei circuiti adattatori di tensione Il problema di adattare i livelli di tensione nasce dal fatto che il PLC S7-200 CPU 226 accetta in ingresso e fornisce in uscita segnali proprio a 24V DC, mentre il resto dei circuiti funzionano con livelli di segnale di 5V DC. Il problema è stato risolto utilizzando i due circuiti riportati in figura 36 realizzati con interruttori a transistor, sfruttando le due zone di interdizione e di saturazione caratteristiche di questo componente. Figura 36. Circuiti per adattare i livelli di tensione Pag. 61 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Per entrambi i circuiti sono stati utilizzati transistor BC107 che hanno la corrente di collettore e la corrente di base di saturazione indicati di seguito: I C = 100mA , I Bsat = 5mA , VBE ≅ 0,7V Per quanto riguarda il circuito “a” di figura 36 conoscendo la corrente di base di saturazione possiamo calcolarci la resistenza di base R1: R1 = VCC − VBE 24 − 0,7 = ≅ 5 KΩ I Bsat 5 ⋅ 10 −3 (3.1) mentre la resistenza di collettore R2 dovrà essere di R2 = VCC 5 = = 50Ω IC 100 ⋅ 10 −3 (3.2) Per quanto riguarda il circuito “b” di figura 36 conoscendo la corrente di base di saturazione possiamo calcolarci la resistenza di base R3: R3 = VCC − V BE 5 − 0,7 = ≅ 1KΩ I Bsat 5 ⋅ 10 −3 (3.3) mentre la resistenza di collettore R4 dovrà essere di R4 = VCC 24 = = 240Ω IC 100 ⋅ 10 −3 Pag. 62 (3.4) UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 63 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 64 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 65 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 66 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 67 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 68 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Esperienza n° 4 – Proposta di lavoro Pag. 69 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Descrizione generale del sistema Si vuole realizzare il controllo di velocità di un motore monofase (ad es. di un trapano elettrico) utilizzando la funzione speciale di regolazione proporzionale e integrativa (PI) del PLC S7-200 CPU 226 della SIEMENS. Questa esperienza è stata sviluppata solo dal punto di vista progettuale, e rimane pertanto una proposta di lavoro che sarà possibile realizzare in un secondo momento. La parte realizzativa e il collaudo non sono stati eseguiti a causa della mancanza dell’interfaccia analogica EM 235 necessaria allo scopo. Questa esperienza/proposta di lavoro è stata inserita per mostrare le effettive potenzialità di un PLC nel controllo di processi industriali. In tale ambito capita spesso di non riuscire a determinare esattamente il modello matematico del sistema di controllo e quindi l’espressione della relativa funzione di trasferimento. Pertanto i metodi per la sintesi del regolatore (guadagno e rete compensatrice) non possono essere utilizzati. Si ricorre allora a regolatori standard che siano caratterizzati da parametri di regolazione variabili entro ampi limiti in modo da essere inseriti in un qualsiasi sistema di controllo e adattati fissando opportunamente i valori dei parametri suddetti. Il PLC SIEMENS S7-200 dispone di una la funzione speciale di regolazione proporzionale, integrativa e derivativa (PID). Figura 37. Byte di controllo della funzione PTO Con riferimento allo schema blocchi di figura 37 possiamo scrivere che l’uscita del blocco regolatore e data dalla seguente espressione 4.1: t m(t ) = K p ⋅ e(t ) + K i ⋅ ∫ e(t )dt + K d ⋅ 0 de(t ) . dt (4.1) Il segnale di uscita dal regolatore è formato da tre termini che rappresentano rispettivamente l’azione proporzionale, integrativa e derivativa agenti sul segnale di errore. Pag. 70 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ I segnali analogici provenienti dal trasduttore e dal set-point (riferimento) subiscono una conversione A/D per poter essere elaborati da un calcolatore elettronico digitale quale il PLC; per tale motivo l’espressione 4.1 non è utilizzabile ma viene sostituita con una equivalente adatta a segnali discreti m n = K c ⋅ en + ( K i ⋅ en + m x ) + K d ⋅ (en − en −1 ) (4.2) in cui m n = è il valore calcolato dell’uscita nel tempo di campionamento n K c = è il guadagno en = è il valore dell’errore nel tempo di campionamento n en −1 = è il valore dell’errore al tempo di campionamento n-1 K i = è la costante proporzionale del termine integrale m x = è il valore precedente del termine integrale (nel tempo di campionamento n-1) K d = è la costante proporzionale del termine integrale. Per la descrizione dettagliata dell’espressione 4.2 indicata si rimanda alla lettura del paragrafo “OPERAZIONE DI REGOLAZIONE PROPORZIONALE, INTEGRALE, DERIVATIVA (PID)” riportata in appendice C, dove risulta che per calcolare l’uscita, il PLC non usa direttamente l’espressione 4.2 ma una sua versione semplificata. Funzionamento: Il controllo di velocità a inizio con la pressione del pulsante “start” (I0.0) da parte dell’operatore addetto. Breve descrizione dei componenti utilizzati Come si può vedere dallo schema elettrico sono stati utilizzati un motore monofase, un circuito di potenza per il controllo della velocità del motore, una dinamo tachimetrica e una interfaccia con ingressi e uscite analogiche tipo EM 235. Motore monofase …omissis… Circuito di potenza Il motore è alimentato dal circuito di potenza, che fornisce una tensione variabile da 0 a 220V attraverso una tensione continua di controllo da 0 a 10V. Dinamo tachimetrica La dinamo tachimetrica è un trasduttore di velocità angolare che basa il suo principio di funzionamento sull’iterazione di un campo magnetico ed un conduttore in movimento. Si tratta in definitiva di una piccola dinamo il cui flusso è generalmente prodotto da un magnete permanente. Pag. 71 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ In una dinamo techimetrica la tensione di uscita è direttamente proporzionale alla velocità di rotazione. Nella nostra esperienza faremo l’ipotesi che la tensione prodotta dalla dinamo tachimetrica alla massima velocità sia di 10 V, in modo tale da poterla interfacciare direttamente all’ingresso analogico presente sull’unità EM 235. Unità di ampliamento analogica EM 235 Questa unità permette di leggere il valore del segnale analogico presente in uno dei sui ingressi (compreso in un range da 0 a +10V) e di mandare un segnale analogico nella sua uscita (compreso in un range da 0 a +10V). Tavola n° 1 Tutti i componenti utilizzati possono essere interfacciati direttamente tra loro (come si evince dalle caratteristiche indicate nella descrizione dei componenti utilizzati), per cui lo schema elettrico è di immediata interpretazione. Il PLC è collegato con un apposito cavo all’unità di ampliamento analogica EM235, composta da tre ingressi (A,B,C) analogici e un’uscita (anch’essa analogica) V0; il segnale proveniente dalla dinamo tachimetrica arriva all’ingresso C dell’EM235, mentre il segnale di controllo calcolato mediante la funzione PID del PLC è disponibile all’uscita V0 ed è collegato al dimmer: quest’ultimo in base alla tensione continua da 0 a 10 V presente al suo ingresso, fornisce una tensione alternata da 0 a 220 V per pilotare il motore monofase. Tavole n° 2 - 3 L’insieme di queste tavole costituisce il programma scritto nella modalità prevista dal PLC S7-200 CPU 226 per la funzione speciale PID: MAIN: l’unica operazione che viene eseguita dal programma principale è quella di richiamare il sottoprogramma SBR_0 durante il primo ciclo di esecuzione del programma (SM0.1 è attivo solo durante il primo ciclo); SBR-0: in questa sezione di programma sono riportati tutti i passi necessari per configurare la funzione PID attraverso il caricamento dei dati occorrenti in una apposita tabella (vedere appendice C) a partire dall’indirizzo VB100; inoltre si definisce la routine di interruzione per l’esecuzione effettiva della funzione PID. I valori più importanti da commentare sono quelli dei primi quattro blocchi MOV_R. Questo blocco serve per muovere (MOVE) il numero reale presente all’ingresso (IN) nella locazione di memoria indicata sull’uscita (OUT). Pag. 72 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Con il primo blocco mov_r (righe 1 e 2 – tavola n° 2) si imposta il valore di riferimento al quale l’uscita deve tendere; il numero deve essere compreso tra 0 e 1. Nel nostro caso è stato inserito 0.75 per indicare che vogliamo controllare la velocità del motore al valore del 75% della sua massima velocità. Il secondo blocco mov_r (righe 3 e 4 – tavola n° 2) imposta il valore del guadagno Kc, dal quale dipende la sensibilità del calcolo dell’uscita (il valore può essere modificato fino a trovare quello ottimale). Inizialmente si è posto Kc = 0.25. Il terzo blocco mov_r (righe 5 e 6 – tavola n° 2) imposta il tempo di campionamento che è il tempo di ciclo sul quale la funzione PID ricalcala il valore dell’uscita. L’uscita viene ricalcolata ogni 0,1 secondi. L’ultimo blocco mov_r (righe 7 e 8 – tavola n° 2) impone il tempo di integrazione e cioè il tempo usato per controllare l’influenza del termine integrale nel calcolo dell’uscita: si è inserito un tempo di integrazione pari a 30 minuti. INT-0: questa parte di programma viene richiamata una volta ogni 100 ms ed effettua nell’ordine: 1) la lettura del dato proveniente dal trasduttore AIW0: questo valore deve essere convertito in un numero a 32 bit e deve essere normalizzato per ottener un valore compreso tra 0 e 1 (righe dalla 1 alla 9); 2) l’esecuzione della funzione PID (calcolo de valore dell’uscita) quando viene premuto il pulsante “start” associato all’ingresso I0.0 (righe dalla 10 alla 12); 3) il trasferimento sull’uscita AQW0 del risultato proveniente dal passo precedente utilizzabile per controllare il processo in esame: il valore calcolato deve essere riportato in scale e convertito in un numero intero (righe dalla 13 alla 20). Tutte le operazioni sono scritte in dettaglio a fianco di ogni singola riga di programma. Pag. 73 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 74 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 75 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 76 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Esperienza n° 5 Pag. 77 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Descrizione generale del sistema Con questa esperienza si vuole controllare la temperatura di un forno elettrico che rappresenta un classico esempio di sistema a catena chiusa. L’elemento riscaldante è un riscaldatore di tipo industriale e la sonda per la rilevazione della temperatura è il circuito integrato LM335. La temperatura desiderata (set-point o segnale di riferimento) è memorizzato all’interno del PLC (sotto forma di numero decimale) e non è possibile la sua modifica dall’esterno; qualora si volesse cambiare la temperatura di riferimento occorre agire sul programma. La temperatura rilevata dalla sonda LM335 viene inviata al convertitore A/D per essere convertita dal formato analogico in formato digitale. L’uscita del convertitore viene riportata sugli ingressi del PLC (I0.0, I0.1,……,I0.7). Il valore presente su questi ingressi viene letto come byte e viene confrontato con quello di riferimento; se il valore (e quindi la temperatura) rilevato è inferiore al valore impostato allora il PLC attiva l’uscita Q0.0 che aziona l’elemento riscaldante; in caso contrario l’uscita rimane disattivata e di conseguenza anche l’elemento riscaldante è inattivo. Come si può notare la conversione del segnale analogico in quello digitale è stata eseguita esternamente al PLC con il convertitore ADC0801; per aumentare l’affidabilità, sarebbe stato conveniente utilizzare un’unità di ampliamento analogica da collegare al PLC, in modo tale da collegare direttamente il segnale in uscita dalla sonda di temperatura al PLC. Funzionamento: Il controllo di temperatura ha inizio con la pressione del pulsante “start” (I1.0) da parte dell’operatore addetto; le restanti operazioni sono eseguite nel solo modo automatico. Breve descrizione dei componenti utilizzati Nello schema elettrico sono visibili i componenti utilizzati per l’esecuzione dell’esperienza: un riscaldatore industriale , una sonda di temperatura e un convertitore A/D integrato ADC0801. Riscaldatore industriale Tensione di alimentazione: 220 V Potenza: 150W Pag. 78 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ LM335 Questa sonda di temperatura fornisce in uscita una tensione di 10 mV ogni grado Kelvin (0° C = 273° Kelvin) ed è in grado di rilevare temperature comprese tra -40°C e +100°C. Figura 38. LM335: Package, Wiev, Calibration Il segnale in uscita dalla sonda sarà quindi compreso tra 2,33 V (-40° C) e 3,73 V (+100° C) ed è perfettamente compatibile con il segnale che deve essere posto in ingresso al convertitore A/D (da 0 a 5 V). Alla sonda deve essere collegato un trimmer per la calibrazione, come è visibile nella figura 38. ADC0801 Figura 39. Convertitore ADC0801 – Typical application Le principali caratteristiche sono: • Compatibile con i microprocessori della serie 8080 • Facilmente interfacciabile a tutti i microprocessori oppure può operare in “stand alone” • Ingresso analogico di tipo differenziale • Range del segnale analogico d’ingresso da 0V a 5V • Supply voltage: 5 VDC Pag. 79 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ • Resolution: 8 bits • Linearity: ± 1LSB • Conversion speed: 100 us • Clock interno Tavola n° 1 Lo schema elettrico rappresentato è di per se esaustivo per la comprensione dei vari collegamenti effettuati tra il PLC e il resto del sistema. Per completezza comunque notiamo che il convertitore A/D non è collegato direttamente al PLC in quanto l’uscita del primo fornisce segnali con ampiezza di +5 V, mentre il secondo opera con segnali di ingresso con ampiezza di +24 V; per tale motivo è presente una sezione che ha il compito di adattare i due livelli di tensione composta da otto transistor (T1 ÷ T8 tutti BC107) e varie resistenze (R2 ÷ R9 di valore 240Ω e R10 ÷ R17 di valore 1 KΩ - Nota: i valori delle resistenze sono quelli calcolati nell’esperienza n° 3) adatte allo scopo. Inoltre si evince che anche il riscaldatore non è pilotato direttamente dal PLC ma è ad esso interfacciato attraverso un relè a 24 V DC (Relè 1) con contatti n.a. adatti a sopportare una tensione di 220 V (ed una adeguata corrente) necessaria al funzionamento dell’elemento riscaldante. Per il resto si nota che in questa esperienza è stato utilizzato anche un secondo canale di ingresso I1.x che è comunque in dotazione al PLC SIEMENS - CPU 226. Il circuito relativo alla sonda di temperatura comprende un trimmer P1 (10 KΩ) per la sua calibrazione (come descritto dal costruttore) e una resistenza R1 (21KΩ) per limitare la corrente di funzionamento a valori idonei (circa 1 mA): infatti se si utilizza come tensione di alimentazione 24V e si suppone che la tensione minima di uscita sia VTmin=2,63V , la massima caduta di tensione sulla R1 vale ∆V = 24 − 2,63 = 21,37V (5.1) per cui assumendo come corrente assorbita dalla sonda Ia=1mA, si dove impiegare un resistore con resistenza pari a R1 = ∆V 21,37 = ≅ 21KΩ Ia 1 ⋅ 10 −3 (5.2). Tavola n° 2 Lo stato iniziale zero viene abilitato, come di consueto, al momento di alimentare il PLC. A questo punto il sistema è pronto per iniziare il ciclo di funzionamento desiderato. Pag. 80 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ La transizione t1 risulta abilitata. Una volta premuto il pulsante di start e verificato che il segnale in ingresso al canale zero è minore del valore di riferimento, la transizione t1 scatta, facendo passare il sistema dallo stato zero allo stato uno. Questo stato detto di transito, è inserito solamente per risolvere un problema di programmazione, infatti non viene eseguita nessuna azione; anzi siccome la transizione t2 è sempre verificata, si ha che il sistema passa quasi istantaneamente dallo stato uno allo stato due. In questo stato viene attivata l’uscita Q0.0 che eccita il relè che a sua volta pilota l’accensione del riscaldatore industriale per far aumentare la temperatura all’interno del forno. Si rimane in questo stato fino a quando l’evento associato alla transizione t3 non si verifica e cioè fino a quando la temperatura del forno (codificata in codice binario e riportata all’ingresso del canale zero del PLC) diventa maggiore del valore di riferimento. Il ciclo può ricominciare con una nuova pressione del pulsante di start oppure volendo ottenere un ciclo continuo basta sostituire il pulsante di start con un interruttore da attivare solo durante il primo ciclo. Tavola n° 3 Il programma è la classica la traduzione (già descritta ampiamente nelle esperienze precedenti) dello schema grafcet in linguaggio ladder. Unica novità, che peraltro è fondamentale per la stesura del programma, è il componente software utilizzato per il confronto, che viene riportato in figura 40: Figura 40. Istruzione di confronto tra byte Questo elemento software preleva il byte del relativo canale di ingresso (nel nostro esempio il canale 0) IB0 e lo confronta con un valore decimale (naturalmente compreso tra 0 e 256) impostato all’atto della programmazione (nel nostro caso 178d). La condizione che determina il verificarsi o meno dell’apertura del contatto è quella scritta all’interno del contatto stesso ( >= oppure > ). Nel caso di figura 40 (a) , quando il valore istantaneo del byte IB0 è maggiore o uguale a 178 allora il contatto si chiude, in caso contrario rimane aperto. Pag. 81 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ A questo punto non rimane altro che definire il valore di riferimento o set point. Volendo impostare una temperatura all’interno del forno pari a 75° C si deve calcolare il valore di riferimento o set-point, da memorizzare nel PLC per il confronto con il valore istantaneo rilevato dalla sonda; sapendo che quest’ultima fornisce una tensione di 2,73V a 0° C, si ha che per una temperature di 75° C l’uscita della sonda è un segnale uguale a 2,73 + 0,75 = 3,48V (5.3) dove il primo addendo della 5.3 è il valore in uscita dalla sonda a 0° C, mentre il secondo addendo della formula 5.3 indica il valore di tensione fornito dalla sonda per un incremento di 75° C e cioè 75°C × 10mV = 0,75V (5.4) Come abbiamo visto poco sopra il componente software utilizzato per il confronto richiede un numero decimale corrispondente al valore di riferimento; per ottenerlo basta dividere il risultato della 5.4 per 0,0195 che è la risoluzione del convertitore A/D 3,48 0,0195 ≅ 178 d (5.5) Tavola n° 4 La tabella indica gli assegnamenti degli ingressi, delle uscite e di ogni altro elemento utilizzato nel programma. Pag. 82 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 83 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 84 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 85 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 86 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Appendice Caratteristiche del PLC S7-200 CPU 226 Pag. 87 A UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 88 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 89 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 90 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 91 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 92 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 93 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 94 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Appendice B • Data sheet encoder E5 • Data sheet L297- L298 • Caratteristiche motore passo-passo • Unità di ampliamento analogica EM 235 Pag. 95 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Encoder (estratto) Pag. 96 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 97 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ L297 – L298 (estratto) Pag. 98 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 99 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Motore passo-passo (estratto) Pag. 100 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 101 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Unità di ampliamento analogica EM 235 Pag. 102 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 103 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 104 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 105 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Appendice • Funzione speciale PID Pag. 106 C UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 107 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 108 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 109 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 110 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 111 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 112 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 113 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Pag. 114 UNIVERSITA’ POLITECNICA DELLE MARCHE _____________________________________________________________________ Bibliografia Tecnologie informatiche per l’automazione – Seconda edizione Pasquale Chiacchio – Francesco Basile McGraw-Hill Manuale di sistema – Sistema di automazione S7-200 SIEMENS edizione 05/2003 numero di ordinazione 6EST298-8FA23-8EH0. Pag. 115