Uploaded by Lorenzo Tovagliaro

SistemiAutomatici3

advertisement
Automazione dei Sistemi a
Eventi Discreti
Prof. Luca Ferrarini
Policollege – giugno 2022
Automazione dei sistemi a eventi discreti
• Introduzione sui sistemi di produzione discreta
• Esempi di problemi di controllo logico
• Due modelli matematici utili:
– Automi a stati finiti
– SFC
• Esempi di rappresentazione con automi e SFC
• Il controllore logico (PLC)
Prof. Luca Ferrarini
2
Sistemi di produzione
Nel mondo industriale vi sono svariati impianti dedicati alla
produzione di beni, detti anche genericamente «prodotti»
Prof. Luca Ferrarini
3
Sistemi di produzione
Nel mondo industriale vi sono svariati impianti dedicati alla
produzione di beni, detti anche genericamente «prodotti»
 Sistemi di produzione (discreta)
Prof. Luca Ferrarini
4
Sistemi di produzione
Nel mondo industriale vi sono svariati impianti dedicati alla
produzione di beni, detti anche genericamente «prodotti»
 Sistemi di produzione (discreta)
Sistemi (fabbriche automatizzate) dove si lavorano materie prime
per arrivare a prodotti finiti, dopo una serie di successive
lavorazioni attraverso
macchine, sistemi di
trasporto e di
immagazzinamento
Prof. Luca Ferrarini
5
Sistemi di produzione
Nel mondo industriale vi sono svariati impianti dedicati alla
produzione di beni, detti anche genericamente «prodotti»
 Sistemi di produzione (discreta)
Sistemi (fabbriche automatizzate) dove si lavorano materie prime
per arrivare a prodotti finiti, dopo una serie di successive
lavorazioni attraverso
macchine, sistemi di
trasporto e di
immagazzinamento
… svariate tipologie!
Prof. Luca Ferrarini
6
Sistemi di produzione – i sistemi di trasporto
Nastri, rulliere, gru, portali, ecc..
Prof. Luca Ferrarini
7
Sistemi di produzione – i sistemi robotizzati
Sistemi per la manipolazione, trasporto, e talvolta lavorazione
impianto di bugnatura e
foratura cerchi moto
Prof. Luca Ferrarini
8
Sistemi di produzione – le macchine operatrici
Sistemi per l’esecuzione in automatico di lavorazioni con utensili
Prof. Luca Ferrarini
9
Sistemi di produzione – il centro di lavoro
Prof. Luca Ferrarini
10
Compiti del controllore
Cosa deve fare il controllore in questi impianti?
•
rispettare le sequenze di lavoro desiderate

•
coordinare e sincronizzare le attività dei vari componenti del sistema:

•
Es: se hai già riempito un magazzino, non puoi caricare un nuovo prodotto
evitare situazioni di blocco

•
Es: se devi dare al robot un comando per caricare un pezzo grezzo in
macchina, assicurati prima che la macchina sia pronta per il caricamento
evitare occupazioni contemporanee di macchine e dispositivi

•
Es: prendi un utensile, usalo, riponilo al suo posto
Es: verifica che il sistema non vada in stallo per troppe regole!
gestire situazioni anomale (es: guasti)

Es: identificare un guasto e reagire di conseguenza
Prof. Luca Ferrarini
11
Problema del controllo
i
C
u
P
y

Sp
m
•
impianto  modello del sistema da controllare (P)
•
dato P e data una specifica del comportamento del sistema in anello
chiuso (Sp), determinare un controllore C in modo tale che il sistema in
anello chiuso si comporti “il più possibile” in modo simile a quanto
specificato
•
possibilmente anche a fronte di guasti prevedibili
•
trovato C, lo realizzeremo con dispositivi industriali (PLC)
Prof. Luca Ferrarini
12
Esempio di sistema da controllare
Sistema con due macchine di lavoro (M1 e M2), 2 carrelli (AGV1 e AGV2)
AGV1
M1
M2
AGV2
Flusso di lavorazione (macchine) = sequenziale:
AGV1  M1  M2  AGV2
Prof. Luca Ferrarini
13
Esempio di sistema da controllare
Sistema con due macchine di lavoro (M1 e M2), 2 carrelli (AGV1 e AGV2)
Usiamo un robot per le operazioni di carico e scarico delle macchine
R
AGV1
M1
M2
AGV2
Flusso di lavorazione (macchine) = sequenziale:
AGV1  M1  M2  AGV2
Prof. Luca Ferrarini
14
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
AGV1
M1
M2
AGV2
Flusso di lavorazione (macchine) = sequenziale:
AGV1  M1  M2  AGV2
Prof. Luca Ferrarini
15
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
AGV1
M1
M2
AGV2
Flusso di lavorazione (macchine) = sequenziale:
AGV1  M1  M2  AGV2
Prof. Luca Ferrarini
16
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
A
AGV1
M1
M2
AGV2
Flusso di lavorazione (macchine) = sequenziale:
AGV1  M1  M2  AGV2
Prof. Luca Ferrarini
17
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
AGV1
M1
M2
AGV2
Cosa ci aspettiamo che succeda?
Prof. Luca Ferrarini
18
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
A
B
C
AGV1
M1
M2
AGV2
Ora 2 scelte:
Soluzione 1 = scarico M2
Soluzione 2 = scarico M1
Luca Ferrarini - Automazione Industriale
19
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
C
AGV1
M1
B
M2
AGV2
A
Ora 2 scelte:
Soluzione 1 = scarico M2
Soluzione 2 = scarico M1
Luca Ferrarini - Automazione Industriale
20
Esempio di sistema da controllare
Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2
R
C
AGV1
M1
B
M2
AGV2
A
Adesso il sistema è in deadlock (blocco critico)!
Ora 2 scelte:
Ora è completamente bloccato!
Tuttavia, può temporaneamente muoversi
Soluzione 1 = scarico M2
Soluzione 2 = scarico M1
Luca Ferrarini - Automazione Industriale
21
Necessità di un formalismo rappresentativo
E’ evidente che:
• Mi serve un modo per rappresentare questi comportamenti
• Questo «modo» in generale si chiama «modello matematico»
• Il modello matematico deve:
– Catturare gli elementi essenziali del comportamento
– Permettermi di eseguire opportune analisi
– Prototipare soluzioni se l’analisi identifica comportamenti anomali
– Permettermi di tornare nel mondo reale e di implementare le
soluzioni prototipate
• Modello matematico: sistemi ad eventi discreti
Prof. Luca Ferrarini
22
Necessità di un formalismo rappresentativo
Sistemi ad eventi discreti
• Sistemi dinamici, ovvero modelli matematici che evolvono sulla
base di uno «stato»
• Sono guidati dalla occorrenza (accadimento) di eventi
– «Se accade questo, allora devo poi fare quell’altro»
– Se il carrello è arrivato a fine corsa, allora comanda il robot per il
suo caricamento
– Se la macchina utensile ha terminato la lavorazione, allora scarica
il prodotto
– Ecc…
Prof. Luca Ferrarini
23
Necessità di un formalismo rappresentativo
Sistemi ad eventi discreti
Ci sono tantissimi modelli all’interno di questa categoria, tutti molto
simili funzionalmente, ma ognuno caratterizzato dal mettere in
evidenza alcuni aspetti:
• Automi a stati finiti
• Reti di Petri
• SFC (Sequential Function Charts)
• Linguaggi formali
• Logiche e predicati
Prof. Luca Ferrarini
24
Necessità di un formalismo rappresentativo
Sistemi ad eventi discreti
Ci sono tantissimi modelli all’interno di questa categoria, tutti molto
simili funzionalmente, ma ognuno caratterizzato dal mettere in
evidenza alcuni aspetti:
• Automi a stati finiti  per analisi di raggiungibilità e deadlock
• Reti di Petri
• SFC (Sequential Function Charts)  per comandi e misure
• Linguaggi formali
• Logiche e predicati
Prof. Luca Ferrarini
25
Necessità di un formalismo rappresentativo
Sistemi ad eventi discreti
Ci sono tantissimi modelli all’interno di questa categoria, tutti molto
simili funzionalmente, ma ognuno caratterizzato dal mettere in
evidenza alcuni aspetti:
• Automi a stati finiti  per analisi di raggiungibilità e deadlock
• Reti di Petri
• SFC (Sequential Function Charts)  per comandi e misure
• Linguaggi formali
• Logiche e predicati
Prof. Luca Ferrarini
26
Automi – esempio intuitivo
Il robot non sta
facendo nulla
(idle)
Ora, salda!
Prof. Luca Ferrarini
27
Automi – esempio intuitivo
Ora, salda!
Prof. Luca Ferrarini
28
Automi – esempio intuitivo
salda
Prof. Luca Ferrarini
29
Automi –rappresentazione grafica
«salda»
Robot
idle
•
Stati
•
Transizioni
•
Eventi
Prof. Luca Ferrarini
Robot
salda
30
Automi –rappresentazione grafica
evento
a
q0
transizione
q1
stati
•
Stati: descritti da nomi
•
Transizioni = archi orientati (frecce)
•
Eventi (associati a transizioni) identificati con lettere (label)
Prof. Luca Ferrarini
31
Automa – definizione formale
Un automa A è descritto da 4 quantità:
•
QA insieme degli stati;
•
ΣA insieme degli eventi (alfabeto);
•
iA stato iniziale (
•
è la funzione di transizione (gli archi): per
ogni stato ed evento mi dice quale è il prossimo stato.
Prof. Luca Ferrarini
)
32
Linguaggio di un automa
•
Gli automi posso anche essere studiati tramite «linguaggi»
•
Il linguaggio L(A) di un automa A è l’insieme di tutte le
sequenze di eventi eseguibili dall’automa stesso
Prof. Luca Ferrarini
33
Esempio
Automa B:
• QB = {q0, q1, q2}
• ΣB = {a, b}
q1
q0
• iB = q0
•
q2
B
= {((q0,a), q1), ((q1,b), q2), ((q2,a),q0)}
• L(B) = {ε, a, ab, aba, abaa,
abaab,…}
Linguaggio infinito,
anche se l’automa è finito!
Prof. Luca Ferrarini
34
Esempio
Automaton B:
• QB = {q0, q1, q2}
• ΣB = {a, b}
q1
q0
• iB = q0
•
q2
B
= {((q0,a), q1), ((q1,b), q2), ((q2,a),q0)}
• L(B) = {ε, a, ab, aba, abaa,
abaab,…}
Notation * = infinite repetitions
(aba)* = (ε, aba, abaaba, …)
Prof. Luca Ferrarini
• L(B) = {(aba)*, (aba)*a, (aba)*ab}
35
Necessità di un formalismo rappresentativo
Sistemi ad eventi discreti
Ci sono tantissimi modelli all’interno di questa categoria, tutti molto
simili funzionalmente, ma ognuno caratterizzato dal mettere in
evidenza alcuni aspetti:
• Automi a stati finiti  per analisi di raggiungibilità e deadlock
• Reti di Petri
• SFC (Sequential Function Charts)  per comandi e misure
• Linguaggi formali
• Logiche e predicati
Prof. Luca Ferrarini
36
Tapparella automatica (1)
Esempio:
Vogliamo descrivere il funzionamento di un sistema di tapparelle
automatiche. Le tapparelle devono scendere quando il sole
tramonta e devono risalire quando il sole sorge.
Componenti:
• Motore per alzare ed abbassare le tapparelle
• Sensore di «tapparella alzata»
• Sensore di «tapparella abbassata»
• Sensore di luce esterna
Prof. Luca Ferrarini
37
Tapparella automatica (2)
(*Tapparella alzata*)
1
Tramonto
2
(*Abbassando*)
Comando: abbassa tapparella
Abbassata
(*Tapparella abbassata*)
3
Alba
4
(*Alzando*)
Comando: alza tapparella
Alzata
Prof. Luca Ferrarini
38
Elementi di base dell’SFC (1)
PASSI
•
Passo iniziale (con azioni associate)
1
(* Commento *)
Azione;
•
Passo (con azioni associate)
2
(* Commento *)
Azione;
Prof. Luca Ferrarini
39
Elementi di base dell’SFC (2)
TRANSIZIONI
Transizione (con condizioni associate)
(* Commento *)
Condizione
123
Prof. Luca Ferrarini
40
Elementi di base dell’SFC (3)
REGOLE DI COMPOSIZIONE
– I collegamenti sono sempre orientati dall’alto verso il basso
– È possibile solo saltare da una transizione ad un passo (e da un passo ad
una transizione)
Prof. Luca Ferrarini
41
Elementi di base dell’SFC (4)
REGOLE DI EVOLUZIONE
– Situazione iniziale: caratterizzata dai passi iniziali, che per definizione sono
attivi all'inizio dell’esecuzione del programma SFC
– Abilitazione di una transizione: una transizione è detta abilitata quando
tutti i passi precedenti connessi alla corrispondente transizione sono attivi
– Attivazione di una transizione: una transizione è detta attiva quando è
abilitata e la condizione associata alla transizione vale TRUE (superamento)
– Modifica dello stato dei passi: l'attivazione di una transizione,
simultaneamente, porta allo stato attivo i passi immediatamente successivi
ed allo stato inattivo i passi immediatamente precedenti
– Attivazione simultanea di transizioni: se più transizioni risultano attive
nello stesso istante allora vengono tutte superate contemporaneamente
Gestione delle eccezioni:
– Attivazione e disattivazione simultanea di un passo: se, durante
un'operazione, un passo viene contemporaneamente attivato e disattivato, la
priorità viene data all'attivazione (importante per le azioni PULSE)
Prof. Luca Ferrarini
42
Elementi di base dell’SFC (7)
STRUTTURE CLASSICHE: SCELTA
1
(*Inizializzazione*)
OR-DIVERGENZA
condizione1
11
…
condizioniVarie
NOT(condizione1)
&&(altreCondizioni)
12
…
condizioniVarie
OR-CONVERGENZA
Prof. Luca Ferrarini
43
Elementi di base dell’SFC (8)
STRUTTURE CLASSICHE: PARALLELISMO
1
(*Inizializzazione*)
condizioniVarie
11
AND-DIVERGENZA
12
…
condizioniVarie
12
condizioniVarie
22
…
condizioniVarie
Prof. Luca Ferrarini
…
…
AND-CONVERGENZA
44
Facciamo qualche esempio concreto
Analizziamo ora con un paio di esempi come si usano i due modelli
che abbiamo visti (Automi e SFC).
Per gli automi vedremo un sistema produttivo con due macchine.
Per l’SFC vedremo l’esempio del carrello.
Partiamo dal secondo esempio, più semplice da trattare.
Prof. Luca Ferrarini
45
Il carrello (1)
•
•
•
•
Ogni volta che l’operatore aziona il pulsante di START, bisogna portare il
carrello a destra.
Quando il carrello è arrivato a destra, bisogna caricare il carrello ribaltando il
serbatoio.
Alla fine del caricamento il carrello deve essere riportato a sinistra.
Qualcun altro si occuperà di svuotare il carrello e di riempire nuovamente il
serbatoio.
Prof. Luca Ferrarini
46
Il carrello (2)
Sensori (misure)
Attuatori (comandi)
-
START: inizia la sequenza
-
SX: vai a sinistra
-
FS: fine corsa sinistro
-
DX: vai a destra
-
FD: fine corsa destro
-
RIB: ribalta serbatoio
-
FR: fine riempimento
Prof. Luca Ferrarini
47
Il carrello (3)
Attuatori (comandi)
-
SX: vai a sinistra
-
DX: vai a destra
-
RIB: ribalta serbatoio
Sensori (misure)
-
START: inizia la sequenza
-
FS: fine corsa sinistro
-
FD: fine corsa destro
-
FR: fine riempimento
1
START
2
DX
FD
3
RIB
FR
4
SX
FS
Prof. Luca Ferrarini
48
Il carrello (4)
1
E se il carrello fosse già
a destra?
START & NOT(FD)
2
DX
START & FD
OR-DIVERGENZA
FD
3
RIB
FR
4
SX
FS
Prof. Luca Ferrarini
49
Il carrello (5)
1
Alternativa:
START
Per definire delle azioni di
inizializzazione da eseguire
ad ogni START?
2
NOT(FD)
3
DX
FD
FD
4
RIB
FR
5
SX
FS
Prof. Luca Ferrarini
50
Il carrello (6)
Sensori (misure)
Attuatori (comandi)
-
FS: fine corsa sinistro
-
SX: vai a sinistra
-
FD: fine corsa destro
-
DX: vai a destra
-
FR: fine riempimento
-
RIB: ribalta serbatoio
-
START: inizia la sequenza
Ad ogni attuatore corrisponde un sensore…
perché?
Prof. Luca Ferrarini
51
Esempio extra: stazione di lavoro (1)
•
M1
C1
•
•
M2
C2
R
•
•
Il robot R preleva il prodotto dal carrello C1 e lo
deposita sulla macchina M1
La macchina M1 effettua la lavorazione
Il robot R trasferisce il prodotto dalla macchina
M1 alla macchina M2
La macchina M2 effettua la lavorazione
Il robot R trasferisce il prodotto finito sul
carrello C2
Comandi:
Sensori (misure):
-
CM1: carica M1
-
SM2: scarica M2
-
TM2: trasferisci da M1 a M2
-
LM1: lavorazione M1
-
LM2: lavorazione M2
-
Prof. Luca Ferrarini
FCM1: fine caricamento M1
FLM1: fine lavorazione M1
FTM2: fine trasferimento da M1 a M2
FLM2: fine lavorazione M2
FSM2: fine scaricamento M2
C1: C1 presente
C2: C2 presente
52
Esempio extra: stazione di lavoro (2)
M1
C1
1
M2
C2
R
C1
2
Comandi:
-
CM1: carica M1
SM2: scarica M2
TM2: trasferisci da M1 a M2
LM1: lavorazione M1
LM2: lavorazione M2
FCM1
3
C1: C1 presente
C2: C2 presente
FCM1: fine caricamento M1
FLM1: fine lavorazione M1
FTM2: fine trasferimento da M1 a M2
FLM2: fine lavorazione M2
FSM2: fine scaricamento M2
Prof. Luca Ferrarini
NLM1
| LM1
FLM1
4
Sensori (misure):
-
NCM1
| CM1
NTM2
| TM2
FTM2
5
NLM2
| LM2
FLM2 & C2
6
NSM2
| SM2
FSM2
53
Facciamo qualche esempio concreto
Vediamo ora l’applicazione del formalismo degli automi.
Vedremo un sistema produttivo con due macchine operatrici e un
sistema di trasporto (lo stesso di prima, ma con nomi un po’
diversi).
Prof. Luca Ferrarini
54
Esempio delle 2 machine con automi
Input
buffer
M1
M2
Output
buffer
AGV
Impianto composto da:
•
Due macchine (M1 e M2) che lavorano un pezzo alla volta
•
Un Automated Guided Vehicle (AGV) che fa carico / scarico
•
Buffer di ingresso e uscita
Prof. Luca Ferrarini
55
Example 1 – plant modeling (automata)
Input
buffer
M1
M2
Output
buffer
AGV
Eventi:
•
Load M1 (l1)
- caricamento della macchina M1
•
Unload M1 (u1)
- scaricamento della macchina M1
•
Load M2 (l2)
- caricamento della macchina M2
•
Unload M2 (u2)
- scaricamento della macchina M2
•
Load output buffer (lb) - deposita il prodotto finito all’uscita
Prof. Luca Ferrarini
56
Example 1 – plant modeling (automata)
M1
F1
O1
F1 = M1 free
O1 = M1 occupied
Prof. Luca Ferrarini
57
Example 1 – plant modeling (automata)
M1
Q1 = {F1, O1}
Σ1 = {l1, u1}
F1
O1
i1 = F1
1 = {((F1,l1), O1), ((O1,u1), F1)}
L(M1) = {(l1 u1)*, (l1 u1)*l1}
F1 = M1 free
O1 = M1 occupied
Prof. Luca Ferrarini
58
Example 1 – plant modeling (automata)
M1
Q1 = {F1, O1}
Σ1 = {l1, u1}
F1
O1
i1 = F1
1 = {((F1,l1), O1), ((O1,u1), F1)}
L(M1) = {(l1 u1)*, (l1 u1)*l1}
F1 = M1 free
O1 = M1 occupied
E la lavorazione della macchina M1 dov’è?
Prof. Luca Ferrarini
59
Example 1 – plant modeling (automata)
M2
Q2 = {F2, O2}
Σ2 = {l2, u2}
F2
O2
i2 = F2
2 = {((F2,l2), O2), ((O2,u2), F2)}
L(M2) = {(l2 u2)*, (l2 u2)*l2}
F2 = M2 free
O2 = M2 occupied
Prof. Luca Ferrarini
60
Example 1 – plant modeling (automata)
AGV
P1
V
P2
V = AGV idle (free)
P1 = AGV ha un prodotto proveniente da M1
P2 = AGV ha un prodotto proveniente da M2
Prof. Luca Ferrarini
61
Example 1 – plant modeling (automata)
AGV
Q3 = {V, P1, P2}
Σ3 = {u1, u2, l2, lb}
P1
V
P2
i3 = V
= {((V,u1), P1), ((V,u2), P2),
((P1,l2), V), ((P2,lb), V)}
L(AGV) = {((u1 l2)*(u2 lb)*)*,
((u1 l2)*(u2 lb)*)*u1,
((u1 l2)*(u2 lb)*)*u2}
V = AGV idle (free)
P1 = AGV ha un prodotto proveniente da M1
P2 = AGV ha un prodotto proveniente da M2
Prof. Luca Ferrarini
62
Example 1 – plant modeling (automata)
Il modello complessivo è dato dalla combinazione dei 3 automi
dei componenti.
Tale combinazione è detta composizione sincrona, in cui gli
eventi comuni si eseguono contemporaneamente (in sincronia,
dunque), mentre eventi non comuni vengono eseguiti e basta (in
realtà la formulazione matematica è un po’ più complessa).
Ottengo in questo modo un automa unico che rappresenta
l’intero sistema, considerando tutte le giuste combinazioni di
eventi anche quando ci sono più prodotti nel sistema, evitando di
far fare a me a mente i calcoli di tutte le combinazioni possibili
Prof. Luca Ferrarini
63
Example 1 – plant modeling (automata)
M1||M2||AGV
O1F2V
P1
V
P2
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
F1
F2
Prof. Luca Ferrarini
O1
O2
64
Example 1 – plant modeling (automata)
Main production
cycle:
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
65
Example 1 – plant modeling (automata)
Main production
cycle:
1. Load M1
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
66
Example 1 – plant modeling (automata)
Main production
cycle:
1. Load M1
2. AGV unloads
M1
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
67
Example 1 – plant modeling (automata)
Main production
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
68
Example 1 – plant modeling (automata)
Main production
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
4. AGV unloads
M2
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
69
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Main production
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
4. AGV unloads
M2
5. AGV loads
output buffer
70
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Main production
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
4. AGV unloads
M2
5. AGV loads
output buffer
(cycle is repeated)
71
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Second possible
cycle:
1. Load M1
2. AGV unloads
M1
3. Input buffer
loads M1
4. AGV loads M2
5. AGV unloads
M2
6. AGV loads
output buffer
(repeat from step 2)
72
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Third possible
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
4. Load M1
5. AGV unloads
M2
6. AGV loads
output buffer
(repeat from step 2)
73
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Fourth possible
cycle:
1. Load M1
2. AGV unloads
M1
3. AGV loads M2
4. AGV unloads
M2
5. Load M1
6. AGV loads
output buffer
(repeat from step 2)
74
Example 1 – plant modeling (automata)
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
Deadlock!
75
Example 1 – plant modeling (automata)
Il deadlock è
causato dal fatto
che l’AGV è
occupato con un
prodotto di M1 e M2
è occupata: attesa
circolare!
O1F2V
F1F2P1
O1F2P1
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
F1F2V
Prof. Luca Ferrarini
76
Example 1 – plant modeling (automata)
Il deadlock è
causato dal fatto
che l’AGV è
occupato con un
prodotto di M1 e M2
è occupata: attesa
circolare!
O1F2V
F1F2P1
O1F2P1
F1F2V
F1O2V
O1O2V
F1O2P1
F1F2P2
O1F2P2
O1O2P1
Prof. Luca Ferrarini
Soluzione:
IF (macchine busy)
THEN
(vieta comando u1)
77
Realizzione del controllore logico
Giunti a questo punto, sappiamo come modellare il
comportamento di un sistema ad eventi discreti, capire se ci
sono problemi, simularlo, identificare soluzioni.
Come faccio a realizzare le mie logiche di controllo?
Si utilizzano dei controllori dedicati (PLC, programmable logic
controllers), la cui programmazione ed utilizzo è normato da uno
standard internazione IEC 61131.
Prof. Luca Ferrarini
78
Cos’è un PLC?
Hardware di base
Architettura OS & Funz.
IEC61131
Conclusioni
 E’ una apparecchiatura elettronica programmabile per il
controllo di macchine e processi industriali.
 La struttura hardware a bus
interno ha dato origine
all’attuale PC
 Sostituto della logica cablata e dei quadri di controllo a relé
 Riduzione tempi e costi
Prof. Luca Ferrarini
79
Architettura Hardware
Introduzione
Architettura OS & Funz.
Memoria
Moduli di IO
• RAM
• ROM
• Digitale
• Analogica
Alimentazione
• AC
• DC
BUS ESTERNO
BUS INTERNO
PLC – Programmable Logic Controller
IEC61131
Conclusioni
Altri Moduli
Interfacce Operatore
• Rete
• CNC
• PID
• Ecc.
80
Architettura OS e Funzionale
Introduzione
Hardware di base
IEC61131
Conclusioni
 Come altri controllori di impianti e processi industriali, il PLC si
collega in “retroazione” rispetto ad essi:
PLC
Schede
Input
CPU
Memorie
Schede
Output
Altre Schede
Sensori
Attuatori
Processo
PLC – Programmable Logic Controller
81
Architettura OS e Funzionale
Introduzione
Hardware di base
IEC61131
Conclusioni
 Il Ciclo del PLC
 In quanto dispositivo a segnali campionati, il PLC durante il
funionamento continua ad eseguire ciclicamente 3 fasi
fondamentali:
Tempo di Ciclo
Lettura Ingressi
Esecuzione Programma
Scrittura Uscite
 Nota: all’interno del tempo di ciclo vi sono anche le esecuzioni di
istruzioni del sistema operativo!!
PLC – Programmable Logic Controller
82
Architettura OS e Funzionale
Introduzione
Hardware di base
Conclusioni
IEC61131
 Il Ciclo del PLC
valore basso
valore alto
segnale di ingresso non rilevato
viene letto in questi istanti, e vale sempre “basso”
fase di lettura ingressi
fase di esecuzione del programma
PLC – Programmable Logic Controller
tempo
fase di scrittura delle uscite
sistema operativo
83
Architettura OS e Funzionale
Introduzione
Hardware di base
Conclusioni
IEC61131
 Il Ciclo del PLC
valore basso
valore alto
segnale di ingresso rilevato!
viene letto in questi istanti, e cambia valore
fase di lettura ingressi
fase di esecuzione del programma
PLC – Programmable Logic Controller
tempo
fase di scrittura delle uscite
sistema operativo
84
IEC61131
Introduzione
Hardware di base
Architettura OS & Funz
Conclusioni
 Normativa internazionale pubblicata la prima volta nel 1993
sull’uso dei PLC (seconda edizione 2003)

Part 1: General information
Part 2: Equipment requirements and tests
Part 3: Programming languages
Part 4: User guidelines
Part 5: Messaging service specification
Part 6: Communications via fieldbus (Awaiting completion of fieldbus standards.)
Part 7: Fuzzy control programming

Part 8: Guidelines for the application and implementation of programming languages






 Scopi principali:
 Ridurre il divario con le moderne tecniche informatiche
 Formalizzare in modo più astratto ed essenziale i problemi di
automazione e controllo
 Proporre standard nel campo del controllo logico, per favorire la
riusabilità della conoscenza e una reale concorrenza tra i costruttori
PLC – Programmable Logic Controller
85
IEC61131-3 – POU
Introduzione
Hardware di base
Architettura OS & Funz
Conclusioni
 I moduli del software di controllo, che nello standard sono detti
POU (Program Organisation Unit), sono:
 Programmi
 Blocchi Funzione
 Funzione
 Facile (ri)utilizzo di porzioni di progetti precedentemente
sviluppati o acquistati sul mercato sotto forma di librerie
PLC – Programmable Logic Controller
86
IEC61131-3 – Linguaggi
Introduzione
Hardware di base
Conclusioni
Architettura OS & Funz
 Strutturazione interna di un POU
 Sequential Function Charts (SFC)
 Ladder Diagrams (LD)
Grafici
 Function Block Diagrams (FBD)
 Instruction List (IL)
 Structured Text (ST)

Testuali
Nota: il SFC è concepito come uno strumento di organizzazione interna di una
POU, pur essendo a tutti gli effetti uno strumento formale ed eseguibile.
PLC – Programmable Logic Controller
87
Conclusione
• Cosa abbiamo imparato oggi?
Prof. Luca Ferrarini
88
Download