Sequential Function Chart (SFC)

Documenti analoghi
Sequential Functional Chart

Sequential Function Chart

diagramma funzionale sequenziale Sequential functional chart (SFC)

Programmable Logic Controller Seconda Parte

Function Block Diagram

Sequential Functional Chart (SFC) - Parte 1

Tecnica basata su Relazioni I/O Circuito di Clock

Automazione e territorio

Sequential Functional Chart (SFC) - Parte 2

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

Rappresentazione base 2

Laboratorio di Informatica Industriale

I Diagrammi di Flusso OO

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

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

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

Programmare OB1 in KOP

IL CONTROLLO DI UN PROCESSO

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

ESEMPIO QUATTRO: TRAPANO COMPLESSO

Il Linguaggio di Programmazione IEC Ladder

Algoritmi e soluzione di problemi

Introduzione ad ISaGRAF

Modulo 1 Concetti di base della Tecnologia dell Informazione

Ambiente di sviluppo STEP 7 Micro/Win

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

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Nastro trasportatore con ribaltamento cassetta.

Il linguaggio SFC. Il linguaggio SFC (Sequential

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

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

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

Applicazioni del PLC: software

CENNI SULLA STRUTTURA DEL LINGUAGGIO SFC (O GRAFCET) ED ESEMPI DI APPLICAZIONE

Perché il P.L.C.? Introduzione di base al P.L.C. (Programmable Logic Controller) SAVE Veronafiere Ottobre 2007

PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

GRAFICO DI PARETO. variabile rispetto a cui si vuole ordinare (ossia nel nostro esempio

PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base

Traduzione degli SFC in Ladder Logic

Breve Guida a Codesys Corso: Automazione Industriale aa 2011/2012 Ing. Elena Mainardi

Introduzione alle macchine a stati (non definitivo)

Corso di Automazione industriale

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

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Lattine: definizione del problema

Circuiti di commutazione, codifica e decodifica

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

3. Le routine evento in Access 2000/2003

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

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

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

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

STEP7: blocchi. Vi sono diversi tipi di blocchi che possono essere utilizzati all'interno di programmi utente:

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

1 Il Paradigma Imperativo

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

Esercitazioni di Reti Logiche. Lezione 5

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

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

Configurazione & Programmazione Profibus DP. in Ambiente Siemens TIA Portal

ESEMPIO QUATTRO: CARROPONTE

La tecnica proporzionale

LA METAFORA DELL UFFICIO

Analizzatori Lessicali con JLex. Giuseppe Morelli

1. Introduzione. 2. Installazione di WinEMTFree. 3. Descrizione generale del programma

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

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

Modelli di interazione tra processi

Programmazione dei PLC in linguaggio Ladder

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

Strutture dati e loro organizzazione. Gabriella Trucco

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Programmazione orientata agli oggetti: le classi

1 Esercizi in pseudocodice

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

VARIABILI, ASSEGNAZIONE, DECISIONI

SLIO. Semplifica la vita. OCTOBER 13

Corso di Ingegneria del Software. Activity Diagram

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Istruzioni Condizionali

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

perror: individuare l errore quando una system call restituisce -1

Istruzioni per l impostazione dei parametri nel REF 601

Manuale di Programmazione Siemens Step7 5.3 con Esercizi Svolti

Esempio PROGRAMMAZIONE IN LADDER IN AMBIENTE SIMATIC STEP7. Corso su. creato in esclusiva per Associazione PLC Forum

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Modelli di interazione tra processi

Transcript:

Sequential Function Chart (SFC) Linguaggio orientato al Sequencing Deriva dallo standard IEC 848 "Preparation of Function Charts for Control Systems", basato su alcune idee tipiche del Grafcet Linguaggio Grafico Grafcet: Standard Francese basato sulle Reti di Petri Vantaggi: Programmazione Top-Down Si basa su : Transition, Step, Action, Oriented Arc home N start

Step Nome Nome Due tipi di Step: Normal Step, Initial Step Vi può essere un solo Initial Step Ogni step ha associato un nome unico in tutto il POU I nomi associati agli step sono trattati come variabili locali nel POU A ciascuno Step è associato uno Stato: Attivo o non Attivo L Initial Step viene automaticamente attivato quando vi è una Cold-Start

A ciascuno Step sono associate due variabili: Step Active Flag. E' una variabile booleana che diviene vera quando lo step Nome diviene attivo. Nome_Step.X Può essere utilizzata in qualunque parte del programma, allo scopo di testare che un particolare step è attivo. Elapse Time. E' una variabile di tipo TIME. Quando uno step diviene attivo la variabile è posta a zero. Mentre lo step è attivo, la variabile viene aggiornata. Quando lo step non è più attivo, la variabile conserva il suo ultimo valore, ossia memorizza quanto tempo lo step è rimasto attivo l'ultima volta che è stato attivato. Nome_Step.T Step Può essere utilizzata in qualunque parte del programma, ad esempio per imporre un limite massimo sulla durata dello stato attivo.

Transition Una transizione è rappresentata da una barra orizzontale nera A ciascuna transizione è sempre possibile associare almeno uno Step precedente ed almeno uno Step seguente: il numero di Step precedenti e seguenti può essere maggiore di uno (vedi sequenze simultanee): uno precedente/molti seguenti, molti precedenti/uno seguente. A ciascuna transizione VIENE essere associata una condizione booleana (TRUE, FALSE). Lo stato della transizione coincide con la condizione associata

Condizione associata alla Transition La condizione booleana può essere essere costituita da: Una variabile booleana (TRUE, FALSE) o in generale una qualunque espressione booleana Step1 start (TRUE, FALSE) Step2

Condizione associata alla Transition Un rung nel linguaggio ladder. Se il rung fornisce un flusso di corrente, la condizione associata alla transizione diviene vera x y Step1 z Step2 Una uscita binaria di un qualunque FB. Se l'uscita è vera allora la condizione associata alla transizione diviene vera FB Step1 Step2

Condizione associata alla Transition Un nome logico (Named Transition). Al nome logico viene associato un programma usando uno dei linguaggi IEC 1131-3. Nella definizione di una Named Transition si deve associare al suo nome logico un valore booleano. Step1 Definizione della Named Transition "Pstart" in Ladder: TRANSITION Pstart: x y Pstart Step2 Pstart z END_TRANSITION

Archi e Sequenze nel linguaggio SFC Un arco permette di associare step e transizioni tra loro Un arco è rappresentato da una linea verticale che collega uno step con una transizione. Un arco è orientato per default dall'alto verso il basso (step -> transizione) Nel caso in cui è necessario ricorrere ad un arco orientato dal basso verso l'alto, viene rappresentato il senso, tramite una freccia una sequenza è definita da una serie di step transizioni - step collegati da archi orientati

Archi e Sequenze nel linguaggio SFC

Sequenze Alternative E' possibile realizzare sequenze alternative tramite percorsi divergenti e convergenti. Le sequenze sono eseguite in mutua esclusione. percorso divergente percorso convergente

Sequenze Simultanee E' possibile realizzare sequenze simultanee tramite Simultaneous Sequence Divergence e Simultaneous Sequence Convergence. Divergenza di Sequenze Simultanee Convergenza di Sequenze Simultanee

Regole di Valutazione di una Transition La condizione associata ad una transizione è valutata SOLO quando lo Step precedente ad essa è Attivo (almeno uno Step è attivo: Initial Step!!!!) In tal caso, SE la condizione associata alla Transizione è vera, lo Step precedente si disattiva e diventa attivo lo Step seguente.

Regole di Valutazione di una Transition Sequenze Alternative Regole di valutazione delle sequenze alternative: 1. E' buona norma, associare alle transizioni presenti in Sequenze Alternative, condizioni logiche mutuamente esclusive 2. Le condizioni booleane associate alle transizioni vengono valutate da sinistra verso destra. 3. Se una o più transizioni hanno condizioni TRUE, la precedenza viene data alla transizione più a sinistra 4. E' possibile modificare la regola di precedenza, attribuendo una priorità a ciascuna transizione.

Regole di Valutazione di una Transition Sequenze Simultanee La condizione associata a questa transizione è valutata SOLO quando lo Step precedente è Attivo In tal caso, SE la condizione associata alla Transizione è vera, lo Step precedente si disattiva e diventano attivi gli Step seguenti della Sequenza Simultanea. La condizione associata a questa transizione è valutata SOLO quando tutti gli Step precedenti sono Attivi In tal caso, SE la condizione associata alla Transizione è vera, tutti gli Step precedenti si disattivano e diventa attivo lo Step seguente.

Regole di Valutazione di una Transition Sequenze Simultanee Le sequenze simultanee vengono valutate tutte in parallelo Per ciascuna sequenza simultanea solo uno step alla volta può essere attivo La convergenza di sequenze simultanee avviene solo quando tutti gli ultimi step di ciascuna sequenza sono attivi.

Regole di Valutazione di una Transition Sequenze Simultanee E' necessario che la Convergenza di Sequenze Simultanee possa attuarsi Tutti gli Step che afferiscono a tale convergenza devono poter diventare tutti attivi Esempio di Errata Convergenza di Sequenze Simultanee:

Actions Ad ogni Step è possibile associare una o più Action che descrivono le azioni da compiere quando il relativo Step è attivo Ogni action è rappresentata da un rettangolo connesso allo Step E' possibile che ad uno Step non sia associata alcuna azione. In tal caso quando lo Step diviene attivo, non viene eseguito nulla, e si attende che lo Step venga disattivato.

Action Name Actions Action Qualifier Indicator Variable Action Qualifier Action Name Indicator Variable Action Qualifier. Specifica le modalità di esecuzione dell'azione. Può assumere i valori: N, S, R, P, P1, P0, L, D, e loro combinazioni (SD, DS, SL) Action Name. Tale parametro DEVE essere unico in tutto il programma. All Action Name viene associata una variabile binaria o un programma. Il programma può essere scritto (a parte) in uno dei linguaggi IEC 61131-3 Indicator Variable (opzionale)

Action Qualifiers Lo Standard IEC 61131-3 prevede due modalità di esecuzione delle azioni associate ad uno step: Con la final scan logic: ogni azione, eccetto quelle associate agli Action Qualifier P0 e P1, viene eseguita ancora una sola volta dopo che la stessa azione viene disattivata Vantaggio: permette il reset/set di eventuali parametri/variabili utilizzati durante l'esecuzione dell'azione. Senza la final scan logic: l esecuzione di ogni azione termina esattamente alla propria disattivazione

Action Qualifiers 'N' Non stored action qualifier Step1 N Action1 Step1.X final scan logic Action1 T1 T1 L'azione "Action1" è eseguita continuamente mentre lo Step1 è attivo. Se "final scan" logic è implementata: quando lo Step1 è disattivato l'azione è eseguita una sola volta

Action Qualifiers 'S', 'R', Set e Reset action qualifier Step1 S Action1 Step1.X T1 T1 final scan logic StepN R Action1 Action1 TN StepN.X TN L'azione "Action1" inizia ad essere eseguita quando lo Step1 diviene attivo. L'azione viene memorizzata (stored) e continua ad essere eseguita fino a quando lo step StepN diviene attivo. Nel caso in cui un'azione non venga mai resettata tramite l'action qualifier 'R', essa viene eseguita all'infinito.

'P1' pulse action qualifier Action Qualifiers Step1 P1 Action1 Step1.X T1 T1 Action1 Quando lo Step1 è attivato, l'azione Action1 è eseguita una sola volta. In questo caso non esiste l opzione "final scan" logic

'P0' pulse action qualifier Action Qualifiers Step1 P0 Action1 Step1.X T1 T1 Action1 Quando lo Step1 è disattivato, l'azione Action1 è eseguita una sola volta. In questo caso non esiste l opzione "final scan" logic

Action Qualifiers L time limited action qualifier Step1.X Step1 L T#4s Action1 T1 final scan logic T1 Action1 4 s Step1.X T1 final scan logic Action1 4 s

Action Qualifiers D time delayed action qualifier Step1.X Step1 D T#4s Action1 T1 T1 Action1 4 s final scan logic Step1.X T1 Action1 4 s

Elementi Fondamentali di Controllo tramite SFC Sequence Skip:

Elementi Fondamentali di Controllo tramite SFC Sequence Loop:

Elementi Fondamentali di Controllo tramite SFC Rendezvous:

Esecuzione di un programma SFC L'esecuzione avviene con le modalità del task associato Ad ogni esecuzione: Inizializzazione: viene inizializzato l'initial Step e vengono eseguite le azioni associate all'initial Step Viene determinato l'insieme degli Step attivi Vengono valutate TUTTE le Transitions associate con gli Step Attivi Ogni Step Attivo che precede una Transizione "Vera" viene deattivato e lo Step successive viene attivato Tutte le azioni "attive" vengono eseguite (TUTTE) Nel caso della logica "final scan", allora vengono eseguite TUTTE le azioni terminate nella precedente esecuzione

SFC in Siemens TIA Portal SFC viene chiamato GRAPH Comportamento conforme a IEC 61131-3 L uso del linguaggio SFC/GRAPH NON è consentito in un OB, ma solo all interno di un FB L istanza di un FB scritto in linguaggio SFC/GRAPH viene richiamata in un OB qualunque

Possibili Catene Sequenziali SFC in Siemens TIA Portal

SFC in Siemens TIA Portal Come nello standard IEC 61131, i Passi (Step) hanno i due attributi: X e T Alle transizione si possono connettere rung o blocchi (KOP o FUP)

SFC in Siemens TIA Portal Azioni associate ad un Passo A differenza dello standard IEC 61131-3, vengono introdotti i seguenti elementi: Interlock (opzionale). Eventi (opzionali): S1 (attivazione passo) e S0 (disattivazione passo) Come nello standard IEC 61131-3, sono presenti i seguenti elementi: Action Qualifier: N, S, R, L, D Gli action qualifier P1, P0 non esistono e vengono realizzati da S1 o S0 Action: operando o richiamo blocco

SFC in Siemens TIA Portal La logica "final scan" NON è implementata L'Action può essere realizzata da: Operando rappresentato da una singola variabile binaria scrivibile (es.%m0.0, %Q124.0) Richiamo di un blocco funzionale o di una funzione Il richiamo di un blocco funzionale o di una funzione deve avvenire utilizzando unicamente l identificazione (action qualifier) N Sintassi Richiamo Blocco Funzionale (FB) CALL <FBName>, <DBName> (lista dei parametri) Sintassi Richiamo Funzione (FC) CALL <FCName> (lista dei parametri)

Esempio di Chiamata di un FB SFC in Siemens TIA Portal Action Qualifier N è obbligatorio se si chiama un FB o un FC

SFC in Siemens TIA Portal Comportamento del GRAPH in dipendenza del tipo di operando e dell identificazione usata Si evince che la CALL ammette unicamente l action qualifier N

SFC in Siemens TIA Portal Il Comportamento IEC 61131-3 relativo all'action Qualifier P1 si realizza tramite l'evento S1+N Comportamento del GRAPH in dipendenza del tipo di operando, dell identificazione usata e dell evento S1: L utilizzo di S1 quando si richiamano FB e FC, implica la loro esecuzione una sola volta in corrispondenza del fronte di salita (attivazione del passo)

SFC in Siemens TIA Portal Il Comportamento IEC 61131-3 relativo all'action Qualifier P0 si realizza tramite l'evento S0+N Comportamento del GRAPH in dipendenza del tipo di operando, dell identificazione usata e dell evento S0: Un passo si disattiva L utilizzo di S0 quando si richiamano FB e FC, implica la loro esecuzione una sola volta in corrispondenza del fronte di discesa (disattivazione del passo)

SFC in Siemens TIA Portal Il blocco viene richiamato e la catena passi inizializzata se il parametro INIT_SQ è "False".

SFC in Siemens TIA Portal Una volta che la catena è stata inizializzata, la successiva disattivazione della catena passi avviene su un fronte positivo sul parametro OFF_SQ Per riattivare la catena di passi ed ri-inizializzarla, il parametro INIT_SQ deve essere pilotato con un fronte positivo. Inizialmente 0

Esercizio: Distributore di Bibite FineCorsaA SA SB FineCorsaB

Esercizio: Distributore di Bibite Prelievo = = 1 Home Moneta = = 1 BLOCCA=1 Consegna Bibita SB=1 Attesa Attesa Prelievo Aperto = =1 FineCorsaB = = 1 Fine_Delay_SA = = 1 Home = =1 Prelievo RientroSB RientroSA FineCorsaA== 1 SA=1 Nuova Bibita Fine_Delay_SB = = 1

Nastro 1 Esercizio: 3 Nastri Nastro 2 s1 M1 Posizione P1 Comando: Go1 Sensore: OK1 M2 s2 Posizione P2 Comando: Go2 Sensore: OK2 Posizione di Home_Robot Comando: Go0 Sensore: OK0 M3 Posizione P3 Go3 OK3 s3 Open/Close = comandi di apertura e chiusura pinza manipolatore Nastro 3 s4

Esercizio: 3 Nastri home_robot s1 home1!s1 ok0 Vai P0 Go0=1 Go2=1 Go3=1 Close=1 Fine tempo!s1 && s2 Vai P2 Vai P3 Apri ok2 chiudi Vai P1 ok1 home3 && fine tempo Ok3 Open=1 Close=1 Go1=1 S3 && home_robot home3!s1 Ferma1!s2 home2!s2 Ferma2 M2=1 M1=1 muovi1 s1 muovi2 s2!s4 muovi3 M3=1 attesa s4