• Non ci sono risultati.

6.1 LOGICA CABLATA E LOGICA PROGRAMMATA

N/A
N/A
Protected

Academic year: 2021

Condividi "6.1 LOGICA CABLATA E LOGICA PROGRAMMATA "

Copied!
37
0
0

Testo completo

(1)

90

Capitolo 6

SISTEMA DI CONTROLLO

In questo capitolo vengono illustrati i principali vantaggi dell'impiego nell'automazione del sistema di controllo.

6.1 LOGICA CABLATA E LOGICA PROGRAMMATA

Un sistema progettato per automatizzare una macchina o un impianto è costituito da tre parti essenziali:

ingressi;

unità di elaborazione;

uscite.

Gli ingressi e le uscite svolgono prevalentemente il compito di adattare i segnali elettrici che provengono dall'impianto e quelli che vanno a comandare gli apparati azionatori.

Il controllo delle condizioni che consentono la sequenza di attivazione a organi che costituiscono la macchina è eseguito dall'automatismo, identificabile con la sezione di elaborazione. E' possibile realizzare un automatismo con componenti elettromeccanici (relè, temporizzatori) oppure utilizzando circuiti statici, cioè circuiti elettronici a piccola e media scala di integrazione che realizzano le funzioni logiche fondamentali (AND, OR, NOT), le funzioni di conteggio, addizione e memorizzazione.

In base alla tecnologia adottata si parla di:

sistema con logica cablata (di tipo elettromeccanico);

sistema con logica cablata statica (di tipo elettronico).

Le reti di questo tipo sono reti combinatorie cioè reti in cui il valore che assume l'uscita (o

le uscite) in un certo istante è funzione soltanto del valore che in quell'istante assumono gli

ingressi.

(2)

Negli ultimi anni c'è stata una tendenza a sostituire i sistemi con logica a relè con i sistemi a logica statica. I principali motivi che hanno spinto verso questa innovazione sono i seguenti:

i sistemi produttivi richiedono prestazioni sempre più sofisticate e ciò imporrebbe un aumento del volume e della complessità della sezione di elaborazione a causa del maggiore ingombro dei circuiti elettromeccanici rispetto a quelli statici.

i relè hanno una durata limitata nel tempo e se il numero di commutazioni è elevato possono usurarsi rapidamente; mentre i componenti statici, non avendo organi meccanici in movimento non risentono praticamente dei fenomeni di usura.

il tempo di commutazione dei relè è elevato rispetto ai commutatori statici.

l'impiego dei circuiti a relè è molto dispendioso e poco pratico quando bisogna realizzare funzioni complesse come il conteggio, la temporizzazione, la memorizzazione.

Ciononostante i circuiti a relè presentano anche alcuni vantaggi quali:

affidabilità buona quando non è richiesto un elevato numero di commutazioni;

alimentazione che non richiede particolari requisiti;

ottima immunità ai disturbi;

manutenzione e ricerca dei guasti che non necessitano di strumentazione particolare e costosa, né di personale particolarmente specializzato.

Tuttavia i sistemi a logica cablata, sia statici che elettromeccanici, hanno il grosso svantaggio di offrire scarsa flessibilità a eventuali modifiche della funzione logica da implementare.

Si tenga ben presente che molte volte occorre apportare modifiche a causa di varianti od estenzioni del progetto iniziale, sia per errori o lacune evidenziate in sede di primo impiego della macchina o dell'impianto sia per ampliamento delle funzionalità dello stesso. Ogni variazione al progetto comporta una modifica del cablaggio. Nel caso di circuiti statici integrati le cui connessioni sono realizzate con circuiti stampati, una modifica al cablaggio non è assolutamente una cosa facile da realizzare.

Gli svantaggi derivanti da un sistema rigido come quello a logica cablata sono poco sentiti

nelle produzioni di serie, dove non si richiedono modifiche notevolo né in fase di messa in

servizio né in fase operativa. Oggigiorno però lo sviluppo di un progetto pesa molto

(3)

rispetto a tutti gli altri fattori di costo, per cui la scarsa flessibilità dei sistemi cablati si fa sentire anche quando le varianti al progetto iniziale sono di piccola entità.

Per ovviare alle suddette problematiche sono state ricercate soluzioni che impiegano apparecchiature molto simili ad un elaboratore.

Un elaboratore è uno strumento che esegue una serie di comandi in squenza che sono stati precedentemente scritti nella memoria elettronica dell'elaboratore stesso.

L'insieme delle istruzioni che fanno si di ottenere la funzione richiesta costituisce il programma applicativo.

Risulta quindi evidente che, disponendo di uno strumento in grado di realizzare le principali funzioni logiche richieste per la conduzione di una macchina o di un processo secondo un determinato programma memorizzato, ci dia la possibilità di modificare un intero ciclo produttivo, anche in fase operativa, semplicemente cambiano opportune righe di codice.

L'innovazione di questi sistemi rispetto ai classici sistemi di automazione è rappresentata

dalla programmabilità. L'impiego del PLC ha contribuito al diffondersi della dizione

logica programmata, che va a contrapportsi a quella di logica cablata.

(4)

6.2 IL PLC

Il termine PLC è l'acronimo dell'inglese Programmable Logic Controller (Controllore Logico Programmabile).

Il termine "logico" è un pò riduttivo delle potenzialità del PLC perchè mette in evidenza solo una parte delle prestazioni che questo può fornire: i PLC , oltre alle funzioni strettamente logiche (AND, OR, NOT etc.) sono in grado di eseguire conteggi, temporizzazioni, comparazioni, calcoli numerici, ed altre operazioni di manipolazioni di dati in formato bit, byte, word (come ad esempio operazioni di SHIFT, TEST su BIT, ed altre).

I più evoluti tra essi oramai possono essere paragonati a dei veri e propri Personal Computer, per cui si potrebbe anche chiamarli IPC (Personal Computer Industriali).

Una definizione abbastanza adeguata di PLC è la seguente:

"Un PLC è un dispositivo o sistema digitale elettronico che utilizza una memoria programmabile per memorizzare informazioni o istruzioni, atte a realizzare specifiche funzioni, finalizzate al controllo di sistemi combinatori e sequenziali per la gestione di macchine e processi, quali: operazioni logico-aritmetiche, temporizzazioni, conteggi, comparazioni, codifiche, decodifiche".

In altre parole, un PLC può essere definito come uno speciale elaboratore, di tipo industriale, avente cioè caratteristiche ben precise che gli consentono di lavorare con assoluta affidabilità in un ambiente difficile e gravoso, come può esserlo un ambiente industriale, per la presenza notevole di disturbi elettrici, vibrazioni, ampie variazioni di temperatura ed umidità, polveri etc.. Il PLC è stato concepito per risolvere problemi di controllo ed automazione e che si differenzia dal PC soprattutto per quanto riguarda il linguaggio di programmazione che non deve essere particolarmente complesso, per far si che possa essere utilizzato anche da tecnici che non hanno conoscenze orientate all'elettronica ed all'informatica, inoltre deve essere molto versatile per l'interfacciamento con i dispositivi esterni.

6.2.1 CAMPO DI UTILIZZO DEI PLC

La necessità dell'industria di produrre a "qualità costante" e sempre più elevata, di rendere

flessibile la capacità produttiva e migliorare la produttività per poter essere competitiva

nelle attuali condizioni di mercato, spinge verso un'automazione che interessa tutti i livelli

del processo produttivo. Si va cioè verso la "fabbrica automatica" ed il PLC sta assumendo

(5)

in quest'ultima il ruolo di componente fondamentale. Non esiste ormai settore di produzione, trasformazione o controllo in cui non si trovano o non siano possibili applicazioni del controllore a logica programmabile.

I PLC delle ultime generazioni non hanno più soltanto le caratteristiche originali di semplici "sequenziatori" , ma stanno assumendo quelle di "calcolatori di processo" con compiti di controllo e supervisione del processo produttivo visto che è possibile dotarli della possibilità di comunicare con altri PLC e PC ed inoltre presentano delle interfacce utente sempre più sofisticate.

6.2.2 ARCHITETTURA DI UN PLC

Un PLC è costituito fondamentalmente da cinque parti (vedi figura 6.1):

▪ CPU, (Central Processin Unit), ed è il "cervello" del sistema, elabora le informazioni che gli consentono di prendere le decisioni in base alle logiche presenti nella programmazione;

▪ Area di MEMORIA, è il supporto fisico dove sono registratele istruzioni che costituiscono il programma applicativo e i dati necessari per funzioni ausiliarie;

▪ Area di INGRESSO, riceve i segnali elettrici, analogici o digitali, provenienti dall'impianto;

▪ Area di USCITA, riceve i segnali prodotto dall'elaboratore e li adatta per comandare con potenze adeguate i vari organi attuatori;

▪ BUS, permette la comunicazione tra le varie aree appena descritte.

(6)

Figura 6.1: L'hardware di un PLC

6.2.2.1 LA CPU (UNITA' CENTRALE DI UN PROCESSO)

La CPU, Central Process Unit o Unità Centrale, costituisce l'intelligenza del PLC. Essa legge lo stato dei segnali di ingresso provenienti dalla macchina da controllare ed esegue in sequenza le istruzioni registrate in memoria. In base ai risultati dell'elaborazione provvede ad aggiornare lo stato delle uscite del sistema (vedi figura 6.2).

Le primc CPU erano costruite cablando molti componenti discreti; oggi sono state sostituite dal microprocessore, che ha notevolmente migliorato le prestazioni di velocità e potenza di elaborazione ed ha drasticamente ridotto l'ingombro. Lo scambio di informazioni tra il microprocessore e le sezioni I/O e di memoria avviene mediante la trasmissione, su una chiamata BUS, di una parola alla volta, costituita da un certo numero di bit; ad esempio 4,8,16,32 da qui la dizione di microprocessore a 4,8,16,32 bit.

La figura 6.2 mostra il flusso delle operazioni che vengono eseguite per ogni ciclo di clock

del PLC. Inizialmente viene letto lo stato dei segnali di ingresso provenienti dall' impianto

da monitorare e controllare; successivamente vengono eseguite le istruzioni registrate in

memoria e in base ai risultati logici dell'elaborazione si provvede ad aggiornare lo stato

delle uscite del sistema.

(7)

Figura 6.2: Flusso delle operazioni che vengono eseguite per ogni ciclo di clock del PLC

6.2.2.2 MEMORIA

Normalmente si intende per memoria del PLC solamente la memoria che contiene il programma applicativo. In realtà in un PLC la memoria è suddivisa in diverse zone, ciascuna adibita a compiti differenti. Anche se le soluzioni adottate dai costruttori sono molto diverse tra loro, si può in generale considerare la memoria suddivisa nelle seguenti parti (vedi figura 6.3):

memoria per il programma utente;

memoria per le funzioni interne;

memoria per lo stato degli ingressi e delle uscite;

memoria per il software di sistema (sistema operativo).

(8)

Figura 6.3: Memoria del PLC suddivisa nelle varie aree

La quantità di memoria disponibile per contenere il programma utente ed i dati varia a seconda del modello e della casa costruttrice del PLC.

L'estenzione della memoria è misurata in K words, dove K è l'abbreviazione di kilo; in questo ambiente, anziché 1000 vale 1024 (2^10). Una word è composta da 16 bit. Quando un costruttore indica una memoria massima di 8K significa 8 x 1024 words, la quantità di memoria coincide con il numero di istruzioni inseribili in memoria.

MEMORIA PER IL PROGRAMMA UTENTE

La memoria per il programma utente contiene le istruzioni che costituiscono il programma. Esse sono registrate in memoria una dopo l'altra, opportunamente codificate in una sequenza di bit. La CPU legge ed esegue ciascuna delle istruzioni seguendo un ciclo di scansione che parte dalla prima istruzione fino all'ultima, per poi ricominciare da capo.

Questa memoria è di tipo RAM di solito realizzata con tecnologia CMOS. Essendo una

memoria volatile è necessario salvaguardare il contenuto in caso di mancanza improvvisa

di tensione; per questo motivo è prevista un'alimentazione supplementare con una piccola

batteria tampone.

(9)

MEMORIA PER LE FUNZIONI INTERNE

La memoria per le funzioni interne è ancora una memoria indirizzabile dall'utente ma che contiene i dati necessari all'elaborazione logica e alle funzioni ausiliarie e i risultati intermedi prodotti da operazioni aritmetiche e booleane.

Ad esempio, nel normale funzionamento di un PLC può essere necessario non trasferire direttamente in uscita il risultato di una funzione logica, ma immaginare tale valore in un bit di memoria per poterlo utilizzare come variabile di ingresso in altre equazioni logiche.

Lo stato di questo risultato intermedio è detto bit interno di immagazzinamento, flag, merker, bibina interna, coil. I risultati intermedi di espressioni aritmetiche sono costituiti da parole interne, cioè da una serie di bit organizzati a gruppi di 4, 8, 16, 32.

I PLC dispongono di funzioni standard come i temporizzatori, i contatori e i registri a scorrimento (shif register) che sono di grande aiuto nella programmazione di sistemi di controllo. I valori numerici relativi a queste funzioni, per esempio il numero che esprime il tempo in una funzione logica di ritardo, oppure il numero che rappresenta il valore massimo da conteggiare, devono essere memorizzati in una parte della memoria per le funzioni interne. Anche questa memoria è di tipo RAM CMOS, con batteria tampone.

MEMORIA PER LO STATO DEGLI INGRESSI E DELLE USCITE

Una zona di memoria del PLC è riservata agli ingressi e alle uscite. Questa zona ha una allocazione di tipo statico, cioè i dati I/O sono registrati sempre negli stessi indirizzi;

questo a differenza dei programmi utente e dei dati per funzioni interne che sono allocati dinamicamente e cioè nelle zone di memoria che di volta in volta sono libere. In questi indirizzi viene registrata all'inizio di ogni ciclo di scansione un'immagine dello stato degli ingressi; in base al loro valore e alla funzione logica voluta dal programma utente è aggiornata la zona che contiene l'immagine delle uscite.

Il valore di uno stato di ingresso o di uscita è molte volte di tipo on-off. Per leggere con

facilità lo stato di un ingresso o per comandare un'uscita i PLC sono progettati con un

hardware opportuno, che consente di indirizzare singolarmente ogni bit della memoria

immagine di I/O.

(10)

MEMORIA PER IL SOFTWARE DI SISTEMA

I controllori a logica programmabile sono dotati anche di una memoria non volatile di tipo ROM o EPROM, nella quale è memorizzato il sistema operativo, ciòè una serie di programmi definiti dal costruttore indispensabili per gestire il corretto funzionamento di tutto l'hardware.

Senza sistema operativo un controllore a logica programmabile così come qualsiasi calcolatore, non sarebbe altro che un insieme di circuiti elettronici senza vita.

Le funzioni principalidel sistema operativo sono:

diagnostica del sistema, intesa come segnalazione di guasti, presenza dell'alimentazione, ecc..

controllo della scansione e della durata del programma utente

caricamento dei programmi applicativi da dispositivi di programmazione esterni al controllore

pilotaggio di eventuali periferiche collegate al controllore programmabile attraverso interfaccia di comunicazione.

6.2.2.3 SEZIONI DI INGRESSO E USCITA: INPUT/OUTPUT (I/O)

Il PLC è un'apparecchiature fortemente orientata all'interfacciamento condispositivi industriali. Le sue sezioni di ingresso e uscita devono essere compatibili con una vasta gamma di segnali elettrici che vanno dai 5 Vdc ai 220 Vac, dai segnali digitali a quelli analogici.

La disponibilità di diverse soluzioni di I/O è uno degli elementi più importanti per valutare le prestazioni di un modello o di una marca di PLC; inoltre è un parametro che determina fortemente il costo finale della configurazione. I moduli di I/O, dovendo rispondere alle esigenze più diversificate, sono disponibili oramai per tutti i modelli di PLC in una vasta gamma con caratteristiche più o meno standard, inseribili in uno qualsiasi degli slot per l'I/O presenti nel rack.

UNITA' DI INPUT

Le unità di uscita possono essere sia analogiche che digitali, esse convertono i segnali

interni al PLC, derivanti dall'elaborazione del programma applicativo, in segnali da inviare

all'esterno, più precisamente alla strumentazione installata nell'impianto da controllare.

(11)

Un'unità di ingresso digitale converte i segnali binari di ON-OFF del processo al livello dei segnali interni del controllore, che tipicamente sono segnali elettrici TTL (0÷5 Vdc).

Lo stato dei segnali talvolta è visualizzato con LED verdi o rossi presenti sulla parte frontale della scheda.

Nel caso invece di ingressi analogici le schede possono acquisire sia segnali in corrente, che generalmente variano in un range 4÷20 mA, oppure segnali in tensione compresi tra 0÷10 V oppure ±10V.

Spesso le unità di ingresso sono caratterizzate da ingressi con separazione di potenziale a optoisolatori. Questo significa che esiste un disaccoppiamento elettrico tra i circuiti esterni e quelli interni, allo scopo di proteggere i circuiti elettrici del PLC da eventuali malfunzionamenti distruttivi legati al processo quali sbalzi di tensione o sovraccarichi di corrente.

Sono presenti sul mercato moltissime tipologie di schede realizzate con le più diversificate caratteristiche funzionali che le rendono ottimali per i più svariati impieghi; risulta quindi impossibile in questo ambito fare una panoramica esaustiva di ogni tipologia di scheda.

Sicuramente la caratteristica principale delle schede che distingue le une dalle altre è il numero di ingressi. Esistono infatti schede da 4, 8 ,16, 32 ingressi, ovviamente il numero degli ingressi deve essere selezionato in base alla strumentazione presente sull'impianto.

UNITA' DI OUTPUT

Come già descritto per le unità di input, anche le unità di output si dividono in due principali categorie: analogiche e digitali.

Esse hanno il compito di pilotare la strumentazione installata sull'impianto sulla base dei risultati dell'elaborazione del programma applicativo presente sul PLC.

Nel caso di schede digitali il segnale di uscita è generalmente di 24V e può raggiungere un valore di corrente al massimo di 0.5A; poiché questo valore è spesso insufficiente per pilotare adeguatamente la strumentazione non è raro vedere il canale di uscita del PLC pilotare un relè, la cui uscità a sua volta è collegata allo strumento sull'impianto.

Le schede di uscita hanno un numero di uscite che arriva fino a 32 mentre per le schede analogiche generalmente il numero di uscite per unità è di 4 oppure 8.

I PLC, dovendo coprire una vastissima gamma di campi applicativi, da semplici sistemi

logici per piccole macchine operatrici a complessi sistemi squenziali per l'automazione di

grandi impianti, sono stati diversificati secondo la capacità, intesa come il massimo

(12)

numero di punti di ingresso e uscita collegabiliad un'unica apparecchiatura. In base a questo parametro i PLC sono normalmente suddivisi in tre fasce:

Piccoli: da 0 a 128 I/O Medi: da129 a 512 I/O

Grandi: da 513 a 1024 I/O e oltre

Bisogna però stare molto attenti a non considerare il numero di I/O come unico fattore di importanza per un PLC; ci sono infatti anche altri parametri come la capacità di calcolo, la facilità di programmazione, la quantità di memoria, e altre ulteriori caratteristiche.

6.2.3 CONTROLLO DI UN PROCESSO CON IL PLC

Per poter controllare una macchina od un processo (a volte identificati con il termine campo), il PLC deve acquisirne lo stato istante per istante ed in base alle istruzioni scritte nella propria memoria, determinare se devono o meno essere apportate delle modifiche allo stato attuale delle uscite.

Per acquisire lo stato attuale del processo vengono collegati agli "ingressi" del PLC tutte quelle apparecchiature che possono fungere da "sensori" del sistema ("datori" di segnali) quali ad es.: pulsanti, finecorsa, fotocellule, interruttori, contatti ausiliari di relè, telerruttori, relè termici, sensori di pressione, temperatura, ecc.

Per "attuare" quanto è stato determinato dall'elaborazione del programma, alle uscite del

PLC sono collegate tutte quelle apparecchiature atte a realizzare quanto necessario per

l’esecuzione del processo (attuatori), che possono essere, a seconda di come viene

realizzato l'automatismo, di tipo pneumatico, oleodinamico od elettromeccanico od anche

misto, come ad es.: relè, telerruttori, elettrovalvole, lampade di segnalazione, suonerie,

cilindri pneumatici od oleodinamici, valvole elettropneumatiche etc.

(13)

Figura 6.4: Flusso dei segnali in ingresso ed uscita dal PLC

Come si è visto, il compito principale di un PLC è quello di acquisire informazioni e dati provenienti dal sistema controllato, elaborarli in base ad un programma, che quindi non è altro che una serie di istruzioni tramite cui viene definito come si dovrà comportare la macchina (processo) al verificarsi di eventi o situazioni ben definite, ed emettere, verso il sistema controllato, il risultato di tale elaborazione che costituisce ciò che va fatto in quel momento da parte degli organi preposti all'esecuzione del processo.

Per far ciò il PLC è dotato, oltre che di moduli d'ingresso e di uscita (I/O) , di un'unità centrale di elaborazione (CPU), che costituisce il cuore del sistema e sovrintende a tutte le operazioni necessarie al funzionamento del sistema, di memoria per memorizzare il cosidetto sistema operativo del PLC, il programma utente ed i risultati intermedi dell'elaborazione, di un alimentatore per alimentare tutte le varie parti costituenti il PLC ed infine di un sistema bus per permettere i collegamenti fra le varie parti che compongono il sistema.

Oltre a ciò, il PLC deve poter comunicare con il mondo esterno ed è quindi dotato della

possibilità di collegarsi con delle periferiche per permettere il dialogo uomo-macchina, per

comunicare con altri PLC, per permettere l'utilizzo di memorie di massa.

(14)

6.2.4 VANTAGGI DELL'USO DEL PLC

Il PLC presenta una serie di vantaggi, rispetto alla logica cablata realizzata con componenti elettromeccanici e pneumatici, che lo rendono sicuramente e fortemente competitivo; i più importanti di questi vantaggi sono :

maggiore economicità sia nella fase di realizzazione del sistema di comando sia nella fase di gestione dello stesso, in particolare riguardo ad eventuali ampliamenti e/o modifiche.

ampliamenti al sistema di comando possono essere fatti semplicemente "aggiungendo"

i componenti e limitandosi al loro collegamento fisico senza dover modificare quello delle altre apparecchiature.

modifiche al ciclo di automazione possono essere apportatesemplicemente intervenendo sul "programma" e lasciando inalterati i collegamenti fisici.

La tabella 6.1 riporta un raffronto tra la logica cablata e quella programmata evidenziandone i rispettivi punti di forza e debolezze delle due tecniche.

In conclusione, confrontando le varie voci della tabella precedente si può dedurre che al crescere della complessità delle funzioni che deve svolgere un apparato diventa sempre più conveniente la realizzazione in logica programmata rispetto a quella in logica cablata.

Tracciando l’andamento dei costi in funzione della complessità per entrambe le “logiche”

in un grafico ad assi cartesiani si potrebbe ottenere un andamento del tipo di quello

indicato nel grafico riportato in figura 6.5.

(15)

Tabella 6.1: Confronto tra logica cablata e logica programmata

Figura 6.5: Andamento dei consti in funzione della complessità dell’impianto

(16)

Si vede che per funzioni particolarmente semplici la logica cablata è economicamente conveniente mentre al crescere della complessità della funzione diventa più conveniente la logica programmata in cui il numero dei dispositivi che formano l’apparato cambia poco con il crescere della complessità.

Si vede un punto di incrocio in cui le due tecnologie sono equivalenti. Si deve tenere presente che questo punto di incrocio si sposta con il passare del tempo a favore della logica programmata a causa del continuo abbattimento dei costi dei dispositivi programmabili.

Facendo un esempio, immaginiamo di progettare un telefonino; se il telefonino dovesse

solo realizzare la funzione di rice-trasmissione non sarebbe giustificata la presenza al suo

interno di una logica programmata anche perché la sezione rice-trasmittente deve essere

fatta in logica cablata per motivi di velocità. Se però il telefonino deve anche contenere

una agenda con i numeri di telefono, un sistema per inviare gli SMS, videogiochi, allora la

presenza al suo interno anche di una logica programmata è indispensabile.

(17)

6.3 PLC E SOFTWARE UTILIZZATI 6.3.1 PLC SIEMENS E STEP 7

In commercio sono presenti PLC realizzati da molteplici case costruttrici, tra le più famose troviamo Siemens, ABB, Omron, Allen Bradley, Telemecanique.

Per questo lavoro si è optato per un PLC Siemens. La CPU scelta è una 315-2 PN/DP, un'unità centrale con 384 KB di memoria di lavoro, una interfaccia MPI/DP, due interfacce ETHERNET PROFINET, necssita di micro SD. In figura 6.6 è riportata l’unità centrale della Siemens.

Figura 6.6: Unità centrale SIEMENS

Dopodiché, con l'ausilio del software Simatic Step 7, è stata definita la cosiddetta configurazione hardware; ovverola cpu è stata corredata di tutte le schede di I/O, selezionate tra quelle compatibili con la cpu scelta, messe a dispozione dal software.

Per far ciò è stato necessario fare preventivamente un elenco dettagliato ed esaustivo di ogni singolo segnale, sia analogico che digitale, che il PLC viene chiamato a monitorare.

Solo a questo punto si è in grado di selezionare quante e quali schede sono necessarie per implementare il controllo sul nostro impianto.

Complessivamente le schede modulari necessarie da affiancare alla CPU sono:

n°6 schede di Ingressi Analogici codice: 6ES7 331-7NF10-0AB0

n°1 schede di Uscite Analogiche codice: 6ES7 332-5HF00-0AB0

n°2 schede di Ingressi Digitali codice: 6ES7 322-1BL00-0AA0

n°1 schede di Uscite Digitali codice: 6ES7 322-1BL00-0AA0

n°1 moduli di espansione ET200M codice: 6ES7-153-4AA01-0XB0

(18)

In figura 6.7 è riportata la configurazione hardware del nostro impianto.

Figura 6.7: Software SimaticStep 7 in cui si definisce la configurazione hardware

Come si può evincere dall'immagine si vede che nel nostro sistema sono presenti i quattro inverter utilizzati per regolare le portate d'acqua nelle linee acqua; i due misuratori e regolatori di flusso ad effetto coriolis installati sulle linee metano ed il modulo di espansione necessario in quanto le schede acquistate erano in numero troppo grande per risiedere in un unico rack.

La configurazione HW inoltre specifica quali sono gli indirizzi fisici di ciascun ingresso e ciascuna uscita, tali informazioni sono essenziali nella stesura del programma e servono inoltre per interfacciarsi con il programma di supervisione di cui parleremo nel seguito del testo.

6.3.2 IL SOFTWARE SIMATIC STEP 7

STEP 7 è il pacchetto di base utilizzato per configurare e programmare i sistemi di

automazione Simatic. Esso rappresenta parte integrante del software industriale ed è

utilizzato per applicazioni di dimensioni o complessità superiori per le quali è necessaria

ad esempio una programmazione con linguaggi evoluti o linguaggi di tipo grafico, oppure

è richiesto l'impiego di unità funzionali o di unità di comunicazione. Sotto STEP 7

possono essere utilizzati pacchetti software SIMATIC addizionali come ad. es. gli

Engineering Tools, strumenti che non saranno trattati in quanto non utilizzati per

implementare il software in esame.

(19)

I linguaggi di programmazione SIMATIC integrati in STEP 7 soddisfano la norma DIN-

EN 6.1131-3. Il software di base gira sulla maggior parte dei sistemi operativi Windows

ed è compatibile con la loro operatività grafica e orientata agli oggetti.

(20)

6.4 LINGUAGGI DI PROGRAMMAZIONE

Il software è l'elemento determinante per dare all'hardware del PLC quella flessibilità che i sistemi di controllo a logica cablata non possiedono. Infatti è sufficiente cambiare solamente il programma affinché una certa configurazione hardwre del PLC sia adattata a svolgere un compito di controllo diverso.

Il software che le aziende producono per i loro PLC si avvale quasi esclusivamente di linguaggi di programmazione specifici per le applicazioni di automazione, caratterizzando definitivamente il PLC come un calcolatore per il controllo industriale.

Il motivo per cui sono stati creati tali linguaggi sta nel fatto che nei linguaggi più ad alto livello, pur facilitando la stesura dei programmi essi non risultano adatti alle applicazioni di controllo, in quanto non esiste un rapporto immediato fra le istruzioni e l'azione del processo.

I linguaggi di programmazione dei PLC sono orientati ai problemi di automazione (sono di tipo POL, Problem Oriented Language) e utilizzano soprattutto istruzioni di logoca combinatoria (AND, OR, NOT), di caricamento e trasferimento di segnali di processo che operano sullo stato dei singoli segnali (elaborazione di bit) e funzioni standard di conteggio, temporizzazione e memorizzazione.

Nei modelli di classe medio-grande sono disponibili istruzioni che manipolano i dati organizzati in byte ed in word, tipicamente si tratta di istruzioni di caricamento e di confronto.

Quasi tutti i costruttori hanno diversificato i linguaggi per PLC proponendo tre rappresentazioni diverse, ciscuna applicabile in funzione della specificità del problema e della particolare esperienza professionale dell'utente. Le tendenze di mercato sono in ogni caso prevalentemente due.

Linguaggio KOP, noto anche come schema a contatti o ladder, esso ha una certa

somiglianza con gli schemi elettrici a relè. E' il primogenito tra i linguaggi utilizzati

dato che, inizialmente, il PLC andava a sostituire i quadri a logica cablata che

utilizzavano relè. Il linguaggio KOP consente all'utente di seguire in modo semplice il

flusso dei segnali tra sbarre collettrici, contatti, elementi complessi e bobine.

(21)

Linguaggio AWL, detto anche a lista di istruzioni, è un linguaggio di programmazione testuale vicino al linguaggio macchina; il programma assomiglia ad un listato Assembly. Quando si crea un programma in AWL, le singole istruzioni corrispondono in larga misura alle operazioni con le quali la CPU elabora il programma. Per facilitare la procedura di programmazione, AWL è stato ampliato con alcune espressioni di linguaggi avanzati (come per es. accessi ai dati strutturati e parametri di blocco).

Linguaggio FUP, è un linguaggio grafico di programmazione che rappresenta la logica mediante i box dell'algebra booleana. Esso consente inoltre di rappresentare funzioni complesse (ad es. le funzioni matematiche) direttamente in connessione con i box logici.

I linguaggi di programmazione KOP, AWL e FUP per S7-300/400 sono parte integrante del software di base.

Altri linguaggi di programmazione sono disponibili come software opzionali.

6.4.1 IL LINGUAGGIO KOP

Nel lavoro descritto in questo testo il software di controllo dell'impianto è stato scritto quasi esclusivamente in linguaggio KOP, vediamo nel dettaglio quali sono le sue caratteristiche principali.

Il linguaggio KOP, chiamato anche LADDER, è un linguaggio di tipo grafico ed è storicamente il primo che è stato adottato per programmare il PLC, in quanto consentiva una traduzione quasi immediata tra schemi funzionali di potenza e/o comando e programma per lo stesso. Spesso ci si riferisce ad esso con il termine “linguaggio a contatti”.

Nelle attuali versioni, molto evolute rispetto a quelle iniziali, gli elementi principali del linguaggio sono:

Elementi di tipo "elettrco":

Binari (o linee) di potenza (power rail);

Contatti elettrici NA o NC;

Bobine di uscita, chiamate anche "rele" o "coil";

Relè "interni" e "speciali".

(22)

Elementi di tipo "blocco funzione":

Contatori Temporizzatori

Funzioni matematiche, logiche, di trattamento dati, ecc.. ( Le tipologie disponibili

dipendono in larga misura dal tipo di PLC utilizzato )

(23)

6.5 STRUTTURA DEL PROGRAMMA

Il programma si articola in linee orizzontali dette segmenti o rung, che si sviluppano tra i due binari di potenza, sinistro e destro.

Ogni segmento inizia obbligatoriamente dal binario di potenza sinistro, mentre il collegamento col binario di potenza destro è spesso facoltativo (generalmente i software di programmazione effettuano di default questa connessione laddove è richiesta).

Ciascun segmento può contenere contatti, bobine, blocchi funzione, relè di uscita interni o speciali, ecc..

Analizziamo più nel dettaglio questi elementi.

I contatti sono in genere associati a dispositivi di ingresso, fisicamente connessi al PLC, come ad esempio pulsanti, interruttori, finecorsa, sensori di prossimità ecc..; ma possono anche essere riferiti ad altri elementi quali bobine di uscita, relè interni o blocchi. Ad ogni contatto viene associata una variabile binaria interna alla memoria del PLC che rappresenta lo stato elettrico del contatto stesso, ovvero ON oppure OFF.

Figura 6.8: Contatto NA

Figura 6.9: Contatto NC

I contatti possono essere di due tipi, rappresentati dai simboli grafici sopra riportati:

contatto Normalmente Aperto (NA): in esso la corrente circola quando il contatto viene azionato, mente quando è a riposo la corrente non circola.

contatto Normalmente Chiuso (NC): la corrente circola se il contatto è in condizioni

di riposo, quando esso viene azionato la corrente smette di circolare.

(24)

Le bobine (o relè) di uscita sono il modo più comune con il quale solitamente si termina un segmento di linguaggio ladder. Come si può notare dalla figura 6.9 esse hanno uno dei terminali collegato al binario di potenza destro, talvolta come nel caso del software della Siemens tale contatto è sottinteso, oppure viene effettuato in automatico dai software di programmazione.

La bobina posta al termine del segmento si attiva quando nel rung corrispondente circola corrente.

Generalmente le bobine vengono riferite o a uscite fisiche del PLC, in questo caso determinano mo stato del dispositivo di uscita corrispondente attraverso il quale viene comandato il relativo attuatore; oppure a relè o aree interne al PLC, in questo caso hanno la funzione di memorizzare il risultato dell'elaborazione di un determinato segmento di programma da utilizzare successivamente.

I contatti e le bobine sono sicuramente le istruzioni ladder più usate nella programmazione dei PLC, in quanto fanno riferimento rispettivamente a dispositivi di inpunt e di output che sono generalmente presenti in ogni impianto.

Vediamo adesso quali sono le regole che normalmente si utilizzano per la scrittura di rung con contatti e bobine.

In ogni segmento, che si ricorda iniziare sempre dal binario di potenza sinistro, può essere inserito, in teoria, un numero illimitato di contatti; tali contatti possono essere connessi tra loro in modo da ottenere le funzioni logiche AND o OR. Quando i contatti sono connessi in serie realizzano la funzione logica AND; mentre quando essi sono connessi in parallelo realizzano la funzione OR.

Ogni segmento termina con una sola bobina di uscita connessa al binario di potenza destro. Le bobine, contrariamente a quanto accade per i contatti, non possono essere collegate tra loro in serie, ma si possono inserire più bobine di uscita in parallelo in modo tale che esse possano essere comandate contemporaneamente nel medesimo segmento di programma.

Oltre a queste operazioni basilari il linguaggio KOP mette a disposizione del programmatore tutta una serie di funzioni che servono per completare operazioni più complesse; ad esempio esistono blocchi operatori per fare dei confronti, oppure delle assegnazioni; è altresì possibile impostare dei temporizzatori. Naturalmente sono presenti numerosi altri blocchi operatori, in questo testo sono riportati solamente quelli usati con maggiore frequenza; per un elenco esaustivo si rimanda al manuale.

Le figure 6.10 e 6.11 riportano una raffigurazione dei suddetti blocchi.

(25)

Figura 6.10: Alcuni dei blocchi operatori che consentono di effettuare confronti fra variabili

Figura 6.11: Blocco operatore che consente di fare assegnamenti e blocco temporizzatore

La figura 6.12 riporta a titolo di esempio come appare un programma scritto in linguaggio KOP o Ladder.

Figura 6.12: Estratto del programma scirtto in linguaggio Ladder

(26)

6.5.1 IL LINGUAGGIO AWL

Il linguaggio AWL o lista di istruzioni è il linguaggio più utilizzato dopo il KOP, esso offre maggiori potenzialità di programmazione. Andremo qui di seguito a menzionare le cue caratteristiche principali.

L'AWL fa uso di simboli, cioè di abbreviazioni mnemoniche, e di funzioni. I simboli sono spesso le iniziali del nome della funzione, in modo che sia agevole ricordare il significato.

Le case costruttrici non hanno unificato i simboli utilizzati, perciò il programmatore è costretto ad utilizzare abbreviazioni in tedesco, inglese, francese o italiano. Nel caso di PLC Siemens si utilizzano abbreviazioni dal tedesco.

Come anticipato prima, un programma scritto in linguaggio AWL è composto da una lista di istruzioni e assomiglia ad un listato assembly. La figura sotto riportata fornisce un esempio di come è strutturato un programma in AWL.

Un'istruzione è l'elemento più piccolo del programma ed è costituita da:

un'operazione che individua che cosa bisogna fare, ad esempio U (Und in tedesco, indica l'operazione logica AND) oppure O (Oder in tedesco indica l'OR logico)

un operando che indica il segnale sul quale bisogna operare. Per esempio E2.3 (E= Eingang, in tedesco significa ingresso)

Un operando è a sua volta costituito da:

una sigla dell'operando (o codice dell'operando) per esempio:

E= eingang = ingresso A= ausgang= uscita un parametro.

per esempio può indicare il numero dell'ingresso o dell'uscita interessato dall'operazione.

Le istruzioni AWL comunemente più utilizzate sono le seguenti:

U AND

UN AND negato O OR

ON OR negato

X XOR, or esclusivo

XN XOR negato

(27)

Si possono adoperare le seguenti operazioni per combinare espressioni a parentesi:

U( AND con diramazione

UN( AND negato con apertura parentesi O( OR con apertura parentesi

ON( OR negato con apertura parentesi X( OR esclusivo con apertura parentesi

XN( OR esclusivo negato con apertura parentesi ) chiusura parentesi

Si può terminare una stringa logica a bit unsando una delle seguenti operazioni:

= Assegnazione R Resetta S Setta

NOT Nega RCL

SET Setta RCL al valore logico 1 SAVE Salva RCL nel registro BIE

Altre operazioni rispondono ad una transizioni di fronte di salita:

FN Fronte di discesa FP Fronte di salita

A titolo di esempio si illustrano come vengono implementate in linguaggio AWL le operazioni AND , OR e OR esclusivo.

AND:

Figura 6.13: Esempio, in linguaggio AWL, di AND logico tra due variabili

(28)

OR:

Figura 6.14: Esempio, in linguaggio AWL, di OR logico tra due variabili

XOR:

Figura 6.15: Esempio, in linguaggio AWL, di XOR logico tra due variabili

L'aspetto di un programma scritto in linguaggio AWL ha il seguente aspetto (vedi figura

6.16).

(29)

Figura 6.16: Estratto dal programma nel PLC scritto in codice AWL

6.5.2 IL PROGRAMMA UTENTE

Il programma utente deve essere creato e caricato nella CPU. Il programma contiene funzioni necessarie per l'elaborazione dei vari compiti di automazione. I compiti del programma utente comprendono:

la definizione delle condizioni per il nuovo avviamento (avviamento a caldo) e il riavviamento della CPU (per esempio la predefinizione dei segnali con un determinato valore)

elaborazione dei dati di processo (p. es., combinazione di segnali binari, lettura e analisi di valori analogici; determinazione di segnali binari di uscita, emissione di valori analogici)

reazione agli allarmi

gestione anomalia intervenute durante la normale esecuzione del programma.

(30)

6.6 BLOCCHI NEL PROGRAMMA UTENTE

Il software di programmazione STEP 7 offre la possibilità di strutturare il programma utente, ovvero di suddividerlo in singole sezioni indipendenti, ottenendo i seguenti vantaggi:

i programmi di grandi dimensioni possono essere programmati in modo chiaro;

le singole parti del programma possono essere standardizzate;

l'organizzazione del programma viene semplificata;

le modifiche del programma si possono eseguire più facilmente;

il test del programma viene semplificato, poiché può essere eseguito per sezioni;

la messa in servizio viene facilitata.

Vi sono diversi tipi di blocchi che possono essere utilizzati all'interno di programmi utenti S7

6.6.1 BLOCCHI ORGANIZZATIVI: OB

I blocchi organizzativi (OB) rappresentano l'interfaccia tra il sistema operativo e il programma utente. Essi vengono richiamati dal sistema operativo e comandano l'elaborazione ciclica del programma su interrupt, il comportamento di avvio del sistema di automazione e la gestione degli errori. Programmando i blocchi organizzativi è possibile determinare il comportamento della CPU. I blocchi organizzativi determinano la sequenza (eventi di avvio) in cui verranno elaborate le singole parti del programma.

L'elaborazione di un OB può essere interrotta dal richiamo di un altro OB. È la priorità a stabilire quale OB può essere interrotto da un altro OB. Gli OB con priorità più alta interrompono quelli con priorità più bassa. L'OB 90 ha la priorità più bassa.

L'elaborazione ciclica del programma può essere interrotta mediante determinati eventi di

avvio (interrupt). Se sopraggiunge uno di tali eventi, il blocco appena elaborato viene

interrotto tra un comando e l'altro, e viene elaborato un altro blocco organizzativo

assegnato all'evento di avvio. In seguito, l'elaborazione ciclica del programma riprende dal

punto in cui è avvenuta l'interruzione. L'elaborazione ciclica del programma è

l'elaborazione "normale" nei controllori programmabili. Il sistema operativo richiama

ciclicamente l'OB1 e con esso avvia l'elaborazione ciclica del programma utente. La

programmazione di questa elaborazione avviene durante la scrittura del programma utente

con STEP 7 nell'OB1 e nei blocchi richiamati. L'elaborazione ciclica inizia non appena il

(31)

programma utente si è concluso senza errori. Possibili cause di interruzione possono essere:

interrupt o allarme comando di stop

mancanza di tensione di alimentazione

un errore di un dispositivo o del programma (gestita tramite ulteriori OB)

E' possibile ottenere il tempo di cilclo del programma premendo la combinazione di tasti Ctrl+D dalla schermata del Simatic Manager.

Il tempo di ciclo è il tempo richiesto dal sistema operativo per l'elaborazione del programma ciclico nonché di tutte le parti di programma che interrompono tale ciclo (per esempio elaborazione di altri blocchi organizzativi) e per le attività di sistema (per esempio Aggiornamento dell'immagine di processo).

Gli OB utilizzati nel nostro programma sono:

OB 1 blocco per l'elaborazione ciclica del programma;

OB 35 blocco organizzativo per schedulazione orologio;

OB 80 blocco per gestire gli errori di sincronismo, nel particolare errore di tempo;

OB 82 blocco per gestire gli errori di diagnostica;

OB 85 blocco per gestire errori di esecuzione del programma;

OB 86 blocco per gestione guasti del telaio di montaggio;

OB 100 blocco per gestire un nuovo avviamento (Avviamento a caldo);

OB 121 blocco per gestire errori di programmazione;

OB 122 blocco per gestire errori di accesso.

6.6.2 FUNZIONI

Le funzioni fanno parte dei blocchi programmati dall'utente. Consistono in blocchi di codice "privi di memoria". Vengono quindi sfruttate delle variabili temporanee memorizzate nello stack dei dati locali. Dopo l'elaborazione dell'FC, questi dati vanno perduti. Per la memorizzazione dei dati, le funzioni possono utilizzare blocchi dati globali.

Poiché a una FC non è abbinata alcuna memoria, è necessario indicarne sempre i parametri attualmente in uso. Inoltre ai dati locali di una FC non può essere assegnato alcun valore iniziale.

Questi dati locali sono definiti nell’interfaccia del Simatic illustrata in figura 6.17.

(32)

Figura 6.17: Dichiarazioni variabili all'interno della FC

Una FC contiene un programma che viene eseguito ogni qualvolta che l’FC viene richiamata da un altro blocco di codice. Le funzioni possono essere utilizzate per restituire un valore di funzione al blocco richiamante, ad esmpio funzioni matematiche, oppure per eseguire una funzione tecnologica come un singolo controllo con combinazione binaria.

Il campo IN contiene i dati della funzione in questione i quali verranno assegnati durante il richiamo della funzione stessa. Detto richiamo corrisponde al comando "CALL FC", in linguaggio SIEMENS AWL.

Il campo OUT invece conterrà i dati che vengono modificati nella funzione ed avranno poi influenza sullo sviluppo dell'algoritmo.

Il campo TEMP infine contiene i dati temporanei che interessano la FC stessa, verranno sovrascritti da quelli di una successiva FC. La sua dimensione massima viene impostata sul Simatic Configurator e solitamente si attesta sui 256 bytes.

Le FC presenti caricate nella CPU nel lavoro in esame sono:

FC2 SEQUENZA_AVVIO_HMI

FC3 SEQUENZA_AVVIO

FC20 INVERTERS

FC50 AUXILIARY_SERVICES

FC51 FC _INGEGNERIZZAZIONE

FC56 SECtoS5TIME

FC100 FC ANALOGICHE

FC101 FC_VALVOLE_ANALOGICHE

FC102 FC_VALVOLE_DIGITALI

FC103 FC_MOTORI

FC104 PID

(33)

FC106 UNSCALE FC107 AttivaOut FC108 MiniCoriflow FC109 PortateAgganciate FC110 CalcoloPortate

FC120 FC_MOTORE

FC121 FC_VALVOLA ANALOG

FC122 FC_VALVOLA_ONOFF

FC123 FC_ANALOGICA

FC124 VERIFICA_PID FC125 VERIFICA_PID_INT

6.6.3 BLOCCHI FUNZIONALI: FB

I blocchi funzionali fanno parte, come le FC, di blocchi programmati dall'utente. In questo caso però un blocco funzionale è detto "con memoria". Esso dispone di un blocco dati correlato come memoria (blocco dati di istanza). Sia i parametri che vengono trasmessi all'FB, sia le variabili statiche vengono memorizzati nel blocco dati di istanza. Le variabili temporanee invece, anche in questo caso, vengono memorizzate nello stack dei dati locali.

Al termine dell'elaborazione dell'FB, i dati memorizzati nel DB di istanza non vanno perduti, come invece accade a quelli memorizzati nello stack dei dati locali.

Per quanto riguarda questi blocchi in caso di accesso ai parametri viene utilizzata la copia del parametro attuale nel DB di istanza. Se nel richiamare un FB non viene assegnato un parametro di ingresso o se non viene scritto un parametro di uscita nel blocco, vengono ancora utilizzati i valori meno recenti presenti nel DB di istanza (DB di istanza = memoria dell'FB).

Diversamente dai blocchi funzionali FC ora nell’interfaccia di definizione dei dati locali è presente anche il campo STAT necessario per definire la struttura da assegnare al DB di istanza relativo alla FB considerata.

Nel nostro programma sono presenti le seguenti FB:

FB10 G120C

FB41 CONT_C

FB111 CalcoloPortata

(34)

6.6.4 BLOCCHI DATI GLOBALI: DB

I blocchi dati DB, Data Block, non contengono istruzioni di codice ma servono per la registrazione dei dati utente. Nei blocchi dati sono quindi compresi i dati con cui opera il programma utente. I blocchi dati globali servono alla registrazione di dati utente che possono essere usati da tutti gli altri blocchi. La struttura dei blocchi dati globali può essere stabilita liberamente.

Dalla figura 6.18, relativa alla DB12, si può osservare come appare al programmatore una DB. Essa è composta sostanzialmente un elenco di variabili, di cui è possibile selezionarne il tipo (booleana, reale, intero, ecc..) ed il valore iniziale.

E' possibile eventualmente inserire un breve commento utile al programmatore per ricordare il ruolo scelto per quella variabile qualora il numero delle variabili fosse troppo elevato e quindi risulterebbe proibitivo ricordare a memoria ogni singola variabile.

Figura 6.18: Esempio di una DB

Complessivamente nel programma sono state definite le seguenti strutture:

DB 1 VALVOLE DIGITALI

DB 2 VALVOLE ANALOGICHE

DB 3 ANALOGICHE

DB 4 MOTORI

DB 5 PID_DB

DB 6 ins_3-P1 DB 7 ins_3-P2 DB 8 ins_3-P3 DB 9 ins_3-P4

DB 10 DdMiniCorflow DB 11 SET_BOOL_HMI

DB 12 SET_ANALOG_HMI

DB 13 BOOL_HMI

(35)

DB 15 PortataFlangia DB 16 DB_Calc_Portata

DB 51 DIAG_STRUCT

DB 60 DIAG_PROFINET DB 61 DIAG_PROFIBUS

DB 70 SEQ_PROVA_ANALOG

DB 100 R2_PIC01 DB 103 ToHmiInverter DB 104 DBinverterCMD DB 105 FromHmiInverter DB 110 R2_FIC01

DB 111 R2_PIC02 DB 112 R2_FIC02 DB 113 R1_FIC02 DB 114 R1_FIC01 DB 115 R1_TIC04 DB 116 R3_TIC02 DB 117 R3_TIC03 DB 118 R3_TIC04 DB 119 R1_TIC05 DB 120 R3_PIC01 DB 121 R1_PIC06 DB 122 DB1_FI01 DB 123 DB1_FI02

Nel definire il tipo della variabile, oltre ai tipi standard ( BOOLEAN, REAL, INTEGER, ecc.. ), è possibile definire delle strutture che hanno la composizione che si rifà alle esigenze del programatore.

Nello STEP7 le strutture prendono il nome UDT (tipo dati definito dall'utente).

Come accade per altri linguaggi di programmazione, una struttura è definita da una serie di variabili che possono anche essere di tipo diverso.

A titolo di esempio (vedi figura 6.19) si riporta la composizione della UDT 3 che definisce

il tipo VALVOLA_ANALOGICA.

(36)

Figura 6.19: La UDT3 VALVOLA-ANALOGICA

Come si vede la UDT 3 è composta da variabili di tipo eterogenee, variabili reali, intere e booleane.

Nel software sono state definite le seguenti strutture:

UDT 1 PID

UDT 2 ANALOGICA_IN

UDT 3 VALVOLA_ANALOGICA

UDT 4 VALVOLA_ONOFF

UDT 5 MOTORE

(37)

6.7 S7 - PLCSIM - AMBIENTE DI SIMULAZIONE

Il software S7-PLCSIM consente di eseguire e testare i programmi utente su un controllore programmabile (PLC) simulato nel proprio PC.

La simulazione viene effettuata interamente a livello software (quindi internamente a STEP 7) il quale simula il comportamento di un PLC reale. Nel primo caso quindi non è necessario essere collegati ad alcun componente hardware (CPU od unità I/O).

Utilizzando il PLC S7 simulato l'utente può controllare e testare i programmi per le CPU S7-300 e S7-400. S7-PLCSIM mette a disposizione un'interfaccia molto semplice in cui controllare e modificare vari parametri del programma (ad esempio attivare e disattivare gli ingressi). Inoltre consente di utilizzare le diverse applicazioni di STEP 7 mentre si esegue il programma utente sul PLC simulato.

È quindi possibile usare tool quali esempio la tabella delle variabili (VAT) per controllare e modificare le variabili.

Questo strumento è di fondamentale importanza perché consente di testare le logiche di controllo e di individuare la maggior parte dei malfunzionamenti dovuti ad una errata programmazione; tutto ciò senza mettere in movimento nessun azionamento o alimentare alcun dispositivo. Nel rispetto quindi della massima sicurezza per l'impianto stesso.

Questo simulatore inoltre mette a disposizione utili tools che permettono, ad esempio, di accedere e monitorare le aree di memoria dove risiedono gli ingressi e le uscite, oppure ai registri interni del PLC simulato.

Analogamente alla CPU reale presenta varie modalità di funzionamento, ovvero RUNm

RUN-P e STOP. Da inoltre la possibilità di arrestare temporaneamente l'esecuzione del

programma applicativo all'interno della CPU senza modificare lo stato del programma.

Riferimenti

Documenti correlati

ritenuto, nelle more dell'attivazione delle nuova convenzione, attivare una proroga tecnica di 6 mesi fino al 30/09/2018 al fine di assicurare la continuità dei servizi di

[r]

Figura 7-22Provino posto

• Essendo (allora) la memoria di controllo molto più veloce della memoria centrale, portare funzionalità nella prima avrebbe migliorato le prestazioni della.. Calcolatori

Per ordinare ogni mazzo da 26 carte, l'abbiamo diviso in due mazzi da 13 carte l'uno, abbiamo ordinato ognuno dei due e poi li abbiamo fusi.. blablabla S: Ma così non si

 Infatti, sia il formalismo che la regola di inferenza che viene qui applicata (il Principio di Risoluzione) sono molto più simili ai convenzionali linguaggi di programmazione che

La dimostrazione del teorema del momento angolare (II equazione cardinale della dinamica), del secondo teorema di Konig, della disuguaglianza di Clausius, del principio

[r]