Programmazione PLC

Transcript

Programmazione PLC
LA PROGRAMMAZIONE DEI
CONTROLLORI A LOGICA
PROGRAMMABILE PLC
Prof. Raffaele Iervolino
Dipartimento di Informatica e Sistemistica
Università degli Studi di Napoli, Federico II
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
1
Introduzione
• I primi sistemi automatici programmabili furono
realizzati alla fine degli anni ’60 nell’industria
automobilistica per sostituire i pannelli di
controllo a relè
• Le caratteristiche di un PLC moderno sono
rimaste sostanzialmente invariate (CPU, memoria
RAM ed EPROM, interfacce di I/O)
• Gli ingressi e le uscite operano in genere in modo
digitale a due livelli (di solito 0-24 V)
• Un PLC svolge ciclicamente sempre lo stesso
programma
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
2
Esempio di funzionamento di un PLC (1/III)
Si vuole realizzare un circuito elettrico con 2 interruttori normalmente
aperti ed 1 lampada, che si accende solo se entrambi gli interruttori
sono chiusi.
T1
T2
L
P
L
C
I1
I2
T1
T2
O1
L
Si noti che con il PLC i 2 interruttori non sono più in serie, ma
occupano separatamente 2 ingressi del PLC.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
3
Esempio di funzionamento di un PLC (2/III)
Un generico programma che svolga le
funzioni proprie del circuito elettrico può
essere così articolato:
1) Controlla lo stato dell’ingresso I1
2) Controlla lo stato dell’ingresso I2
3) Solo se I1 e I2 sono entrambi alti accendi la
lampada posta sull’uscita O1
4) Torna al punto 1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
4
Esempio di funzionamento di un PLC (3/III)
T2
T1
L
P
L
C
I1
I2
T1
T2
O1
L
Mentre il circuito elettrico è diverso dal caso precedente, la
connessione degli interruttori e della lampada sul PLC è
rimasta invariata!!
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
5
Definizione di PLC
(standard IEC 61131)
• […] sistema elettronico a funzionamento
digitale, destinato all’uso in ambito
industriale, che utilizza una memoria
programmabile per l’archiviazione interna
di istruzioni […] e per controllare, mediante
ingressi ed uscite sia digitali che analogici,
vari tipi di macchine e processi.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
6
Programmazione dei PLC
• I PLC attualmente non adottano uno standard per
la programmazione
• Allo stato attuale esistono diversi linguaggi per
PLC diversi da macchina a macchina, a volte
anche tra macchine dello stesso produttore
• Si usano linguaggi di basso livello
• I programmi sono poco strutturati
• E’ necessario istruire programmatori su diversi
linguaggi/dialetti
• …
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
7
Lo standard di programmazione dei PLC
Si fa riferimento allo standard 61131, Controllori Programmabili,
parte 3, Linguaggi di Programmazione, del IEC (Comitato
Elettrotecnico Internazionale) per la programmazione dei
dispositivi di controllo, recepito nel 1996 dal CEI (Comitato
Elettrotecnico Italiano).
Esso prevede 5 linguaggi di programmazione:
1)Testo strutturato (ST)
2)Linguaggio a contatti (LD)
3)Diagramma a blocchi funzionali (FBD)
4)Lista di istruzioni (IL)
5)Diagramma funzionale sequenziale (SFC)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
8
Variabili e Tipi di variabili
Lo standard 61131 prevede alcuni tipi predefiniti di variabili:
1)INT e UINT per rappresentare numeri interi rispettivamente
in [-32768, 32767] ed in [0, 216-1]
2)REAL per rappresentare numeri reali nell’intervallo ±10±38
3)TIME per rappresentare una durata temporale in unità che
vanno dai giorni ai ms T#dhmsms
4)DATE e TIME_OF_DAY per rappresentare la data e l’ora
5)STRING per definire le stringhe di caratteri
6)BOOL (1 bit), BYTE (8 bit), WORD (16 bit), DWORD (32
bit), LWORD (64 bit)
7)ANY se la variabile può essere di qualsiasi tipo
8)ANY_NUM se la variabile può essere INT o REAL
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
9
Tipi derivati
Possono essere introdotti vari tipi derivati in
vari modi:
1)
2)
3)
4)
Per equivalenza a quelli predefiniti
Per enumerazione
Per restrizione dei tipi già definiti
Definendo insiemi ordinati di più elementi
dello stesso tipo (array)
5) Definendo insiemi di più elementi di tipo
diverso (struct)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
10
Esempio
TYPE
impulsi : UINT(0..1000);
stato : (fermo,funzionante,guasto,attesa);
temperatura : REAL :=20.0;
sens_temp : STRUCT
valore : temperatura;
ult_calib : DATE;
int_calib : TIME;
val_max : REAL := 100.0;
diagnos : BOOL;
END_STRUCT
dati_term_forno : ARRAY[1..10] OF sens_temp;
dati_term_imp : ARRAY[1..4,1..4] OF
dati_term_forno;
END_TYPE
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
11
Dichiarazione delle variabili
Le variabili vanno dichiarate in testa ai programmi,
funzioni e blocchi funzionali, con il costrutto:
VAR
A,B : REAL;
abil : BOOL;
conteggio : impulsi;
stato_forno : stato;
termometro7 : temperatura :=0.0;
termocoppia1 : sens_temp;
forno1 : dati_term_forno;
END_VAR
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
12
IL TESTO STRUTTURATO
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
13
Il Testo Strutturato (ST)
E’ un linguaggio di programmazione testuale, di alto
livello (Pascal), per le applicazioni dell’automazione.
Esempi di operatori contemplati:
1)
2)
3)
4)
5)
Assegnazione :=
Aritmetici +,-,*,/,MOD,**
Relazione <,<=,>,>=,=,< >
Logici AND, OR, XOR, NOT
Parentesi ( e ) per cambiare l’ordine di esecuzione
delle operazioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
14
Il Testo Strutturato: costrutti di selezione
Esistono poi i consueti costrutti di selezione:
1) IF cond THEN istr END_IF
2) IF cond1 THEN istr1 ELSIF cond2 THEN
istr2 ELSE istr3 END_IF
3) CASE var OF val_i : istr_i ELSE istr
END_CASE
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
15
Il Testo Strutturato: costrutti iterativi
• FOR var=val1 TO var=var2 BY step DO istr
END_FOR
• WHILE cond DO istr END_WHILE
• REPEAT istr UNTIL cond END_REPEAT
• EXIT per uscire da cicli in maniera immediata
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
16
IL LADDER DIAGRAM
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
17
Il Linguaggio a Contatti
• Il linguaggio a contatti (Ladder Diagram) è
il più diffuso linguaggio di programmazione
per PLC.
• Esso prevede l’utilizzo degli elementi:
contatto aperto, contatto chiuso, bobina,
temporizzatore e contatore, tipici degli
schemi a relè elettromeccanici.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
18
Il Ladder Diagram
• La forma del programma deriva dalla logica
a relè, con le due linee verticali laterali (i
montanti della scala) rappresentati
l’alimentazione e con le linee orizzontali (i
pioli o rung) che alimentano una bobina se
una certa combinazione di contatti abilita il
flusso di energia.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
19
Esempio di programma
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
20
Contatti e bobine
• I contatti sono associati agli ingressi digitali
oppure a condizioni interne al dispositivo
(rappresentati entrambi da bit di memoria).
• Una bobina è associata a un bit della
memoria e, col suo tramite, comandare una
uscita digitale o segnalare una condizione
interna.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
21
Esecuzione di un LD
• Un LD viene eseguito secondo una modalità
ciclica composta dalle seguenti fasi:
– Lettura degli input e scrittura del loro stato in
locazioni di memoria particolari
– Esecuzione del programma un rung dopo
l’altro, procedendo dall’alto verso il basso, da
sinistra verso destra
– Scrittura delle uscite, prelevando il loro stato da
locazioni di memoria particolari
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
22
Es. di organizzazione dell’area
dati della memoria RAM
• Per fissare le idee l’area dati della RAM può ad es.
essere organizzata nel seguente modo:
– Area degli input formata da 32 word di 16 bit associate
agli indirizzi I1-I32. Per ingressi digitali lo stato è
associato al singolo bit x della word y, indirizzato come
Ix:y . Gli ingressi analogici sono associati a singole
word.
– Area degli output con 32 word a 16 bit, con indirizzi
U1-U32, relative a uscite digitali e/o analogiche.
– Area utente con 512 word indirizzabili come W1W512. Serve per la memorizzazione di condizioni
interne.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
23
Uso di nomi simbolici
• E’ possibile assegnare dei nomi simbolici
per designare particolari indirizzi allo scopo
di migliorarne la leggibilità. Ad es.
POMPA=U3:14 associa il nome simbolico
POMPA all’indirizzo di memoria U3:14
(uscita digitale).
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
24
Istruzioni di base
• Bobine e contatti sono le istruzioni di base del
linguaggio a contatti.
• I contatti in un rung rappresentano le condizioni
logiche da valutare per poter determinare lo stato
che deve assumere l’uscita rappresentata dalla
bobina.
• I contatti e le bobine devono essere sempre
associati a bit di memoria oppure a nomi simbolici
corrispondenti.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
25
Contatti NA e NC
• Contatto NA -| |- può essere associato a un
bit di input (Ix:y), di uscita (Ux:y), interno
(Wx:y), … . Se il bit associato vale 1 (ON)
il processore chiuderà il contatto
assicurando la continuità logica (elettrica)
nel rung dove si trova. Se il bit vale 0 (OFF)
il contatto rimarrà aperto.
• Contatto NC -|/|- è il duale del precedente.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
26
Bobina
• Bobina –( )– serve per controllare lo stato del bit a
essa associato che può rappresentare un’uscita
(Ux:y) o un marker interno (Wx:y). L’istruzione
deve essere sempre inserita sulla destra alla fine
del rung: se le condizioni logiche alla sua sinistra
sono verificate (esiste cioè una continuità
logica/elettrica) il suo stato viene portato a 1
(ON), altrimenti è posto a 0 (OFF).
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
27
Es.1: Programmazione di una XOR
I1:4
I1:7
U3:15
U3:15 = (I1:4 AND NOT(I1:7)) OR (NOT(I1:4) AND I1:7)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
28
Es.2: Programmazione di un elemento
di memoria (flip-flop SR)
SET
RESET
I2:2
I3:9
U1:1
U1:1 = NOT(I3:9) AND (I2:2 OR U1:1)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
29
Es.3: Riconoscimento di fronte di salita
I1:1
W1:2
W1:1
W1:1 = NOT(W1:2) AND I1:1
W1:2 = I1:1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
30
Esercizio
• Tradurre in LD la seguente istruzione in ST
IF ((I5 : 1 AND I3 : 1 AND W2 : 5)OR(W2 : 6))AND(W2 : 7 OR T2)
SET U1: 7  1
ENDIF
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
31
Soluzione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
32
Istruzioni di temporizzazione e conteggio
• Permettono di controllare delle operazioni basandosi sul
trascorrere del tempo o sul conteggio di eventi
• Temporizzatore: se il rung dove si trova il temporizzatore
presenta una continuità logica, il temporizzatore è abilitato
a contare il trascorrere del tempo. Il suo indirizzo può
essere usato come indicatore dello stato del conteggio e
sarà falso durante il conteggio e vero alla fine. Si resetterà
solo quando la condizione del rung diventa falsa
• Temporizzatore a ritenuta: è analogo a prima, ma il valore
raggiunto dal conteggio viene conservato se le condizioni
di alimentazione diventano false
• Contatore: se il rung dove si trova il contatore subisce una
transizione falso/vero il contatore incrementa il suo valore
di una unità
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
33
Istruzioni per il controllo del
programma
• L’istruzione di salto permette, se alimentata, di saltare
a un rung dove è presente l’istruzione di etichetta
corrispondente.
• Si ottiene ponendo in un rung il costrutto --->>xyz
dove xyz è una stringa che indica dove saltare.
• Con tali istruzioni è facile implementare le strutture
del tipo IF-THEN-ELSE,WHILE, REPEAT, FOR.
• L’istruzione --<RETURN>-- è usata per la
terminazione di funzioni e blocchi funzionali
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
34
Es. Utilizzo del salto per una procedura di
inizializzazione
W1:1
>> xyz
(procedura di inizializzazione)
W1:1
W1:1
xyz :
(programma)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
35
Istuzioni di connessione
• La coppia di istruzioni di connessione -->zyx> e
>zyx>-- viene utilizzata per spezzare un rung troppo
lungo:
I1:1
W1:2
> zyx >
I2:1
U2:1
> zyx >
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
36
IL DIAGRAMMA A BLOCCHI
FUNZIONALI
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
37
Il Diagramma a Blocchi Funzionali
• Il FBD è un linguaggio grafico in cui la
programmazione avviene mediante assemblaggio
di funzioni e/o blocchi funzionali (componenti)
analogamente ad un circuito elettronico
• Il flusso del segnale procede sempre da sinistra
verso destra
• Viene usato per implementare soprattutto funzioni
logiche booleane e operazioni aritmetiche
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
38
Una rete in FBD
• E’ una rete di funzioni e/o blocchi funzionali
collegati tra loro
• L’ingresso di una funzione o di un blocco
funzionale può anche essere direttamente il valore
di una variabile o una costante
• Le uscite possono anche essere valori di variabili
• La negazione di una variabile booleana si può
realizzare o mediante una funzione NOT o con un
cerchietto posto prima dell’ingresso nel blocco
grafico
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
39
Esempio di una rete in FBD
F1
I1
x1
I2
x2
y1
F2
x1
I3
y1
U1
x2
x3
y2
F3
I4
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
x1
y1
x2
y2
U2
40
LA LISTA DI ISTRUZIONI
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
41
La Lista di Istruzioni
• E’ un linguaggio di basso livello, di tipo
assemblativo, composto da sequenze di istruzioni
su righi diversi
• Ogni istruzione è composta da un operatore (e da
un modificatore) e da un operando
• Un’istruzione può essere preceduta da una
etichetta del tipo x:
• Ogni operatore fa riferimento ad un accumulatore
e all’operando
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
42
Operatori Predefiniti
Gli operatori predefiniti sono:
– LD per assegnare all’acc il valore dell’operando
– ST per porre il valore dell’acc nella variabile indicata
dall’operando
– S per porre una variabile booleana a 1 se il valore nell’acc è 1
– R per porre una variabile booleana a 0 se il valore nell’acc è 1
– AND, OR, XOR per operazioni logiche
– ADD, SUB, MUL, DIV per operazioni aritmetiche
– GT, GE, EQ, NE, LE, LT per comparazioni
– JMP per saltare all’etichetta indicata nel campo operando
– CAL per realizzare la chiamata di un blocco funzionale
– RET per realizzare il ritorno da una funzione o da un blocco
funzionale
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
43
I Modificatori
Gli operatori possono essere seguiti da modificatori:
– N indica una negazione dell’operando
– ( indica che l’operatore viene valutato solo se si
trova la corrispondente )
– C , usato solo per gli operatori JMP, CAL e RET,
serve per indicare che l’operatore è eseguito solo
quando il valore corrente dell’acc è 1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
44
Es. Istruzioni per la XOR
LD
ANDN
OR(
ANDN
)
ST
a
b
b
a
c
(* metti il valore di a nell’acc *)
(* AND dell’acc con il NOT di b *)
(* OR dell’acc con l’espressione *)
(* conserva l’acc in c *)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
45
PROGRAM ORGANIZATION UNITS
(POU)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
46
Unità di organizzazione della
programmazione
Esistono elementi comuni ai 5 linguaggi:
• Variabili: strumento per rappresentare dati
• Funzioni: quando l’uscita dipende solo
dall’ingresso attuale
• Blocchi Funzionali: quando l’uscita dipende dagli
ingressi attuali e passati e dalle condizioni iniziali
del blocco
• Programmi: insieme di elementi e costrutti di
programmazione che garantisce il corretto
trattamento dei dati di input
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
47
Le POU
• L’insieme delle variabili, funzioni, blocchi
funzionali, programmi rappresentano le unità di
organizzazione della programmazione (POU)
• Una POU è sempre composta da 3 elementi:
– definizione del tipo di POU e del suo nome
– la parte dichiarativa delle variabili e dei loro
attributi
– Il corpo con le istruzioni nei linguaggi dello
standard
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
48
I task, le risorse e la configurazione
• I task regolano l’esecuzione di un
programma/blocchi funzionali su base periodica,
ciclica o al verificarsi di certi eventi particolari
• Le risorse sono entità in grado di eseguire i
programmi
• La configurazione è l’elemento del linguaggio
corrispondente a un dispositivo che corrisponde a
una o più risorse
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
49
Le Funzioni
• Sono POU riusabili che da certi valori di
ingresso calcolano un solo valore in uscita
(anche vettoriale)
• L’uscita ha lo stesso nome della funzione e
può essere usato all’interno di espressioni
• Possono essere definite in maniera sia
testuale che grafica
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
50
Es. Definizione testuale di una
funzione
FUNCTION nome_fun : tipo
VAR_INPUT
. . . . ; (*
(*
END_VAR
. . . . (*
(*
. . . . (*
(*
(*
END_FUNCTION
(* tipo della *)
(* funzione
*)
definizione delle
*)
variabili di ingresso *)
altre definizioni di
variabili
corpo della funzione
con assegnazione di
un valore a nome_fun
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
*)
*)
*)
*)
*)
51
Caratteristiche di una funzione
• Il corpo della funzione può essere scritto in
uno dei 5 linguaggi dello standard, eccetto
l’SFC
• Non possono essere definite variabili di
uscita, di ingresso/uscita, direttamente
rappresentate, esterne, globali, accessibili, a
ritenuta
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
52
Definizione grafica di una
funzione
• La definizione della funzione è sempre racchiusa
tra le parole chiavi FUNCTION ed
END_FUNCTION
• Tuttavia l’interfaccia esterna è definita mediante
un blocco rettangolare che ha a sinistra i parametri
di input e a destra quelli di output per i quali
occorre specificare i nomi e i tipi delle variabili
• Occorre infine scrivere il corpo della funzione in
uno dei linguaggi possibili
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
53
Es. Definizione grafica della funzione saturazione
FUNCTION
REAL
soglia_sat
dato
REAL
lim_soglia
REAL
lim_sat
REAL
IF ABS(dato) < lim_soglia THEN
soglia_sat := 0.0;
ELSE
soglia_sat := MIN(MAX(dato,-lim_sat),lim_sat);
END_IF
END_FUNCTION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
54
Es. Definizione testuale della funzione saturazione
FUNCTION soglia_sat : REAL
VAR_INPUT
dato, lim_soglia, lim_sat : REAL;
END_VAR
IF ABS(dato) < lim_soglia THEN
soglia_sat := 0.0;
ELSE
soglia_sat := MIN(MAX(dato,-lim_sat),lim_sat);
END_IF
END_FUNCTION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
55
Funzioni predefinite (1/II)
• Funzioni di conversione di tipo e di troncamento:
ad es. INT_TO_REAL( ), TRUNC( )
• Funzioni numeriche: ABS, SQRT, LN, LOG, EXP,
SIN, ASIN, COS, ACOS, TAN, ATAN
• Funzioni aritmetiche: ADD o +, MUL o *, SUB o
-, DIV o /, MOD, MOVE o :=, EXPT o **
• Funzioni applicabili a stringhe di bit: SHL o SHR
per spostare N bit a sx o dx con riempimento di
zeri, ROL o ROR per rotazioni circolari di N bit a
sx o dx, AND o &, OR o >=1 nei linguaggi
grafici, XOR o =2K+1 nei linguaggi grafici, NOT
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
56
Funzioni predefinite (2/II)
• Funzioni di selezione: SEL, MUX, MAX, MIN,
LIM
• Funzioni di comparazione: GT o >, GE o >=, LT o
<, LE o <=, EQ o =, NE o < >
• Funzioni sulle stringhe di caratteri: LEN, LEFT,
RIGHT, MID per l’estrazione di N caratteri a sx,
dx, in mezzo, INSERT, DELETE, REPLACE,
FIND
• Funzioni relative a operazioni su variabili di tipo
temporale
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
57
Overload e estensione delle
funzioni
• Alcune funzioni possono essere sovraccaricate nel
senso che possono usare variabili di ingresso di
tipo diverso (es. l’addizione si può usare sia
qualsiasi tipo numerico)
• Alcune funzioni possono essere estendibili, nel
senso che il numero dei loro ingressi può essere
variabile (es. l’addizione si può estendere ad un
numero generico di addendi)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
58
Controllo di esecuzione
• Per le funzioni definite con linguaggi grafici (LD
o FBD) è possibile controllare l’esecuzione della
funzione mediante un ingresso implicito booleano
EN
• Allo stesso modo esiste un’uscita implicita
booleana ENO che diventa vera quando la
funzione è eseguita senza errori
• Così, in una catena di funzioni, per essere sicuri
che una funzione sia eseguita prima di un’altra
basta connettere l’uscita ENO della prima con
l’ingresso EN della seconda
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
59
Es. Sottrazione di un offset da una misura (testuale)
FUNCTION corr_sens : WORD (*codifica BCD*)
VAR_INPUT
corr : BOOL;
in
: WORD; (*codifica BCD*)
offset: INT;
END_VAR
IF corr THEN
corr_sens := INT_TO_BCD(BCD_TO_INT(in)-offset);
END_IF
END_FUNCTION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
60
Es. Sottrazione di un offset da una misura (grafico)
FUNCTION
BOOL
corr_sens
corr
WORD
in
INT
offset
corr
WORD
BCD_TO_INT
ENO
EN
SUB
EN ENO
INT_TO_BCD
EN
corr_sens
in
offset
END_FUNCTION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
61
I blocchi funzionali
• Sono delle POU dove i valori delle uscite non
dipendono solo dagli ingressi ma anche dalle
variabili interne
• Ciò significa che i valori delle variabili interne e di
uscita si devono conservare tra due esecuzioni
successive del blocco funzionale
• Il corpo del blocco funzionale può essere scritto in
uno dei 5 linguaggi dello standard, compreso
l’SFC
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
62
Es. Definizione testuale di un
blocco funzionale
FUNCTION_BLOCK esempio
VAR_INPUT
. . . . ; (* definizione delle
*)
(* variabili di ingresso *)
END_VAR
VAR_OUTPUT
. . . . ; (* definizione delle
*)
(* variabili di uscita
*)
END_VAR
. . . . (* altre definizioni di variabili *)
. . . . (* corpo del blocco funzionale
*)
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
63
Definizione grafica di un blocco
funzionale
• La definizione grafica di un blocco funzionale è
sempre racchiusa tra le parole chiavi
FUNCTION_BLOCK e
END_FUNCTION_BLOCK
• Tuttavia l’interfaccia esterna è definita mediante
un blocco rettangolare che ha a sinistra i parametri
di input e a destra quelli di output. Per le variabili
interne bisogna specificare i nomi e i tipi
• Occorre infine scrivere il corpo della funzione in
uno dei linguaggi possibili
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
64
Blocchi funzionali predefiniti
Lo standard prevede che vi siano blocchi
funzionali predefiniti:
– due flip-flop, per memorizzare una condizione
logica (priorità del set e del reset)
– due rilevatori di fronte (salita e discesa)
– contatori a incremento, a decremento e
bidirezionali
– temporizzatori o timer a impulso, on-delay, offdelay
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
65
Es. Blocco flip-flop SR
FUNCTION_BLOCK SR
VAR_INPUT
S1,R : BOOL ;
END_VAR
VAR_OUTPUT
Q1 : BOOL;
END_VAR
Q1 := S1 OR (Q1 AND NOT R)
END_FUNCTION_BLOCK
Q1
S1
Q1
R
SR
BOOL
S1
BOOL
R
Q1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
BOOL
66
Es. Blocco flip-flop RS
FUNCTION_BLOCK RS
VAR_INPUT
S,R1 : BOOL ;
END_VAR
VAR_OUTPUT
Q1 : BOOL;
END_VAR
Q1 := NOT R1 AND (Q1 OR S)
END_FUNCTION_BLOCK
S
R1
Q1
Q1
RS
BOOL
S
BOOL
R1
Q1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
BOOL
67
Es. Rilevatore di fronte di salita
FUNCTION_BLOCK R_TRIG
VAR_INPUT
CLK : BOOL ;
R_TRIG
END_VAR
VAR_OUTPUT
BOOL
CLK
Q : BOOL;
END_VAR
VAR RETAIN
AUX : BOOL:=0;
END_VAR
LD
CLK
(* corpo in IL *)
ANDN AUX
ST
Q
LD
CLK
ST
AUX
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
Q
BOOL
68
Es. Rilevatore di fronte di discesa
FUNCTION_BLOCK F_TRIG
VAR_INPUT
CLK : BOOL ;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR RETAIN
AUX : BOOL:=1;
END_VAR
CLK
AUX
Q
F_TRIG
BOOL
CLK
Q
BOOL
(* corpo in LD *)
AUX
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
69
Osservazioni sui rilevatori di fronte
• I riconoscitori di fronte possono essere
anche utilizzati implicitamente sulle
variabili di input di altri blocchi funzionali
• Tali variabili vanno però definite con il tipo
BOOL esteso con i qualificatori R_EDGE o
F_EDGE
• In caso di definizione grafica sulle linee di
ingresso si pongono i simboli > o <
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
70
Es. Contatore a incremento
FUNCTION_BLOCK CTU
VAR_INPUT
CU : BOOL R_TRIG;
R : BOOL;
BOOL
PV : INT;
END_VAR
VAR_OUTPUT
BOOL
Q : BOOL;
CV : INT;
INT
END_VAR
IF R THEN
CV := 0;
ELSIF CU AND (CV<PV) THEN
CV := CV+1;
ENDIF
Q := (CV=PV);
END_FUNCTION_BLOCK
CTU
>CU
Q
BOOL
R
CV
INT
PV
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
71
Es. Contatore a decremento e
contatore bidirezionale
CTUD
BOOL
CTD
BOOL
>CD
Q
BOOL
LD
CV
INT
BOOL
PV
INT
>CU
BOOL
>CD
BOOL
R
BOOL
LD
INT
QU
BOOL
QD
BOOL
CV
INT
PV
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
72
Legenda variabili contatori
•
•
•
•
•
•
CU = ingresso sui cui fronti di salita il contatore è incrementato
CD = ingresso sui cui fronti di salita il contatore è decrementato
R = reset (porta a zero il conteggio)
PV = valore del conteggio di ingresso
LD = carica il contatore con il valore PV
Q = segnala che il contatore ha finito il conteggio (ha raggiunto
il valore del conteggio per il CTU oppure zero per il CTD)
• QD = segnala che il contatore CTUD ha raggiunto lo zero
• QU = segnala che il contatore CTUD ha raggiunto il valore PV
• CV = valore raggiunto dal contatore
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
73
Osservazioni sui contatori
• Occorre sempre prevedere un limite
massimo al valore del conteggio PV
assegnabile ad un contatore
• Questo limite può essere superato ponendo i
contatori in cascata
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
74
Timer a impulso, on-delay e off-delay
• TP o timer a impulso genera in uscita una finestra
rettangolare di durata prestabilita quando
l’ingresso diventa vero
• TON o timer on-delay alza la sua uscita dopo che
è trascorso il tempo impostato da quando
l’ingresso è alto, che deve restare tale, altrimenti il
timer si resetta (ritardo di accensione)
• TOF o timer off-delay ha un’uscita alta quando
l’ingresso è vero e si abbassa dopo il tempo
impostato quando l’ingresso diventa falso (ritardo
di spegnimento)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
75
Es. Definizione grafica del TP
IN
TP
BOOL
IN
Q
BOOL
TIME
PT
ET
TIME
Q
PT
PT
PT
t
t
dove:
• IN = ingresso che fa partire la temporizzazione
• PT = tempo da contare
• Q = uscita booleana su cui il temporizzatore agisce
• ET = tempo trascorso
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
76
Es. Definizione grafica del TON
IN
TON
BOOL
IN
Q
BOOL
TIME
PT
ET
TIME
Q
PT
PT
t
t
dove:
• IN = ingresso che fa partire la temporizzazione
• PT = tempo da contare
• Q = uscita booleana su cui il temporizzatore agisce
• ET = tempo trascorso
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
77
Es. Definizione grafica del TOF
IN
TOF
BOOL
IN
Q
BOOL
TIME
PT
ET
TIME
Q
PT
PT t
t
dove:
• IN = ingresso che fa partire la temporizzazione
• PT = tempo da contare
• Q = uscita booleana su cui il temporizzatore agisce
• ET = tempo trascorso
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
78
Osservazioni sui temporizzatori
• Anche per i temporizzatori è previsto un tetto
massimo al PT
• Tale valore può essere superato mettendo in
cascata vari timer, realizzando così un conteggio
di tempo pari alla somma dei singoli valori
• E’ possibile anche mettere in cascata ad un timer
un contatore, e in tal caso il valore del conteggio è
dato dal prodotto dei valori PT e PV
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
79
Note sui blocchi funzionali
• Un blocco funzionale può contenere la chiamata
ad altri blocchi funzionali o funzioni
• All’atto della definizione di un blocco è creata una
loro istanza con nome e struttura dati univoci
• Un’istanza di un blocco funzionale si definisce
come una variabile, con la sua stessa visibilità
• Oltre ai blocchi funzionali predefiniti, è possibile
creare blocchi funzionali definiti dall’utente
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
80
Es. Gestione di una risorsa comune (testuale)
FUNCTION_BLOCK semaforo
VAR_INPUT
richiesta, rilascio : BOOL;
END_VAR
VAR_OUTPUT
impegnata : BOOL;
END_VAR
VAR
aux : BOOL :=0;
END_VAR
impegnata := aux;
IF richiesta THEN
aux := 1;
ELSIF rilascio THEN
impegnata := 0;
aux := 0;
ENDIF
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
81
Es. Gestione di una risorsa comune (grafica)
FUNCTION_BLOCK
BOOL
semaforo
richiesta
impegnata
BOOL
BOOL
rilascio
VAR
aux : BOOL:=0;
END_VAR
...
(* corpo in uno dei linguaggi *)
...
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
82
Es. Realizzazione di un’onda quadra su
una variabile booleana (testuale - ST)
FUNCTION_BLOCK ondaquadra
VAR_INPUT
abilita : BOOL;
durata_ON, durata_OFF : TIME;
END_VAR
VAR_OUTPUT
uscita : BOOL;
END_VAR
VAR
timer1, timer2 : TON; (*due istanze di timer TON*)
END_VAR
timer1(IN:=NOT(timer2.Q) AND abilita, PT:=durata_OFF);
timer2(IN:=timer1.Q, PT:=durata_ON);
uscita:=timer1.Q;
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
83
Es. Realizzazione di un’onda quadra su una
variabile booleana (grafica)
abilita
timer2.Q
timer1
durata_OFF
timer1.Q
IN
Q
PT
ET
N.B. il solo corpo della
funzione ondaquadra è in
linguaggio a contatti
timer2
durata_ON
IN
Q
PT
ET
uscita
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
84
Es. Realizzazione di un’onda quadra su una
variabile booleana (grafica)
abilita
timer1
AND
durata_OFF
IN
Q
PT
ET
uscita
timer2
durata_ON
IN
Q
PT
ET
N.B. il solo corpo della funzione ondaquadra è in FBD
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
85
Es. Realizzazione di un’onda quadra su una
variabile booleana (testuale - IL)
LDN
AND
ST
LD
ST
CAL
CAL
LD
ST
timer2.Q
abilita
timer1.IN
durata_OFF
timer1.PT
timer1
timer2(IN:=timer1.Q, PT:=durata_OFF)
timer1.Q
uscita
N.B. il solo corpo della funzione ondaquadra è in IL
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
86
Es. Chiamata del blocco funzionale
ondaquadra
ondaquadra(abilita:=ing, durata_ON:=t#2s,
durata_OFF:=t#3s, uscita:=led);
ondaquadra
ing
t#2s
abilita
uscita
durata_ON
t#3s
durata_OFF
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
led
87
Es. Blocco funzionale antirimbalzo
(grafica-FBD)
FUNCTION_BLOCK
antirimbalzo
BOOL
in
TIME
durata
out
BOOL
N.B. Serve per valutare
un valore booleano solo
se è rimasto costante per
un certo tempo
VAR
T1, T2 : TON;
FLIPFLOP : SR;
END_VAR
in
IN
T1
PT
IN
durata
Q
ET
T2
PT
Q
FLIPFLOP
S1
Q1
R
out
ET
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
88
I Programmi
• Sono insiemi di elementi e costrutti dei 5 linguaggi di
programmazione dello standard per il controllo di una
macchina o di un processo
• Si possono considerare come dei macro-blocchi funzionali
con le seguenti caratteristiche:
– definizione di variabili direttamente rappresentate in memoria
– sono le uniche POU che possono accedere alle variabili
rappresentative degli input e output fisici del PLC
– definizione di variabili globali e variabili di accesso che altri
programmi remoti possono indirizzare (VAR_ACCESS)
– non possono istanziare se stessi
– istanze di programmi possono solo essere dichiarate a livello di
risorsa
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
89
Es. Definizione testuale di un
programma
PROGRAM nome
VAR_INPUT
. . . . ; (* definizione delle
*)
(* variabili di ingresso *)
END_VAR
VAR_OUTPUT
. . . . ; (* definizione delle
*)
(* variabili di uscita
*)
END_VAR
. . . .(* altre definizioni di variabili *)
. . . .(* corpo del programma
*)
END_PROGRAM
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
90
I Compiti/Task
• Il compito/task serve per far eseguire un programma o
un blocco funzionale in maniera periodica o al
verificarsi di certi eventi
• Per definire un compito si possono usare:
– il parametro SINGLE di tipo BOOL, che indica la variabile
booleana il cui fronte di salita è l’evento che causa un’unica
esecuzione di un programma/blocco funzionale
– il parametro INTERVAL di tipo TIME che indica la durata
del ciclo per un compito di tipo periodico
– in mancanza dei due parametri sopra descritti si definisce un
compito ciclico continuo
– il parametro PRIORITY di tipo UINT che indica la priorità
del compito (0 è la massima) ed è usato dallo schedulatore
del dispositivo per gestire i vari compiti
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
91
Osservazione sulle priorità dei
task
• Se non viene definita la priorità di un task è
quella minima
• Lo schedulatore (o algoritmo di
schedulazione) dipende dal particolare PLC
e può essere pre-emptive (i task di priorità
maggiore possono interrompere quelli a
priorità minore) o non pre-emptive
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
92
Es. Definizioni di task
TASK
TASK
TASK
TASK
ciclo_controllo(INTERVAL:=t#20ms,PRIORITY=0);
allarme(SINGLE:=flag_allarme,PRIORITY=2);
background
ciclo_refresh(INTERVAL:=t#10ms,PRIORITY=5);
dove:
ciclo_controllo è un task periodico da eseguire ogni 20ms a
priorità massima
allarme è un task da eseguire una sola volta quando la variabile
booleana flag_allarme passa da falso a vero
background
è un compito ciclico a minima priorità
ciclo_refresh è un compito periodico da eseguire ogni 10ms
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
93
Utilizzo dei task
• Per assegnare un programma/blocco funzionale ad
un particolare compito in maniera testuale si usa la
parola chiave WITH
• In maniera grafica si scrive il nome del task nel
blocco grafico
• Se un programma/blocco funzionale non è
associato a un task, per default è eseguito in
maniera ciclica continua con la minima priorità
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
94
Le Risorse
• Una risorsa/resource è un entità che è capace di eseguire
un programma
• Si definisce con la parola chiave RESOURCE + nome
identificativo + ON + tipo di processore su cui va caricata;
alla fine della definizione va posta la parola chiave
END_RESOURCE
• Vanno definite poi eventuali variabili globali, ad accesso
remoto, compiti e programmi che la compongono
• Per i programmi vanno assegnate le loro variabili di input e
output collegandole a indirizzi di memoria corrispondenti a
input e output fisici
• In particolare viene creata una istanza del programma,
definito come un blocco funzionale, collegata a un compito
e alle variabili su cui deve operare
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
95
La Configurazione
• Corrisponde alla definizione di tutto il
software che va caricato su un PLC
• Lo scopo della configurazione è:
– definire le risorse a disposizione e allocare su di
esse i programmi
– indicare la priorità di esecuzione dei programmi
– definire le variabili globali accessibili da tutti i
programmi
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
96
Definizione di una configurazione
• Si definisce con la parola chiave CONFIGURATION
+ nome
• Vanno poi definite le variabili globali visibili da tutti
gli elementi della configurazione e le variabili di
accesso remoto
• Vanno poi definite le risorse che la compongono (in
pratica sono i processori a disposizione), che
contengono i compiti e i programmi da assegnare ad
ogni processore
• La parola chiave END_CONFIGURATION chiude la
definizione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
97
Es. Definizione di una configurazione
CONFIGURATION controllore_cella
VAR_GLOBAL
A : REAL; (* variabili visibili in tutta *)
B : TIME; (* la configurazione
*)
END_VAR
RESOURCE processore_1 ON pentium
VAR_GLOBAL
flag_allarme : BOOL; (* visibile in tutta *)
(* la risorsa *)
END_VAR
TASK ciclo(INTERVAL:=t#20ms,PRIORITY=0);
TASK allarme(SINGLE:=flag_allarme,PRIORITY=2);
PROGRAM tornio : controllo_macchina
(IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…) WITH ciclo;
PROGRAM all_tornio : gestione_allarmi
(IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…) WITH allarme;
END_RESOURCE
RESOURCE processore_2 ON AB486
PROGRAM cella : coordinamento
(IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…);
END_RESOURCE
END_CONFIGURATION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
98
IL DIAGRAMMA
FUNZIONALE SEQUENZIALE
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
99
Diagramma funzionale
sequenziale
• Il linguaggio GRAFCET, adottato sin dal 1988 dal
CEI come linguaggio per la descrizione dei
sistemi di automazione industriale, è stato incluso
nello standard 61131-3 con il nome di Sequential
Functional Chart (SFC)
• Le sue caratteristiche ed i suoi scopi tuttavia sono
diversi da quelli degli altri 4 linguaggi dello
standard
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
100
Caratteristiche del SFC
• Si usa principalmente per la programmazione di
algoritmi di controllo di tipo logico-sequenziale
• Poiché il comportamento di un algoritmo in SFC
dipende dallo stato precedente, si può utilizzare
per programmare blocchi funzionali e programmi
ma non funzioni
• Gli elementi base di un SFC sono
– la fase (o tappa/passo) con le eventuali azioni associate
– la transizione, con la condizione associata
– l’arco orientato che connette fasi e transizioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
101
La fase
• E’ una condizione del sistema modificabile solo
all’occorrenza di un determinato evento, che
genera una transizione che porta il sistema in una
nuova fase
• Può essere in un certo istante attiva o inattiva
• La condizione di un SFC è data dall’insieme delle
sue fasi attive
• Se una fase è attiva, il comportamento del
programma/blocco funzionale descritto con l’SFC
è definito dalle azioni associate a quella fase
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
102
Definizione di una fase
• Graficamente si definisce con un rettangolo al cui interno viene
scritto il nome della fase
• Il rettangolo può essere connesso ad altri elementi (transizioni)
attraverso connettori sul bordo superiore e inferiore
• Esiste anche una definizione testuale con il costrutto:
STEP nome_fase : azioni associate END_STEP
• Le fasi iniziali (attivate all’inizio dell’esecuzione) si
distinguono graficamente ponendo due lineette verticali nel
rettangolo, ovvero testualmente con:
INITIAL_STEP nome_fase : azioni associate END_STEP
• Lo standard prevede una sola fase iniziale per ogni grafo SFC
• Un blocco funzionale/programma può essere costituito da più
grafi SFC non connessi
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
103
Note addizionali (1/II)
• La definizione di una fase nome_fase comporta la
definizione di una variabile booleana nome_fase.X
detta segnalatrice /marker della fase, il cui valore è 1 se
la fase è attiva, altrimenti è 0
• Il valore di questa variabile è disponibile per la
connessione grafica alla destra del rettangolo della fase
• Inizialmente vale 1 per le fasi iniziali, e 0 per tutte le
altre
• Solo a scopo illustrativo, per indicare graficamente lo
stato di una fase si ricorre per convenzione ad un pallino
all’interno del rettangolo per indicare la fase
correntemente attiva
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
104
Note addizionali (2/II)
• La definizione di una fase nome_fase comporta la
definizione di una variabile TIME nome_fase.T che
rappresenta la durata dell’ultima attivazione della fase
(se la fase è attiva, è il tempo trascorso dalla sua
attivazione, se inattiva è la durata dell’ultima attivazione)
• Inizialmente questa variabile è impostata al valore t#0s
per tutte le fasi
• Le variabili nome_fase.X e nome_fase.T non
sono modificabili dall’utente, che può però utilizzarle
• Esse vanno inoltre considerate come variabili locali nella
POU in cui l’SFC è definito
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
105
La transizione
• E’ indicata da una barretta trasversale
sull’arco orientato che collega le fasi
• Rappresenta la condizione che potrebbe far
cambiare lo stato delle fasi
• Ad ogni transizione pertanto è associata una
condizione, ossia una funzione booleana di
variabili booleane, ovvero un’equazione a
valori booleani o asserzioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
106
Definizione di una transizione
• Lo standard prevede vari modi per definire le condizioni
delle transizioni:
– espressione in ST a destra della barretta
– rete in LD a sinistra della barretta o collegata ad essa con un
connettore
– rete in FBD a sinistra della barretta o collegata ad essa con un
connettore
– assegnando un nome alla transizione, a destra della barretta, e
definendola a parte con il costrutto
TRANSITION nome := …; (* condizione *)
END_TRANSITION
– utilizzando il costrutto (senza nominare la transizione)
TRANSITION FROM fase1 To fase2 := …; (* condizione *)
END_TRANSITION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
107
Gli archi orientati
• Collegano tra loro le fasi, stabilendone la
sequenza, e sono interrotti dalle barrette delle
transizioni
• L’orientamento va sempre dal bordo inferiore di
una o più fasi al bordo superiore di una o più fasi
• Anche se non necessario, si possono orientare gli
archi con freccette, specialmente per connessioni
dal basso verso l’alto
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
108
Note addizionali
• Se più fasi convergono in una stessa transizione o se
alla transizione succedono più fasi, si usa una doppia
linea orizzontale per evidenziare le sequenze che
devono evolvere in parallelo
• Per definizioni testuali dell’SFC, l’orientamento è
fissato con i costrutti che definiscono le transizioni
• In generale, un grafo composto da fasi, transizioni e
archi orientati è un SFC se:
– due fasi non sono connesse direttamente, ma vi è una
transizione tra loro
– due transizioni non sono connesse direttamente, ma vi è
almeno una fase tra loro
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
109
Es. Definizione grafica di un SFC
quiete
a AND b
avvio
c
d
fase_C
fase_A
e AND NOT(f)
TR25
TRANSITION TR25
:=(fase_C.T>=t#30s)AND(fase_B.X);
END_TRANSITION
fase_D
fase_B
1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
110
Es. Definizione testuale di un SFC
INITIAL_STEP quiete : END_STEP
STEP avvio : END_STEP
STEP fase_A: END_STEP
STEP fase_B: END_STEP
STEP fase_C: END_STEP
STEP fase_D: END_STEP
TRANSITION FROM quiete TO avvio:= a AND b;
END_TRANSITION
TRANSITION FROM avvio TO fase_A,fase_C:=c OR d;
END_TRANSITION
TRANSITION FROM fase_A TO fase_B:= e AND NOT(f);
END_TRANSITION
TRANSITION FROM fase_C TO fase_D:=(fase_C.T GE t#30s) AND
(fase_B.X);
END_TRANSITION
TRANSITION FROM fase_B, fase_D TO quiete:=1;
END_TRANSITION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
111
Le azioni
• Ad ogni fase si possono associare delle azioni
• Si possono definire sia graficamente, indicandone
il nome e il corpo di istruzioni, sia testualmente
con il costrutto
ACTION nome_azione:
. . . (*corpo dell’azione*)
END_ACTION
• Anche una semplice variabile booleana può essere
un’azione, nel senso che se eseguita la variabile è
portata a 1 (in tal caso non è presente il corpo
dell’azione)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
112
Definizione grafica di un’azione
(1)
(2)
(3)
(4)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
113
Definizione del blocco di azione (1/II)
Nel campo (1) va posto il qualificatore dell’azione che può essere:
– assente o N per qualificare l’azione come non memorizzata, da eseguire
fintanto che la fase è attiva e ancora una volta quando la fase è disattivata
– P per qualificare un’azione da eseguire una sola volta quando la fase è attivata
– D insieme ad una costante di tipo TIME per qualificare un’azione ritardata nel
tempo se la fase è ancora attiva e sino alla fine dell’attivazione, e poi ancora
per una volta
– L insieme ad una costante di tipo TIME per qualificare un’azione limitata nel
tempo, eseguita per la durata indicata o per la durata dell’attivazione della fase
se minore, e poi ancora per una volta
– S o R per indicare il set o reset di un’azione memorizzata, che se settata in una
fase resta in esecuzione anche dopo la disattivazione della fase, fino a quando
non viene resettata, e poi ancora per un ciclo di scansione
– DS insieme ad una costante di tipo TIME per qualificare un’azione ritardata e
memorizzata dopo la durata indicata se la fase è ancora attiva
– SL insieme ad una costante di tipo TIME per qualificare un’azione come
memorizzata e limitata nel tempo, cioè eseguita per il tempo indicato anche se
la fase si è disattivata
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
114
Definizione del blocco di azione (2/II)
• Nel campo (2) va posto il nome dell’azione
• Nel campo (3) va posta una variabile indicatrice
(booleana) che è messa a 1 quando l’esecuzione
dell’azione è terminata (ha solo scopi di documentazione
e può essere omessa)
• Nel campo (4) va posto il corpo dell’azione, cioè quello
che deve essere fatto, utilizzando uno dei linguaggi
standard (compreso lo stesso SFC). Tale campo può
essere omesso se l’azione viene definita a parte
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
115
Connessione delle azioni alle fasi
• Il blocco di azione può essere connesso alla fase
graficamente, tramite un collegamento a destra del
rettangolo della fase, che stabilisce una relazione
con la variabile segnalatrice della fase
• Una fase può essere connessa a più blocchi di
azione
• In alternativa si può ricorrere ad una definizione
testuale del tipo:
STEP nome_fase:
var_booleana(N);
(* azioni senza *)
altra_var_booleana(P); (* corpo
*)
AZIONE_COMPLESSA(L,t#30s,ind); (*a parte*)
END_STEP
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
116
Corpo dell’azione in SFC
• Lo standard consente di definire il corpo di
un’azione anche in SFC
• Ciò consente di sviluppare un programma in
SFC con una metodologia top-down,
individuando prima le macro-fasi in cui
passa il sistema e poi, per ognuna di esse,
sviluppando in dettaglio nelle azioni le
sequenze previste
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
117
Note addizionali sui blocchi di azione
• Lo standard consente l’uso di una variabile booleana associata
implicitamente ad ogni azione nome_azione.Q che è vera
quando l’azione deve essere eseguita
• Le fasi cui non sono associate azioni possono essere qualificate
come fasi di attesa (prima di passare ad un’altra fase)
• Lo standard prevede che i blocchi di azione possono essere
utilizzati anche nel LD e nel FBD (in LD il blocco è attivato se
alimentato; in FBD il blocco è attivato se l’ingresso booleano è
vero)
• In ambedue i linguaggi LD e FBD, la variabile indicatrice del
blocco di azione (campo (3)) può essere usata per segnalare il
completamento dell’azione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
118
Regole di evoluzione
1) Date le seguenti definizioni:
– una transizione è detta abilitata se tutte le fasi a monte di
essa sono attive
– una transizione è detta superabile se è abilitata e la
condizione a essa associata è vera
una prima regola di evoluzione dell’SFC afferma che se
una transizione è superabile essa viene effettivamente
superata: tutte le fasi a monte vengono disattivate e tutte
le fasi a valle vengono attivate
2) Le operazioni di disattivazione/attivazione si susseguono
nell’ordine indicato e la loro durata effettiva, piccola ma
non nulla, è legata alla particolare implementazione ed è
data dal tempo che intercorre tra due valutazioni
successive del grafo
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
119
Il problema dell’ambiguità
Può capitare che più transizioni distinte
diventino superabili nello stesso istante.
Per rimuovere tale ambiguità, si è introdotta la
regola:
3) Se più transizioni diventano superabili nello
stesso istante, esse sono tutte superate
contemporaneamente
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
120
Il problema della stabilità
Un altro problema che può verificarsi è che una fase
sia instabile, nel senso che ha la condizione associata
alla transizione di uscita già vera quando la fase
viene attivata.
In questo caso lo standard stabilisce che le azioni
associate siano comunque eseguite prima della
disattivazione della fase (cioè la durata
dell’attivazione di una fase non può essere nulla)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
121
Strutture classiche di programmazione in
SFC
A
A
B
A
cond1
cond1
B
B
Sequenza
semplice
cond2
cond2
C
Scelta o divergenza
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
C
Convergenza
122
Osservazioni sulla divergenza
• Quando è presente una scelta/divergenza, occorre
che le condizioni di scelta siano mutuamente
esclusive
• La mutua esclusione tra le condizioni di scelta è
garantita quando esse non sono mai vere
contemporaneamente per loro natura
• In caso contrario occorre impostarla per
costruzione ad es.:
cond1’:=cond1;
cond2’:=cond2 & (NOT cond1);
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
123
Osservazioni sulla convergenza
• La convergenza è la chiusura naturale di
una scelta
• Casi particolari di scelta+convergenza sono
il salto di una sequenza e il ciclo di una
sequenza
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
124
Salto e ciclo di una sequenza
A
A
B
B
C
C
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
125
Parallelismo o concorrenza
f1
T1
f11
f21
f31
Se T1 diventa superabile si attivano contemporaneamente
f11,f21, f31, dando luogo a diverse sequenze che evolvono
indipendentemente
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
126
Sincronizzazione
f21
f11
f31
T1
Perché T1 sia superata occorre che f11,f21,f31 siano tutte attive.
Esse cioè sono sincronizzate dalla transizione T1.
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
127
Sincronizzazione locale
f3
f45
T4
f4
f5
f20
f46
f47
La sequenza di destra deve
attendere che la sequenza di
sinistra superi T4 per poter
procedere
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
128
Struttura errata: scelta con sincronizzazione
f10
T10
T2
f11
f21
f17
f24
T20
La transizione T20 non diventerà
mai superabile!!!
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
129
Struttura errata: struttura ambigua
f1
T1
f11
f21
f17
f24
T17
f2
T24
La fase f2 rischia di essere
attivata due volte!!!
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
130
Vantaggi dell’SFC
• Il linguaggio SFC è il migliore per la
programmazione del controllo logico-sequenziale
• Le applicazioni di tali controllo esulano da quelle
dell’automazione industriale: controllo di un
sistema semaforico, di una stazione ferroviaria,
dell’accesso a un canale di comunicazione, degli
accessi a un data-base, della coda di un server
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
131
Progetto del controllo con SFC (1/II)
• Scrittura dell’SFC funzionale:
1) individuare le specifiche funzionali dell’impianto da
automatizzare
2) esprimere tali specifiche in un linguaggio che non
permette ambiguità, ad es. adoperando l’SFC già nella
scrittura delle specifiche, esprimendo le azioni da eseguire
e le condizioni da valutare in linguaggio naturale (“apri
valvola”, “spegni pompa”, “vai a destra”)
• L’SFC funzionale prodotto è utile anche ai fini della
documentazione perché descrive esattamente quello
che il sistema deve fare
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
132
Progetto del controllo con SFC (2/II)
• Scrittura dell’SFC di controllo:
1) a partire dalla descrizione funzionale del
controllo si può passare alla stesura del
programma vero e proprio
2) una fase individuata a livello funzionale
potrebbe poi dover essere realizzata come una
sequenza di fasi intermedie (programmazione
top-down)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
133
Note addizionali
• La scrittura dell’SFC di controllo e/o funzionale è
vantaggiosa anche in fase di debugging del
programma: se il sistema si blocca in una fase si deve
capire solo perché la transizione di uscita non è stata
superata
• Dal punto di vista implementativo/computazionale, un
programma in SFC ha una maggiore efficienza poiché
in ogni valutazione del grafo vanno effettivamente
eseguite solo le azioni associate alle fasi attive e
valutate solo le transizioni in uscita a tali fasi
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
134
Es. Il carrello automatico
Un carrello trasportatore, a richiesta di un operatore, deve
spostarsi alla destra di un binario, essere caricato per ribaltamento
di un serbatoio e riportarsi a sinistra per scaricare il materiale.
g
R
fr
fs
fd
S
D
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
135
Architettura del sistema
• Il sistema comprende:
– 3 segnali provenienti dai sensori di fine corsa, di cui 2 per
il carrello (cui corrispondono le variabili booleane fs e
fd) ed 1 per il serbatorio (variabile fr)
– 1 segnale legato ad un pulsante di attivazione del ciclo
(variabile g)
– 2 comandi di attuazione per il moto del carrello (variabili
S e D)
– 1 segnale per il ribaltamento del serbatoio (variabile R)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
136
SFC funzionale per il carrello automatico
quiete
parti
vai a destra
arrivato a destra
carica
caricato
vai a sinistra
arrivato a sinistra
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
137
SFC di controllo per il carrello automatico
quiete
g
vai_a_dx
N
D
N
R
N
S
fd
carica
fr
vai_a_sx
fs
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
138
Es. Il trapano automatico
R
p
S
a
D
m
x
O
b
y
Segnali di input digitali:
-p pulsante per comandare la partenza
-a finecorsa slitta trapano in alto
-m contatto di media corsa della slitta
-b finercorsa della slitta trapano in basso
-x contatto che segnala l’altezza del
pezzo
Segnali di output/comando digitali:
-S che comanda la salita del trapano
-D che comanda la discesa del trapano
-R che attiva la rotazione del trapano
-O che attiva l’oliatore
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
139
Specifiche funzionali
• Il ciclo inizia quando l’operatore preme il pulsante di
partenza, se è presente un pezzo
• Se il pezzo è basso il trapano viene messo in rotazione
e fatto scendere fino al finecorsa basso; poi viene fatto
risalire sino al finecorsa alto dove viene fermata la
rotazione
• Se il pezzo è alto, il trapano in rotazione deve
scendere fino al contatto medio e poi risalire; poi deve
essere attivata la pompa oliatrice per 2s; infine il
trapano deve scendere fino al finecorsa basso e poi
risalire ed essere fermato
• Un nuovo ciclo può avviarsi solo se il pezzo trattato
viene rimosso e sostituito con un altro
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
140
Es. Distributore automatico di bibite
Gli input di controllo sono:
– 1 segnale moneta dalla gettoniera
– 1 segnale aperto che indica se il vano prelievi e stato
aperto
Gli output di controllo sono:
– 2 segnali BLOCCA e SBLOCCA che agiscono sulla
porta del vano prelievo
– 2 segnali SA e SB per il comando di 2 pistoncini lineari
(se il segnale è presente il pistoncino va a dx, altrimenti
una molla di richiamo lo riporta a sx)
L’obiettivo è che all’inserimento di una moneta, una
sola bibita sia fatta cadere nel vano e sia possibile
prelevarla
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
141
SFC di controllo per il distributore
f1
BLOCCA
moneta
f11
SBLOCCA
f21
aperto
f12
L
t#1s SB
f21.T>=t#2s
f22
L
t#1s SA
f22.T>=t#2s
f23
1
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
142
Esempi di programmazione
completi
1) Descrizione dell’impianto da controllare e degli
ingressi e delle uscite del sistema di controllo
2) Specifiche di funzionamento da soddisfare
3) Decomposizione funzionale del problema per
individuare funzionalità che si possono
sviluppare autonomamente
4) Scrittura del programma di controllo
5) Definizione delle risorse e della configurazione
del sistema di controllo
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
143
Controllo sistema di illuminazione
Lscala
P3scala
P2scala
L1
L2
P1scala
P1
P2
• Due capannoni identici per cui occorre controllare i sistemi di illuminazione
• In ogni capannone sono presenti una scala e un ambiente di lavoro
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
144
Caratteristiche sistema di controllo
• Ingressi di controllo:
– P1scala, P2scala, P3scala, P1, P2
segnali provenienti dai pulsanti di accensione
• Uscite di controllo:
– Lscala, L1, L2 segnali di controllo
illuminazione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
145
Specifiche
• Le luci della scala si devono accendere alla pressione di
uno dei pulsanti di accensione e rimanere accese per 60s
• Se durante l’accensione delle luci della scala viene
premuto di nuovo uno dei pulsanti il conteggio del tempo
deve ripartire
• Se viene premuto il pulsante P1 [P2] si deve accendere
l’impianto L1 [L2] nell’ambiente di lavoro
• Se uno dei pulsanti P1 o P2 viene premuto due volte
entro mezzo secondo, si devono accendere tutti e due gli
impianti L1 e L2
• Se uno dei pulsanti P1 o P2 viene tenuto premuto per
più di mezzo secondo, si devono spegnere tutti e due gli
impianti L1 e L2
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
146
Funzionalità
• Gestione di un impianto luminoso: blocco funzionale che
può accendere, spegnere o cambiare lo stato di un’uscita
• Accensione temporizzata di un impianto luminoso: blocco
funzionale che permette l’accensione per una durata
impostabile e lo spegnimento immediato dell’impianto
• Riconoscimento doppia pressione su un pulsante: blocco
funzionale che permette di distinguere se c’è un solo fronte
di salita o due sull’ingresso
• Riconoscimento di una pressione continua del pulsante:
blocco funzionale per distinguere tra segnale d’ingresso
durato meno o più dell’intervallo prefissato
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
147
Gestione luce
FUNCTION_BLOCK
BOOL
on
BOOL
off
BOOL
com
gest_luce
luce
BOOL
Il fronte di salita sull’ingresso
on mette a 1 l’uscita luce
che è riportata a zero da un fronte
di salita sull’ingresso off.
Un fronte di salita su com fa
cambiare lo stato dell’uscita.
spenta
on
P
com
P
accesa
luce
off
P
com
P
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
148
Accensione temporizzata
FUNCTION_BLOCK
BOOL
timer_luce
>on
BOOL
>off
TIME
durata
luce
BOOL
Permette l’accensione per una
durata impostabile e lo
spegnimento immediato
f1
on
f2
luce
(f2.T>durata OR off)AND NOT(on)
on
f3
luce
1
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
149
Riconoscimento doppia pressione
FUNCTION_BLOCK
BOOL
doppia_pres
in
singolo
BOOL
TIME
durata
BOOL
doppio
quiete
in
primo
in
P
GE
EN ENO
primo.T
durata
LT
EN ENO
primo.T
durata
uno
singolo
1
due
doppio
1
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
150
Riconoscimento pressione continua
FUNCTION_BLOCK
lung_pres
corto
BOOL
in
TIME
durata
lungo
BOOL
BOOL
quiete
in
premuto
in AND (premuto.T>=durata)
NOT(in)
prima
corto
1
dopo
lungo
1
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
151
PROGRAM gest_luci_cap
VAR_INPUT P1,P2,P1scala,P2scala,P3scala : BOOL; END_VAR
VAR_OUTPUT L1,L2,Lscala : BOOL; END_VAR
VAR timer_scala : timer_luce; luce1,luce1:gest_luce;
lungo1,lungo2:lung_pres;
doppio1,doppio2:doppia_pres; END_VAR
P1scala
P2scala
P3scala
OR
timer_scala
on
luce
off
t#60s
in
P1
t#500ms
P2
lungo1
corto
durata
lungo
OR
OR
OR
lungo
OR
in
t#500ms
luce1
luce
L1
com
lungo2
corto
durata
on
off
durata doppio
in
t#500ms
Programma gestione luci
capannone
durata
doppio1
singolo
in
t#500ms
Lscala
luce2
on
luce
off
L2
com
doppio2
singolo
durata doppio
END_PROGRAM
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
152
Risorse e Configurazione
• Occorre definire le risorse e la
configurazione
• Si supponga di utilizzare un controllore con
una sola risorsa di elaborazione PLC586
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
153
Es. Configurazione 1
CONFIGURATION contr_imp_luci
RESOURCE controllore ON PLC586
PROGRAM capan1:gest_luci(P1:=%I3.4,P2:=%I3.5,
P1scala:=%I3.6,P2scala:=%I3.7,P3scala:=%I3.8,
Lscala:=%Q1.1,L1:=%Q1.2,L2:=%Q3.4);
PROGRAM capan2:gest_luci(P1:=%I2.2,P2:=%I2.3,
P1scala:=%I2.4,P2scala:=%I2.5,P3scala:=%I2.6,
Lscala:=%Q4.1,L1:=%Q4.2,L2:=%Q4.4);
END_RESOURCE
END_CONFIGURATION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
154
Es. Configurazione 2
CONFIGURATION contr_imp_luci
RESOURCE primo_capan ON PLC586
PROGRAM capan1:gest_luci(P1:=%I3.4,P2:=%I3.5,
P1scala:=%I3.6,P2scala:=%I3.7,P3scala:=%I3.8,
Lscala:=%Q1.1,L1:=%Q1.2,L2:=%Q3.4);
END_RESOURCE
RESOURCE secondo_capan ON PLC486
TASK periodo(INTERVAL:=t#10ms)
PROGRAM capan2:gest_luci(P1:=%I2.2,P2:=%I2.3,
P1scala:=%I2.4,P2scala:=%I2.5,P3scala:=%I2.6,
Lscala:=%Q4.1,L1:=%Q4.2,L2:=%Q4.4) WITH periodo;
END_RESOURCE
END_CONFIGURATION
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
155
Sistema di nastri trasportatori
• Sistema composto da 3 nastri trasportatori
identici
• I pacchi posati sul primo nastro vengono
portati alla fine del terzo nastro da dove
sono prelevati
• Allo scopo le movimentazioni dei 3 nastri
devono essere opportunamente coordinate
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
156
Schematizzazione funzionale
nastro1
nastro2
nastro1
fotocellula fotocellula
Input di controllo:
1) photo: segnale dalle fotocellule
poste alla fine dei nastri
2) p_dopo: indica se il dispositivo
successivo è pronto per accettare
il pacco
fotocellula
Output di controllo:
1) ava: controlla la movimentazione
del nastro
2) p_acc: indica al dispositivo
precedente che il nastro è pronto a ricevere
3) p_cons: indica al dispositivo successivo
che il nastro è pronto a consegnare
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
157
Gestione nastro
FUNCTION_BLOCK
BOOL
BOOL
gest_nastro
ava
photo
p_acc
p_dopo
p_cons
BOOL
BOOL
BOOL
ava
f1
p_acc
photo
p_cons
f2
N
consegna
p_dopo
p_acc
NOT(photo)
ava
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
158
Programma gestione nastri
PROGRAM tre_nastri
VAR_INPUT phi1,phi2,ph3,pronto_a_valle: BOOL; END_VAR
VAR_OUTPUT ava1,ava2,ava3,pronto_ad_accettare,
pronto_a_consegnare : BOOL; END_VAR
VAR nastro1,nastro2,nastro3 : gest_nastro; END_VAR
pronto_ad_accettare
nastro1
ph1
nastro2
ava
photo
p_acc
p_dopo p_cons
ava1
ph2
photo
nastro3
ava
ava2
p_acc
p_dopo p_cons
ph3
photo
ava
p_acc
p_dopo p_cons
pronto_a_valle
pronto_a_consegnare
END_PROGRAM
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
159
ava3
Sistema di nastri trasportatori e girello automatico
ph3
nastro3
nastro1
nastro2
ava2
ava1
ph1
ph2
Input di controllo girello:
ava3
1) photo segnale dalla fotocellula per
indicare un pacco trasferito sul girello
2) fs finecorsa antioraria del girello
fs
3) fd finecorsa oraria del girello
sin
4) p_dopo indica se il dispositivo dopo
fd
è pronto per accettare un pacco
ava
des
5) p_prima indica se il dispositivo prima
photo
è pronto a consegnare un pacco
girello
Output di controllo girello:
1) ava movimentazione rulli del girello
2) sin fa ruotare il girello in senso antiorario
3) des fa ruotare il girello in senso orario
4) p_acc indica che il girello è pronto ad
accettare un pacco dal dispositivo prima
5) p_cons indica che il girello è pronto a
consegnare un pacco al dispositivo dopo
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
160
FUNCTION_BLOCK
BOOL
BOOL
BOOL
BOOL
BOOL
gest_girello
ava
photo
sin
fs
des
fd
p_acc
p_prima
p_dopo
p_cons
BOOL
BOOL
BOOL
BOOL
BOOL
fermo
p_prima
ricevi
Gestione girello
ava
p_acc
photo
gira_sn
sin
fs
consegna
p_cons
consegna
N
NOT(photo)
gira_ds
p_dopo
ava
sin
fd
END_FUNCTION_BLOCK
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
161
PROGRAM nastri_girello
VAR_INPUT phi1,phi2,ph3,phg,fsg,fdg,pronto_a_valle: BOOL; END_VAR
VAR_OUTPUT ava1,ava2,ava3,avag,sing,desg,pronto_ad_accettare,
pronto_a_consegnare : BOOL; END_VAR
VAR nastro1,nastro2,nastro3 : gest_nastro;
girello : gest_girello;
END_VAR
nastro3
ph3
pronto_a_valle
photo
ava
ava3
p_acc
p_dopo p_cons
pronto_a_consegnare
phg
fsg
fdg
gest_girello
ava
photo
sin
fs
des
fd
p_acc
p_prima
p_dopo
p_cons
avag
sing
desg
pronto_ad_accettare
nastro1
ph1
photo
nastro2
ava
p_acc
p_dopo p_cons
ava1
ph2
photo
ava
ava2
p_acc
p_dopo p_cons
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
162
Traduzione del SFC
• Non tutti i PLC comprendono l’SFC tra i possibili
linguaggi di programmazione
• E’ necessaria una procedura di traduzione in modo
che sia implementabile su qualsiasi macchina
• La procedura deve essere semplice e dettagliata,
con relazioni biunivoche
• Ogni eventuale modifica dell’SFC deve poter
essere convertita nelle modifiche alla traduzione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
163
Formalizzazione di un SFC
•
•
Propedeutica alla traduzione di un SFC è la
“formalizzazione” del suo comportamento
Occorre cioè trovare equazioni booleane o
algoritmi di evoluzione che descrivano le regole
con cui le fasi evolvono:
1. Una fase diventa attiva se una delle transizioni a
monte è superabile
2. Una fase viene disattivata se essa è attiva e se risulta
superabile una delle transizioni a valle
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
164
Equazioni booleane equivalenti
i
Ti
jd
j1
Fi
Tj
Fj
n
fe
f1
Tk
Fk
Tf
Ff


n.X :  i.X  Fi    Fj jh.X  Regola di attivazione della fase n
i
j 
h




n.X : n.X  NOT Fk    Ff  fh.X  Regola di disattivazione
f 
h

k
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
165
Osservazioni
• L’equazione booleana complessiva è data dall’OR
delle due equazioni scritte
• In entrambe le equazioni booleane equivalenti
trovate, la n.X e le condizioni delle transizioni
sono valutati all’istante attuale, viceversa i
segnalatori delle fasi all’istante precedente
• Oltre alle equazioni di attivazione e disattivazione
delle fasi occorre scrivere le equazioni delle azioni
da eseguire
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
166
Traduzione in equazioni booleane
• E’ richiesta la traduzione in equazioni
booleane equivalenti per tutte le fasi e per
tutte le azioni
• E’ necessaria poi un procedura di lettura
degli ingressi e di scrittura delle uscite
• Tale procedimento è poco flessibile in
quanto prevede l’inclusione delle condizioni
delle transizioni nelle equazioni delle fasi
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
167
Algoritmo di evoluzione
Fase di inizializzazione
lettura ingressi
inizializzazione SFC
Ciclo iterativo
lettura ingressi
determinazione
transizioni superabili
aggiornamento
condizione SFC
esecuzione azioni
scrittura uscite
Rappresentazione in forma
algoritmica delle regole di
evoluzione di un SFC
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
168
Caratteristiche di un algoritmo di
evoluzione
• Fase di inizializzazione:
– lettura degli ingressi fisici
– attivazione delle fasi iniziali ed esecuzione delle azioni
associate
• Ciclo iterativo:
– aggiornamento degli ingressi fisici
– determinazione delle uscite di controllo a partire dalle
transizioni superabili, dalle fasi attive e dall’esecuzione
delle azioni
– scrittura delle uscite fisiche
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
169
Codifica dell’algoritmo di
evoluzione
• L’algoritmo evolutivo prevede la codifica
dell’inizializzazione delle fasi, della
valutazione delle transizioni, della
determinazione della nuova condizione e
delle azioni associate da svolgere
• E’ stato scelto il LD come linguaggio di
codifica
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
170
Operazioni preliminari
• Associare ad ogni fase una variabile
booleana come segnalatore della fase (ad es.
il nome della fase)
• Associare ad ogni transizione una variabile
booleana come segnalatore della transizione
(ad es. Tr+numero transizione)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
171
Sezioni dell’algoritmo in LD
L’algoritmo di evoluzione codificato in LD
presenterà 4 sezioni in sequenza:
1.
2.
3.
4.
Sezione di inizializzazione
Sezione di valutazione delle transizioni
Sezione di aggiornamento della condizione
Sezione di esecuzione delle azioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
172
Sezione di inizializzazione
• E’ eseguita una sola volta all’inizio
• Serve per porre a 1 i segnalatori delle fasi
iniziali dell’SFC
• Ciò è possibile con bobine a
memorizzazione associati ai segnalatori
delle fasi iniziali
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
173
Es. Inizializzazione in LD
INIZ
fase_iniz_1
S
fase_iniz_n
Il bit di stato INIZ è 1 solo
alla prima scansione!!
S
AZIONI
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
174
Sezione di valutazione delle
transizioni
• Valuta se tutte le transizioni sono superabili
o meno, aggiornando lo stato dei segnalatori
di transizione
• E’ necessaria così una istruzione in LD per
ogni transizione per valutarne la superabilità
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
175
Es. Valutazione delle transizioni in LD
fase_i
cond
Tri
fase_j
cond
Trj
fase_k fase_f cond
Trk
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
176
Sezione di aggiornamento della
condizione
• Per ogni transizione superabile, disattiva le
fasi a monte e attiva quelle a valle
• Per ogni transizione quindi occorre un rung
che disattivi le fasi a monte seguito da un
rung che attivi le fasi a valle, quando la
transizione è superabile
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
177
Sezione di esecuzione delle
azioni
• E’ preceduta dall’etichetta AZIONI cui
punta il salto condizionato nella Sezione
inizializzazione
• Si usa la variabile segnalatrice dello stato di
attivazione di una fase per condizionare
l’esecuzione dell’azione associata
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
178
Traduzione delle variabili
temporali
• In un SFC possono essere presenti variabili
temporali associate alle fasi per
condizionare le transizioni e nelle azioni
limitate o ritardate nel tempo (L o D)
• Nel LD vanno implementate tramite il
blocco funzionale predefinito dei
temporizzatori TON
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
179
Errori comuni
f1
AAA
f1
f2
AAA
f2
NO
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
AAA
SI
180
Es. Il carrello automatico
g
R
fr
fs
fd
S
D
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
181
Es. Il carrello automatico in SFC
quiete
g
vai_a_dx
N
D
N
R
N
S
fd
carica
fr
vai_a_sx
fs
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
182
Es. Il carrello automatico in LD 1/III
INIZ
quiete
S
Sezione di inizializzazione
AZIONI
g
Tr1
vai_a_dx fd
Tr2
quiete
carica
fr
Tr3
vai_a_sx fd
Tr4
Sezione di valutazione delle
transizioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
183
Es. Il carrello automatico in LD 2/III
Tr1
quiete
R
Tr2
vai_a_dx
R
Tr3
carica
R
Tr4
vai_a_sx
R
Tr1
Sezione di aggiornamento delle
condizioni
vai_a_dx
S
Tr2
carica
S
Tr3
vai_a_sx
S
Tr4
quiete
S
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
184
Es. Il carrello automatico in LD 3/III
AZIONI:
vai_a_dx
D
carica
R
vai_a_sx
S
Sezione di esecuzione delle
azioni (tutte con il qualificatore N)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
185
Es. La cella robotizzata
• Si consideri una cella robotizzata costituita
da un robot che deve servire:
– 2 nastri trasportatori di alimentazione
– 1 nastro trasportatore di distribuzione
• Il robot deve trasferire dei carichi che
arrivano in maniera random dai nastri di
alimentazione al nastro di distribuzione
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
186
Es. La cella robotizzata
Nastro 1
P0
P1
AVA1
Nastro 3
PRES1
P3
Nastro 2
AVA2
P2
AVA3
PRES3
OGG3
PRES2
Input di controllo:
1) PRESi: presenza oggetto nella
posizione Pi, i=1..3
2) OGG3: presenza oggetto alla fine del
nastro 3
3) OKi: avvenuto posizionamento
del robot in Pi, i=0..3
Output di controllo:
1) AVAi: avanzamento nastro i, i=1..3
2) VAIi: posizionamento del robot
in Pi, i=0..3
3) CHIUDI: comando chiusura pinza
del robot
4) APRI: comando apertura pinza del robot
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
187
SFC di controllo dei nastri
quiete1
quiete2
NOT PRES1
T10
T11
PRES1
NOT PRES2
T20
AVA1
f11
quiete3
AVA2
f21
T21
PRES3 AND quiete0
T30
PRES2
AVA3
f31
OGG3
T31
f32
T32
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
NOT OGG3
188
quiete0
PRES1
T1
VAI1
f1
T3
PRES2 AND NOT PRES1
T2
VAI2
f2
OK1
OK2
T4
CHIUDI
f3
f3.T>=0.5s AND quiete3
T5
CHIUDI
f4
SFC di controllo
del robot
VAI3
OK3
T6
APRI
f5
f5.T>=0.5s
T7
VAI0
f6
T8
OK0
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
189
Es. La cella robotizzata in LD 1/IX
INIZ
quiete0
S
quiete1
S
quiete2
Sezione di inizializzazione
S
quiete3
S
AZIONI
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
190
Es. La cella robotizzata in LD 2/IX
quiete0 PRES1
Tr1
PRES2 PRES1
Tr2
f1
OK1
Tr3
f2
OK2
Tr4
quiete0
f3
timer1.Q quiete3
Sezione di valutazione delle
transizioni
Tr5
f4
OK3
Tr6
f5
timer2.Q
Tr7
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
191
f6
OK0
Tr8
quiete1
PRES1
Tr10
f11
PRES1
Tr11
quiete2
PRES2
Tr20
PRES2
Tr21
quiete3 PRES3 quiete0
Tr30
f31
OGG3
Tr31
f32
OGG3
Tr32
f21
Es. La cella robotizzata
in LD 3/IX
Sezione di valutazione delle
transizioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
192
Tr1
quiete0
R
Tr2
Tr3
Es. La cella robotizzata
in LD 4/IX
f1
R
Tr4
f2
R
Tr5
f3
Sezione di aggiornamento delle
condizioni
R
Tr6
f4
R
Tr7
f5
R
Tr8
f6
R
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
193
Tr10
quiete1
R
Tr11
f11
Es. La cella robotizzata
in LD 5/IX
R
Tr20
quiete2
R
Tr21
f21
R
Tr30
Sezione di aggiornamento delle
condizioni
quiete3
R
Tr31
f31
R
Tr32
f32
R
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
194
Tr1
f1
S
Tr2
f2
S
Tr3
Es. La cella robotizzata
in LD 6/IX
f3
S
Tr4
Tr5
f4
Sezione di aggiornamento delle
condizioni
S
Tr6
f5
S
Tr7
f6
S
Tr8
quiete0
S
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
195
Tr10
f11
S
Tr11
quiete1
S
Tr20
Es. La cella robotizzata
in LD 7/IX
f21
S
Tr21
quiete2
S
Tr30
Sezione di aggiornamento delle
condizioni
f31
S
Tr31
f32
S
Tr32
quiete3
S
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
196
AZIONI:
f3
CHIUDI
Es. La cella robotizzata
in LD 8/IX
f4
f1
VAI1
f2
VAI2
f4
VAI3
f5
APRI
f6
VAI0
Sezione di esecuzione delle
azioni
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
197
f11
AVA1
f21
AVA2
f31
AVA3
Es. La cella robotizzata
in LD 9/IX
Sezione di esecuzione delle
azioni
f3
timer1
t#500ms
IN
Q
PT
ET
f4
timer2
t#500ms
IN
Q
PT
ET
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
198
Macrofase e macroazione
• I concetti di macrofase e macroazione sono
stati introdotti di recente per facilitare la
programmazione in SFC
• Essendo cronologicamente posteriori, essi
non sono presenti nello standard
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
199
Macrofase
• La macrofase è un concetto introdotto per
facilitare la descrizione di sistemi complessi
• Viene utilizzata per descrivere una particolare
porzione di un SFC detta espansione della
macrofase
• L’espansione della macrofase deve avere una sola
fase di ingresso e una sola fase di uscita e non ci
devono essere archi orientati che entrano o escano
dalla espansione della macrofase
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
200
Es. Macrofase
4
i30
5
M30
6
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
O30
201
Macroazione
• La macroazione è un’azione operata da un
SFC che ha effetti sulla condizione di un
altro SFC
• Viene introdotta per poter realizzare
gerarchie tra gli SFC
• Per avere effetti deve agire cambiando i
valori delle variabili segnalatrici dello stato
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
202
Esempi di macroazioni
• SOSPENSIONE: permette ad un SFC di rendere
inattive tutte le fasi di un altro SFC (equivale ad
inserire una transizione superabile in uscita a tutte
le fasi dell’SFC da sospendere)
• FORZATURA: permette ad un SFC di forzare la
condizione di un altro SFC a prescindere dalle
regole di evoluzione (equivale ad inserire una
transizione superabile in uscita a tutte le fasi che
non devono diventare attive, ed una in ingresso a
tutte le fasi che devono diventare attive)
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
203
Es. Sospensione
G1
G2
Interpretazione
4
f11
f11
a
5
SOSPENDERE(G2)
f12
f5.X
b
f5.X
c
f5.X
f12
b
6
a
f13
f13
c
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
204
Es. Forzatura
G1
G2
Interpretazione
4
f11
f11
a
5
FORZARE(G2,f12)
f5.X
f12
a
f12
b
6
f5.X
f13
b
f13
c
Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino
c
f5.X
205