ESEMPI PRATICI PROGRAMMAZIONE PLC
GESTIONE LIVELLO SERBATOIO

Esempi pratici programmazione PLC: gestione livello serbatoio

Benvenuto nel mio laboratorio pratico di PLC! Oggi impariamo a programmare la gestione di un serbatoio, in particolare del livello di acqua al suo interno.

Come sempre allegato a questa lezione trovi il video con le procedure software in linguaggio ladder e la simulazione con il monitoraggio in un’apposita pagina del sistema HMI.

Novità automazione e plc

I compiti che il plc può svolgere sono tantissimi e possono essere diversissimi, del resto l’industria in cui operano queste apparecchiature va dal settore alimentare, a quello energetico, passando per il settore logistico, gas & oil e così via; insomma per un programmatore di controllori d’automazione le nozioni da imparare si può dire che sono infinite. Oggi vi propongo una semplice procedura per impratichirvi con il linguaggio ladder, soprattutto con le istruzioni logiche e i temporizzatori; vediamo di cosa si tratta.

Definizione della procedura da automatizzare.

Operiamo nel settore alimentare, e il cliente ci chiede di automatizzare la gestione del livello di acqua all’interno di un serbatoio. L’acqua dal serbatoio viene estratta e dosata costantemente per mezzo di una pompa, la cui portata è fissa.

Collegata al serbatoio abbiamo una tubazione di reintegro acqua e questo reintegro avviene azionando una valvola pneumatica.

All’interno del serbatoio abbiamo un misuratore di livello analogico che ci dice la percentuale di acqua presente nel tank stesso.

Il nostro compito è di garantire il dosaggio di acqua e quindi il livello sufficiente nel serbatoio, comandando la valvola di reintegro quando necessario.

Sappiamo che la portata di reintegro acqua è maggiore di quella della pompa, per cui quando apriamo la valvola, anche se la pompa è in marcia il livello nel serbatoio sale.

Conveniamo con il cliente che manterremo il livello d’acqua nel serbatoio tra il 25% e l’80%, inoltre egli chiede che la pompa di dosaggio si fermi se per qualsiasi motivo il livello all’interno del serbatoio scende sotto il 15%. In questo caso si deve segnalare un allarme di livello minimo e la pompa potrà riattivarsi solamente quando il livello dell’acqua supera il 20%.

Progettazione del software per il plc.

La prima operazione che facciamo è definire gli ingressi e le uscite del nostro PLC, eccole riassunte di seguito.

Un ingresso analogico che ci da un numero reale da 0 a 100 e indica il livello in percentuale nel serbatoio; questo livello ha a bordo uno scalatore di segnale integrato per cui la nostra variabile in ingresso è già in unità ingegneristiche, appunto percentuale.

Un’uscita digitale per azionare la valvola pneumatica di reintegro acqua.

Un’uscita digitale per azionare la pompa di dosaggio acqua.

Un’uscita digitale per accendere una lampada di segnalazione livello minimo.

Oltre a questo, il cliente richiede la presenza di due selettori: uno per abilitare la pompa e l’altro per abilitare la valvola; perciò avremo altri due ingressi digitali.

Definizione delle variabili nel plc.

Per le nostre sedute didattiche utilizziamo variabili interne al plc, naturalmente queste andranno “cablate” e quindi collegate agli ingressi e alle uscite fisiche del sistema. Per lo scopo che ci prefiggiamo di progettare e testare i programmi questa parte la saltiamo; del resto poi si tratterebbe solo di dire a ogni variabile qual è il punto fisico a da cui leggere o su cui scrivere le informazioni digitali e analogiche da e verso il campo.

Per questo progetto definiamo le seguenti variabili.

Ingressi e uscite dal campo:

SELETTORE_ABILITA_POMPA: BOOL;

SELETTORE_ABILITA_VALVOLA : BOOL;

LIVELLO_SERBATOIO: REAL;

Uscite verso il campo:

COMANDO_POMPA: BOOL;

COMANDO_VALVOLA_ACQUA: BOOL;

COMANDO_LAMPADA_ALLARME : BOOL;

Le seguenti variabili invece servono a gestire tutta la procedura.

TIMER_LIVELLO_BASSO: TON;

TIMER_LIVELLO_ALTO: TON;

VALORE_CORRENTE_1: TIME;

VALORE_CORRENTE_2: TIME;

ATTIVA_REINTEGRO_ACQUA: BOOL;

VALORE_CORRENTE_3: TIME;

TIMER_STOP_POMPA: TON;

ALLARME_LIVELLO_MINIMO: BOOL;

TIMER_LIVELLO_IN_SALITA: TON;

Stesura del programma di gestione procedura.

Prima di analizzare il programma che abbiamo creato per questo progetto, è bene sottolineare alcuni aspetti: nella realtà, oltre al software specifico per le procedure richieste si programmano tutta una serie di funzioni “generali”, per esempio la gestione degli allarmi, il riconoscimento degli stessi, così come alcune procedure di sicurezza.

Come minimo andrebbero gestiti gli allarmi della pompa utilizzando ingressi di pompa in marcia e sezionatore, così come quello della valvola se provvista di feedback.

In questa lezione assumiamo che il sistema è davvero semplice per cui la valvola non ha feedback (ci fidiamo quando la comandiamo) e così anche per la pompa. Vedremo poi che in effetti se la valvola non dovesse aprirsi comunque ce ne accorgeremmo attraverso la diminuzione del livello nel serbatoio.

Nella prossima immagine troviamo la prima parte del programma ladder di gestione serbatoio, le variabili hanno tutte il prefisso GVL poiché le abbiamo definite di tipo globale nell’ambiente di sviluppo Codesys.

Programma gestione livello serbatoio con PLC - parte 1
Come vediamo nella figura sopra, quando abbiamo il selettore di abilitazione pompa a ON, se non c’è l’allarme di livello minimo serbatoio comandiamo la pompa.
Nella seconda linea di programma comandiamo la valvola di reintegro quando la funzione apposita è attivata e il suo selettore è a ON; la funzione viene attivata e disattivata dai timer che controllano il livello del serbatoio: quando esso scende sotto il 25% la funzione si accende, per poi terminare quando il livello supera l’80%.

I due timer TON sono stati inseriti per consuetudine, diciamo per “stabilizzare” l’informazione data dall’ingresso analogico.
Nella prossima figura invece troviamo la seconda parte del software, dove viene generato l’allarme di livello minimo serbatoio.
Vediamo che se il livello scende sotto il 15% si attiva l’allarme, quando poi il livello torna sopra il 20% l’allarme viene cancellato. Anche in questo caso abbiamo usato due timer sull’ingresso analogico.
L’ultima riga del programma comanda la lampada dell’allarme di livello minimo quando attivo.
Programma gestione livello serbatoio con PLC - parte 2

Simulazione del programma e test con la pagina di supervisione.

Per testare questo software ho creato anche un paio di linee di istruzioni che simulano l’abbassamento del livello quando la pompa è accesa e il suo reintegro quando la valvola è attivata. Naturalmente con la valvola accesa il livello tende a salire, tuttavia agendo sul selettore della stessa possiamo vedere cosa accade quando il livello va sotto il minimo e si genera l’allarme.

Di seguito le linee di programma per simulare il livello, le ho scritte in linguaggio di testo strutturato, e notiamo che con la valvola aperta il livello sale più di quanto scende con la pompa accesa.

IF GVL.COMANDO_POMPA THEN

 GVL.LIVELLO_SERBATOIO:=GVL.LIVELLO_SERBATOIO - 0.5;

END_IF

IF GVL.COMANDO_VALVOLA_ACQUA THEN

 GVL.LIVELLO_SERBATOIO:=GVL.LIVELLO_SERBATOIO + 0.8;

END_IF

Ecco nella prossima immagine la pagina di monitoraggio, essa è stata catturata nel momento in cui il sistema reintegra il livello e la pompa è accesa.

Sinottico monitoraggio livello serbatoio

Copyright(C) automazione-plc.it
P. IVA: 11676200964
Sito di informazione e didattica sull'automazione industriale, il mondo dei PLC e dei sistemi di supervisione.
Programmazione PLC.
Programmazione SCADA e HMI.
Apparecchiature e hardware industriale.
Strumentazione da campo.
Policy sulla Privacy e utilizzo dei Cookies