Il linguaggio SFC - SFC.pdf · Il linguaggio SFC (o diagramma funzionale sequenziale) si propone di...

50
Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1 Il linguaggio SFC Sequential Functional Chart Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 2 Dal ladder a SFC

Transcript of Il linguaggio SFC - SFC.pdf · Il linguaggio SFC (o diagramma funzionale sequenziale) si propone di...

1

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1

Il linguaggio SFC

Sequential Functional Chart

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 2

Dal ladder a SFC

2

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 3

Limitazioni del ladder

Si è esaminato il linguaggio a contatti in quanto esso rappresenta certamente il più diffuso (in quanto il più vecchio) dei linguaggi di programmazione disponibili su PLC. Questo però non è certamente il linguaggio migliore tra quelli oggi definiti per la programmazione di un PLC. Fra i suoi inconvenienti vi è la caratteristica (comune ai linguaggi di basso livello) che necessita di un certo periodo di tempo prima di poter essere maneggiato con una certa padronanza in modo da riuscire a tradurre l’algoritmo che si vuole implementare in un diagramma a contatti funzionante; altra caratteristica in comunecon altri linguaggi a basso livello è costituita dalla scarsa leggibilità dei programmi scritti in tale linguaggio. Un ultimo grave difetto del linguaggio a contatti è che questo è a tutti gli effetti un linguaggio assemblatore di basso livello, quindi un programma scritto in tale linguaggio non è portabile tra macchine differenti (infatti sono stato costretto a introdurre il linguaggio a contatti virtuale).

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 4

Obiettivi di SFC

Il linguaggio SFC (o diagramma funzionale sequenziale) si propone di ovviare agli inconvenienti esposti in quanto rappresenta un linguaggio di programmazione di più alto livello rispetto a quello a contatti, semplificando così la fase di scrittura e lettura del programmaDato che tale linguaggio non è disponibile su tutte le macchine, si è anche individuata una procedura che fosse la più automatica possibile (in modo da poterla eventualmente realizzare in modo automatico ad esempio da un PC) che permetta di tradurre il programma scritto in SFC nella sua versione tradotta in linguaggio a contatti, che sarà poi quella eseguita sul PLC.Tra gli scopi che hanno portato alla definizione del linguaggio SFC vi è proprio quello di garantire una maggiore facilità nel passaggio dal problema assegnato all’algoritmo che si propone di risolverlo, cercando altresì di facilitare l’individuazione di specifiche non chiaramente espresse dal problema.

3

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 5

Caratteristiche SFC

Da questo punto di vista può risultare utile l’utilizzo del linguaggio SFC direttamente nella fase di stesura delle specifiche corrispondenti al problema posto, in modo tale da agevolare anche l’individuazione degli attuatori e dei sensori necessari al soddisfacimento delle specifiche. Un altro fattore caratterizzante di questo linguaggio che rende più agevole la stesura del programma in SFC è dato dalla possibilità di decomporre il sistema che si vuole controllare in più unità funzionali, ognuna descritta da un diagramma SFC (decomposizione del sistema in sottounità funzionali). Con tale tecnica la scrittura del programma si traduce nella scrittura di più SFC (tra loro in qualche misura dipendenti) che verranno eseguiti contemporaneamente.

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 6

Sequential Functional Chart

4

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 7

Sequential Functional 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 startN

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 8

Grafi di stato

5

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 9

Elementi di base di un SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 10

Elementi di base di un SFC

6

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 11

Elementi di base di un SFC

La fase non è altro che una condizione in cui il sistema può trovarsi; il verificarsi di un certo evento può determinare una transizione del sistema da una fase ad un’altra(cambio di stato)La fase o le fasi iniziali del sistema sono evidenziate da una doppia cornice. Una fase può essere attiva o meno in corrispondenza delfatto che il sistema si trovi o meno in quella fase.Attivazione di una fase). Se la fase è attiva ciò viene evidenziato nei diagrammi utilizzando un pallino all’interno del suo simbolo; il pallino quindi servirà ad individuare la fase in cui si trova il sistema. Solo se una fase è attiva vengono eseguite le azioni ad essa associate. Ad ogni fase viene associato un marker (un bit in definitiva) indicato Xn ove n è il numero della fase che assume valore 0 se la fase è inattiva, 1 se è attiva (il sistema si trova nella fase il cui marker vale 1).

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 12

Elementi di base di un SFC

7

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 13

Elementi di base di un SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 14

• Un arco è rappresentato da una linea verticale.• Un arco è orientato per default dall'alto verso il basso• 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

8

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 15

Archi e Sequenze nel linguaggio SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 16

• 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 trattate 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

StepNome Nome

9

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 17

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

Step

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 18

• 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• Può essere utilizzata in qualunque parte del

programma, ad esempio per imporre un limite massimo sulla durata dello stato attivo.

Step

10

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 19

• 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 Stepprecedenti e seguenti può essere maggiore di uno)

• A ciascuna transizione DEVE essere associata una condizione booleana (TRUE, FALSE). Lo stato della transizione coincide con la condizione associata

Transition

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 20

• La condizione booleana può essere essere costituita da:• Una variabile booleana (TRUE, FALSE)• In generale una qualunque espressione booleana • Un rung nel linguaggio ladder. Se il rung fornisce un flusso di

corrente, la condizione associata alla transizione diviene vera• Una uscita binaria di un qualunque FB. Se l'uscita è vera allora

la condizione associata alla transizione diviene vera• 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.

Condizione associata alla Transition

11

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 21

Esempi di TransitionStep1

Step2

start (TRUE, FALSE)

Step1

Step2

x y

z

Step1

Step2

AND

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 22

Esempi di Transition

• Definizione della Named Transition "Pstart" in Ladder:

Step1

Step2

Pstart

x y

z

Pstart

TRANSITION Pstart:

END_TRANSITION

• Il nome associato deve essere unico in tutto il programma

• I nomi associati sono variabili locali nel POU

12

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 23

• La condizione associata ad una transizione è valutata SOLO quando tutti gli Step precedenti ad essa sono attivi (almeno uno Step è attivo: Initial Step !!!!)

• Quando tutti gli Step precedenti ad una transizione sono attivi e la condizione ad essa associata è vera, tutti gli Step precedenti si disattivano e divengono attivi gli Stepseguenti.

Regole di Valutazione di una Transition

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 24

Esempio di un SFC

13

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 25

Esempio: controllo di un timbro

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 26

SFC timbro

14

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 27

Esempio passaggio a livello

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 28

SFC serratura a combinazione

15

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 29

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 30

Regole di evoluzione di un SFC

16

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 31

Regole di evoluzione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 32

Ambiguita’ #1

17

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 33

Priorità dell’attivazione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 34

Esempio del nastro trasportatore

18

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 35

Differenze con le Reti di Petri

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 36

Tipi di variabili di un SFC

19

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 37

Variabili di ingresso

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 38

Variabili temporali

20

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 39

Esempio uso var. temporale

Trans esclusive

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 40

Watchdog di un ciclo globale

21

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 41

Tipi di azione di un SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 42

Ad ogni Step è possibile associare una o più Action che descrivono le azioni da compiere quando il relativo Stepè attivoOgni action è rappresentata da un rettangolo connesso allo StepE' 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.

Actions

22

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 43

• Action Qualifier. Specifica le modalità di esecuzione dell'azione. Può assumere i valori: N, S, R, L, D, P, SD, DS, SL

• Action Name. Tale parametro DEVE essere unico in tutto il programma. All’Action Name viene associato il programma che realizza l'azione. Il programma può essere scritto (a parte) in uno dei linguaggi IEC 1131-3

• Indicator Variable (opzionale). Permette di indicare una key variabile che èmodificata dall'azione

Actions

Action Qualifier Indicator Variable

Action Name

Action Name Indicator VariableAction Qualifier

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 44

• Lo Standard IEC 1131-3 prevede che qualunque azione associata ad uno step (con qualunque Action Qualifier), che viene eseguita mentre lo step è attivo, venga eseguita ancora una sola volta dopo che lo step viene disattivato

• Vantaggio: permette il reset/set di eventuali parametri/variabili utilizzati durante l'esecuzione dell'azione

• Esempio: se l'azione è realizzata tramite un programma in Ladder occorre la presenza di un contatto cui è associato lo stato dello step (attivo/non attivo), in modo da distinguere le azioni da compiere nei due casi.

Action Qualifiers

23

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 45

Tipi di azione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 46

Tipi di azione

24

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 47

Tipi di azione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 48

Tipi di azione

25

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 49

Tipi di azione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 50

Tipi di azione

26

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 51

• 'N' Non stored action qualifier

Action1NStep1Step1.X

Action1

T1T1

• L'azione "Action1" e' eseguita continuamente mentre lo Step1 è attivo. Quando lo Step1 è disattivato l'azione è eseguita una sola volta

Action Qualifiers

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 52

• 'S', 'R', Set e Reset action qualifier

• 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. In tal caso l'azione "Action1" è eseguita una sola volta. Nel caso in cui un'azione non venga mai resettata tramite l'action qualifier 'R', essa viene eseguita all'infinito.

Action Qualifiers

Action1SStep1

T1

Action1RStepN

TN

Step1.X

T1

StepN.X

Action1

TN

27

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 53

• 'P' pulse action qualifier

• Quando lo Step1 è attivato, l'azione Action1 è eseguita una sola volta. • Nota: in alcune implementazioni dello standard l'esecuzione

dopo la disattivazione dello Step1, puo' non essere prevista.

Action Qualifiers

Action1PStep1

T1

Step1.X

T1

Action1

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 54

• 'L' Time Limited action qualifier

Action Qualifiers

Action1LStep1Step1.X

T1

T1

Action1 T

Step1.X

T1

Action1

T

L'azione "Action1" inizia ad essere eseguita quando lo Step1 diviene attivo. L'azione viene eseguita per un determinato intervallo di tempo T (associato al qualifier L). Alla fine di tale intervallo, l'azione viene terminata. Se lo step e' disattivato prima che tale tempo T si concluda, allora l'azione "Action1" viene terminata. Qando l'azione e' terminata, in entrambi i casi, essa viene eseguita per l'ultima volta, una sola volta.

28

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 55

Action Qualifiers'SL' stored and time limited action qualifier

Action1SLStep1Step1.X

T1StepN.X

Action1T

Step1.XAction1RStepN

TN StepN.X

Action1

Step1.X

StepN.X

Action1

T

T

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 56

Action Qualifiers'D' time delayed action qualifier

Action1DStep1Step1.X

T1

T1

Action1T

Step1.X

T1

Action1T

L'azione "Action1" inizia ad essere eseguita dopo l'intervallo temporale T (associato al qualifier D) a partire dall'istante in cui lo Step1 diviene attivo. L'azione viene eseguita fino a quando lo Step1 non viene disattivato. In tal caso l'azione "Action1" e' eseguita una sola volta. Se lo Step1 non rimane attivo per un tempo almeno pari a T, l'azione non viene mai eseguita.

29

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 57

Action Qualifiers'SD' stored and time delayed action qualifier

Quando lo Step1 e' attivo, l'azione "Action1" viene memorizzata, ma non viene eseguita fino a quando l'intervallo di durata T e' trascorso. L'azione viene eseguita fino a quando non viene resettata attraverso l'action qualifier R. Se l'azione "Action1" e' chiamata con l'action qualifier R prima che l'intervallo T si conclude, l'azione non verra' mai eseguita.

Action1SDStep1Step1.X

T1StepN.X

Action1T

Step1.XAction1RStepN

TN StepN.X

Action1T

Step1.X

StepN.X

Action1T

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 58

Action Qualifiers'DS' time delayed and stored action qualifier

Quando lo step "Step1" viene attivato, l'azione "Action1" viene ritardata. Dopo l'intervallo temporale T, l'azione viene memorizzata ed eseguita. L'azione continua ad essere eseguita fino a quando la stessa azione viene richiamata con l'action qualifier 'R'. Se lo Step1 viene disattivato prima del tempo T, allora l'azione non verra' mai eseguita.

Action1DS

Step1Step1.X

T1StepN.X

Action1T

Step1.X

Action1RStepN

TN StepN.X

Action1T

30

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 59

Strutture di un SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 60

Strutture classiche

31

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 61

Divergenza non ambigua

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 62

Strutture classiche

32

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 63

• E' possibile realizzare sequenze alternative tramite percorsi divergenti e convergenti. Le sequenze sono eseguite in mutua esclusione.

Sequenze Alternative

percorso divergente

percorso convergente

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 64

Sequenze Alternative

• Regole di valutazione delle sequenze alternative:• Le condizioni booleane associate alle transizioni vengono

valutate da sinistra verso destra.• Se una o più transizioni hanno condizioni TRUE, la

precedenza viene data alla transizione più a sinistra• E' possibile modificare la regola di precedenza, attribuendo

una priorità a ciascuna transizione.• E' buona norma, associare alle transizioni presenti in

Sequenze Alternative, condizioni logiche mutuamente esclusive

33

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 65

Strutture classiche

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 66

Strutture classiche

34

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 67

Sequenze in parallelo

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 68

• E' possibile realizzare sequenze simultanee tramite SimultaneousSequence Divergence e Simultaneous Sequence Convergence.

Sequenze Simultanee

Divergenza di Sequenze Simultanee

Convergenza di Sequenze Simultanee

35

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 69

• 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 Programmazione di una Sequenza Simultanea

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 70

• 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:

Regole di Programmazione di una Sequenza Simultanea

36

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 71

Strutture classicheT13 e T43 mutuamente esclusive

semaforo

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 72

Strutture classiche

37

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 73

Sequence Skip:

Elementi Fondamentali di Controllo tramite SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 74

Sequence Loop:

Elementi Fondamentali di Controllo tramite SFC

38

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 75

Rendezvous:

Elementi Fondamentali di Controllo tramite SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 76

Struttura errata

39

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 77

Struttura ambigua

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 78

Macrofase e macroazione

40

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 79

Macrofase

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 80

MacroazioniAzione operata da un SFC che ha effetto su un altro SFC. Consente gerarchie tra SFC.

SFC da forzare

Condizione da forzareTrans aux

41

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 81

Macroazioni

Insieme vuoto

Aggiunge una transizione superabile in uscita per tutte le fasi

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 82

Macroazioni

42

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 83

Traduzione del SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 84

Come già detto in precedenza non sempre nei PLC reali è fornita la possibilità di inserire un programma scritto in SFC; se dunque non si vuole rinunciare ai vantaggi offerti da questo linguaggiorispetto agli altri (in termini di leggibilità dei programmi e di facilità di programmazione) è comunque possibile operare una traduzione di un diagramma SFC nell’equivalente programma scritto nel linguaggio a contatti, essendo certi che un qualsiasi PLC accetterà il programma scritto in questo linguaggio; in questa parte verranno illustrate proprio le tecniche per operarequesta traduzione. Quello che si è fatto presentando il linguaggio SFC è stato definire i concetti di fase, azione, condizione (insieme delle fasi attive assunte dal sistema in un dato istante) e transizione mediante la quale abbiamo visto sia possibile cambiare la condizione del sistema. A questo punto per passare alla traduzione del diagramma SFC nel linguaggio a contatti è necessaria una formalizzazione del comportamento di un SFC.

43

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 85

Formalizzazione di un SFC

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 86

Equazioni booleane equivalenti

44

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 87

Algoritmi di evoluzione

Gli agoritmi di evoluzione sono una delle formalizzazioni possibili in forma algoritmica delle modalità di evoluzione degli SFC; una volta rappresentato in una qualche maniera il comportamento dell’SFC sarà possibile tradurlo in un qualsiasi linguaggio di programmazione.Gli algoritmi di evoluzione non sono altro che la presentazione delle regole di evoluzione delle condizioni già illustrate. Si presenta qui l’algoritmo di evoluzione degli SFC detto senza ricerca di stabilità.Con riferimento all’algoritmo presentato in figura, si nota che il ciclo da realizzare richiede la lettura degli ingressi , delle elaborazioni per determinare le transizioni superabili e della nuova condizione delle uscite; è quindi un ciclo che ricalca il modo di funzionamento del PLC. Inoltre la lettura degli ingressi e la scrittura delle uscite sono realizzate dal sistema operativo. Bisogna quindi, delle operazioni previste dall’algoritmo, codificare le operazioni di inizializzazione delle fasi, della valutazione delle transizioni ,della determinazione della nuova condizione e dell’esecuzione delle azioni ad essa associate.

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 88

Algoritmi di evoluzione

45

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 89

Si inizia con l’associare ad ogni fase un bit di memoria dell’area utente; tale bit servirà ad indicare se la fase è attiva (=1) oppure no (=0). Si associa poi ad ogni condizione associata ad una transazione un bit di memoria dell’area utente che indichi se la transizione è superabile (=1) o meno (=0). Il programma che codifica l’algoritmo di evoluzione risulterà composto da quattro sezioni:

inizializzazione delle fasi iniziali; tale sezione sarà eseguita una sola volta all’avvio del programma e consisterà nel settare ad 1 i bit associati alle fasi iniziali. esecuzione delle azioni associate alle fasi attive; questa sezione è dedicata all’aggiornamento dell’area di memoria riservata alle uscite. Se l’azione è continua verrà utilizzata una bobina , se è memorizzata si utilizzeranno bobine a ritenuta, se condizionata l’azione sarà attivata solo se la fase e la condizione associate saranno entrambe attive. valutazione delle transizioni; se la transizione è superabile sarà settato ad 1 il bit ad essa associato; la transizione sarà associata ad un rung e le istruzioni sul rung esprimeranno la superabilità della transizione (fasi a monte attive, condizione associata vera). aggiornamento della condizione; tale sezione deve, in corrispondenza delle transizioni superabili, attivare quelle a valle della transizione e disattivare quelle a monte. Tale sezione prevederà un rungassociato a ciascuna transizione che attiva le fasi a valle e disattiva quelle a monte usando bobine a ritenuta.

Si è tralasciato finora il caso di utilizzo di variabili temporali che saranno ottenuto utilizzando le strutture di temporizzazione disponibili nel linguaggio a contatti. Le quattro sezioni, la cui costruzione rimane invariata anche nel caso di SFC multipli, vengono poi messe assieme per formare un unico programma nel linguaggio a contatti.

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 90

Algoritmi di evoluzione

46

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 91

Algoritmi di evoluzione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 92

Traduzione in ladder

47

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 93

Inizializzazione

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 94

Esecuzione delle azioni

48

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 95

Valutazioni delle transizioni

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 96

Aggiornamento condizione

49

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 97

Traduzione delle variabili temporali

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 98

Algoritmo con ricerca di stabilita’: aggiornamento della condizione

50

Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 99

Algoritmo con ricerca di stabilita’: esecuzione delle azioni