Programmazione dei PLC: il Sequential Functional Chart I
Programmazione dei PLC: il Sequential Functional Chart
Gli elementi di base dell’SFC sono:
Se una fase è attiva le azioni associate a tale fase vengono eseguite.
Un programma scritto in SFC viene eseguito cambiando di volta in volta la sua condizione, con un meccanismo legato al superamento delle transizioni.
Vediamo in che consiste tale meccanismo:
Nell’esempio a lato tutte le fasi a monte della transizione T1 sono attive (quindi tale transizione è abilitata). Essa sarà superabile quando la variabile booleana OK diverrà vera.
Quando una transizione diventa superabile essa viene superata: tutte le fasi a monte della transizione vengono disattivate e tutte le fasi a valle vengono attivate.
Le disattivazioni (delle fasi a valle) e le attivazioni (delle fasi a monte) avvengono in ordine, ossia: prima tutte le disattivazioni e poi tutte le attivazioni.
Nell’esempio il superamento contemporaneo delle transizioni T1 e T2 porta ad una nuova condizione (giustificare la nuova condizione sulla base di quanto appena detto).
Inoltre: se più transizioni diventano superabili nello stesso istante, esse sono tutte superate contemporaneamente.
Si assume che il tempo necessario ad eseguire le disattivazioni e le attivazioni (e quindi il passaggio ad una nuova condizione) sia nullo. In realtà, tipicamente tale tempo è pari al tempo di scansione del PLC.
Le variabili dell’SFC possono essere dei seguenti tipi
Le variabili di ingresso possono essere di due tipi
Semplici
In questo caso la variabile dell’SFC assume lo stesso valore binario del segnale collegato al PLC.
A fronte
In questo caso la variabile dell’SFC assume valore 1 solo in corrispondenza del fronte di salita (o del fronte di discesa) del segnale collegato all’ingresso del PLC. Le variabili a fronte restano alte per un tempo pari al tempo necessario a cambiare la condizione dell’SFC.
Le variabili temporali sono associate al tempo trascorso dall’attivazione di una fase. Esse sono denotate con il simbolo:
Xn.t>d
Dove Xn è l’etichetta corrispondente alla fase e d denota un intervallo di tempo. Ad esempio la variabile temporale Xn.t>20s diventa vera dopo che sono trascorsi 20s dall’attivazione della fase Xn (assumendo che nel frattempo tale fase resti attiva).
Le azioni possono essere:
L’azione viene eseguita (cioè la variabile indicata è posta ad 1) fino a quando la fase a cui è associata è attiva.
In questo caso l’azione viene eseguita per un tempo limitato a partire dall’ attivazione della fase.
In questo caso l’azione viene eseguita dopo un tempo di ritardo dall’ attivazione della fase.
L’azione memorizzata consente di continuare l’esecuzione di una azione anche dopo che la fase a cui essa è associata si disattiva. Essa prevede due comandi:
In questo caso l’azione prevede la generazione di un impulso sulla variabile associata, nel momento in cui la fase viene attivata (estensioni dello standard potrebbero prevedere anche la possibilità di avere un impulso al momento della disattivazione).
Dopo aver introdotto gli elementi di base di un programma in SFC, vediamo come questo linguaggio possa essere usato per esprimere un algoritmo di controllo.
L’esempio a lato mostra come in SFC si possa esprimere il seguente algoritmo:
L’azione “scalda motore” parte quando si attiva la fase 30, quindi si attendono 20s (transizione T30 condizionata ad una variabile temporale), ed infine si attiva la fase 40 in cui viene eseguita l’azione di partenza.
In figura è invece mostrato un watchdog timer.
Nella fase 30 viene eseguita una azione “fuori carrello” che deve aver effetto sul sensore collegato alla variabile “uscito”, se questo effetto si presenta entro 2s si attiva la fase 40, altrimenti si attiverà la fase 400 (a cui presumibilmente verrà associata una azione di emergenza).
Watchdog timer su un ciclo
In questo programma sono presenti due rami paralleli, quello a destra verifica che il ciclo dato dalle fasi S0, S1, S2, S3 si completi entro un tempo limite di 30s. In caso contrario viene generato un allarme.
Programmazione dei PLC: il Sequential Functional Chart II
Il sequential functional chart
1. Introduzione all'automazione industriale
2. Architetture dei dispositivi di controllo
3. I Controllori a Logica Programmabile
4. Regolatori PID industriali: Leggi di controllo e utilizzo
5. Regolatori PID industriali: Taratura dei guadagni e problemi implementativi
6. Regolatori PID industriali: Implementazione digitale
7. Programmazione dei PLC: lo standard IEC 61131-3
8. Programmazione dei PLC: il linguaggio a contatti I
9. Programmazione dei PLC: il linguaggio a contatti II
10. Programmazione dei PLC: il Sequential Functional Chart I
11. Programmazione dei PLC: il Sequential Functional Chart II
12. Programmazione dei PLC: Macroazioni e traduzione dell'SFC
13. Introduzione al tool UniSim
14. Esempi di programmazione con UniSim
15. Esempi di programmazione con UniSim
17. Il controllo distribuito: Reti informatiche per l'Automazione (I)
18. Il controllo distribuito: Reti informatiche per l'Automazione (II)
P. Chiacchio e F. Basile, Cap. 4.
J. Hugh, Cap. 20
1. Introduzione all'automazione industriale
2. Architetture dei dispositivi di controllo
3. I Controllori a Logica Programmabile
4. Regolatori PID industriali: Leggi di controllo e utilizzo
5. Regolatori PID industriali: Taratura dei guadagni e problemi implementativi
6. Regolatori PID industriali: Implementazione digitale
7. Programmazione dei PLC: lo standard IEC 61131-3
8. Programmazione dei PLC: il linguaggio a contatti I
9. Programmazione dei PLC: il linguaggio a contatti II
10. Programmazione dei PLC: il Sequential Functional Chart I
11. Programmazione dei PLC: il Sequential Functional Chart II
12. Programmazione dei PLC: Macroazioni e traduzione dell'SFC
13. Introduzione al tool UniSim
14. Esempi di programmazione con UniSim
20. Ciclo di sviluppo dei sistemi di automazione
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.