Slide PLC - LaDiSpe - Politecnico di Torino

Transcript

Slide PLC - LaDiSpe - Politecnico di Torino
01AKS - Controlli Automatici
Controllori a Logica Programmabile (PLC)
proff. Marina Indri e Michele Taragna
Dip. di Automatica e Informatica
Politecnico di Torino
Anno Accademico 2001/2002
Versione 1.0
Controllori a logica programmabile (PLC)
Un PLC è un sistema elettronico a funzionamento digitale, destinato
all’uso in ambito industriale, che utilizza una memoria programmabile per l’archiviazione interna di istruzioni orientate all’utilizzatore
per l’implementazione di funzioni specifiche, come quelle logiche, di
sequenziamento, di temporizzazione, di conteggio e di calcolo aritmetico, e per controllare, mediante ingressi ed uscite sia digitali sia
analogici, vari tipi di macchine e processi.
1
Le caratteristiche specifiche dei PLC, che hanno portato al loro rapido
sviluppo a partire dagli anni ’70, sono:
• la facile programmazione e riprogrammazione, anche sul luogo di
funzionamento;
• la facile manutenzione e modularità;
• la robustezza, grazie alla quale i PLC possono funzionare in ambiente industriale in presenza di interferenze elettromagnetiche,
polvere, vibrazioni;
• la compattezza e la competitività nei costi rispetto ad altre soluzioni “ad hoc”.
2
Gli impieghi principali di sistemi basati su controllori a logica programmabile riguardano i seguenti ambiti:
• controllo di macchine industriali e di macchine utensili
• movimentazione di materiale nei cicli produttivi
• assemblaggio di componenti
• trattamento di materiali plastici
• applicazioni robotiche
3
La configurazione minima di un PLC comprende i seguenti elementi:
1. armadio o rack
2. modulo processore
3. moduli di ingresso/uscita
4. modulo di alimentazione
5. terminale di programmazione
1. Rack
Il rack contiene e racchiude tutti gli altri moduli, assicurandone tutte
le connessioni meccaniche ed elettriche necessarie, nonché la loro
schermatura.
4
2. Modulo processore
Il modulo processore è il vero e proprio PLC ed è costituito da una
scheda con uno o più microprocessori con un’architettura simile a
quella dei calcolatori convenzionali.
Un tipico modulo processore potrebbe contenere tre microprocessori:
• uno specializzato per operare sul singolo bit,
• uno per le istruzioni di tipo aritmetico/logico,
• uno dedicato alle comunicazioni con i moduli di ingresso/uscita e
con dispositivi esterni.
5
Ciclo tipico di funzionamento (“ciclo a copia massiva degli ingressi e
delle uscite”):
• aggiornamento dell’area di memoria riservata con i valori provenienti dagli ingressi fisici;
• esecuzione dei programmi utente operando sui valori della memoria e conservando i risultati sempre in memoria;
• esecuzione di programmi di gestione del sistema (per esempio, per
la diagnostica);
• scrittura sulle uscite fisiche dei loro valori conservati nell’area di
memoria ad essi riservata.
N.B.: eventuali accessi immediati ai punti di ingresso/uscita sono
possibili, ma sconsigliati perché allungano i tempi di scansione del
programma; sono cosı̀ riservati alla gestione di emergenze o interrupt.
6
Per caratterizzare la velocità di esecuzione dei programmi applicativi
da parte di un PLC, si definiscono i seguenti tempi:
Tempo di scansione: è il tempo che intercorre tra due attivazioni successive della stessa porzione del programma applicativo (comprende
anche il tempo per l’aggiornamento degli ingressi e delle uscite).
Tempo di risposta: è il massimo intervallo di tempo che passa tra la
rilevazione di un evento e l’esecuzione dell’azione di risposta programmata (tiene conto dei ritardi introdotti dai moduli di ingresso/uscita).
7
Il sistema operativo di un PLC è costituito da un insieme di programmi
di supervisione, memorizzati in una memoria permanente, e dedicati
al controllo delle attività del dispositivo, all’elaborazione dei programmi utente, alla comunicazione e ad altre funzioni, tra cui quelle di
diagnostica interna.
Le modalità operative tipiche di un PLC sono:
• la modalità di programmazione, nella quale il codice sviluppato
dall’utente viene caricato nella memoria del PLC;
• la modalità di validazione, nella quale i programmi utente vengono
eseguiti, senza che le uscite vengano aggiornate, per verificare la
correttezza del codice sviluppato;
• la modalità di esecuzione, nella quale i programmi utente vengono
completamente eseguiti, aggiornando conseguentemente ingressi
ed uscite.
8
La memoria di un PLC è solitamente organizzata nelle seguenti aree
distinte:
• l’area sistema operativo (ROM), per la memorizzazione permanente dei programmi del sistema operativo;
• l’area di lavoro del sistema operativo (RAM), per la memorizzazione di dati intermedi da parte di programmi del sistema operativo;
• l’area ingressi/uscite (RAM), per la memorizzazione degli stati
degli ingressi e delle uscite;
• l’area programmi utente (RAM o PROM), per la memorizzazione
dei programmi utente;
• l’area dati utente (RAM), per la memorizzazione dei dati dei
programmi utente.
9
3. Moduli di ingresso/uscita
I moduli di ingresso/uscita sono schede che permettono l’interfacciamento della microelettronica del PLC con il mondo esterno, provvedendo al condizionamento del segnali e all’isolamento.
Possono essere digitali (forniti di circuiti di filtraggio contro il rumore) o analogici (dotati di convertitori D/A e A/D, necessari per
interfacciare direttamente segnali analogici con il PLC, che lavora con
stringhe di bit di lunghezza finita).
10
4. Modulo di alimentazione
Il modulo di alimentazione è una scheda che alimenta tutti gli altri
moduli; connesso alla rete di alimentazione elettrica, fornisce una o
più tensioni stabilizzate con un massimo di corrente erogabile.
5. Terminale di programmazione
Il terminale di programmazione può essere un dispositivo particolare
o un semplice PC e serve per la programmazione del PLC stesso.
Possono essere inoltre presenti altri moduli, dedicati a funzioni speciali
(ad esempio per la connessione in rete, coprocessori, moduli PID,
ecc.).
11
Linguaggi di programmazione standard
Tra i più diffusi linguaggi di programmazione di PLC adottati per
scrivere gli algoritmi di controllo di processi industriali, si possono
ricordare i seguenti linguaggi grafici:
• diagramma funzionale sequenziale (Sequential Functional Chart:
SFC);
• linguaggio a contatti (Ladder Diagram);
• diagramma a blocchi funzionali (Function Block Diagram: FBD)
ed i seguenti linguaggi testuali:
• lista di istruzioni;
• testo strutturato.
12
1. Diagramma funzionale sequenziale (SFC)
È un linguaggio di alto livello sempre più diffuso, che può essere tradotto in linguaggi di più basso livello (ad esempio, il Ladder Diagram).
È finalizzato alla descrizione di sistemi dinamici ad eventi discreti, in
cui le variazioni dello stato non sono legate al trascorrere del tempo,
ma all’occorrenza di situazioni particolari.
Gli elementi base di un SFC sono la fase e la transizione.
Ogni fase corrisponde ad una condizione invariante del sistema, che
può essere modificata solo dall’occorrenza di un determinato evento,
che genera una transizione ad una nuova fase.
In pratica, le fasi rappresentano gli stati del sistema e le azioni da
compiere sul processo, eventualmente in parallelo.
Ad ogni transizione è associata una condizione che deve essere soddisfatta per poter passare da una fase all’altra.
13
Ogni fase, a cui possono essere associate una o più azioni da compiere,
è rappresentata graficamente nel seguente modo:
Fase #
Azione 1
Azione 2
Alla fase n è associata la variabile booleana Xn, detta marker di fase,
che assume il valore 1 quando la fase corrispondente è attiva, altrimenti il suo valore è 0. Quando una fase è attiva, le azioni ad essa
associate sono eseguite.
Nota: la fase iniziale viene contraddistinta da una doppia cornice.
L’attivazione di una fase può essere graficamente indicata ponendo
un pallino all’interno del rettangolo della fase.
14
La condizione associata ad una transizione può essere espressa come
funzione booleana di variabili booleane, di equazioni che si riportano
a valori booleani oppure di asserzioni. La rappresentazione grafica di
una transizione è la seguente:
Tn
condn
Gli archi orientati collegano tra loro le fasi, stabilendone la sequenza, e sono interrotti dalle transizioni. L’indicazione dell’orientamento
(freccia) è omessa quando è chiaramente dall’alto verso il basso.
15
Esempio di SFC:
16
Regole di costruzione di un SFC:
• Tra due fasi collegate da un arco orientato vi deve essere sempre
una transizione.
• Tra due transizioni vi deve essere sempre almeno una fase.
Regole di evoluzione di un SFC:
• Per condizione di un SFC si intende l’insieme delle sue fasi attive.
• Affinché una transizione sia superabile, devono verificarsi entrambe le seguenti condizioni:
– tutte le fasi a monte della transizione devono essere attive (si
dice in tal caso che la transizione è abilitata);
– la condizione associata alla transizione deve essere soddisfatta.
17
• Se una transizione è superabile, essa viene effettivamente superata: tutte le fasi a monte della transizione vengono disattivate e
tutte le fasi a valle vengono attivate.
• La durata delle operazioni di attivazione/disattivazione delle fasi
è considerata essere infinitamente piccola.
• Se più transizioni sono superabili nello stesso istante, esse sono
tutte superate contemporaneamente.
18
Si possono distinguere due diversi livelli di SFC:
• un livello funzionale, in cui le azioni da eseguire e le condizioni da
valutare sono espresse nel linguaggio naturale (ad esempio, “vai
a destra”, “fine corsa raggiunto”, ecc.);
• un livello operazionale, in cui si associano le condizioni e le azioni
dell’SFC agli ingressi e alle uscite effettivamente disponibili, prendendo in considerazione la tecnologia utilizzata per il rilevamento
delle misure e per l’attuazione del controllo.
19
Esempio: controllo di un carrello trasportatore
Segnali di ingresso disponibili:
FS, FD: segnali dai sensori di finecorsa del carrello
FR: segnali dal sensore di finecorsa del serbatoio
g: segnale dalla leva di attivazione ciclo
Comandi di attuazione disponibili:
S, D: comandi di attuazione per il moto del carrello
R: comando di ribaltamento del serbatoio
SFC funzionale:
SFC operazionale:
20
Categorie di variabili usate in un SFC
Variabili di ingresso: in un PLC destinato al controllo di un processo,
sono le variabili associate ai segnali comunicati dai sensori.
Si distinguono due tipi di ingressi:
• ingresso semplice: la variabile associata assume lo stesso valore
(binario) del segnale del sensore
segnale A
t
variabile A
t
21
• ingresso a fronte : la variabile associata assume il valore 1 solo
sul fronte di salita o di discesa del segnale per un tempo infinitamente piccolo, corrispondente al superamento di una transizione.
Gli ingressi a fronte vengono distinti anteponendo al nome della
variabile associata una freccia verticale diretta verso l’alto (commutazione sul fronte di salita) o verso il basso (commutazione sul
fronte di discesa): ad esempio, ↑ A, ↓ A
segnale A
t
A
t
A
t
22
Variabili temporali: permettono di definire una temporizzazione che
dipende dalla durata di attivazione di una fase.
Si indicano con la notazione:
t / Xn / d
dove:
• t identifica la temporizzazione;
• Xn è il marker della fase n la cui attivazione fa partire la temporizzazione stessa;
• d è la durata della temporizzazione.
23
La variabile temporale:
• assume il valore 0 all’istante iniziale;
• conserva il valore 0 quando la fase n cui è legata diviene attiva;
• assume il valore 1 dopo che è trascorso un tempo d dall’ultima
attivazione della fase n e a condizione che il corrispondente marker
di fase Xn sia sempre rimasto attivo durante tale tempo;
• ritorna al valore 0 non appena la fase n si disattiva.
Xn
d
d
d
t
t/Xn/d
t
NOT t/Xn/d
t
24
Categorie di azioni associate alle fasi di un SFC
• azione continua: rappresenta una uscita che deve valere 1 durante
tutto il periodo di attivazione della fase corrispondente
3
X3
A
t
X22
22
t
A
A
t
• azione condizionata: contiene una condizione che dev’essere vera
affinché l’uscita valga 1 mentre la fase corrispondente è attiva
C
X3
t
3
A
C
t
A
t
25
• azione limitata nel tempo: azione condizionata da una variabile
temporale negata associata alla stessa fase cui è associata l’azione
NOT t/X3/d
X3
d
3
A
t
t/X3/d
t
A
t
• azione ritardata: azione condizionata da una variabile temporale
associata alla stessa fase cui è associata l’azione
t/X3/d
X3
d
3
A
t
t/X3/d
t
A
t
26
• azione memorizzata: è costituita da due azioni di tipo impulsivo,
SET (metti a 1) e RESET (metti a 0), che sono eseguite quando
diventano attive le fasi cui sono associate
3
SET A
X3
t
X42
t
42
RESET A
A
t
27
Strutture classiche presenti in un SFC
• scelta: una fase è seguita da più transizioni, con condizioni di
scelta mutuamente esclusive, realizzate eventualmente imponendo priorità tra le transizioni
0
T1
T2
cond1
1
cond2
2
• convergenza: più attività terminano nella stessa fase attraverso
transizioni diverse
7
T7
8
T8
cond7
cond8
9
28
• parallelismo o concorrenza: una transizione è seguita da più fasi
(si noti la differenza dalla scelta)
5
T1
11
cond1
21
31
• sincronizzazione: più fasi precedono una stessa transizione, che
viene superata solo quando sono attive tutte le fasi finali delle
varie sequenze parallele (si noti la differenza dalla convergenza)
15
29
T3
31
cond3
40
29
Esempio #1: controllo di una cella robotizzata
Segnali digitali in ingresso disponibili:
Azioni di comando disponibili:
PRES1: presenza oggetto nella posizione P1
PRES2: presenza oggetto nella posizione P2
PRES3: presenza oggetto nella posizione P3
OGG3: presenza oggetto alla fine del nastro 3
OK0: avvenuto posizionamento del robot in P0
OK1: avvenuto posizionamento del robot in P1
OK2: avvenuto posizionamento del robot in P2
OK3: avvenuto posizionamento del robot in P3
AVA1: comando avanzamento nastro 1
AVA2: comando avanzamento nastro 2
AVA3: comando avanzamento nastro 3
VAI0: comando posizionamento robot in P0
VAI1: comando posizionamento robot in P1
VAI2: comando posizionamento robot in P2
VAI3: comando posizionamento robot in P3
CHIUDI: comando chiusura pinza robot
(sono richiesti 0.5s per afferrare il pezzo)
30
SFC di controllo per i tre nastri trasportatori della cella robotizzata:
31
SFC di controllo per il robot della cella robotizzata:
32
Esempio #2: automazione di un casello autostradale
Progettare il SFC per l’automazione di un casello di accesso ad una
tangenziale a costo fisso di 2 Euro; il pagamento può essere effettuato
mediante Telepass oppure in contanti (per semplicità, si supponga che
non vi sia corresponsione di resto).
Il sistema è costituito da una sbarra e da una consolle per il pagamento
in contanti. Sono disponibili due segnali d’ingresso:
• il segnale RT proveniente da un ricevitore Telepass per il riconoscimento di vetture dotate di tale sistema; tale segnale diventa
attivo quando è stata riconosciuta una vettura e l’operazione di
addebito elettronico è stata completata;
• il segnale P di avvenuto passaggio della vettura sotto la sbarra
alzata.
33
La consolle per il pagamento accetta solo monete da 1 Euro (in
corrispondenza delle quali diventa attivo il segnale M1) o da 2 Euro
(in corrispondenza delle quali diviene attivo il segnale M2).
La sbarra deve essere sollevata, mediante il comando AL, solo a pagamento avvenuto in una delle forme consentite e riabbassata, mediante
il comando AB, dopo il passaggio della vettura.
34
0
M1 and RT
T3
T2
T1
M2 and RT
1
RT
T4
2
T5
AL
P
3
T6
M1 or M2
AB
1
35
Esempio #3: automazione di un antifurto per auto
Progettare il SFC per l’automazione di un antifurto per auto con
chiamata su cellulare GSM.
L’antifurto si attiva dopo trenta secondi dalla ricezione del segnale
Aatt proveniente dal ricevitore radio del telecomando.
Nella fase attiva, l’antifurto deve:
• disattivare il circuito di accensione dell’auto con il comando Dout;
• verificare l’eventuale tentativo di furto; questo può essere rilevato
attraverso il sensore di forzatura delle serrature (input Bserr ) o
attraverso un segnalatore accelerometrico (input Bacc).
36
Nel caso in cui sia rilevato un presunto tentativo di furto, la centralina
deve attivare la sirena per 30 secondi (output Dsir ). Se, durante
questo periodo, l’antifurto è disattivato attraverso il segnale Datt, il
sistema deve:
• spegnere immediatamente la sirena;
• riattivare il circuito di accensione con il comando Aout.
Altrimenti se, trascorsi i trenta secondi di sirena, il segnalatore accelerometrico risulta attivo, deve essere effettuata la chiamata cellulare
GSM attraverso il comando Dcell (... e sperare in bene!).
37
0
Aatt
T0
1
t/X1/30’’
T1
Dout
2
(Bserr or Bacc) and Datt
T3
T2
Datt
not t/X3/30’’
t/X3/30’’ and Bacc
Dsir
3
Datt
T4
Aout
4
T5
Dcell
1
38
2. Linguaggio a contatti (Ladder Diagram)
È un linguaggio grafico di più basso livello rispetto al SFC, ed è basato
su virtuali circuiti a relè.
La rappresentazione grafica ha una tipica struttura a “scala a pioli”:
• le due linee verticali (“montanti”) rappresentano l’alimentazione;
• ogni linea orizzontale (“piolo”) è chiamata rung e porta l’alimentazione ad una bobina qualora tutti i contatti posti alla sua sinistra permettano una continuità elettrica per far fluire l’energia da
sinistra verso destra.
39
Gli elementi base del linguaggio a contatti sono i contatti e le bobine.
I contatti sono associati agli ingressi digitali provenienti dal sistema
(ossia al loro stato rappresentato in bit di memoria) oppure a condizioni interne (sempre rappresentate da bit di memoria).
Un contatto può essere:
• normalmente aperto: il contatto viene chiuso quando il bit associato vale 1; se il bit vale 0, il contatto è aperto.
• normalmente chiuso: se il bit associato vale 0, il contatto è chiuso;
se il bit vale 1, il contatto è aperto.
La bobina è associata a un bit di memoria, tramite il quale comanda
un’uscita digitale o segnala una condizione interna; è sempre posta
all’estremità destra del rung ed è attiva (vale 1) se si ha continuità
logica/elettrica del rung stesso.
40
Esempio di listato in linguaggio a contatti:
Nota: nella scrittura/esecuzione dei programmi, si procede sempre da
sinistra a destra, dall’alto verso il basso.
41
Struttura tipica di un programma in linguaggio a contatti che codifica un SFC
Si distinguono 4 sezioni, eseguite in sequenza:
• inizializzazione: eseguita una sola volta all’avvio dell’esecuzione del programma,
ha la funzione di porre al valore 1 i marker delle fasi iniziali previste dall’SFC;
• esecuzione delle azioni: dedicata all’esecuzione delle azioni associate alle fasi
attive, provvede all’aggiornamento dell’area di memoria riservata alle uscite;
si usa un rung di abilitazione per ogni azione continua, esprimendo la condizione
di abilitazione come OR logico dei marker delle fasi in cui è presente l’azione;
se l’azione è condizionata, la condizione va messa in AND logico col marker
della fase corrispondente;
• valutazione delle transizioni: valuta se una transizione è superabile o meno, aggiornando lo stato del relativo marker; è richiesto un rung per ogni transizione;
• aggiornamento della condizione: in corrispondenza delle transizioni valutate
come superabili, attiva le fasi a valle e disattiva quelle a monte; è richiesto un
rung per ogni transizione.
42
Riferimenti bibliografici:
• Pasquale Chiacchio, “PLC e automazione industriale”, McGrawHill Libri Italia, Milano, 1996
• Sito WEB sui PLC: www.PLCs.net
43