Sistemi e Architetture per l'Automazione L
Laurea in Ingegneria e Scienze Informatiche
Ing. Lorenzo Moriello
DEI - Università di Bologna
E-mail: [email protected]
https://www.unibo.it/sitoweb/lorenzo.moriello2
Controllo Logico nell’Automazione Industriale
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 5
Generalità sul
Progetto di Controlli Logici
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 6
Progettazione di Controlli Logici
Introduzione
La progettazione del Controllo di Sequenze per un Sistema Industriale è un compito complesso
Verranno presentati, in modo intuitivo e non formale, i passi logici della soluzione Chiarimento del compito e strutturazione del sistema
Progetto funzionale:
Definizione automa per imporre la sequenza voluta
Progetto implementativo/tecnologico:
Elaborazione dei documenti di specifica
Realizzazione del Progetto
Collaudo del sistema di controllo e messa in funzione della macchina
Stesura della documentazione
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 7
Progettazione di Controlli Logici
Chiarimento del compito e strutturazione del sistema
Descrizione generale del sistema da automatizzare
Descrizione del funzionamento che si vuole ottenere
Descrizione dettagliata del sistema Grado di automazione delle parti
tutto senza operatore?
Definizione di cosa misurare e di come e dove attuare
Interconnessione con CONTROLLI DIRETTI DI VAR. TEMPORALI
… spesso già fissato a priori….
Strutturazione della macchina in parti omogenee funzionalmente
correlazione nel processo produttivo/operativo
spazialmente
collocazione fisica adiacente
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 8
Progettazione di Controlli Logici
Chiarimento del compito e strutturazione del sistema
Descrizione generale del sistema da automatizzare
Ogni livello individua entità astratte o concreteopportunamente cooperanti, contraddistinte da ben
predefiniti ruoli, funzionalità, interfacce e protocolli di interazione con le altre entità operanti
nello stesso livello e nei livelli adiacenti della gerarchia.
Esplorando i livelli della gerarchia dall’altoverso il basso, aumenta il numero di
componenti,ma diminuisce la complessità sia
comportamentaleche strutturale di ciascuno di essi.
La descrizione del comportamento complessivo
di una macchina può essere più e più voltedecomposta in comportamenti più semplici
(approccio “divide et impera”).
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 9
Progettazione di Controlli Logici
Descrizione del processo impacchettatrice
Alimentazione
del prodotto
Formazione
del pacco
Stesura del film e
movimentazione del pacco
Avvolgimento
del pacco
Saldatura Espulsione
Pacco finito
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 10
Progettazione di Controlli Logici
Progetto Funzionale Dalla descrizione di funzionamento
Dalla struttura di massima
Grado di automazione
Dove attuare e misurare
Interconnessione con CONTROLLI DIRETTI
Definizione di Automa o di Automi interagenti per imporre la sequenza voluta
Ma:
Quale linguaggio per descriverlo?
Vedi dopo
Documento fondamentale
Spesso omesso…
NB: il progetto del controllo logico, in senso stretto, finirebbe qui…
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 11
Progettazione di Controlli Logici: il seguito
Elaborazione dei documenti di specifica delle parti
(Inizio del Progetto Implementativo)
Cruciale per la buona riuscita del progetto
Mappatura su architettura Hardware/Software dei compiti
INSIEME ALLA MAPPATURA DI CONTROLLI DIRETTI
Scelta dei sistemi di elaborazione e mappatura degli automi
Riprogrammabili o cablati?
Scelta di dettaglio dei sensori e degli attuatori
Scelta dei sistemi di comunicazione
… eventuale loop col progetto funzionale…
Già accennato all’inizio del corso
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 12
Progettazione di Controlli Logici: il seguito
Elaborazione dei documenti di specifica
(Inizio del Progetto Implementativo)
Lavoro di gruppo
Diverse persone che si occupano delle diverse parti
sensori/attuatori
elaboratori e implementazione SW
Elaboratori “cablati”
specifiche chiare e non ambigue
interfacce ben definite
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 13
Progettazione di Controlli Logici: il seguito
Realizzazione del Progetto Hardware
acquisto controllori industriali
acquisto + progettazione di parti specifiche
progettazione completa
Software applicativo Va progettato/realizzato secondo l’automa risultante dal progetto
funzionale
Deve tenere in conto delle caratteristiche dell’arch. HW
Elaboratore:
Risorse computazionali
S.O. RT Event Driven o Time Driven?
Applicazione reattiva o ciclica pseudotrasformazionale?
Caratteristiche dei sensori/attuatori
Caratteristiche del sistema di comunicazione/interfacciamento
Caratteristiche degli elaboratori per controllo diretto
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 14
Progettazione di Controlli Logici: il seguito
Realizzazione del Progetto
Software applicativo (continuazione)
Seguire regole generali per progetto/sviluppo SW per uso
professionale/industriale
realizzazione
gruppo di lavoro
manutenzione, aggiornamento, riutilizzo
noi o altre persone
Attività cruciale
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 15
Progettazione di Controlli Logici: il seguito
Collaudo del sistema di controllo e messa in
funzione dell'impianto
Fase costosa e delicata
realizzata da altre persone
realizzata presso il cliente
esigenze di avvio della produzione
tempi e costi dipendono fortemente dalla qualità della fase
di progettazione
meglio investire tempo e risorse sulla progettazione che spendere
poi nel collaudo e nella messa in servizio
Nella pratica industriale raramente viene seguita
questa filosofia per diverse motivazioni,
solitamente non tecniche
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 16
Progettazione di Controlli Logici: il seguito
Stesura della documentazione
La documentazione è parte integrante e fondamentale di
un progetto industriale
un progetto non è completato finché non è corredato da adeguata
documentazione
La predisposizione della documentazione va effettuata
congiuntamente con lo sviluppo di ogni fase della
progettazione
Tecniche di progettazione che intrinsecamente producono
documentazione sono da privilegiare
CAD
programmazione strutturata
SFC
(GEMMA)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 17
Progettazione di Ctrl Logici: torniamo all’automa
Strumenti di modellazione per il controllo di
sequenze
Come rappresentare l’automa o l’insieme di automi?
Obiettivi della rappresentazione:
Elevato potere espressivo
Complessità ridotta
Facile leggibilità
Indipendenza dall’implementazione
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 18
Progettazione di Ctrl Logici: torniamo all’automa
Strumenti di modellazione per il controllo di
sequenze:
Possibili soluzioni:
descrizione letterale (a parole)
lunga, imprecisa, troppo personale
descrizione puramente logica
troppo particolareggiata
legata alla tecnologia implementativa
diagrammi temporali
pesante
carenza nella descrizione degli elementi sequenziali
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 19
Progettazione di Ctrl Logici: torniamo all’automa
Strumenti di modellazione per il controllo di
sequenze:
Possibili soluzioni:
diagramma degli stati
Molto interessante
Concetto di stato esplicito
Rappresentazione concentrata ed efficace della situazione
operativa raggiunta in funzione del passato
Restringe analisi dell’informazione: solo ciò che è interessante
in una data condizione operativa
Soluzione “tipo reti logiche”: strumento idoneo per sistemi di
modesta complessità perché troppo particolareggiato
Idoneo anche per sistemi complessi con una opportuna
ridefinizione del concetto di stato…. SFC…
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 24
Lo standard IEC 61131-3
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 25
Lo Standard IEC 61131-3
SCOPO
Definire linguaggi standard per la programmazione di PLC
Stimolare una normalizzazione della sintassi dei linguaggi di
programmazione per l'automazione
Considerazioni
Parte della norma IEC61131 (1993, recepita in Italia nel 1996,
revisione in 2003) riguarda la standardizzazione PLC
IEC61131-1: Definizione PLC
IEC61131-2: Architettura HW/SW dei PLC (Real-time Time
Driven)
IEC61131-3: Linguaggi di programmazione per implementare
su PLC i controlli di sequenze e linee guida per il loro utilizzo
Linguaggi di programmazione, tipi di dato, variabili, risorse,
program organization unit (POU)
Tutti i documenti della norma disponibili a:
https://webstore.iec.ch/searchform&q=61131
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 26
Lo Standard IEC 61131-3
5 linguaggi proposti:
Grafici: SFC, LD, FBD
Testuali: ST, IL
Cinque sono tanti!
Stesura della norma condizionata dalla precedente pratica
industriale…
Linguaggi molto diversi tra loro
Tengono conto in modo diverso delle caratteristiche del
PLC:
Esecuzione sequenziale
PLC sistema tipicamente monoprocessore (modello della
macchina di Von Neumann)
S.O. Real Time, Time Driven: “ciclo while intrinseco”
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 27
Lo Standard IEC 61131-3
Tra i diversi linguaggi proposti nella norma ve ne è uno
(SFC) che mostra:
elevata potenza espressiva
elevata semplicità e leggibilità
potenziale… necessario corretto utilizzo
scarso legame con l’implementazione
solo in alcuni punti non fondamentali…
NB: addirittura nella norma è tenuto separato dagli altri linguaggi
BUONO PER LA RAPPRESENTAZIONE FUNZIONALE DEL
CONTROLLO DI SEQUENZE
Insieme ad alcuni costrutti particolari (Function Blocks, FB), che
vedremo in seguito
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 28
Lo Standard IEC 61131-3
In seguito (in questo gruppo di lucidi):
Carrellata dei 5 linguaggi
Cenni a tipi di dato e organizzazione del SW secondo la
IEC 61131-3
Approfondimento dell’SFC
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 29
Ladder Diagram
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 30
Ladder Diagram
• Schema a contatti
• Traduzione informatica degli schemi logici a relè che erano utilizzati nella
definizione di controllori logico/sequenziali cablati
• Nato proprio per permettere un passaggio indolore dalla progettazione
cablata alla programmazione
• Simboli di provenienza elettrica per permettere una semplice
comprensione a tecnici dalle conoscenze informatiche scarse o nulle
• Istruzioni rappresentate tramite contatti normalmente aperti o chiusi di un
relè
• bobine di eccitazione per la memorizzazione delle variabili;
• Forma del programma deriva dagli armadi a relè che definivano la logica
cablata.
• Questo linguaggio rimane tuttora il linguaggio di programmazione per
PLC più utilizzato
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 31
Ladder Diagram (LD)
Linguaggio a contatti (Ladder Diagram, LD)
AND
( )E1.0 E1.1 A4.0
1
( )OR
E1.2
E1.1
A4.1
2
V+ V-
Grafico
Riprende schemi a relay
Regole base:
Flusso di potenza da sx
verso dx
Esecuzione da alto verso
basso
NB:
Allontanamento da schema
a relay:
- no esecuzione parallela
- no corse critiche
- no ambiguità su percorsi
RELE’
BOBINA
NEGAZIONE
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 33
Ladder Diagram (LD)
Rappresentazione grafica di operazioni booleane mediante schemielettrici a relè evoluti
Gli operandi sono rappresentati da contatti
Interruttori che lasciano passare o meno la corrente a seconda del valore della variabile associata
Operazione definita da interconnessione dei contatti
Il risultato dell’operatore è rappresentato da una bobina
Memorizzano il risultato in una variabile di uscita
( )IN1
( )OUT1
V+ V-
IN4
IN2
IN3
OUT2
( )OUT3
IN1
OUT2 := (IN1 or IN2 or not(IN3))
and not(IN4)
OUT3 := (IN1 or IN2 or not(IN3))
and not(IN4)
OUT1 := not (IN1)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 34
Ladder Diagram (LD)
Linguaggio a contatti (Ladder Diagram, LD)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 35
Ladder Diagram (LD)
Linguaggio a contatti (Ladder Diagram, LD)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 37
Function Block Diagram
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 38
Function Block Diagram
Rappresentazione di schemi a blocchi funzionali logici
Riprende le reti logiche cablate
Un blocco rappresenta
una funzione
Es. funzione logica, aritmetica, relazionale, ecc.
un function block (equivalente a un’istanza di un oggetto)
Es. contatori, timer, generatori di segnali, ecc.
Tali blocchi funzionali sono rappresentati come delle scatole nere
e sono caratterizzati da dati in ingresso e in uscita e
dall’algoritmo che viene processato al loro interno
V. librerie standard
L’esecuzione avviene dall’alto verso il basso (a parte
utilizzando jump)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 39
Function Block Diagram
Schemi a blocchi funzionali logici
(Function Block Diagram, FBD)
&
E1.0
E1.1
A4.0
1
>= 1
A4.1
E1.2
E1.1
2( )
( )
Grafico
Riprende reti logiche cablate
Regole base:
Flusso di segnale
Esecuzione dall’alto al
basso
Feedback: rete sincrona
NB:
Allontanamento da rete
logica pura:
no esecuzione parallela
no corse critiche
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 40
Structured Text
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 41
Testo Strutturato
Adatto per
definizione di funzionalità e procedure particolarmente complesse
che richiederebbero una scrittura molto lunga e complessa utilizzando i
linguaggi grafici
Caratterizzato da una lista di istruzioni separate dal
simbolo “;” che indica il termine di ogni istruzione.
L’assegnamento di un valore a una variabile viene espresso
mediante un’istruzione del tipo var := expr;
Per rappresentare gli operatori AND e OR nelle espressioni logiche,
possono anche essere utilizzati i simboli “*” e “+” rispettivamente
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 42
Testo Strutturato
Testo Strutturato
(Structured Text, ST)
…….
if (fine_corsa)
then
motore := off;
else
motore := on;
end_if;
…….
Testuale
Pseudo Pascal
Costrutti evoluti
Regole base:
Nessuna particolare
Regole di sviluppo:
Per implementare Ctrl
di sequenze: no loop di
attesa eventi
(sfrutta mappatura in
task pseudotrasf.
Ciclici, tipica di RTOS
time-driven )
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 43
Instruction List
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 44
Instruction List (IL)
Lista di istruzioni (programmazione basso livello, simil ASSEMBLER)
La maggior parte delle istruzioni
è composta da
un operatore (con modificatore, es. negazione, ritardo)
un solo operando
Fa riferimento al contenuto di un registro di memoria
Per il contenuto dell’ operando
Per memorizzare il risultato dell’operazione
L’operatore indica l’operazione che deve essere eseguita tra il valore
corrente del registro e l’operando. Il risultato viene memorizzato nel
registro.
result:= result OPERATOR operand
LABEL: OPERATOR OPERAND (*COMMENT*)
Lab1: LD BOO1 (*result:=BOO1 *)
AND BOO2 (* result:= result and BOO2 *)
ST BOO3 (* BOO3:=result*)
(* BOO1 and BOO2*)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 45
Instruction List (IL)
Operatori di IL LD (load)
Carica un valore (costante, variabile, ecc.) nel registro
ST (store)
Assegnamento
LD false
ST BOO1 (* BOO1:= false *)
S (set), R (reset)
Inizializzazione condizionata al valore del registroLD true (* se result = true allora BOO1:= true *)S BOO1 (* altrimenti non viene modificato *)
Altri operatori Logici
AND, OR, XOR
Aritmetici
ADD, SUB, MUL, DIV
Relazionali
GT, GE, EQ, LE, LT, NE
Controllo del programma (salto a label, chiamata a funzione,ecc.)
CAL, JMP, RET
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 46
Instruction List (IL)
L’esecuzione delle istruzioni avviene dall’alto al basso
Modificatori:
N (negazione)
ORN BOO1 (* result := result OR NOT(BOO1) *)
C (operazione condizionata)
Solo con JMP, CAL, RET
JMPNC LAB1 (* se result=false allora salta a LAB1 *)
(* LAB1 è un’etichetta *)
( ) (operazione ritardata)
AND ( BOO1
OR BOO2
) (* result := result and (BOO1 or BOO2)*)
…
LD ENABLE
ANDN FINE_CORSA
STR MOTORE
…
Testuale
Pseudo Assembly
Regole base:
Istruzioni mono-operando con
accumulatore (current result, IL register)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 48
Sequential Function Chart
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 49
Lo Standard IEC 61131-3
Sequential Function Chart
1
2
3
4
5
Step/Fasi
Transizioni
Condizioni
per la
transizione
Grafico
Rappresentazione a
diagrammi a stati
“evoluto”:
Piu’ step attivi
…..
Linguaggio
“incompleto”:
transizioni e azioni
definite per mezzo degli
altri
Livello di astrazione e
capacità
rappresentativa elevata
Deriva da Grafcet
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 50
Lo Standard IEC 61131-3
Tipi di Dato
Per tutti e 5 i linguaggi
Simili ad altri linguaggi (C, Pascal, etc.):
SINT, INT, DINT, LINT, REAL, LREAL…
Tipi particolari:
Gestione di stringhe di bit:
BOOL, BYTE, WORD…
Rappresentativi di date e tempi
TIME, DATE, TOD, DT
Indicatore di tipo generico:
Per raggruppare diversi tipi:
ANY, ANY REAL…
Manuale Codesys (in seguito) o Libro Bonfatti et al. per dettagli
Peculiarità del PLC
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 51
Lo Standard IEC 61131-3
Organizzazione del SW
Obiettivo:
Organizzare l’architettura del SW PLC
Stimolare approccio Top-Down Modularità e Riutilizzo
Legato all’implementazione, ma utile anche per progetto
funzionale…
Program Organization Units (POUs):
FUNCTION
FUNCTION BLOCK
PROGRAM
Vedi Libro Bonfatti et al. per approfondimenti
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 52
Lo Standard IEC 61131-3
Organizzazione del SW
FUNCTIONS Procedure prive di memoria che dati certi IN producono un OUT
Invocazione/definizione in linguaggi grafici o testuali
Predefinite o custom
Predefinite:Sono parte degli operatori base di IL, FBD, STSono blocchi particolari per LD
Uso di EN e ENO per garantire “flusso di corrente” in caso di IN-OUT non booleani
Esempi
ADD, TRUNC, SHL, MAX, GE…
Funzioni per ottenere il tempo di sistema
Ma allora i task possono sapere il tempo…. Ma non possono sapere come sarà allocato il tempo CPU.
Manuale Codesys (in seguito) o Libro Bonfatti et al. per dettagli
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 53
Lo Standard IEC 61131-3
Organizzazione del SW
FUNCTION BLOCKS
Procedure con memoria che dati certi IN e lo stato producono uno
o più OUT
Invocazione/definizione in linguaggi grafici o testuali
Diverse Istanze (diversi set di dati di memoria, stato)
Predefinite o custom
Esempi di Predefinite:
Bistabili: SR, RS
Edge-detection: R_TRIG, F_TRIG
Counters: CTU, CTD, CTUD
Timers: TP, TON, TOFF
Manuale Codesys (in seguito) o Libro Bonfatti et al. per dettagli
Basate su peculiarità del PLC
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 54
Lo Standard IEC 61131-3
Organizzazione del SW
PROGRAMS
Insieme di unità e/o istruzioni costituiscono l’implementazione del
controllo di sequenze di una macchina/impianto o una parte
rilevante di esso
Macro unità
In generale racchiuderà più Functions e Function Blocks
Manuale Codesys (in seguito) o Libro Bonfatti et al. per dettagli
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 55
Lo Standard IEC 61131-3
Considerazioni sui linguaggi
Linguaggi testuali IL e ST:
Implementazione Ctrl. Seq fortemente legate alla struttura RT time-
driven del PLC
Leggibilità media per ST e bassa per IL
Linguaggi grafici LD e FBD:
Legati a tecnologie implementative, diverse da PLC
Regole aggiuntive per adattare a “PLC”
esecuzione non parallela
In ogni caso: poco astratti e poco leggibili
IL, ST, LD, FBD poco adatti alla rappresentazione
funzionale del controllo di sequenze
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 56
Lo Standard IEC 61131-3
Considerazioni sui linguaggi SFC:
Evoluzione di diagramma a stati
Vantaggi dell’uso esplicito del concetto di stato
Alto grado di astrazione
Semplicità e leggibilità
Parallelismo e Sincronismo
Nessuna tecnologia di riferimento (o quasi)
Rare le regole legate a implementazione su PLC
Vedremo in seguito
E’ ADATTO PER IL PROGETTO FUNZIONALE DEI CONTROLLI DI SEQUENZE NB: SFC incompleto nella definizione di azioni e condizioni di
transizione:
si consiglia uso di ST
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 57
Lo Standard IEC 61131-3
Precisazione: SFC vs. Grafcet
SFC deriva da Grafcet Grafcet nasce in Francia
Grafcet normato in IEC60848 (1988 e poi 2002)
Formalismo Grafcet ancora più astratto da di SFC rispetto a implementazione Ma non trova utilizzo diretto negli ambienti di sviluppo comuni in
automazione
Per questo, in tale corso, si sceglie di presentare SFC come strumento funzionale di rappresentazione del controllo logico
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 58
Sequential Function Chart
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 59
Sequential Function Chart
Concetti base
Stato (fase, tappa, passo)
l’evoluzione temporale del funzionamento di un impianto
complesso è descrivibile mediante una successione temporale di
situazioni operative più semplici (fasi), nelle quali solo un
sottoinsieme dei comandi e delle misure è attivo
Definizione di Stato (fase, tappa, passo)
Uno stato rappresenta una condizione operativa della macchina (o
di una parte di essa) che ne definisce il comportamento
A ogni stato sono associati uno o più algoritmi di controllo
(Azioni), diversi da quelli associati agli altri Stati
In generale, durante il tempo di permanenza in uno Stato le
uscite del controllo (comandi) possono variare in risposta alle
variazioni degli ingressi (sensori) o allo scorrere del tempo (es.
in dipendenza dal controllo diretto di variabili continue)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 60
Sequential Function Chart
Concetti base
Transizioni
il verificarsi di un particolare evento forza il passaggio
(Transizione) da uno stato a un altro stato
Un evento rappresenta l’occorrenza di una particolare condizione
Definizione di Transizione
Mediante le transizioni si realizza il controllo logico tra un passo/i
e il successivo/i
possibilità di evoluzione da uno Stato ad un altro
non tutti gli Stati ammettono tra loro una Transizione
ad ogni Transizione è associata una Condizione logica che deve
essere verificata affinché la Transizione avvenga
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 61
Sequential Function Chart
Concetti base Condizioni (di transizione)
Il verificarsi di una condizione corrisponde all’evento che determina il passaggio ad un altro stato
La condizione dipende da segnali di ingresso, dall’evoluzione del tempo, da variabili interne, ecc.
La sintassi per definire gli Stati, le Transizioni, le Azioni e le Condizioni di transizione è molto precisa SFC è simile a un automa
le Condizioni vengono espresse con espressioni booleane o una lista di istruzioni (in ST, IL) o con reti a relè o logiche (in LD, FBD)
Le Azioni vengono espresse in un qualsiasi linguaggio:
lista di istruzioni (in ST, IL), variabili booleane, reti logiche (in FBD) o a relè (LD)
nStato
m
TransizioneCondizione
azioni
azioni
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 62
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
pistone pneumatico
testa di timbratura
oggetto da timbrare
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 63
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
attesa pezzo 1 nessun comando
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 64
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
pezzo presente
1
2
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 65
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
esecuzione
timbratura
1
2 comando
pistone avanti
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 66
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
timbratura o.k.
1
2
3
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 67
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
evacuazione
pezzo
1
2
3
Comando
pistone indietro
Comando
evacuazione
pezzo
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 68
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
1
2
3
timbro su
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 69
Sequential Function Chart
Concetti base
Esempio - timbratrice automatica
tre stati
attesa pezzo 1
2
3
nessun comando
Esecuzione ciclica dei passi
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 70
Sequential Function Chart
Sintassi Stati
ad ogni stato vanno associate le Azioni da eseguire quando quello stato è attivo
algoritmo di controllo attivo quando il sistema si trova in quello stato
È possibile non definire alcuna azione associata allo stato (stato di attesa)
due stati vanno sempre separati da una transizione
Transizioni partono da uno stato ed arrivano ad un altro stato
di solito sono indicate mediante linee verticali, ma è opportuno indicare i collegamenti con frecce per evitare ambiguità
ad ogni transizione va associata una sola Condizione che ne determina l’attivazione (passaggio ad un nuovo stato)
due transizioni successive non separate da uno stato sono proibite
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 71
Sequential Function Chart
Regole di evoluzione
Stato attivo/inattivo
Se lo stato è attivo le sue azioni vengono eseguite
Possono esistere più stati attivi contemporaneamente
SFC è più generale rispetto ai diagrammi a stati classici (automi)
Il nome “stato” non è propriamente corretto dal punto di vista della teoria
dei sistemi
Lo stato dell’SFC (nel senso della teoria dei sistemi) è l’insieme degli stati
attivi
Inizializzazione
Occorre definire gli stati attivi all’avviamento
stati iniziali
gli stati iniziali possono essere più di uno
si indicano con due quadretti uno dentro l’altro
possono non essere i primi stati di uno schema
GRAFCET consente più step iniziali
Norma IEC61131-3 e Codesys prevedeno UN SOLO STEP INIZIALE PER
PROGRAMMA O FB in SFC
- Aggirabile con costrutto di parallelismo (vedi dopo)…. Cmq brutto!
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 72
Sequential Function Chart
Regole di evoluzione
Abilitazione delle transizioni
una transizione si dice Abilitata quando TUTTI gli stati precedenti
alla transizione sono attivi
Vengono testate SOLO le transizioni Abilitate
una transizione diventa Attiva quando contemporaneamente
è Abilitata
la Condizione associata è vera
NB: “TUTTI” ?
“TUTTI” = 1 cioè lo stato immediatamente a monte per quanto
visto fino ad ora
“TUTTI” = Molti con costrutti visti in seguito (sincronismo)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 73
Sequential Function Chart
Regole di evoluzione
La transizione Attiva determina il cambio di stato
Lo stato precedente (o gli stati precedenti) diventa inattivo
(e le azioni associate vengono interrotte)
lo stato successivo (o gli stati successivi) viene attivato
(e le azioni associate vengono eseguite)
Se più transizioni diventano attive contemporaneamente, sono
superate simultaneamente
Il tempo di attivazione di una transizione (e del cambio di stato) e il
tempo di esecuzione di uno stato possono essere considerati
istantanei (astrazione)
Nell’implementazione pratica non sono nulli
Dipendono dal modello di esecuzione imposto
In PLC Ts
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 74
Sequential Function Chart
Variabili associate ad uno stato in SFC
Step flag: Statename.x
Indica se lo stato "Statename" è attivo
variabile logica che assume il valore “vero” (1) per tutto il
tempo di permanenza nello stato
Step time: Statename.t
indica il tempo trascorso dall’attivazione dello stato "Statename"
variabile timer
inizializzata a zero all'entrata nello stato, contiene l'indicazione del
tempo trascorso dall'entrata nello stato
all'uscita dallo stato rimane costante (al valore pari al tempo di
permanenza nello stato)
Queste variabili possono essere utilizzate in ogni
linguaggio
la sintassi di definizione dei nomi associati agli stati dipende dalla
specifica implementazione dello standard
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 75
Sequential Function Chart
Azioni associate ad uno stato
m
n
Qm Am Vm
Qualificatore dell'azione
Azione da eseguire
Variabile logica (opzionale) che
indica l’avvenuta esecuzione
dell’azione
Qm Am Vm
Action Am:
Num:=Num+1
……
end_action
di solito descritta a parte
se semplice può essere
riportata nel blocco stesso
• A ogni stato possono essere associati uno o più blocchi di azione
• Il qualificatore determina le regole di esecuzione dell’azione
• Si può scegliere liberamente il linguaggio con cui programmare
le azioni (ST, LD, IL, FBD) tra i diversi linguaggi disponibili
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 76
Sequential Function Chart
Azioni associate ad uno stato Qualificatori dell'azione
Stabiliscono l’intervallo temporale di esecuzione dell’azione
N Non Stored eseguita finché lo stato è attivo
P Pulsed eseguita solo una volta quando lo stato è attivato
S Set eseguita finché il qualificatore R non è eseguito (azione memorizzata)
R Reset termina l'azione memorizzata (S)
L time Limited termina esecuzione dopo un certo tempo
(se lo stato rimane attivo)
D time Delayed inizia esecuzione dopo un certo tempo
(se lo stato rimane attivo)
SD Stored/Delayed inizia azione Set dopo un certo tempo
DS Delayed/Stored inizia azione Set se lo stato rimane attivo per un certo tempo
SL Stored/time-Limited inizia azione Set e la termina dopo un certo tempoIn
co
mb
ina
zio
ne
co
n R
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 77
Sequential Function Chart
Tipi di Azioni
n
Azione Ppulsata
m
nAzione Nnon memorizzata
m
n
Azione A
Azione A
N
Nt
t
n Azione APA
A
eseguita solo una volta
quando lo stato è attivato
eseguita in tutti gli stati a
cui è associata
Nota su legame con implementazione
RT: Pseudo-Trasf. Ciclica!!!
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 78
Sequential Function Chart
Tipi di Azioni
m
Azione S/Rmemorizzata
m
n
Azione A
Azione A
S
R
t
n
A
• si ottiene lo stesso comportamento con azioni N in tutti i
blocchi compresi fra m (incluso) e n (escluso)
• è importante garantire che l’evoluzione del diagramma
porti all’attivazione dello stato n
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 79
Sequential Function Chart
Tipi di Azioni
Azione Dritardata n Azione A
D
t=3
3
n
t
A
Azione Ltemporizzata
t5 5
nn Azione AL
t=5
m Azione AL
t=5
m
A
• L’esecuzione di azioni D e L può essere realizzata (in modo
equivalente) con azioni N condizionate all’evoluzione della
variabile temporale “stato.t”
3
termina esecuzione
dopo un certo tempo
(se lo stato rimane
attivo)
inizia esecuzione dopo
un certo tempo (se lo
stato rimane attivo)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 84
Sequential Function Chart
Strutture di collegamento
No No
Scelta alternativa
5
7 8 10 9
Parallelismo
5
7 8 10 9
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 85
Sequential Function Chart
Strutture di collegamento
No No
Convergenza
5
7 8 10 9
Sincronizzazione
5
7 8 10 9
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 86
Sequential Function Chart
Strutture di collegamento Scelta alternativa (anche detta: divergenza singola)
Più transizioni collegate allo stesso passo
Il flusso segue UN SOLO percorso
È importante definire in modo esplicito condizioni mutualmente esclusive per definire precedenze e evitare ambiguità
Garanzia logica sui segnali a prescindere dal loro significato fisico e applicativo
Evitare comportamenti impredicibili per disturbi
IEC61131-3 non chiara in merito
Se più condizioni vere si attiva solo la transizione più a sx
Codesys fa così
Oppure il sistema genera errore
Addirittura in IsaGraf si attivavano più step!!!!
Meglio mutua esclusione esplicita imposta da progettista
Convergenza (singola)
Tipicamente serve per chiudere la diramazione di più percorsi generati da una scelta alternativa
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 87
Sequential Function Chart
Strutture di collegamento
Parallelismo (divergenza doppia)
Da una singola transizione a più passi
I passi diventano simultaneamente attivi
Sincronizzazione (convergenza doppia)
Da più passi a una sola transizione
Quando tutti i passi precedenti sono attivi e la condizione è vera, i
passi precedenti vengono disattivati e il passo successivo diventa
attivo
N.b. affinché la transizione sia abilitata, è necessario che TUTTI i
passi precedenti siano attivi (se ciò non accade si ha deadlock).
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 96
Sequential Function Chart
Lavorazione di due diverse tipologie di prodotti (tipo A e tipo B)
- I prodotti vengono fatti scorrere su un nastro trasportatore
- Un sensore rileva la presenza di un prodotto nella zona di lavorazione
- Un sensore di misurazione ci permette di distinguere tra le due tipologie
di prodotto
- Le azioni sequenziali da effettuare per la lavorazione sono differenti a
seconda del pezzo che effettivamente si trova nella zona di lavorazione
- Alla fine delle lavorazioni segue una fase di verifica
- Dopo la fase di verifica i prodotti vengono espulsi dalla zona di
lavorazione
96
Esempio 1
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 97
Sequential Function Chart
Soluzione Esempio 1
97
Le condizioni di
transizione presentano
una “mutua esclusione”
tra scelte alternative?
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 98
Sequential Function Chart
Esempio 2 (estensione Esempio 1)
- Stesso impianto da Esemio 1
- le azioni da compiere in presenza di un pezzo di tipo A sono:
- un riscaldamento dello stesso e, contemporaneamente a tale
riscaldamento, una foratura
- le azioni da compiere in presenza di un pezzo di tipo B sono
- un riscaldamento e, contemporaneamente, una foratura seguita da una
saldatura supplementare.
98
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 99
Sequential Function Chart
Soluzione Esempio 2
99
Passi “DUMMY”
Che differenza c’è tra
lavorazione tipo A e
tipo B?
La fase 9 resta attiva
fino alla conclusione
della fase 11
La fase 5 si disattiva
al termine del
riscaldamento
indipendentemente
dalla durata della
fase 6
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 100
Sequential Function Chart
Strutture di collegamento speciali
Mutua Esclusione tra Sequenze
Sequenze da rendere
mutuamente esclusive
ad es. agiscono sulla
stessa parte di impianto
con azioni diverse
4
8
T3-4
3
9
11
17
T10-11
10
18
(T10-11) * (T3-4) = 0
non basta
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 101
Sequential Function Chart
Strutture di collegamento speciali
Mutua Esclusione tra Sequenze
4
8
T3-4
3
9
11
17
T10-11
10
18
(T10-11) * (T3-4) = 0
non basta
Non basta garantire la mutua esclusione
(es. sostituendo T10-11 con “T10-11 and not(T3-4))”
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 102
Sequential Function Chart
Strutture di collegamento speciali
Mutua Esclusione tra Sequenze
3
4
8
9
T3-4
10
11
17
18
(T10-11) &
not(3.x & T3-4)
S Semaforo
Sincronizzazione
Sblocco
Il semaforo deve essere stato iniziale
Attenzione: vincoli della norma…
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 103
Sequential Function Chart
Esempio 3
103
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 104
SFC - esempi
Mutua esclusione tra sequenze
Scarico di due vagoni
Il carico avviene in zone diverse per i due vagoni
lo scarico è in comune
A
carico
B Scarico
Attesa
A
B
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 105
SFC - esempi
Mutua esclusione tra sequenze
Scarico di due vagoni
Il carico avviene in zone diverse per i due vagoni
lo scarico è in comune
A
B
A
carico
B Scarico
Attesa
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 106
SFC - esempi
Mutua esclusione tra sequenze
Scarico di due vagoni
Il carico avviene in zone diverse per i due vagoni
lo scarico è in comune
B
A
carico
B Scarico
Attesa
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 107
SFC - esempi
Mutua esclusione tra sequenze
Scarico di due vagoni
Il carico avviene in zone diverse per i due vagoni
lo scarico è in comune
A
carico
B Scarico
Attesa
B
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 108
SFC - esempi
Mutua esclusione tra sequenze
Scarico di due vagoni
Il carico avviene in zone diverse per i due vagoni
lo scarico è in comune
A
carico
B Scarico
AttesaA
B
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 109
SFC - esempi
2
posizione attesa A
posizione scarico
attesa
=1
scambio in A avanza
scarico
fine scarico
ritorno carrello
posizione attesa A
ritorno carrello
posizione carico A
carica A avanza carrello
se pieno
3
4
5
6
7
12
posizione attesa B
posizione scarico
attesa
s3
scambio in B avanza
scarico
fine scarico
ritorno carrello
posizione attesa B
ritorno carrello
posizione carico B
carica B avanza carrello
se pieno
13
14
15
16
17
1sema
foro
Scarico di due vagoni
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 112
Sequential Function ChartSoluzione Esempio 3
112
INIT
101
102
103
104
start
101
NOT start
.
start
INIT
true
R Semaforo
S Semaforo
S Semaforo
N Azione 1
N Azione 2
Semaforo
201
202
203
204
NOT start
R Semaforo
S Semaforo
N Azione 1
N Azione 2
Semaforo AND (NOT 102.X)
201
start
105 205
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 113
Sequential Function Chart
Strutture di collegamento speciali
Sincronizzazione di sequenze indipendenti
10
11
12
13
4
5
6
3
Punto di sincronizzazioneT4-5
T12-13
sequenza 1
sequenza 2La sequenza 2 non può andare oltre
lo stato 12 finché la sequenza 1 non
ha completato il controllo relativo
allo stato 4
Non basta condizionare T12-13
a T4-5 perché dopo che Seq.1 è uscita
da S4 la T4-5 può diventare falsa
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 114
Sequential Function Chart
Strutture di collegamento speciali
Sincronizzazione di sequenze indipendenti
S Semaforo
4
5
6
3
T4-5
10
11
12
13
T12-13
La sequenza 2 non può andare oltre
lo stato 12 finchè la sequenza 1 non
ha completato il controllo relativo
allo stato 4
sequenza 1
sequenza 2
Il semaforo non è uno stato iniziale
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 115
Sequential Function Chart
115
Esempio 4
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 116
Sequential Function Chart
116
Esempio 4
Cisterna in cui devono essere miscelati tre liquidi differenti
• Introdurre liquido 1 sino a che il relativo sensore non indica il valore 100;
• Misurare l’alcalinità del composto attivando la misurazione per 10 secondi. Se
acido: introdurre di nuovo liquido 1 fino a che il relativo sensore non indica il valore 50.
• Contemporaneamente alle azioni al punto precedente, introdurre il liquido 2 sino a
che il relativo sensore non misuri il valore 1000.
• Il liquido 3 deve essere immesso solo dopo che sono stati completamente immessi
sia il liquido 1 che il liquido 2; il sensore relativo alla quantità di liquido 3 immesso deve
arrivare al valore 200.
• Non appena introdotto il liquido 1, deve essere attivata la macchina di pulizia per
10 min e, di seguito, la macchina di smerigliatura per 5 min;
• Quando i liquidi 1, 2 e 3 sono stati completamente immessi nella cisterna, si
deve iniziare a riscaldare il composto: la temperatura deve arrivare a 300◦C e,
contemporaneamente, deve essere attivata una pala.
• Una volta ottenuto il composto e raggiunta la temperatura desiderata, si deve
attendere 60 minuti (la pala deve comunque rimanere attiva)
• dopo di che deve essere interrotto il movimento della pala e attivato lo
svuotamento della cisterna: quando il sensore indica che il liquido non è più all’interno
della cisterna, il processo di miscelazione deve essere avviato nuovamente se il
pulsante start è attivo.
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 117
Sequential Function Chart
117
Esempio 4
Comandi da operatore:
• start (input da utente per avvio processo)
Sensori
• por1, por2, por3 (misura di liquido 1, 2 e 3 immessi)
• acido (risultato della misurazione di acidità)
• livserb (livello di liquido nella cisterna)
• temp (sensore di temperatura)
Attuatori
• liq1, liq2, liq3 (comando immissione liquido 1, 2 e 3)
• pulisci1, smeriglia1 (comando per la pulizia e la smerigliatura del condotto 1)
• misura (comando per attivare la misura di acidità)
• pala (comando di attivazione pala per miscelazione)
• svuota (comando evacuazione liquido)
• heat (comando per l’attivazione della resistenza di riscaldamento)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 118
Sequential Function Chart
118
Soluzione Esempio 4
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 122
Sequential Function Chart
Strutture speciali: Macrostato
per consentire una rappresentazione più sintetica è possibile
raggruppare pezzi di SFC in un macrostato:
All’ingresso nel macrostato, viene eseguito lo stato iniziale
Viene eseguita la successione degli stati nel macrostato
secondo le regole standard di SFC
L’esecuzione del macrostato termina all’uscita dallo stato
finale (si continua l’esecuzione dello schema SFC)
La transizione in uscita dal macrostato è abilitata solo se è stato
raggiunto lo stato terminale dentro il macrostato
No cicli
In Grafcet: definizione chiara
In IEC61131-3: definizione non chiara
Azione di step definita in SFC
Gestione in Codesys non chiarissima
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 123
Sequential Function Chart
Strutture speciali
Macrostato
Rappresenta un insieme di stati e transizioni
4
42
43
41
stato iniziale
stato finale
4
6
3
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 124
Sequential Function Chart
Gerarchia Padre/Figlio- Diagramma SFC ha un proprio nome identificativo
- Particolari comandi che permettono a un diagramma di generare uno o
più diagrammi figli
- Un diagramma figlio:
- una volta generato, evolve parallelamente e in maniera del tutto
indipendente al padre
- In generale deve esistere un unico diagramma SFC principale (main)
che:
- genera e controlla SFC figli -> avvia, mette in pausa, riavvia e termina il
diagramma SFC figlio
124
Strutturazione del SFC
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 125
Sequential Function Chart
Gerarchia Padre/FiglioComandi per le generazione e gestione dei diagrammi figli:
• Gstart(Nome-Figlio) per avviare il diagramma SFC Nome-figlio;
• Gkill(Nome-Figlio) per terminare l’evoluzione del diagramma SFC
Nome-figlio;
• Gfreeze(Nome-Figlio) per sospendere l’evoluzione del diagramma SFC
Nomefiglio;
• GRST(Nome-Figlio) per riavviare l’evoluzione del diagramma SFC
Nome-Figlio precedentemente sospeso.
Tali comandi devono essere utilizzati come azioni caratterizzate dal
qualificatore P: devono cioè essere implementati come azioni pulse ed
eseguite solo una volta nel momento in cui lo step a cui sono associate
diventa attivo.
125
Strutturazione del SFC
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 126
Sequential Function Chart
Gerarchia Padre/Figlio
126
Strutturazione del SFC
In Figura sono rappresentati
un diagramma SFC padre
(main) e un diagramma figlio
(child);
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 127
Sequential Function Chart
Gerarchia Padre/Figlio
127
Strutturazione del SFC
Differenze fondamentali tra la struttura gerarchica padre/figlio
e un parallelismo:
- Il SFC padre può agire in qualsiasi istante sul SFC figlio terminandolo,
sospendendolo o riavviandolo;
-Al contrario, due sequenze parallele attivate tramite un semplice
parallelismo non sono assolutamente influenzabili: evolveranno infatti
seguendo il loro diagramma SFC sino alla naturale conclusione del
parallelismo (normalmente una sincronizzazione).
La struttura gerarchica padre/figlio particolarmente
appropriata per gestione e supervisione:
- diagramma SFC padre utilizzato come controllore e supervisore del
funzionamento dei diagrammi SFC figli
- diagrammi SFC figli svolgono le reali azioni sequenziali che
caratterizzano il problema.
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 128
Sequential Function Chart
Gerarchia Padre/Figlio
128
Strutturazione del SFC
Corretta strutturazione del software
permette dunque la definizione di una struttura che rimane inalterata
anche al variare delle reali azioni da svolgere
- solo la struttura del figlio sarà modificata
- Il suo rapporto con il padre e i compiti di supervisione di questo saranno
preservati.
esempio
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 129
Sequential Function Chart
Gerarchia Padre/Figlio
129
Strutturazione del SFC
Corretta strutturazione del software Soluzione NON strutturata
Richiesta di modifica algoritmo per introduzione logica di scartamento pacco
difettoso
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 130
Sequential Function Chart
Gerarchia Padre/Figlio
130
Strutturazione del SFC
Corretta strutturazione del software Soluzione strutturata
Richiesta di modifica algoritmo per introduzione logica di scartamento pacco
difettoso
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 131
Sequential Function Chart
131
Esempio 5
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 132
Sequential Function Chart
132
Esempio 5
Si vuole progettare il software di controllo sequenziale per una macchina di foratura: si
deve eseguire un foro in un pezzo meccanico e misurare che il foro sia stato eseguito
correttamente.
• La macchina di foratura è composta da una giostra rotante a quattro posizioni
equidistanziate e da quattro stazioni di lavoro: stazione di carico pezzi, stazione di
lavorazione, stazione di misura e scarico pezzi buoni e stazione di scarico pezzi
difettosi.
• Il processo di lavorazione viene attivato da un pulsante start.
• Il funzionamento della giostra permette di far lavorare contemporaneamente le quattro
stazioni: quando tutte le stazioni hanno terminato i loro compiti è possibile far ruotare la
giostra e iniziare una nuova lavorazione.
• I pezzi da lavorare arrivano con cadenza irregolare e si accumulano in un buffer di
carico gestito separatamente. Si deve prestare attenzione al fatto che non è assicurata
la presenza di un pezzo da lavorare in ogni stazione: può anche capitare che il buffer di
carico sia vuoto.
DESCRIZIONE GENERALE
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 133
Sequential Function Chart
133
Esempio 5Stazione di carico.
A giostra ferma, se è presente un pezzo da caricare (il sensore pezzoC è vero), si
deve attivare il pistone (attuatore pistoC) sino al fine corsa segnalato dal segnale
FCCA. Il pistone, se non azionato, torna autonomamente nello stato iniziale tramite
un meccanismo a molle; un pezzo si può considerare caricato sulla giostra nel momento
in cui il pistone raggiunge il fine corsa nella posizione di riposo (segnalato dal sensore
FCCI).
Stazione di lavorazione.
Le azioni sequenziali per la lavorazione sono le seguenti: a giostra ferma, se un pezzo è
presente nella stazione (segnalato del sensore pezzoF), si deve azionare il
riscaldamento tramite il comando heat. Un sensore di temperatura (segnale temp)
permette di controllarne il riscaldamento: la temperatura deve rimanere circa costante
durante tutto il processo di lavorazione intorno al valore 200◦C; non appena la
temperatura ha raggiunto il suo valore di regime, il processo di lavorazione può
continuare. Devono essere effettuate le operazioni sequenziali per la foratura: si deve
attivare la rotazione del trapano tramite il comando ROT e deve essere movimentato
verso il basso fino al fine corsa di lavorazione (la movimentazione del trapano utilizza il
comando FORA, mentre il fine corsa di lavorazione viene indicato dal segnale FCTGIU).
Il trapano deve essere lasciato in tale posizione per almeno 2 secondi per ottenere una
foratura adeguata. A questo punto può essere disattivato il comando di movimentazione
FORA per permettere al trapano di tornare nella posizione di riposo (segnalata dal
sensore di finecorsa FCTSU) e, di seguito, disabilitare il movimento di rotazione così
come le operazioni di riscaldamento.
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 134
Sequential Function Chart
134
Esempio 5
Stazione di misura e scarico pezzi buoni.
Le operazioni di misura non possono avvenire se, nell’adiacente zona di lavorazione, è
attivo il trapano per la foratura: le vibrazioni farebbero risultare la misura falsata. Tele
misura può essere invece effettuata mentre nella stazione di lavorazione è in opera il
riscaldamento del pezzo. A giostra ferma, in presenza di un pezzo nella zona di misura e
scarico pezzi buoni (segnalata dal segnale pezzoSB), la misurazione può essere attivata
tramite il comando Mis e deve rimanere attiva per 20 secondi. Dopo tale lasso di tempo,
il segnale Ris segnala se è possibile evacuare il pezzo come buono, tramite il comando
impulsivo EVB (il sensore SCB segnala l’avvenuta evacuazione del pezzo), oppure se il
pezzo deve essere evacuato dalla successiva stazione di scarico pezzi difettosi.
Stazione di scarico pezzi difettosi.
In presenza di un pezzo in tale stazione (indicata dal segnale pezzoSD) si deve
attivare l’evacuazione tramite il comando impulsivo EVD (il sensore SCD segnala
l’avvenuta evacuazione del pezzo).
Giostra.
Quando tutte le stazioni hanno terminato i loro compiti si può ruotare la giostra tramite il
comando RotG sino a quando il sensore PosLav diventa vero indicando che un quarto di
giro `e stato compiuto.
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 135
Sequential Function Chart
135
Esempio 5Comandi da operatore:
• start (input da utente per avvio processo)
Sensori
• PosLav (rotazione 90 gradi avvenuta)
• FCCA, FCCI (fine corsa pistone avanti, indietro)
• presESP, presP, presG (sensori di posizione)
• pezzoF (presenza pezzo da forare/misurare)
• temp (temperatura del pezzo nella stazione di lavorazione)
• FCTSU, FCTGIU (fine corsa trapano posizione di riposo e di lavorazione)
• Ris (risultato della misurazione)
• pezzoSB (presenza pezzo da scaricare buono)
• pezzoSD (presenza pezzo da scaricare difettoso)
• SCB (scarico completo pezzo buono)
• SCD (scarico completo pezzo difettoso)
Attuatori
• RotG (rotazione della giostra)
• pistoC (attivazione pistone: ritorna in posizione di riposo se non attuato)
• ROT (rotazione trapano)
• heat (riscaldamento pezzo da forare)
• FORA (trapano giù, ritorna automaticamente alla posizione di riposo)
• Mis (effettua la misurazione)
• EVB (evacuazione pezzo buono - impulsivo)
• EVD (evacuazione pezzo difettoso - impulsivo)
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 136
Nota
Approccio alla gestione di pipe-line Macchine a pipe-line: più stazioni di lavorazione sistema di movimentazione
Catena di montaggio
Giostre
Approccio al controllo logico: AUTOMAZIONE ORIENTATA AL PEZZO
Operazioni in sequenza sul pezzo singolo
Una nuova istanza di controllo logico per ogni pezzo
Stazioni di lavoro: risorse di impianto condivise (semafori)
AUTOMAZIONE ORIENTATA ALLA MACCHINA
Operazioni in parallelo su più pezzi
Buffer dei pezzi per gestire stato di ogni pezzo
Gestione più semplice della movimentazione condivisa tra pezzi
NORMALMENTE SI PREFERISCE
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 137
SFC - esempi
Isola di foratura (soluzione orientata alla macchina)
CaricamentoMisura ed
espulsione2 3
Rotazione
giostra5
tutto O.K
1 Attesa
4
Tutti fermi
Fine rotazione
Lavorazione
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 138
SFC - esempi
2 caric. avanti
3 caric. indiet.
caricato
sezione caricamento
tutto O.K.
1
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 139
SFC - esempi
5 foratura
serrato
forato
6 risalita
risalito
sezione lavorazione
tutto O.K.
1
4 serraggio
sblocco7
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 140
SFC - esempi
Esempio: isola di foratura
11esp.
indietro
9risalita
tastat.
o.k.
tastatore su
10 espuls.
espulso
non o.k.
tast. su
sezione misura ed espulsione
tutto O.K.
1
8 misura
13 espuls.
man.
12risalita
tastat.
Fine corsa
espulsore
Pezzo
espulso
14
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 141
Sequential Function Chart
141
Soluzione Esempio 5
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 142
Sequential Function Chart
142
Soluzione Esempio 5
Ing. Lorenzo Moriello - Sistemi e Architetture per l'Automazione L Controllo Logico A - 143
Sequential Function Chart
143
Soluzione Esempio 5
Sistemi e Architetture per l'Automazione L
Laurea in Ingegneria e Scienze Informatiche
Ing. Lorenzo Moriello
DEI - Università di Bologna
E-mail: [email protected]
https://www.unibo.it/sitoweb/lorenzo.moriello2
Controllo Logico nell’Automazione Industriale
FINE