Sequential Function Chart

Похожие документы
Function Block Diagram

Sequential Function Chart (SFC)

Sequential Functional Chart

diagramma funzionale sequenziale Sequential functional chart (SFC)

Programmable Logic Controller Seconda Parte

Sequential Functional Chart (SFC) - Parte 2

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

Sequential Functional Chart (SFC) - Parte 1

Modulo 1 Concetti di base della Tecnologia dell Informazione

PLC CodeSys. Esercitazione 3. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione ad ISaGRAF

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Ingegneria e Tecnologie dei Sistemi di Controllo. Programmazione di sistemi di controllo industriale (PLC) PARTE 1.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Algoritmi e soluzione di problemi

Sistemi Web per il turismo - lezione 3 -

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Tecnica basata su Relazioni I/O Circuito di Clock

I Diagrammi di Flusso OO

Automazione e territorio

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

Il linguaggio SFC. Il linguaggio SFC (Sequential

Formalismi per la descrizione di algoritmi

Esercitazione sui grafi di precedenza, fork/join, cobegin/coend.

Linguaggio C: introduzione

Applicazioni del PLC: software

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

PROBLEMI ALGORITMI E PROGRAMMAZIONE

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Corso di Automazione Industriale. Prof. Ferrarini. Appunti sui PLC

Funzioni, Stack e Visibilità delle Variabili in C

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Modello a scambio di messaggi

Modellazione di Workflow mediante le Reti di Petri. Prof. Giancarlo Fortino

Analisi e specifica dei requisiti

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

2. Algoritmi e Programmi

Tesina corso Tecnologie dei Sistemi di Automazione. Comando di una pressa. Anno Accademico 2007/2008 Prof. Raffale Iervolino

Corso di Ingegneria del Software. Activity Diagram

Modelli di interazione tra processi

Rappresentazione con i diagrammi di flusso (Flow - chart)

La quotatura è ottenuta con i seguenti elementi

PROGRAMMAZIONE: Le strutture di controllo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Dall algoritmo al programma

Logic Lab. un progetto italiano. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE

Esercitazioni di Reti Logiche. Lezione 5

PLC CodeSys. Esercitazione 5. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Modelli di interazione tra processi

Diagrammi a blocchi 1

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

La tecnica proporzionale

Strutture dati e loro organizzazione. Gabriella Trucco

Diagrammi a blocchi 1

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Dispensa di Informatica II.1

ESEMPIO QUATTRO: TRAPANO COMPLESSO

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Linguaggio C - sezione dichiarativa: costanti e variabili

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Componenti e connessioni. Capitolo 3

Teoria dell Informazione

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

PL Ladder V 3.10 T-2. KITE automation srl - Via Morandi Melegnano (MI) - Tel/Fax /

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Manuale D uso MultiBox

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Ambiente di sviluppo STEP 7 Micro/Win

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Modularizzazione del software

Rappresentazione base 2

STANDARD IEC PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione

Il linguaggio Assembly

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

G S M C O M M A N D E R Duo

Транскрипт:

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