Sequential function chart
Il diagramma funzionale sequenziale o sequential function chart (SFC) è un linguaggio di programmazione di tipo grafico adoperato per la progettazione dei PLC ed è uno dei 5 linguaggi definiti dallo standard IEC 61131-3. Può essere usato per programmare processi che si possono decomporre in più fasi.
I componenti principali di un SFC sono:
- le fasi con le azioni associate;
- le transizioni con le condizioni logiche associate;
- gli archi orientati che collegano tra loro le fasi e le transizioni.
Le fasi di un diagramma SFC possono essere attive o inattive. Le azioni vengono eseguite solo se le fasi sono attive. Una fase può essere attiva o perché è una fase iniziale specificata dal programmatore o perché è stata attivata durante il ciclo di esecuzione.
Una fase viene attivata quando tutte le altre a monte di essa sono attive e la sua transizione è superabile, ossia quando la sua condizione ad essa associata è vera. Una volta passata la transizione, tutte le fasi a monte vengono disattivate, dopodiché tutte le fasi a valle vengono attivate.
Le azioni associate alle fasi possono essere di diversi tipi: tra questi, i più importanti sono N (continua), S (set) e R (reset). L'azione di tipo N assicura che la variabile venga impostata a 1 finchè la fase resta attiva. Una regola SFC afferma che se 2 fasi hanno un'azione N su uno stesso obiettivo, la variabile non deve mai essere resettata a 0. È anche possibile inserire le azioni di un ladder diagram all'interno di un programma in SFC (questo è il metodo usuale, ad esempio, per lavorare sulle variabili di tipo intero).