Benvenuto in questo corso di programmazione PLC Schneider con Logic Builder di EcoStruxure Machine Edition, oggi ci avviciniamo al linguaggio a blocchi di funzione FBD, che fa parte dei cinque linguaggi di programmazione per i PLC, definiti nello standard IEC 61131-3.
Il programma di oggi gestisce un dosaggio in scarico da un silos contenente polveri posto su celle di carico, il dosaggio avviene per mezzo di una valvola a ghigliottina.
Il linguaggio FBD, che significa (a blocchi di funzione), è tra i più utilizzati per i controllori logici programmabili, insieme al linguaggio ladder.
Nella storia l’ FBD rappresenta il modo di programmare dei DCS, e questo modo di scrivere i programmi risulta abbastanza comprensibile anche a chi non è un programmatore; infatti come vedremo a breve, in questo tipo di diagramma l’enfasi è posta sulla logica booleana.
Anche i PLC della Schneider sono programmabili in diversi linguaggi, e tutti i controllori di questo produttore ci mettono a disposizione il linguaggio a blocchi di funzione.
Il programma di esempio di oggi, gestirà un semplice dosaggio in scarico, per mezzo di una valvola a saracinesca posta sotto un serbatoio contenente delle polveri; il serbatoio e la valvola si trovano su celle di carico, per cui sono entrambi pesati.
Nella prossima immagine vediamo uno schema semplificato dell’impianto in questione.
Il programma di scarico polveri per il PLC Schneider M241.
Ecco come funzionerà il nostro software: con un bit di attivazione che rappresenta un pulsante di start dosaggio si setta un bit ritentivo chiamato “dosaggio_attivo”.
Nella seconda linea del programma troviamo un OR tra un pulsante di “stop_dosaggio” e un bit di “fine_dosaggio”; questa operazione di logica booleana permette di spegnere il dosaggio per mezzo di un pulsante, o automaticamente quando esso è terminato.
Notiamo gli identificatori “S” e “R” per indicare il SET e il RESET del bit di dosaggio attivo.
Vediamo questa prima parte del programma con i blocchi di funzione nella prossima immagine.
Una volta attivato il dosaggio, con un impulso (fronte di salita) calcoliamo il valore di peso in bilancia da raggiungere per terminare il dosaggio; il fronte di salita è rappresentato in linguaggio FBD dal triangolino che si vede sull’abilitazione della funzione aritmetica SUB.
Dato che il dosaggio è in scarico, il calcolo viene effettuato sottraendo al peso iniziale della bilancia il valore da dosare; a questo risultato viene addizionato un valore chiamato “coda_dosaggio”, il quale tiene conto di quanto prodotto scenderà durante la chiusura della valvola di scarico.
Per esempio, se iniziamo con un peso in bilancia di 1000 kg e vogliamo dosarne 300, ci fermeremo quando il peso scende sotto 702, considerando una coda di 2 kg, i quali passeranno attraverso la valvola comunque anche dopo aver disattivato il suo comando.
Quando durante il dosaggio il peso scende sotto la variabile calcolata “peso_fine_dosaggio”, il sistema conta un secondo per mezzo del timer TON_0 (Timer On Delay), e alza il bit di fine dosaggio.
Il bit di fine dosaggio è quello messo in OR all’inizio del programma, per spegnere la funzione.
Come ultima istruzione del software, troviamo il comando della valvola di scarico quando il bit “dosaggio_attivo” è a uno.
Ecco la seconda parte del programma, come appare nell’editor FBD di Logic Builder.
Come abbiamo visto, il programma è molto semplice, naturalmente per essere utilizzato in un contesto reale andrebbe completato con tutto ciò che riguarda la gestione generale delle utenze, degli allarmi, delle funzioni, e delle sicurezze.