Introduzione: i PC industriali e i PMC

 

I computer industriali

I computer industriali rivestono un ruolo di primaria importanza sia a livello di area (workstation, potenti elaboratori,...) sia a livello di cella (PC industriali o computer modulari per la realizzazione di sistemi di supervisione, controllo di processo, interfaccia operatore,....). Dotati di elevato potere di calcolo, si interfacciano facilmente ad altri computer con i quali possono condividere dati e programmi, consentono la gestione diretta di segnali anche non numerici, sono dotati di software di base che semplifica la programmazione e la gestione da parte dell'utente. Così, ad esempio, un PC industriale, a parità di prestazioni con un PC da ufficio, costa quasi il doppio a causa delle differenti caratteristiche costruttive (tastiera a membrana, alimentatore più "filtrato" rispetto alla rete, contenitori di forma adatta al montaggio in quadro elettrico e di materiale metallico per una corretta messa a terra e quindi protezione contro i disturbi elettromagnetici,...).

Il computer (PC) è passato dall’ambiente dell’ufficio all’ambiente industriale grazie alla sua versatilità, semplicità d’uso, diffusione e crescente affidabilità e robustezza (computer industriali).


 

I livelli di applicabilità

I computer industriali possono operare a livello di management, a livello di supervisione e gestione di area, a livello di cella e a livello di comando.

I computer industriali dedicati alla supervisione e gestione dei processi a livello di area sono delle workstation ad elevate prestazioni. Rispetto ad una workstation ad esempio utilizzata per l'implementazione di sistemi CAD, la workstation industriale può essere sostanzialmente basata sullo stesso hardware e condividere pacchetti software applicativi, tuttavia deve differire sostanzialmente in almeno due aspetti: l'ingegnerizzazione e l'interfacciabilità al processo.

 

La scelta del PC corrisponde ad un'esigenza di programmabilità e gestione dei processi lenti (supervisione, diagnostica, interfaccia operatore,...) anche da parte di personale non altamente specializzato nella programmazione. Ad esempio un PC corredato di sistema operativo Windows consente un utilizzo anche da parte di personale non specializzato in informatica. Anche per i PC valgono le stesse considerazioni fatte per le workstation.


 

La struttura dei microcomputer industriali (PMC)

I microcomputer industriali devono essere modulari, facilmente riconfigurabili e riprogrammabili, dotati di un semplice sistema operativo, veloci, altamente interfacciabili sia verso altri computer che verso sistemi comunicanti in modo numerico, logico o analogico e scarsamente standardizzati (macchine utensili, robot, sensori,....), robusti e cioè installabili in prossimità del processo o della macchina. Esistono prodotti orientati a differenti fasce di costo/prestazioni: dal sistema economico.

Nel primo caso, dato il limitato potere di calcolo e la vasta gamma di moduli, il prodotto è rivolto verso applicazioni orientate all'I/O (Input/Output), generalmente definite mediante semplici e brevi programmi scritti in linguaggio ad alto livello (Basic, C,..); se l'applicazione viene considerata a bassissimo livello di modificabilità (Esempio: controllo di più motori coordinati), il software applicativo, senza sistema operativo, può essere direttamente memorizzato su memoria EPROM, riducendo i costi grazie all'eliminazione di memoria RAM e memoria di massa e relativi controller.

Nel secondo caso, dati i costi superiori, il prodotto viene utilizzato per applicazioni complesse in termini di elaborazione, prestazioni e interfacciamento in tempo reale; il software è complesso e viene scritto in linguaggi ad alto livello adeguatamente potenti (C, Pascal, Fortran).

Tra i principali tipi di moduli di un microcomputer industriale vi sono CPU (moduli intelligenti), moduli di memoria (RAM, EPROM, EEPROM, memorie di massa), moduli periferici e di I/O.

 

Tra i moduli CPU distinguiamo:

  • CPU General Purpose ad alte prestazioni (con µP potenti e configurabili come Master o Slave)

  • CPU General Purpose "compatte" (con µP a 8-16bit, generalmente Slave, dedicate ad applicazioni

  • CPU General Purpose orientate all'I/O (-Esempio: Schede PLC-) 

  • CPU Grafiche (Utilizzate per la gestione di monitor ad alta risoluzione e tastiere -Es.: Schede PC-)

  • CPU di interfacciamento (CPU dedicate alle comunicazioni verso altri computer; spesso dotate di firmware­per il protocollo di interfacciamento)

  • CPU di controllo periferiche (Esempio: controllore di memorie di massa)

  • Moduli coprocessori numerici (in disuso, data la potenza dei nuovi microprocessori)

 

Tra i moduli periferici e di I/O distinguiamo:

  • Moduli di ingresso/uscita logici (isolati e non isolati)

  • Moduli di ingresso/uscita analogici (in tensione, in corrente, differenziali, sbilanciati,...)

  • Moduli di conteggio (Esempio: interfaccia verso encoder come trasduttore di velocità/posizione)

  • Moduli di temporizzazione (Esempio: orologio, calendario, allarme)

  • Moduli di interfaccia parallela (Esempio: interfaccia Centronics verso stampante)

  • Moduli di interfaccia seriale (Esempio: RS232 verso periferiche -terminali, stampanti-, RS485 verso sistemi controllati da un microprocessore -azionamenti-verso trasduttori/sensori (Esempio: termocoppie, resolver,....)

 

Oggi le architetture basate su bus, come ad esempio il VMEbus, stanno cedendo il passo a architetture basate su PC con I/O distribuito.


 

Il PLC

 

Il PLC

Il microcomputer industriale, sebbene presenti prestazioni ottime, richiede personale altamente qualificato per la programmazione e pertanto viene utilizzato in applicazioni che richiedono un elevato investimento iniziale di progetto.

Quando le funzioni da svolgere sono semplici o comunque non particolarmente innovative (gestione di segnali logici, anelli di regolazione tradizionali tipo PID, gestione di una semplice interfaccia operatore,...) la soluzione più utilizzata è una struttura PLC (Programmable Logic Controller).

Un PLC è strutturato come un semplice microcomputer industriale e differisce da questo soprattutto a livello di programmazione. I programmi possono essere sviluppati anche da personale non specializzato, sono brevi e fortemente supportati da software di base che consente l'uso di linguaggi a macrofunzioni, simbolici o pseudografici. Il programmatore sviluppa il software su un apposito sistema di sviluppo (spesso un PC dotato di opportuno software) e quindi, collegando il sistema di sviluppo al PLC, programma in modo non volatile il PLC (il programma viene scaricato su memoria EEPROM o RAM dotata di batteria tampone). Grazie alla semplicità dei linguaggi pseudografici e alla potenza del software di sviluppo, non si richiedono le competenze per sviluppare un programma dall'inizio alla fine e per memorizzarlo su EPROM, come nei microcomputer industriali.

La presenza dei PLC come soluzione ai problemi di automazione, controllo e monitoraggio nelle applicazioni industriali, è una realtà ormai matura e presente da molti anni. Solo negli ultimi anni è però diventata così diffusa quanto oggi, tanto che il controllo industriale è ormai quasi sempre affidato a questi dispositivi.

Fino ai primi anni 90, infatti, i PLC offerti dalle grandi case, avevano ancora grossi limiti, soprattutto in termini di affidabilità e di costo: non esistevano quei dispositivi compatti che oggi sono presenti i tutti i listini del mercato e che rappresentano per una larga fetta delle applicazioni poco complesse un ottimo compromesso tra prestazioni ed investimento essendo particolarmente semplici ed economici.

I limiti di velocità di scansione degli ingressi (circa 100 ms), pesavano invece in applicazioni di controllo in tempo reale, per le quali questi tempi erano inaccettabili.

Dopo i primi anni novanta, le grandi case costruttrici sono scese in campo con PLC che superavano brillantemente i problemi descritti in precedenza, incrementando l’affidabilità e diminuendo i tempi di scansione degli I/O, con costi contenuti. Inoltre nella scelta di un PLC pesa moltissimo il supporto in termini di punti vendita e assistenza, di disponibilità di ricambi, di tempi di garanzia e di possibilità di istruzione del personale, caratteristiche di grandi società multinazionali.


 

I livelli di applicabilità

I PLC solitamente operano a livello di cella e a livello di comando. Come per i computer industriali, anche per i PLC esistono varie famiglie di prodotto dedicate a diverse applicazioni.

Linguaggi logici

 

Linguaggi evoluti

(Ladder)

 

(IEC 1131-3 )

 

A livello di cella e per comandi di elevata complessità si utilizzano PLC modulari, basati su strutture aperte dato che i PLC modulari più recenti e potenti consentono un tempo di ciclo nell’ordine dei 10ms..

Si tratta di strutture basate sull’uso di più CPU che operano contemporaneamente.

Il tempo di ciclo e la velocità nell’esecuzione dei programmi sono parametri di notevole importanza qualora il PLC venga impiegato per la realizzazione di controlli digitali: sebbene storicamente le funzioni di controllo demandate ai PLC fossero relative a processi lenti (Es. controllo della temperatura), oggi è possibile trovare PLC impiegati per controllo di processi sempre più veloci (controllo di posizione, controllo assi ad elevate velocità,…).

A livello di comando operano i PLC compatti, quando il requisito principale è il basso costo, e i PLC espandibili, se viene richiesta una certa flessibilità e prestazioni superiori. I primi sono strutture hardware rigide, caratterizzate da un unico blocco con al più un numero molto limitato di opzioni, mentre i PLC espandibili ricalcano la struttura dei PLC modulari, mantenendo però una semplice architettura a singola CPU. Entrambi questi tipi di PLC vengono in genere programmati mediante linguaggi semplici e affidabili (schemi a contatti, liste di istruzioni).

I PLC più classici e, ad oggi, i più utilizzati, sono i PLC economici (compatti o espandibili) dedicati a funzioni di comando di bassa e media complessità. Tali PLC, che vengono utilizzati essenzialmente per la gestione, eventualmente temporizzata, di ingressi e uscite logiche, si sono affermati per la possibilità di sostituire complesse e ingombranti logiche a relé (logiche cablate) con sistemi più compatti e facilmente modificabili.

 

Vantaggi della struttura a relè

I Relais sono essenzialmente delle valvole, come indicato in figura: eccitando la bobina di comando, i contatti normalmente aperti (NO) si chiudono, permettendo il flusso di corrente, e i contatti normalmente chiusi (NC) si aprono, interrompendo il flusso di corrente.

I relais sono degli amplificatori di potenza: infatti se la bobina di comando viene eccitata con 100mA, il contatto può portare più di 10A. Questa caratteristica, insieme all’elevato isolamento tra bobina e contatti, all’economicità e alla possibilità di essere facilmente utilizzati da personale non esperto, rende i relais ancora oggi molto utilizzati. Nel caso però di realizzazione di funzioni logiche più complesse, i relais risultano lenti, ingombranti e caratterizzati da elevati consumi di potenza che, tra l’altro, inquinano elettromagneticamente l’ambiente.

In conclusione i PLC sono stati utilizzati in sostituzione delle logiche a relais grazie ai seguenti vantaggi:

  • Riduzione dei cablaggi

  • Elevata versatilita’ verso “upgrade

  • Riduzione degli ingombri

  • Riduzione della potenza (assorbimento  100mA nei PLC piu’ compatti)

  • Aumento della velocita’ di elaborazione

  • Semplice, robusto ed affidabile

  • Consente nuovi campi d’impiego (regolazione, controllo, calcolo multivariabile,.)

 

E’ proprio per rispettare la formazione culturale degli addetti, abituati a gestire logiche a relais e quindi schemi funzionali a contatti, che i primi e attualmente più diffusi linguaggi dei PLC ricalcano i linguaggi grafici a contatti (ladder).

La classificazione proposta per i PLC (compatti, espandibili, modulari) è piuttosto sfumata: a livello della struttura i PLC espandibili e i PLC modulari non differiscono per componenti (schede CPU, schede di I/O,..), ma solo per la configurazione architetturale (configurazione a una o più CPU); d’altro canto a livello di linguaggio praticamente non vi è differenza tra i linguaggi impiegati per i PLC compatti e quelli espandibili.


 

La struttura dei PLC compatti

Un PLC compatto si presenta come un monoblocco avente dimensioni molto contenute. In genere si tratta di PLC economici con una configurazione di ingressi e uscite fissa e non espandibile (se non in modo molto limitato).

Di norma hanno possibilità di comunicazione molto limitate (in genere non sono disponibili interfacce per bus di campo), un set di istruzioni ristretto e un pacchetto di sviluppo molto semplice che si adatta molto bene a utenti poco esperti.

Vengono utilizzati per applicazioni di automazione molto semplici, standardizzate e senza la necessità di prevedere espansioni future.

A titolo di esempio si riportano le caratteristiche di un PLC compatto prodotto da Siemens (Simatic S7-212), raffigurato in figura qui sotto. Tale PLC integra 8 ingressi logici, 6 uscite logiche e 64 timers. Può essere espanso con un massimo di due moduli opzionali selezionabili tra 25 fra digitali e analogici e supporta programmi di lunghezza massima pari a circa 500 istruzioni mettendo a disposizione 512 word per i dati.

Si tratta di un PLC molto economico ma con potenzialità molto limitate. Per fare un raffronto, il modello immediatamente superiore (Simatic S7-214), che si inquadra tra i PLC espandibili di livello basso, consente programmi più lunghi (2Kword codice + 2kword dati), un maggior numero di timers, contatori e punti di I/O (14 ingressi e 10 uscite) e di moduli di espansione (7 moduli, tra i quali l’interfaccia verso bus di campo Profibus); inoltre integra ingressi di interrupt e consente l’esecuzione di istruzioni base in meno di 1s.

 

La struttura dei PLC espandibili e modulari

Un PLC espandibile o modulare è costituito da diverse unità funzionali (moduli) che si possono combinare tra loro a seconda delle esigenze dell'applicazione. Rispetto alla struttura dei microcomputer industriali (PMC), si parla di moduli funzionali piuttosto che di schede; infatti nei PLC non si aggiunge una scheda il cui software è completamente da realizzare, ma si aggiunge un kit indissolubile costituito da una scheda più un pacchetto software dedicato. Questa soluzione ha il vantaggio di agevolare e velocizzare la realizzazione dei programmi applicativi permettendo anche ad utenti poco esperti la realizzazione di funzioni complesse. Per contro si ha una perdita netta di flessibilità: tutto quello che non è previsto dal pacchetto software a corredo non può essere realizzato anche se, potenzialmente, la scheda sarebbe in grado di farlo. Per esempio una scheda di interfaccia verso un encoder fornita di un pacchetto in grado di gestire un posizionamento assi non è in grado di usare l'encoder come trasduttore fine di velocità anche se, scrivendo direttamente il software, questo sarebbe possibile.

 

I PLC espandibili o modulari hanno una struttura molto più vantaggiosa rispetto a quella dei PLC compatti. In primo luogo questa è una struttura modulare cioè è possibile configurare l’architettura del PLC in base alle effettive esigenze dell’automazione. Posso inserire, di volta in volta, il numero e il tipo di moduli che mi occorrono senza sprechi e con una flessibilità notevole rispetto a eventuali ampliamenti futuri. Di riflesso questo porta ad avere una notevolissima varietà di moduli a propria disposizione, anche per svolgere funzioni molto particolari, come controllori PID e fuzzy, moduli CNC, moduli di comunicazione speciali, etc. La disponibilità di moduli di comunicazione che implementano i principali protocolli a livello di campo (fieldbus) e a livello di fabbrica rende il PLC facilmente integrabile con tutto quanto gli sta attorno (I/O remoti, sistemi SCADA,...). Inoltre è scalabile perché scelgo il modello della CPU in funzione della complessità della configurazione e della gestione da implementare; questo perché tutti i modelli di una famiglia di CPU sono compatibili a livello software (almeno verso l’alto). Modularità, integrabilità e scalabilità sono le principali caratteristiche di un PLC espandibile o modulare. Per contro, come è intuibile, questi PLC sono più costosi dei compatti.

 

In figura viene riportata la struttura di un PLC espandibile: il PLC Siemens SIMATIC-S5. Nel proseguo, dove non espressamente indicato, si farà riferimento alla struttura di tale PLC che, pur essendo ormai superato dalla serie S7, vanta un gran numero di applicazioni tuttora funzionanti e rappresenta ancora un valido mezzo didattico.

 

COMPOSIZIONE E STRUTTURA

 

Rack e Moduli di bus.

Meccanicamente i vari moduli che compongono il sistema PLC trovano posto su un “telaio a rastrelliera”, chiamato rack, oppure sono innestate su un più semplice modulo di bus; entrambi hanno la funzione di facilitare il montaggio meccanico e, soprattutto, di effettuare la connessione dei bus e delle alimentazioni fra i vari moduli. Le strutture a rack o a bus garantiscono la modularità dell’architettura del PLC.

L’indirizzo delle schede innestate sul rack o sul bus può essere di tipo posizionale (per esempio la scheda nella prima posizione utile ha indirizzo 0, la seconda 16,...) oppure può essere assegnato a piacimento tramite parametri impostabili dall’ambiente di programmazione del PLC.

 

Modulo alimentatore.

Questo modulo permette di generare le tensioni di alimentazione per tutte le schede che compongono il PLC (in genere +5VDC, +15VDC e -15VDC) partendo da una sorgente di alimentazione ausiliaria (24VDC, 115VAC oppure 230VAC) che spesso alimenta anche altri carichi. E’ quindi molto importante che questo modulo svolga una efficiente azione filtrante e stabilizzante al fine di aumentare la robustezza e l’affidabilità di tutto il sistema.

 

Non è raro che il modulo alimentatore risulti fisicamente inserito nello stesso contenitore della CPU come avviene, per esempio, sui PLC Siemens S5.

 

Modulo CPU e STRUTTURA.

Nella figura di seguito viene mostrata la struttura funzionale di un PLC Siemens Simatic; tuttavia questa è una struttura di carattere generale che si può applicare a quasi tutti i PLC.

Il modulo di CPU è il modulo principale di un PLC perché vi risiede il sistema a microprocessore che mantiene e elabora il programma applicativo. A grandi linee vi si trovano tre memorie, una che memorizza il sistema operativo (firmware) del PLC, una che mantiene il programma applicativo e un’altra per i dati interni al PLC.

In genere il sistema operativo del PLC risiede su una memoria ROM (o EPROM) non visibile e nemmeno modificabile da parte dell’utente perché fornita direttamente dal costruttore del PLC. In genere il sistema operativo si occupa di fornire un ambiente real­time strutturato, robusto e affidabile per l’esecuzione del programma applicativo. Si occupa anche della gestione di particolari funzioni di diagnostica (stato batteria tampone, check sum iniziale delle memorie, …), la gestione dei temporizzatori interni e di implementare il protocollo per mezzo del quale, tramite l’apposito pacchetto di sviluppo, è possibile trasferire e testare i programmi.

- Memoria Ram

La memoria del programma, come è ovvio, deve conservare il programma anche quando il PLC viene spento. Per comodità, in fase di messa in servizio dell’impianto, il programma viene di solito caricato su memorie di tipo RAM il cui contenuto, in caso di mancanza di tensione, è conservato grazie ad una batteria tampone; così Il programma applicativo può essere caricato e modificato molto velocemente per mezzo del sistema di programmazione. Al termine della messa in servizio il programma deve essere posto su memorie di tipo non volatile (di solito EPROM o EEPROM) in modo tale che, anche se la batteria tampone si scarica, il programma non viene perso.

 

- Accumulatori

Un altro blocco importante nella struttura di un PLC è l'unità aritmetico-logica che, nel caso del PLC Siemens, è costituita da due accumulatori, ACC1 e ACC2, che possono elaborare operazioni a byte e a word. Dato che il PLC esegue soprattutto operazioni logiche booleane (AND, NOT, OR,…), dispone di un accumulatore logico a un bit detto RLC (Risultato Logico Combinatorio) su cui viene memorizzato il risultato parziale dell’espressione logica in corso di valutazione.

 

 

L'unità di governo, sotto il controllo del sistema operativo, legge le istruzioni residenti nella memoria di programma e le esegue.

 


 

 

 

 

Moduli I/O digitali.

Questi moduli permettono di connettere direttamente al PLC i trasduttori e gli attuatori digitali posti sul campo. Finecorsa, sensori induttivi, sensori capacitivi, pulsanti, selettori e tutto quanto fornisce un segnale digitale verrà connesso alle schede d’ingresso mentre relè, elettrovalvole, spie di segnalazione e tutto quanto viene comandato da un segnale digitale verrà connesso alle schede di uscita. Sia i moduli di ingresso che quelli di uscita possono avere un parallelismo di 8, 16, 32 o 64 punti di I/O e possono esistere moduli misti di ingresso e uscita (per esempio 16 ingressi e 16 uscite sulla stessa scheda). 

Le caratteristiche principali per un modulo di ingresso sono la tensione nominale in ingresso, la possibilità della separazione galvanica sugli ingressi e il valore del filtro d’ingresso. In genere la tensione nominale in ingresso è di 24VDC (anche se esistono schede a 115VAC e 230VAC), questo significa che vi sarà un certo campo di tensioni sull’ingresso in cui il segnale logico riconosciuto dal PLC sarà lo 0 (tipicamente da ­30VDC a +5VDC) e ve ne sarà un altro in cui verrà riconosciuto come 1 (tipicamente da +15VDC a +30VDC).

 

Moduli I/O analogici.

Anche questi moduli permettono di connettere direttamente al PLC i trasduttori e gli attuatori analogici posti sul campo. Potenziometri, dinamo, sistemi estensimetrici, celle di carico, sensori di pressione e tutto quanto fornisce un segnale analogico verrà connesso alle schede d’ingresso mentre riferimenti di velocità per inverter, indicatori da pannello e tutto quanto viene comandato da un segnale analogico verrà connesso alle schede di uscita. Sia le schede di ingresso che quelle di uscita possono avere un parallelismo di 2, 4, 8 o 16 punti di I/O e possono esistere schede miste di ingresso e uscita (per esempio 4 ingressi e 2 uscite sulla stessa scheda).

Le principali caratteristiche dei moduli d’ingresso analogici sono il tipo di ingresso supportato (0..+10V, -10V..+10V, 0..20mA, 4..20mA, ingresso per termoresistenza Pt100 e Pt1000, ingresso per termocoppia, ecc.), il numero di bit di risoluzione per il

 

Moduli Output.

Per quanto riguarda i moduli d’uscita si hanno il tipo del segnale d’uscita (0..+10V, -10V..+10V, 0..20mA, 4..20mA, ecc.), il numero di bit di risoluzione per il DAC (da 8 a 16bit), il tempo di conversione, il massimo carico collegabile all’uscita e il tipo di collegamento al carico (a 2 fili o 4 fili nel caso in cui vi sia un circuito, detto di sensing, in grado di eliminare l’errore dovuto alla caduta di tensione sui cavi di collegamento).

 

Moduli di comunicazione.

Questi moduli permettono di collegare il PLC ad altre apparecchiature per mezzo di reti di vario tipo utilizzando protocolli standard.

Tutti i PLC mettono a disposizione una porta alla quale è possibile collegare il sistema di programmazione e diagnostica e quindi programmare la CPU e verificare la corretta esecuzione del programma. Il PLC infatti ha almeno due modi di funzionamento: PROG, modalità di programmazione, in cui l’utente compila e scarica il proprio programma applicativo nel PLC, e RUN, modalità operativa, nella quale il PLC gestisce gli ingressi e le uscite secondo il programma operativo. Nel passaggio da PROG a RUN il PLC esegue delle procedure di inizializzazione che sono trasparenti per l’operatore. Spesso però questa porta “diagnostica” permette solo collegamenti di tipo punto-punto con caratteristiche non adatte all’ambiente industriale (per esempio è una porta RS232 a cui è possibile connettere direttamente un PC).

 

SOFTWARE E LINGUAGGI DI PROGRAMMAZIONE

 

 

E’ fondamentale puntare sulla semplicità di programmazione dei PLC: i programmi devono risultare semplici, affidabili e ben documentati in quanto soggetti a frequenti modifiche.

In generale, il ciclo di vita del software di automazione può essere schematizzato come in figura.

Si comprende quindi l’importanza della scelta del linguaggio di programmazione che deve essere semplice, rigido e schematico e, nello stesso tempo, potente ed efficiente.

 

 

Come si è detto il software applicativo viene caricato nella CPU (modalità PROG) dove, in modalità RUN, viene fatto eseguire sotto il controllo di un sistema operativo residente. Quando si avvia la modalità RUN, il sistema operativo esegue delle procedure di inizializzazione, quindi entra in un modo di funzionamento ad architettura ciclica, detto ciclo di funzionamento della CPU.

 

 

Ciclo di funzionamento della CPU.

Il modello, più usato per un PLC di tipo tradizionale (compatto o espandibile, per intenderci quello di tutti i PLC Siemens Simatic), si basa sul concetto delle immagini di processo.

Quì sotto è rappresentata la sequenza delle operazioni svolte nel caso di normale funzionamento della CPU (in gergo si dice che la CPU è nella fase di RUN).

 

 

Legge gli ingressi (IPI)

Esegue il programma

Comunica

Esegue l’autodiagnosi

Scrive le uscite (IPU)

 

 

Come si può intuire osservando la struttura indicata in figura, il programma applicativo deve avere una organizzazione ciclica, cioè deve essere eseguito dall’inizio alla fine senza punti di attesa. Questo si adatta molto bene alla gestione di operazioni di tipo combinatorio (come per esempio la gestione di operazioni logiche booleane) ed è facile e naturale tradurre uno schema a contatti elettromeccanico in un programma siffatto. Per contro risulta piuttosto macchinoso e poco intuitivo nella gestione di operazioni di tipo sequenziale (per esempio una sequenza di lavorazione composta da più movimenti in successione) dove è necessario memorizzare su memorie d’appoggio lo stato raggiunto per poi riprenderlo nel ciclo di scansione successivo. Per la verità i nuovi PLC, ad architettura modulare, mettono a disposizione nuovi e potenti linguaggi di programmazione che risolvono questo inconveniente permettendo una programmazione più naturale dei punti di attesa e delle sequenze.

 

 

 

Ciascuna famiglia di PLC ha un proprio modello per l’organizzazione dei programmi; noi considereremo un PLC basato su immagini di processo, con riferimento ai PLC Siemens della serie S5.

In genere tutti i PLC permettono una programmazione di tipo strutturato e modulare mettendo a disposizione, per mezzo del sistema operativo residente (trasparente all’operatore), diverse tipologie di blocchi con differenti caratteristiche. Esistono sempre blocchi di tipo organizzativo (chiamati OB nei Siemens) che permettono di organizzare la struttura generale ad alto livello del programma utente. Vi saranno uno o più blocchi (OB1 per il Siemens) che verranno eseguiti ad ogni scansione fra la lettura dell’immagine di processo degli ingressi (IPI) e l’emissione dell’immagine di processo delle uscite (IPU) come mostrato nelle figure di seguito.

E’ buona norma che questi blocchi contengano solo il richiamo di sottoblocchi (di tipo PB o FB) che realizzano le varie richieste; così il programma risulta più leggibile e la struttura del programma è individuabile anche solo ad una prima occhiata. Sempre per aumentare la leggibilità del programma è possibile effettuare scomposizioni di tipo logico (chiamate segmenti) per suddividere gli OB in sottoparti che risultano scorrelate fra loro (per esempio si può creare un segmento per la gestione dell’interfaccia utente, uno per il manuale, uno per l’automatico, uno per il comando degli ausiliari d’impianto, ecc.).


 

I PLC di tipo compatto o espandibile vengono comunemente programmati con un linguaggio di programmazione che fa uso di tre diversi modi di rappresentazione:

  • Ladder diagram (schemi a contatti)

  • Instruction List (lista di istruzioni)

  • Function block diagrams (schema elettrico funzionale)

 

Di seguito si farà riferimento alle simbologie adottate dai PLC Simatic S5-S7 della Siemens: per tutti i controllori programmabili della famiglia SIMATIC vi è un linguaggio di programmazione, lo STEP5-7, linguaggio che fa uso dei tre modi di rappresentazione, come accennato sopra, lista di istruzioni (AWL), schema logico funzionale (FUP) e schema a contatti (KOP), detto anche ladder diagram. Vediamo più da vicino queste tre possibili filosofie.

 

AWL

Ogni programma è costituito da una sequenza di prescrizioni elementari di lavoro per il controllore. Queste prescrizioni vengono chiamate “istruzioni”. Perciò un programma non è altro che un elenco di istruzioni, la cosiddetta “lista istruzioni”, abbreviata in AWL.

Tutte le istruzioni sono strutturate nello stesso modo: la prima parte comunica al controllore l’azione da compiere (operazione), la seconda parte comunica l’oggetto dell’azione richiesta (operando).Un operando è composto da una sigla (“E”,”A”, ecc.) e da un parametro, che a sua volta comprende il numero di posto-connettore (da 0 a 31) e il numero dell’ingresso o dell’uscita (da 0 a 7).

 La lista di istruzioni (AWL) rappresenta quindi le funzioni con abbreviazioni mnemoniche: una riga AWL è un'istruzione.

 

Gli operandi possono essere:

  • E Ingressi Interfacce da processo a controllore

  • A Uscite Interfacce da controllore a processo

  • M Merker Memoria per risultati binari intermedi

  • D Dati Memoria per risultati numerici intermedi

  • T Temporizz. Memoria per attuare temporizzazioni

  • Z Contatori Memoria per attuare conteggi

  • P Periferia Interfaccia da processo a controllore

  • OB,PB,SB,FB,DB Blocchi Ausili per strutturare il programma

 

Nella programmazione a lista di istruzioni si fa uso di parentesi; le principali istruzioni, utilizzate   nella forma fissa istruzione-operando, sono:

  • U AND UN NAND O OR ON NOR S SET (di una variabile, di un flag, di un tempo, di un contatore)

  • R RESET (di una variabile, di un flag, di un tempo, di un contatore) = Assegnazione

  • Caricamento

  • T Trasferimento

  • SI Attivazione di un tempo come impulso (monostabile con uscita a 1 a partire dall'attivazione del segnale di ingersso per un tempo Tx, quindi uscita a zero)

  • SE       Attivazione di un tempo come ritardo all'inserzione (monostabile con uscita ancora a 0 a partire dall'attivazione del segnale di ingresso per un tempo Tx, quindi se l'ingresso è ancora attivo, l'uscita va a 1)

  • SA       Attivazione di un tempo come ritardo alla disinserzione (monostabile con uscita a 1 per un tempo Tx dopo che l'ingresso è andato a 0)

  • ZV Conteggio in avanti di un contatore (+1 se l'ingresso è a 1)

  • ZR Conteggio all'indietro di un contatore (-1 se l'ingresso è a 1)

  • !=F Confronto su uguale (ACC1=ACC2?)

  • ><F Confronto su disuguale (ACC1><ACC2?)

  • > F Confronto su maggiore (ACC2>ACC1?

  • < F Confronto su minore (ACC2<ACC1?)

  • + FSomma (ACC1+ACC2)

  • - FSottrazione (ACC2-ACC1)

 

Le costanti di tempo per i temporizzatori possono essere espresse nel modo seguente:

KT xxx.y dove            

KT sta ad indicare che si tratta di una costante di tempo
xxx è il numero espresso in secondi
y è il fattore di scala

y=1 0.1

y=2 1

y=3 10

y=4 100

 

 

Per realizzare, ad esempio, la semplice funzione booleana (A1.0) = (E0.0)&(E0.1) + (E0.2)&(E0.3) nota: A=uscita E=ingresso si farà:

 

U

E0.0

Nota:

U = AND,  O = OR

U

E0.1

 

 

O

 

 

 

U

E0.2

 

 

U

E0.3

 

 

=

A1.0

 

 

 


Uso di timer e contatori

Funzioni di temporizzazione con linguaggi tipo AWL.

Un controllore SIMATIC possiede temporizzatori interni con diverse funzioni: ad esempio ritardo all’inserzione o alla disinserzione.. Sulla scorta di due esempi, “l’avvio di un tempo quale impulso” ed il “ritardo all’inserzione”, conosceremo più da vicino alcune di queste funzioni di temporizzazione.

Usiamo la funzione di temporizzazione ritardo all’inserzione “SE” quando sussiste la seguente problematica: un ingresso deve attivare un’uscita con un certo ritardo (es. 7 secondi) e lasciarla attivata finchè l’ingresso porta il segnale “1”. Nel seguente diagramma è rappresentata graficamente tale situazione:

Nella lista istruzioni  dovremo impiegare l’operazione “SE”, per l’avvio di un tempo quale ritardo all’inserzione. Con “KT” stabiliremo quanto tempo deve passare prima che il temporizzatore “T2” porti il segnale ad “1”.

Pertanto si ricava la seguente lista istruzioni:

U E 0.2

L KT 70.1

SE T2

U T2

=A 1.3

 

 In altre parole appena attiviamo l’ingresso E 0.2 lasciandolo attivato, avviamo il ritardo all’inserzione; con l’istruzione “kt 70.1” abbiamo definito un ritardo di 70*0.1s=7sec. Le due istruzioni “L KT 70.1” e “SE T2” fanno sì che il temporizzatore T2 fornisca un segnale “1” dopo 7 secondi dall’attivazione dell’ingresso E 0.2, purchè l’ingresso rimanga attivato almeno per quel tempo, quindi se l’ingresso rimane attivato per più di 7 secondi, l’uscita A 1.3 si attiva dopo 7 secondi, altrimenti non si attiva.

Impieghiamo la funzione di temporizzazione avvio di un tempo quale impulso ”SI” quando si presenta il seguente quesito: un’uscita deve sempre attivarsi quando un determinato ingresso porta il segnale “1” e deve rimanere attivata finchè persiste il segnale “1” all’ingresso, però al massimo, per un tempo prestabilito (es. per 40 secondi). Il diagramma temporale illustra chiaramente tale situazione:

La lista istruzioni AWL risulta questa:

 U E 0.1

 L KT 40.2

SI T1

U T1

= A 1.2

Praticamente con l’ingresso E 0.1 avviamo il temporizzatore; le due istruzioni successive “ L KT 40.2 “ e ” SI T1” fanno sì che il temporizzatore T1, una volta avviato, funzioni per 40 secondi sempre che all’ingresso E 0.1 sia presente per tutto quel tempo il segnale “1”; finchè il temporizzatore è in funzione, l’istruzione “U T1” fa in modo che l’uscita A 1 sia attivata.



 

FUP

Lo schema logico (FUP) rappresenta il programma come se venisse realizzati mediante circuiti digitali identificati secondo la simbologia standard ANSI/IEEE Std.91(vd. Appendice). In prativa si procede a una programmazione con blocchi grafici. Per realizzare, ad esempio, la semplice funzione booleana vista sopra

(A1.0) = (E0.0)&(E0.1) + (E0.2)&(E0.3) si farà:



 

KOP

Programmazione con simboli grafici come in uno schema funzionale. Lo schema a contatti (KOP), il più classico linguaggio per PLC, rappresenta il programma in forma grafica, utilizzando le connessioni serie e parallelo, secondo un ipotetico flusso di corrente che va da sinistra a destra (ladder). Questo tipo di programmazione è il piu’ vetusto, molto legato alla cultura degli addetti ai lavori perché fornisce un modello equivalente allo schema elettromeccanico. I primi PLC si potevano programmare esclusivamente in linguaggio ladder. Il linguaggio ladder fornisce una descrizione a contatti delle funzioni logiche da implementare, in accordo a come si era soliti documentare le logiche implementate a relais (linguaggio orientato al personale di formazione elettrotecnica): il programma consta di più segmenti formati ciascuno da una fila di elementi di base (contatti, bobine,…) dove si ipotizza un flusso di corrente da sinistra a destra. Per realizzare la solita semplice funzione booleana si farà:

 E0.0

E0.1

 A1.0

nota: A=uscita E=ingresso

 ] [

] [

( )

 

E0.0

E0.1

 

 

] [

] [

 

 

 

Quale è la migliore metodologia? Dipende da cosa si vuole fare. Il Ladder (KOP) è potente nello schematizzare reti combinatori, reti sequenziali, varie combinazioni IO-Merker…, idoneo per rappresentazioni di schemi a contatti. AWL è il tipico linguaggio simbolico, quasi un assembler semplificato, adatto a effettuare operazioni complesse sui dati (trasferimenti di blocchi..), ad implementare algoritmi, per realizzare funzioni matematiche. FUP rappresenta la classica programmazione attraverso schemi funzionali rivolta a personale di estrazione elettronica. Tutti e tre questi linguaggi sembrano comunque adatti alla rappresentazione di funzioni semplici e quindi trovano vasta applicazione nei PLC compatti e espandibili.

Si ricorda che i PLC vengono programmati mediante appositi terminali o più semplicemente dei PC: il programma viene scritto, compilato e, dopo averne eventualmente simulato il comportamento, viene scaricato nel PLC e memorizzato su memoria permanente (EEPROM o RAM con batteria).

 



 

Problemi di Progettazione

 

Introduzione

La progettazione di un’automazione è una attività ingegneristica molto complessa che spazia in vari campi e presuppone una buona conoscenza di varie discipline, non solo di tipo tecnico. Per affrontare il tutto in modo efficace ed efficiente è indispensabile attuare una metodologia di progettazione che possa guidare, in modo chiaro e coordinato, tutte le figure tecniche coinvolte in questo processo. Di seguito verranno vagliate le principali problematiche da affrontare durante la progettazione e verrà proposta una semplice metodologia di progettazione analizzando i vari passi che la compongono.

 

Problematiche da affrontare

Le problematiche da affrontare in fase di progettazione sono molteplici ma si possono raggruppare in quattro gruppi fondamentali: le problematiche elettriche/elettroniche e impiantistiche, quelle di tipo informatico, quelle legate alle comunicazioni con altri sistemi e quelle relative alla sicurezza.

 

Problematiche elettriche, elettroniche e impiantistiche.

Lo schema di seguito mostra le principali problematiche in questo ambito.

Per quanto riguarda la parte di potenza, cioè quella che fornisce potenza ai motori dell’impianto, la problematica principale è quella di effettuarne il dimensionamento. Questo significa decidere, per ciascun motore, il coordinamento fra le apparecchiature di comando e protezione in modo da garantire che eventuali cortocircuiti o sovraccarichi non danneggino l’impianto. Per esempio nel tipico caso di un motore trifase con avviamento diretto si dovranno scegliere il teleruttore (che è come un relè di potenza in grado di commutare le 3 fasi che alimentano il motore), il dispositivo magnetotermico di protezione e la sezione dei cavi elettrici di collegamento. Per questa scelta ci si avvale di tabelle di coordinamento, in genere fornite dagli stessi costruttori, coadiuvati da quanto indicato dalle normative di riferimento per l’equipaggiamento elettrico. Lo stesso discorso vale anche per i motori a velocità variabile solo che in questo caso occorre attuare particolari accorgimenti anche per la protezione dell’azionamento nel suo insieme. Per finire è indispensabile effettuare la scelta del dispositivo di protezione e sezionamento dell’intero impianto elettrico facendo in modo che la sua soglia di intervento per un cortocircuito (cioè il limite in Ampere oltre il quale sgancia, chiamato soglia di protezione magnetica) sia inferiore alla massima corrente sezionabile dai dispositivi di protezione a valle (chiamato potere di interruzione). Anche in questo caso si è pesantemente condizionati da quanto imposto dalle normative di riferimento e occorre vagliare attentamente i dati tecnici dei dispositivi usati.

 

 

Altra problematica da affrontare è la scelta dell’architettura del PLC da usare. Abbiamo già trattato questo argomento nel capitolo 4.2 e dovrebbero essere chiare le variabili in gioco. In poche parole occorre scegliere il tipo di PLC (compatto o espandibile), il tipo di CPU, il numero e la tipologia dei moduli, ecc.

Per ultimo occorre considerare i cablaggi, cioè i cavi di collegamento, sia all’interno del quadro elettrico di comando sia fra il quadro e l’impianto. Anche qui le normative sono molto rigorose e ci indicano la sezione da utilizzare, la massima caduta di tensione ammissibile, il colore dei fili e la loro identificazione, il tipo di isolante, la tipologia delle condutture che possono essere usate per il passaggio dei cavi e il loro grado di riempimento, ecc. Deve essere prestata particolare attenzione ai cavi di collegamento verso apparecchiature che emettono (per esempio un inverter per la regolazione di velocità di un motore) o sono influenzate da fenomeni elettromagnetici (per esempio un encoder che rileva la posizione di un asse). Questo ambito viene coperto da una opportuna normativa che fissa i limiti ammissibili per quanto riguarda le emissioni e le immunità ai fenomeni elettromagnetici. Perché sia rispettata, non è sufficiente inserire filtri sulle sorgenti dei disturbi, ma è indispensabile che il cablaggio venga realizzato in maniera opportuna. Per esempio devono essere utilizzati cavi schermati per il collegamento dei dispositivi critici e devono essere diversificate le condutture per i cavi in funzione della tipologia (disturbanti o soggetti ai disturbi).

 

Problematiche relative alla sicurezza.

Lo schema di seguito mostra le principali problematiche in questo ambito. Visto quanto anticipato al sottoparagrafo precedente, dovrebbe essere già chiara l’importanza che hanno le normative, soprattutto quelle legate alla sicurezza degli impianti, nel processo di progettazione.

Al giorno d’oggi è impensabile ignorare le disposizioni in materia di sicurezza e la conoscenza delle normative a riguardo deve far parte dell’indispensabile bagaglio culturale di qualsiasi progettista, allo stesso livello delle conoscenze di carattere tecnico. Data la vastità dell’argomento, noi ci limiteremo a fornire alcune sommarie indicazioni. Innanzitutto occorre dire che la Comunità Europea ha emanato alcune direttive, che gli stati membri hanno tutti recepito, volte a unificare tutte quelle disposizioni in materia di sicurezza che valevano solo a livello dei singoli stati. Così facendo si sono volute abbattere tutte le barriere a livello tecnico che impedivano una libera circolazione dei materiali (e quindi anche di impianti e macchinari) in ambito europeo. Questo significa che un produttore italiano, applicando le normative unificate, può esportare senza problemi in tutta la Comunità Europea senza dover conoscere, come accadeva in precedenza, tutte le normative interne ai singoli stati; per indicare che un prodotto rispetta le norme unificate è sufficiente marcarlo con il noto simbolo CE. Nel campo dell’automazione le principali direttive emanate sono riportate nella seguente tabella.

Codice

Tipo

Descrizione

73/23/CEE 93/68/CEE

LVD

Direttiva sui materiali in bassa tensione (cioè < 1000V).

89/336/CEE 92/31/CEE

EMC

Direttiva sulla compatibilità elettromagnetica.

89/392/CEE 91/368/CEE 93/44/CEE

MD

Direttiva macchine.

 

Queste direttive definiscono il campo di applicazione, i requisiti essenziali per la progettazione e le procedure per la certificazione e la marcatura e si appoggiano alle norme armonizzate per l’interpretazione tecnica dei requisiti essenziali di sicurezza. Le norme armonizzate si suddividono in tre tipologie (indicate rispettivamente con A, B e C): quelle di tipo generale che affrontano i concetti generali e i principi di progettazione (per esempio per la MD sono le EN292), quelle che affrontano aspetti specifici per la sicurezza (per esempio la EN418 che tratta i dispositivi di arresto di emergenza) e quelle che trattano le norme di sicurezza per uno specifico prodotto (per esempio la EN775 che si occupa dei robot industriali). Le principali norme armonizzate che interessano la parte elettrica ed elettronica di un impianto sono riportate nella tabella seguente (in realtà ne esistono tante altre...).


 

BIBLIOGRAFIA

A. Kochan, D. Cowan, "CIM: CARATTERISTICHE E APPLICAZIONI", Clup.

 

C. Celati, "PLC: PROCESSI, SISTEMI, AUTOMI", Hoepli.

 

G. Ortolani, E. Venturi, "SCHEMI E APPARECCHI NEGLI IMPIANTI ELETTRICI", Hoepli.

 

Cataloghi e manuali SIEMENS

 

L.Ferrarini,L.Mezzalira, “STANDARD DI PROGRAMMAZIONE PER PLC: IEC1131-3”, Automazione e strumentazione-giugno 1999.