Sequential Function Chart Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1
Sommario La struttura del linguaggio La definizione di sequenza in termini di passi e transizioni L uso di altri linguaggi per definire il comportamento degli elementi di un diagramma SFC Come definire quando una azione sarà eseguita L uso di SFC per la progettazione Top-Down Regole per la progettazione in sicurezza 22-23 Maggio 2001 2
Elementi base SFC fornisce una potente tecnica grafica per descrivere il comportamento sequenziale di un programma di controllo. Utile per partizionare il problema di controllo Mostra una visione di insieme utile per una rapida diagnostica Step 1 N FILL Transition 1 Step 2 S Empty Transition 2 Step 3 22-23 Maggio 2001 3
Elementi base SFC è una evoluzione di GRAFCET, un linguaggio standard francese di specifica. GRAFCET a sua volta è una evoluzione industriale delle reti di Petri Il primo tentativo di normalizzare un linguaggio di specifica simile a SFC è contenuto nella norma IEC 848 Preparation of function charts for control system pubblicata nel 1988. Ottimo per un approccio alla progettazione di tipo top-down 22-23 Maggio 2001 4
Struttura del linguaggio Una sequenza scritta in SFC è composta in una serie di step (passi) disegnati come box rettangolari connessi da linee veritcali Ogni step rappresenta uno stato particolare del sistema che deve essere controllato Ogni linea di connessione ha una barra orizzontale che rappesenta una transition (transizione) Ogni transition è associata con una condizione che se vera causa il passaggio dal passo precedente al passo successivo. Il flusso di esecuzione è solitamente dall alto in basso 22-23 Maggio 2001 5
Struttura del linguaggio Start Fill Stir Stir Stop StartSwitch = 1 VesselFull = 1 Timer1.ET = T#1h StartSwitch = 0 Transition Step iniziale Condizione 22-23 Maggio 2001 6
Struttura del linguaggio Start StartSwitch = 1 Ramo divergente Transizione nominata Fill Stir Drain tran2 tran4 Filter Ramo convergente tran3 tran5 Ramo con frecca direzionale StartSwitch = 0 StartSwitch = 1 Stop 22-23 Maggio 2001 7
Struttura del linguaggio Tutte le sequenze SFC devono avere un passo iniziale Start. Il passo iniziale rimane attivo fino a quando la condizione della transizione successiva non diventa vera. Le sequenze divergenti sono alternative Ogni step può avere associato una o più azioni. Una transizione può essere descritta direttamente sul diagramma SFC usando uno dei linguaggi definiti nella norma (IL, LD, FBD, ST) oppure può essere associata una label che fa riferimento ad una parte di programma. 22-23 Maggio 2001 8
Rappresentazione Semigrafica La norma consente di specificare i simboli del linguaggio anche attraverso dei caratteri testuali +---------+ Start +---------+ +-----------<----------------------------+ + StartSwitch = 1 +---------+ Fill +---------+ +-----------------------+ + Tran1 + Tran2 22-23 Maggio 2001 9
Rappresentazione testuale INITIAL_STEP Start Prompt_operator(N,StartSwitc h); END_STEP ACTION StartPump: MainPump := ON; Pump1 := ON; END_ACTION TRANSITION FROM Start TO Fill StartSwitch = 1 END_TRANSITION STEP Fill: OpenValves(P); StartPump(N); END_STEP 22-23 Maggio 2001 10
Sequenze simultanee Usando i percorsi divergenti/convergenti possono essere descritte solo sequenze alternative SFC ammette però anche la possibilità di definire sequenze divergenti che vengono eseguite in parallelo. Le sequenze parallele vengono eseguite indipendentemente fino a quando non viene incontrata una convergenza 22-23 Maggio 2001 11
Sequenze simultanee Start StartSwitch = 1 Fill Tran1 Divergenza di sequenze simultanee Stir Tran2 TempCks Tran3 Monitor Drain PressCks Stop Tran4 Convergenza di sequenze simultanee 22-23 Maggio 2001 12
Sequenze simultanee Per passare al passo successivo dopo una convergenza è necessario che: tutte le sequenze simultanee abbiano raggiunto l ultimo passo sia verificata la condizione della transizione posta dopo la convergenza 22-23 Maggio 2001 13
Sequenze simultanee Da notare che il passo Stop è attivato solo quando: I passi Drain, PressCks e Monitor sono attivi La condizione per Tran4 è vera Attenzione! Tran4 non verrà comunque valutata fino a quando non sono attivi i passi Drain, PressCks e Monitor 22-23 Maggio 2001 14
Steps (Passi) Ogni passo in SFC deve avere un nome univoco e apparire solo una volta in un diagramma SFC. I nomi dei passi e delle transizioni sono locali alla POU (function block o program) in cui il diagramma esiste Ci sono due tipi di passi: Passi normali : indicati con rettangoli con il nome del passo al centro Passi iniziali : indicati con rettangoli con barre verticali. In ogni diagramma SFC può esserci solo un passo iniziale che viene attivato quando il PLC è attivato (cold-start). 22-23 Maggio 2001 15
Steps (Passi) Il comportamento di ogni passo è descritto da uno o più blocchi azione associati al passo Ogni blocco azione può essere descritto in ogni linguaggio della norma (IL, ST, FBD, LD, SFC). Ad ogni passo sono associate due variabili che posso essere usate per sincronizzazione: Un flag che segnala se lo step è attivo (.X). E accessibile usando la sintassi <nome_del_passo>.x o in maniera grafica attraverso un output a lato del rettangolo. Un variabile tempo trascorso (.T) che contiene il tempo che è trascorso dall attivazione dello step. E accessibile usando la sintassi <nome_del_passo>.t 22-23 Maggio 2001 16
Steps (Passi) VARIABILI INTERNE Start Fill Valve1 Connessione diretta dal flag di stato attivo del passo (.X) e la variabile Valve1 Tran1 Condizione legata al tempo trascorso dall attivazione del passo Fill Fill Stir Fill.T > T#10m tran4 22-23 Maggio 2001 17
Transitions (Transizioni) Per descrivere una transizione possiamo usare: Qualsiasi espressione in ST che fornisca un risultato booleano Un diagramma LD Qualsiasi Function Block Diagram che presenti un uscita boolena Un connettore di transizione che rimandi a un altra parte del diagramma SFC Una label che rimanda a altri diagrammi o a parti di programma. 22-23 Maggio 2001 18
Heat Transitions (Transizioni) ST MotorChecks Bear1 Vibration PreCheck FBD (Temp1>2000) AND (Press > 20) Tank1 Fuel Go Cool Power Enable LD %IX4 Raise >NewBatch> Wait Connettore Sw1 Stop Batch Enable >NewBatch> 22-23 Maggio 2001 19
Step1 Transitions (Transizioni) Label TRANSITION Trans1 : FBD Step2 Trans1 In1 And Trans1 Enable END_TRANSITION : ST TRANSITION Trans1 : := AB1 AND CX3 OR CX5 END_TRANSITION Da notare la mancanza dell operatore di sinistra IL TRANSITION Trans1 : LD %IX21 AND EX10 END_TRANSITION 22-23 Maggio 2001 20
Azioni Ad ogni passo è possibile associare una o più azioni Ogni azione contiene la descrizione del comportamento di alcune parti del sistema una volta che il passo è attivato Ogni azione può essere espressa in uno qualsiasi dei linguaggi della norma compreso SFC. Step1 Step2 N prompt StartSwitch Test := 1 Descrizione Identificatore Variabile indicatore Azione 22-23 Maggio 2001 21
Azioni Ogni azione ha un: Identificatore che indica quando l azione è eseguita Nome che identifica l azione Variabile indicatore interna usata per segnalare quando l azione ha completato l esecuzione. Descrizione del comportamento dell azione in uno dei linguaggi della norma Ogni passo può avere nessuna o più di una azione associata 22-23 Maggio 2001 22
Identificatori N R S L T#.. D T#.. P L azione viene eseguita mentre il passo è attivo Resetta una azione memorizzata Pone attiva una azione (cioè la memorizza) Azione limitata nel tempo. Termina dopo il periodo indicato Azione ritardata nel tempo. Inizia dopo il periodo indicato Azione che viene eseguita un unica volta quando il passo è attivato e una quando viene disattivato P1 P0 SD T# DS T# SL T# Azione che viene eseguita un unica volta quando il passo è attivato Azione che viene eseguita un unica volta quando il passo è disattivato Azione memorizzata e ritardata Azione ritardata e memorizzata. Se il passo è disattivato prima non viene memorizzata Azione memorizzata e limitata nel tempo 22-23 Maggio 2001 23
Identificatore N Identificatori Identificatore L Identificatore D Identificatore S e R 22-23 Maggio 2001 24
Regole di esecuzione 1. Il passo iniziale di un diagramma SFC è attivato quando la POU è eseguita dopo l inizializzazione del sistema. Ogni azione associata con il passo iniziale è eseguita 2. All inizio di ogni valutazione del diagramma, viene trovato l insieme dei passi attivi e vengono valutate le transizioni associate. 3. Azioni che nominalmente cessano la loro esecuzione nella precedente valutazione del diagramma SFC vengono eseguite un ultima volta 22-23 Maggio 2001 25
Regole di esecuzione 4. Tutte le azioni attive sono eseguite 5. Tutti i passi che sono seguiti da transizioni vere sono disattivati 6. Ogni azione la cui condizione di abilitazione cessa vengono marcate come inattive. Queste azioni vengono eseguite un ultima volta alla successiva valutazione del diagramma SFC 22-23 Maggio 2001 26
Regole di evoluzione 1. Due passi non possono essere collegati direttamente, devono essere separati da una transizione 2. Due transizioni non possono essere collegate direttamente, devono essere sempre separate da un passo 3. Se una transizione comanda più di un passo allora questi passi fanno parte di sequenze simultanee 4. Nel progetto di diagrammi SFC il tempo per disattivare il passo precedente e attivare il successivo può essere considerato istantaneo 22-23 Maggio 2001 27
Regole di evoluzione 5. Quando più di una transizione è vera allo stesso tempo l attivazione dei passi precedenti e successivi può essere considerata istantanea 6. Una transizione non è valutata fino a quando gli effetti delle azioni del passo attivo non si sono propagati per tutta la POU 7. Quando ci sono più transizioni dopo uno passo ha origine una sequenza divergente. 22-23 Maggio 2001 28
Regole di evoluzione 8. Se ci sono più transizioni con condizione vera la scelta del percorso è determinata dalla precedenza associata alle transizioni. Precedenze definite dall utente sono caratterizzate da un numero vicino alla transizione e da un asterisco posto al centro dei rami divergenti. Step1 Step1 Tr1 Tr2 2 Tr1 * 1 Tr2 Step2 Step3 Step2 Step3 DEFAULT : precedenza da sinistra a destra Definita dall utente 22-23 Maggio 2001 29
Regole di evoluzione 9. E buona norma per evitare situazioni ambigue assicurarsi che transizioni associate a percorsi divergenti abbiano condizioni mutuamente esclusive Step1 Step2 Job = 4 AND RDY Step3 NOT (Job=4) AND RDY 22-23 Maggio 2001 30
Regole di evoluzione 10. Percorsi divergenti possono essere usati per saltare una parte di una sequenza o per dei loop. In questo caso il percorso divergente non contiene passi tran6 Start Fill Stir Drain Stop tran1 tran2 tran4 Loop tran5 Start 22-23 Maggio 2001 31 Fill Stir Drain Stop tran1 tran3 tran4 tran5 tran2 Salto
Regole di evoluzione 11. Differenti sequenze simultanee possono convergere in una unica transizione e poi divergere ancora in differenti sequenze simultanee. Un costrutto di questo genere si chiama rendezvous. Step1 Step2 Step3 Tran1 Step4 Step5 22-23 Maggio 2001 32
Progettazione in sicurezza Step1 Step2 Step5 Step3 Step4 Step6 Step7 Step9 Può rimanere attiva la prima delle sequenze simultanee Step8 22-23 Maggio 2001 33
Progettazione in sicurezza Step2 Step1 Step5 Non saranno mai attivi contemporaneamente Step4, Step7 e Step9 Step3 Step6 Step4 Step7 Step9 Step8 22-23 Maggio 2001 34
Progettazione in sicurezza Step1 Step2 Step5 Step3 Step6 Step9 Step4 Step7 Step8 22-23 Maggio 2001 35
Scoprire SFC mal progettati E possibile scoprire in maniera automatica delle situazioni come quelle riportate in precedenza applicando le seguenti regole: Applicando queste regole deve essere possibile risolvere il diagramma con un singolo passo 22-23 Maggio 2001 36
Macro passi Non sono definiti dalla norma, ma supportati da quai tutti i programmi di sviluppo Sono d aiuto per strutturare i diagrammi SFC evitando che diventino troppo ampi. Step2 Step3 Step4 Macro Step Step3 Step5 Step6 Step7 Step9 22-23 Maggio 2001 37
Norme per una buona programmazione Usare nomi significativi per passi, transizioni e azioni se possibile Cercare di mantenere il diagramma SFC piccolo e focalizzato sul comportamento principale del livello che si sta considerando. Eventuali comportamenti secondari saranno dettagliati in diagrammi SFC di più basso livello Cercare di ridurre le interazioni tra sequenze simultanee Evitare che sequenze parallele modifichino le medesime variabili Porre attenzione che eventuali azioni contenute in sotto diagrammi possono essere interrotte in qualunque stato dal diagramma di livello superiore 22-23 Maggio 2001 38
Conclusioni SFC è un linguaggio basato su standard ormai consolidati e utilizzati nella pratica industriale SFC supporta sia sequenze alternative che simultanee Azioni e transizioni possono essere programmate con qualsiasi linguaggio della norma E fornito un ampio numero di identificatori di azione per poter controllare completamente l inizio e la fine di ogni azione SFC fornisce un supporto per una progettazione gerarchica topdown. SFC può comunque essere utilizzato a tutti i livelli di progetto E disponibile anche una forma testuale per la descrizione di SFC in modo da garantire la portabilità tra diversi sistemi di PLC 22-23 Maggio 2001 39