sequential function chartdocenti.etec.polimi.it/ind32/didattica/azionamentixautomazione... · viene...

39
Sequential Function Chart 22-23 Maggio 2001 1 Sequential Function Chart Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32

Upload: voanh

Post on 18-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 1

Sequential Function Chart

Marco MauriPolitecnico di Milano

P.zza Leonardo da Vinci, 32

Page 2: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 2

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

Page 3: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 3

Elementi base

Step 1 N FILL

Step 3

Step 2 S Empty

Transition 1

Transition 2

• 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

Page 4: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 4

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

Page 5: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 5

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

Page 6: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 6

Struttura del linguaggio

Start

Fill

Stir

Stop

Stir

StartSwitch = 1

VesselFull = 1

Timer1.ET = T#1h

StartSwitch = 0

Transition

Step iniziale

Condizione

Page 7: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 7

Struttura del linguaggio

Start

Fill

Stir

Stop

Drain

StartSwitch = 1

tran2

StartSwitch = 0

Filter

tran3

tran4 tran5

Ramo divergente

StartSwitch = 1

Ramo con frecca direzionale

Ramo convergenteTransizione

nominata

Page 8: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 8

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.

Page 9: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 9

Rappresentazione Semigrafica

La norma consente di specificare i simboli del

linguaggio anche attraverso dei caratteri testuali

+---------+

|| Start ||

+---------+

|

+-----------<----------------------------+

| |

+ StartSwitch = 1 |

|

+---------+

| Fill |

+---------+

|

+-----------------------+

| |

+ Tran1 + Tran2

Page 10: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 10

Rappresentazione testuale

INITIAL_STEP Start

Prompt_operator(N,StartSwitch);

END_STEP

TRANSITION FROM Start TO Fill

StartSwitch = 1

END_TRANSITION

STEP Fill:

OpenValves(P);

StartPump(N);

END_STEP

ACTION StartPump:

MainPump := ON;

Pump1 := ON;

END_ACTION

Page 11: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 11

Sequenze simultanee

• Usando i percorsi divergenti/convergentipossono essere descritte solo sequenzealternative

• SFC ammette però anche la possibilità didefinire sequenze divergenti che vengonoeseguite in parallelo.

• Le sequenze parallele vengono eseguite indipendentemente fino a quando non viene incontrata una convergenza

Page 12: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 12

Sequenze simultanee

Start

Fill

Stir

Stop

Drain

StartSwitch = 1

Tran1

Tran4

TempCks

Tran2 Tran3

Divergenza di sequenze simultanee

PressCks

Monitor

Convergenza di sequenze simultanee

Page 13: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 13

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

Page 14: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 14

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

Page 15: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 15

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).

Page 16: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 16

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

Page 17: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 17

Steps (Passi) – VARIABILI INTERNE

Start

Fill

Tran1

Valve1

Connessione diretta dal flag di stato

attivo del passo (.X) e la variabile

Valve1

Fill

Stir

Fill.T > T#10m

tran4

Condizione legata al tempo trascorso

dall’attivazione del passo Fill

Page 18: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 18

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.

Page 19: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 19

Transitions (Transizioni)

Raise

Stop

(Temp1>2000) AND (Press > 20)

Heat

Cool

Enable

Sw1

%IX4

PreCheck

Power

MotorChecks

Go

Vibration

Fuel

Bear1

Tank1

Wait

Batch

>NewBatch>

>NewBatch>

Enable

STFBD

LDConnettore

Page 20: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 20

Transitions (Transizioni)

Trans1

Step1

Step2

Label

TRANSITION Trans1 :

:= AB1 AND CX3 OR CX5

END_TRANSITION

TRANSITION Trans1 :

AndIn1

Enable

Trans1

END_TRANSITION :

TRANSITION Trans1 :

LD %IX21

AND EX10

END_TRANSITION

ST

FBD

IL

Da notare la mancanza

dell’operatore di sinistra

Page 21: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 21

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

Identificatore

Azione

Variabile indicatore

Descrizione

Page 22: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 22

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

Page 23: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 23

Identificatori

N L’azione viene eseguita mentre

il passo è attivo

R Resetta una azione memorizzata

S Pone attiva una azione (cioè la

memorizza)

L T#.. Azione limitata nel tempo.

Termina dopo il periodo indicato

D T#.. Azione ritardata nel tempo.

Inizia dopo il periodo indicato

P Azione che viene eseguita

un’unica volta quando il passo è

attivato e una quando viene

disattivato

P1 Azione che viene eseguita

un’unica volta quando il passo

è attivato

P0 Azione che viene eseguita

un’unica volta quando il passo

è disattivato

SD T# Azione memorizzata e ritardata

DS T# Azione ritardata e

memorizzata. Se il passo è

disattivato prima non viene

memorizzata

SL T# Azione memorizzata e limitata

nel tempo

Page 24: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 24

IdentificatoriIdentificatore N

Identificatore S e R

Identificatore L

Identificatore D

Page 25: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 25

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

Page 26: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 26

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

Page 27: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 27

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

Page 28: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 28

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.

Page 29: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 29

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

Step2 Step3

Tr1 Tr2

DEFAULT : precedenza da sinistra

a destra

Step1

Step2 Step3

Tr1 Tr212

Definita dall’utente

*

Page 30: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 30

Regole di evoluzione

9. E’ buona norma per evitare situazioni ambigue assicurarsi che

transizioni associate a percorsi divergenti abbiano condizioni

mutuamente esclusive

Step1

Step2 Step3

Job = 4 AND RDY NOT (Job=4) AND RDY

Page 31: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 31

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

Start

Fill

Stir

Stop

Drain

tran1

tran2

tran6

tran4

tran5

Start

Fill

Stir

Stop

Drain

tran1

tran3

tran5

tran4

tran2

Loop

Salto

Page 32: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 32

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

Step4 Step5

Tran1

Page 33: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 33

Progettazione in sicurezza

Step1

Step2 Step5

Step3 Step6

Step7Step4

Step8

Step9

Può rimanere attiva

la prima delle

sequenze

simultanee

Page 34: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 34

Progettazione in sicurezza

Step1

Step2 Step5

Step3 Step6

Step7Step4

Step8

Step9

Non saranno mai

attivi

contemporaneamente

Step4, Step7 e Step9

Page 35: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 35

Progettazione in sicurezza

Step1

Step2 Step5

Step3 Step6

Step7Step4

Step8

Step9

Page 36: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 36

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

Page 37: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 37

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

Step5

Step6

Step7

Step9

Macro Step Step3

Page 38: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 38

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

Page 39: Sequential Function Chartdocenti.etec.polimi.it/IND32/Didattica/AzionamentixAutomazione... · viene attivato quando il PLC è attivato (cold-start). Sequential Function Chart 22-23

Sequential Function Chart

22-23 Maggio 2001 39

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 top-

down. 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