programmable logic controller - seconda partedocenti.etec.polimi.it/ind32/didattica... · ·...
TRANSCRIPT
lunedì 10 novembre 2008
Stefano MaggiMarco BassettiDipartimento di Elettrotecnica
Sistemi per l’automazione industriale
Programmable Logic
Controller
Seconda Parte
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 1
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Contenuti
Principio di funzionamento di un PLC e limiti
imposti da questo
Limiti imposti dalla programmazione tradizionale e
caratteristiche principali dello standard IEC 1131
Modello software di PLC, a singolo o multi
processore, rete di PLC, struttura gerarchica del
SW, comunicazione tra PLC, partenza di PLC
Linguaggio Ladder
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 2
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Principio di funzionamento dei PLC
Lettura degli ingressi
Aggiornamento delle Uscite
Programma
Copia Ingressi in RAM
Copia dalla RAM verso le Uscite
Uso della RAM in
accordo al programma
Program Scan: tipicamente 2-3 ms per Kbyte di programma
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 3
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Limiti imposti dal funzionamento (1/2)
Limite sul periodo dei segnali di input:Teorema di Shannon
se f è la frequenza di variazione, essa deve essereminore o uguale a 1/(2•durata del Program Scan)
Esempio: se la durata del Program Scan è 40 ms,allora la massima frequenza del segnale di input può
essere 1/(0.08)=12.5 Hz.
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 4
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Limiti imposti dal funzionamento (2/2)
Ritardi Casuali tra dati di ingresso e uscita del programma
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 5
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Limiti della programmazione tradizionale dei PLC (1/2)
Stessi linguaggi ma differenti implementazioni, o
differenti linguaggi di programmazione
Difficoltà nell'utilizzo di sub-routine
Difficoltà nel produrre software riutilizzabile
Limiti nella definizione di strutture dati più
complesse
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 6
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Limiti della programmazione tradizionale dei PLC (2/2)
Limiti dei linguaggi di programmazione tipo Ladder
per applicazioni di sequencing
Difficoltà nel differenziare l'esecuzione di pezzi di
uno stesso programma o di più programmi in base
alle esigenze temporali
Difficoltà nell'eseguire semplici funzioni
matematiche (somma, prodotto) in linguaggi di
natura “elettrica” come il Ladder
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 7
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Caratteristiche principali dello standard IEC 1131-3 (1/2)
Lo standard definisce più linguaggi (5):
Ladder, Sequential Function Chart,Instruction List, Function Block Diagram,Structured Text
Lo standard permette approcci: top-down ebottom-up. Un programma viene decompostoin Program Organisation Unit (POU)(funzioni, function block, programmi)
Lo standard permette il pieno controllodell'esecuzione di ciascun programma ofunction block, tramite l'assegnazione a task
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 8
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Caratteristiche principali dello standard IEC 1131-3 (2/2)
Lo standard permette la definizione distrutture dati
Lo standard garantisce la portabilità di granparte del software. Ciò avviene se coincidono:
i sottoinsieme di caratteristiche dilinguaggio che ciascun produttore di PLCoffre
gli aspetti implementativi di ciascunlinguaggio
Lo standard permette lo sviluppo diprogrammi orientati al sequencing (adesempio tramite il Sequential Function Chart- SFC)
Lo standard è basato sulla programmazionegrafica
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 9
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Modello software di un PLC
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 10
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software: CONFIGURATION
• La configurazione definisce il software per un PLC completo o di un sistema di controllo programmabile
• Una configurazione è specifica per un particolare tipo di PLC e per una particolare configurazione hardware che include:– Risorse di calcolo (schede con certi tipi di
microprocessore)
– Indirizzi di memoria per i canali di input o output
– Caratteristiche di sistema (es. numero max di task diversi ammissibili e tempo di esecuzione delle istruzioni)
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 11
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
• Una risorsa definisce il supporto per l’esecuzione dei programmi IEC.
• Una risorsa è definita all’interno di una configurazione usando la parola RESOURCE seguita da un identificatore e dal tipo di processore sulla quale la risorsa deve essere caricata.
• La definizione di risorsa contiene la definizione di:– Variabili globali– Acces path ovvero le variabili che permettono
l’accesso remoto– Programmi– Task e function blocks
Il modello software - RESOURCE
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 12
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software - TASK
• Generalmente le differenti parti di un programma sono eseguite a differenti velocità determinate dalle caratteristiche del sistema.
• La dichiarazione di una task è introdotta dalla parola chiave TASK, dall’identificatore della task e dal valore dei seguenti parametri:
SINGLE BOOL Passando da 0 a 1 causa l’esecuzione del task una volta sola
INTERVAL TIME Il periodo che passa tra due
esecuzioni successive
PRIORITY UINT La priorità del task. 0 è la più alta.
Parametro Tipo Descrizione
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 13
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software - PROGRAM
• Il concetto di programma è quello di un blocco software di considerevoli dimensioni (ad es.il controllo di una parte dell’impianto)
• Può contenere la dichiarazione di variabili globali e ad allocazione fissa
• Può anche fare riferimento ad access variables
• Non può contenere istanze di altri programmi
• Può contenere istanze di Function Blocks che possono essere eseguiti da task diversi
• Il corpo del programma può essere definito con uno dei linguaggi definiti dalla norma.
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 14
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software - FB
• Un FUNCTION BLOCK (FB) è caratterizzato da:– variabili di ingresso
– variabili di uscita
– variabili locali
– variabili locali che identificano il suo stato
– un algoritmo espresso utilizzando uno dei linguaggi permessi dalla norma
• Le variabili interne del FB non sono accessibili dall’esterno
• E’ possibile accedere ai valori correnti delle variabili di ingresso e uscita di un FB
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 15
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software – FUNCTION
• Spesso le FUNCTION sono scambiate per FB
• Una FUNCTION è un elemento software che con un particolare set di input produce un risultato primario. (ad es. la funzione SIN())
• Le FUNCTION a differenza dei FB non hanno uno stato interno: producono sempre lo stesso risultato per medesimi ingressi.
• Una funzione ha solo un output (per controllare il flusso dati nei linguaggi grafici ci sono un input e output addizionali, EN ed ENO)
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 16
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Il modello software - POU• Lo standard definisce program, function blocks
e function come Program Organisation Units (POU).
• Le POU sono componenti dal comportamento ripetitivo che possono essere usate in differenti parti di una applicazione
• Le POU incoraggiano la riusabilità del codice dal macro-livello con i program, al micro-livello con le function
• A differenza dei linguaggi di alto livello, la IEC 1131-3 impedisce l’utilizzo di POU ricorsive. Questo perché è difficile testare il software ricorsivo e non è predicibile il suo comportamento real-time.
• Program e Function blocks possono essere descritte con ST, IL, FBD, LD, SFC. Le function con ST, IL, FBC, LD.
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 17
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
PLC a singolo processore
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 18
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
PLC multi-processore
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 19
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Rete di PLC
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 20
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Struttura gerarchica del SW di un PLC
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 21
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Comunicazione tra PLC
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 22
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Partenze di un PLC
COLD
Durante una partenza COLD tutte levariabili sono inizializzate a valori di defaulto a quelli ridefiniti dall’utente
WARM
Durante una partenza WARM solo levariabili NON-RETENTIVE (attributo RETAINnon presente) sono inizializzate ai valori didefault o a quelli ridefiniti dall’utente.
Le variabili con attributo RETAIN nonvengono inizializzate ma continuano adassumere l’ultimo valore precedente allaWARM start
HOT
Durante una partenza HOT nessunavariabile viene inizializzata
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 23
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Linguaggio di programmazione Ladder
E' il più vecchio linguaggio diprogrammazione per PLC
Si basa su simboli di provenienza "elettrica":
binari di potenza (power rail), contattielettrici e avvolgimenti magnetici (coil)
Si articola in linee orizzontali dette “rung”
Ciascun “rung” può contenere contatti, coil,Function Block e Funzioni
Ciascun "rung" deve essere connessonecessariamente al binario di potenzasinistro (left power rail), mentre ilcollegamento con quello destro è opzionale
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 24
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Elementi di base Ladder
Power rail
Linee Elettriche orizzontali
Connessioni ai power rail
Contatto normalmente aperto
Contatto normalmente chiuso
Coil
Negated coil
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 25
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Utilizzo dei contatti
Ad ogni contatto viene associata una variabilebinaria. Tale variabile viene solamente letta (puòcoincidere con un ingresso).
Contatto Normalmente Aperto: la corrente fluisce dasinistra a destra se la variabile IN è 1. La corrente fluiscea destra per qualunque scansione del ProgrammaLadder fino a quando la variabile IN diviene 0
IN
Contatto Normalmente Chiuso: la corrente fluisce dasinistra a destra se la variabile IN è 0. La corrente fluiscea destra per qualunque scansione del DiagrammaLadder fino a quando la variabile IN diviene 1
IN
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 26
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Utilizzo dei coil
Ad ogni coil viene associata una variabile binaria.La variabile viene scritta (può coincidere con unauscita fisica).
Coil: la variabile OUT associata al Coil è posta a 1 se viè una corrente che fluisce da sinistra. La variabilerimane a 1 per qualunque scansione del ProgrammaLadder fino a quando la corrente cessa di fluire dasinistra. OUT
Negated Coil: la variabile OUT associata al NegatedCoil è posta a 0 se vi è una corrente che fluisce dasinistra. La variabile rimane a 0 per qualunquescansione del Programma Ladder fino a quando lacorrente cessa di fluire da sinistra.
OUT
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 27
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Altri contatti del linguaggio Ladder (1/2)
La corrente fluisce da sinistra a destra del PositiveTransition-Sensing Contact, se la variabile INpassa da 0 a 1. La corrente fluisce a destra soloper una scansione del Programma Ladder (quellarelativa alla transizione).
Contatto sensibile alla transizione 0-1 (Positive
Transition-Sensing Contact)
IN
P
Valore di IN quando viene valutato il rung
Corrente alla Destra
1 OFF OFF
2 ON ON
3 ON OFF
4 ON OFF
5 OFF OFF
Scansione
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 28
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Altri contatti del linguaggio Ladder (2/2)
La corrente fluisce da sinistra a destra delNegative Transition-Sensing Contact, se lavariabile IN passa da 1 a 0. La corrente fluisce adestra solo per una scansione del DiagrammaLadder (quella relativa alla transizione).
Contatto sensibile alla transizione 1-0 (Negative
Transition-Sensing Contact)
IN
N
Valore di IN quando viene valutato il rung
Corrente alla Destra
1 ON OFF
2 OFF ON
3 OFF OFF
4 OFF OFF
5 ON OFF
Scansione
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 29
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Altri coil del linguaggio Ladder
La variabile OUT associata al coil e' posta a 1 se vie' una corrente che fluisce da sinistra. La variabilerimane a 1 per qualunque scansione delDiagramma Ladder fino a quando viene utilizzatoun coil RESET.
La variabile OUT associata al coil e' posta a 0 se vie' una corrente che fluisce da sinistra. La variabilerimane a 0 per qualunque scansione delDiagramma Ladder fino a quando viene utilizzatoun coil SET.
Set Coil S
OUT
Reset Coil R
OUT
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 30
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Logiche Ladder di base
Logica AND
STOP FANSTART M
Logica OR
STOP FAN
IN
MSTART
S
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 31
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Regole di esecuzione dei Rung
Un programma scritto in linguaggio Ladderviene eseguito valutando un rung alla volta.
L'ordine di valutazione dei rung è quello cheprocede dal primo rung in alto verso l'ultimorung in basso.
Quando l'ultimo rung viene valutato, si inizianuovamente a valutare il primo rung (dopoaver aggiornato le uscite e letti gli ingressi).
Nel caso in cui vengano disegnati rungadiacenti, l'ordine di valutazionegeneralmente procede dal rung posto asinistra verso quello posto alla destra.
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 32
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Effetti collaterali delle regole di esecuzione dei Rung
L'ordine di valutazione comporta la necessità diriunificare i rung che operano delle modifiche(Write) sulle stesse variabili o sulle stesse uscite.
Esempio:
L'effetto di IN1, IN2,e IN3 sulla variabileFAN è nullo. Lavariabile può esseremodificata solo da IN4e IN5, a causa dellaposizione del rung cheli contiene
IN2 FAN
IN5
IN1 IN3
IN4 FAN
........
........
........
IN2 FAN
IN5
IN1 IN3
IN4
Riunificando i rung, lavariabile FAN verràaggiornata solo dopoaver valutato il rungcomposto dagli ingressiIN1, IN2, IN3, IN4 eIN5
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 33
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Uso di istanze di Function Block e di Funzioni
E' possibile connettere coil con le uscite dell'istanza del FB odella funzione, purché esse siano binarie
Nel caso in cui una Istanza di FB o una funzione richieda uningresso binario sempre TRUE, e' possibile collegare taleingresso direttamente al power rail di sinistra
Eventuali variabili analogiche o valori analogici (interi, reali,temporali, etc.) possono essere connessi direttamente aicorrispondenti ingressi dell'istanza del FB o della funzione
E' possibile connettere contatti con gli ingressi dell'istanzadel FB o della funzione, purché essi siano binari
x
FB1
Nome Istanza
T#1s
y
In1
In2
In4
In5
Out1
Out2
In3
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 34
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Feedback Paths
Il valore della variabile associata al contatto FAN è quello
valutato nell'ultima valutazione (rung precedente).
NOTA: L'uso dei Feedback può essere pericoloso, in quanto
può portare ad una instabilità delle uscite del PLC.
Ad esempio, l'uscita FAN diviene instabile se inizialmenteFAN=0 e nel tempo gli ingressi IN1, IN2, IN3 e IN4 simantengono costanti e pari a IN1=0, IN2=0, IN3=1, IN4=1
E' possibile che un rung
presenti dei contatti e dei coil ai
quali vengono associate le
stesse variabili
IN2 FAN
FAN
IN1 IN3
IN4
OUTFAN
Maggi – Bassetti – Mauri lunedì 10 novembre 2008 35
Sistemi per l’automazione industriale Programmable Logic Controller – Seconda parte
Tecnica di programmazione Ladder
Rappresentare la soluzione del problema con unamacchina a stati.
Ogni stato viene rappresentato da una variabilelocale.
Per ogni stato vengono identificate le azioni daeseguire.
Vengono identificate gli eventi che producono ilpassaggio di stato. Ciascun evento dovràcorrispondere ad una variabile.
Il programma in Ladder si compone di tre porzioni:
Rappresentazione dell’attivazione di un nuovo statoa partire da ciascuno stato per un determinatoevento
Rappresentazione della disattivazione di ciascunodegli stati a causa dell’attivazione di un altro stato
Rappresentazione delle azioni eseguite in ciascunodegli stati