Benvenuto in questa lezione del corso gratuito di programmazione PLC. Oggi voglio presentarti uno dei cinque linguaggio di programmazione definiti nella IEC 61131-3, il linguaggio a diagramma di funzioni sequenziali SFC, in inglese (sequential function chart).
Trasformare una sequenza in un programma SFC per plc.
Vediamo ora come possiamo programmare questa ipotetica sequenza in linguaggio SFC nel plc, in questo linguaggio ogni stato è rappresentato da un simbolo grafico.
Cominciamo con il simbolo di “Init step”, ovvero passo iniziale.
Init step nel linguaggio SFC.
Solitamente lo step iniziale è rappresentato da un rettangolo con la linea del bordo doppia, questo è il passo con cui il programma comincia quando viene avviato.
Ecco nella prossima figura il simbolo dell’init step.
il nome che diamo a ogni step del programma SFC deve essere univoco, nell’esempio sopra abbiamo semplicemente chiamato questo step “Init”.
Gli steps nel linguaggio SFC.
A differenza del passo iniziale, nel linguaggio SFC gli altri steps sono rappresentati da un rettangolo con singolo bordo, e anche questi devono avere un nome univoco.
Nella prossima immagine vediamo un esempio dove il passo iniziale è chiamato step1, e Step32 è un passo “normale”.
Le transizioni nel linguaggio SFC.
Il passaggio da uno step (stato) all’altro della sequenza di programma SFC si chiama transizione. Le transizioni sono rappresentate solitamente da una linea orizzontale, e a ogni transizione corrisponde una condizione che deve avverarsi per far sì che il passaggio allo step di destinazione avvenga.
Un esempio di transizione è la valutazione di un bit che passa dallo stato zero a uno, nella prossima immagine vediamo un esempio.
Come si nota nella figura sopra, questa volta il passo iniziale ha le doppie linee solo ai lati del rettangolo, il modo di rappresentare gli elementi grafici nei programmi SFC può variare leggermente a seconda del sistema software utilizzato, i principi però non cambiano.
Nel programma rappresentato nell’esempio vediamo che al verificarsi della condizione chiamata “Condition 1”, la sequenza avanza e viene generata un’uscita. Nello stato corrente si valuta poi un’altra condizione chiamata “Condition 2”, che quando è verificata si passa agli stati successivi, per giungere al termine nello stato chiamato “Stop”.
Le transizioni nel linguaggio SFC possono essere semplici valutazioni di bit oppure complesse operazioni logiche.
La transizione “Delay”, ovvero di ritardo nel linguaggio SFC.
Una delle transizioni più comunemente utilizzate nel diagramma a blocchi di funzione sequenziali è sicuramente il ritardo, una semplice istruzione che dice al programma di avanzare allo step successivo dopo aver atteso un tempo.
Nella prossima immagine troviamo un esempio dove si passa dallo step 2 allo step 3 semplicemente dopo 0.5 secondi.
Il rettangolo che vediamo collegato allo Step3 rappresenta un’azione con il suo qualificatore, ne parliamo nel prossimo paragrafo.
Azioni e qualificatori nel linguaggio SFC.
Oltre agli steps (passi), nel programma SFC abbiamo le azioni e i qualificatori, essi permettono di svolgere i vari compiti assegnati a ogni step. Questi elementi sono connessi allo step per mezzo di una linea orizzontale e lavorano solamente all’interno dello step a cui sono collegati.
Le azioni possono essere di diverso tipo, dalla semplice manipolazione di un bit, all’avviamento di una macro contenente molte istruzioni; per questa lezione ci limitiamo a imparare l’azione semplice di valorizzazione di una variabile booleana.
All’interno del rettangolo dell’azione, i qualificatori indicano al programma cosa deve fare con la variabile specificata all’interno dell’azione; tra i qualificatori più importanti del linguaggio SFC abbiamo N, R e S.
Il qualificatore N indica che la variabile specificata deve essere messa a 1 durante la permanenza nello step, e deve automaticamente tornare a zero quando si esce da questo.
Il qualificatore S indica di settare (mettere a uno) la variabile e lasciarla a 1 quando si esce dallo step; per riportarla a zero è necessaria un’azione con qualificatore R (reset).
I qualificatori S e R funzionano come le bobine set e reset nel linguaggio ladder (latch e unlatch).
Nella prossima immagine vediamo un esempio di programma SFC dove premendo un pulsante si attiva l’uscita di una lampada; premendo un altro pulsante la lampada si spegne. Questo programma utilizza l’azione con qualificatore N per porre a uno l’uscita durante la permanenza della sequenza nel passo 1, al quale si arriva quando dal passo iniziale si preme il pulsante di start (condizione della transizione).
Il pulsante di stop rappresenta la transizione che fa riportare il programma al passo Init.