sequential function chartdocenti.etec.polimi.it/ind32/didattica/azionamentixautomazione... · viene...
Post on 18-Feb-2019
221 Views
Preview:
TRANSCRIPT
Sequential Function Chart
22-23 Maggio 2001 1
Sequential Function Chart
Marco MauriPolitecnico di Milano
P.zza Leonardo da Vinci, 32
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
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
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
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
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
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
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.
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
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
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
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
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
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
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).
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
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
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.
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
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
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
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
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
Sequential Function Chart
22-23 Maggio 2001 24
IdentificatoriIdentificatore N
Identificatore S e R
Identificatore L
Identificatore D
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
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
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
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.
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
*
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
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
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
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
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
Sequential Function Chart
22-23 Maggio 2001 35
Progettazione in sicurezza
Step1
Step2 Step5
Step3 Step6
Step7Step4
Step8
Step9
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
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
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
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
top related