Programmable Logic Controller Seconda Parte

Documenti analoghi
Linguaggio di Programmazione Ladder

Dispositivi per il controllo

Rappresentazione base 2

Function Block Diagram

LA PROGRAMMAZIONE DEL PLC /1

Corso di Automazione industriale

Automazione e territorio

Tecnica basata su Relazioni I/O Circuito di Clock

Corso di Automazione industriale

La tecnica proporzionale

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

id the business magazine for humans

Orchestra Control. Caso di Studio Scambiatore Pezzi SPI

Il Linguaggio di Programmazione IEC Ladder

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32

Programmazione dei PLC in linguaggio Ladder

Il Linguaggio di Programmazione IEC

PLC CodeSys. Esercitazione 3. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Boccaccio HOMEPLC. 18 October 2008

Reti e Sistemi per l Automazione LADDER LOGIC. Stefano Panzieri Ladder Logic - 1

Tecnologie dei Sistemi di Automazione

Linguaggi di Programmazione

Sequential Functional Chart

Introduzione ad ISaGRAF

Luigi Piroddi

Corsi PLC - Machine Controller

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Sequential Function Chart

CORSO di AUTOMAZIONE INDUSTRIALE

CORSO di Elettronica e Automazione

Fondamenti di Informatica

Sequential Function Chart (SFC)

CAPITOLO 3 - ALGORITMI E CODIFICA

UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA

Spazio di indirizzamento virtuale

Sequential Functional Chart (SFC) - Parte 1

Sistemi a PLC. Controllori a logica programmabile. Reti e Sistemi per l Automazione. Stefano Panzieri PLC - 1

PLC E AUTOMAZIONE INDUSTRIALE

STANDARD IEC PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Terza lezione 21 ottobre 2016

INPUT COMPUTER OUTPUT

DISPENSE DI PROGRAMMAZIONE LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE.

Programming industrial control sytems using IEC

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

IL CONTROLLO DI UN PROCESSO

Algoritmi e soluzione di problemi

generalità concetti di base

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

Linguaggi, Traduttori e le Basi della Programmazione

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Dal ladder a SFC. Il linguaggio SFC. Sequential Functional Chart. Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1

Corso di Automazione industriale

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

POLITECNICO DI MILANO. V Facoltà di Ingegneria. Ladder Diagram. Sistemi ad Eventi Discreti

Sistemi ad Eventi Discreti

Introduzione alla programmazione in C

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

Sistemi di numerazione

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Rappresentazione dell informazione

Ingegneria e Tecnologie dei Sistemi di Controllo. Programmazione di sistemi di controllo industriale (PLC) PARTE 1.

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Informatica (A-K) 5. Algoritmi e pseudocodifica

PLC CodeSys. Esercitazione 6. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Controllo di sequenze nell automazione industriale

Sistemi a microprocessore

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

ELABORAZIONE DEI SEGNALI ANALOGICI NEL PLC S7-1200

Perché il P.L.C.? Introduzione di base al P.L.C. (Programmable Logic Controller) SAVE Veronafiere Ottobre 2007

PLC - Linguaggi. I linguaggi di programmazione dei PLC sono orientati ai problemi di automazione e utilizzano soprattutto:

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Ladder Diagram 16/03/2012. Sommario POLITECNICO DI MILANO. Introduzione. Elementi Base. Elementi Dinamici. Temporizzazione e Contatori

Fondamenti di programmazione parte 2. Elementi di informatica IGLP

Controllo dei Processi

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2016/17 Classe 1 B

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

DEC PDP8, III Generazione, '65-'75

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Introduzione alla norma IEC

CALCOLATORI ELETTRONICI II

SFC. Sequential Functional Chart. Reti e Sistemi per l Automazione. Stefano Panzieri SFC - 1

Grazie a nanopac è possibile innovare macchine e piccoli impianti industriali, personalizzandoli e rendendoli più efficienti e performanti.

Esempi di possibili domande d esame.

Linguaggi algoritmici A. Ferrari

Le funzioni in JavaScript. Modularizzazione

ESEMPIO QUATTRO: CARROPONTE

Sistemi e Tecnologie per l'automazione LS

Modalità di utilizzo della SFC (sequential function chart) per realizzare i GRAFCET con ALLEN-BRADLEY PLC serie ROCKWELL Automation

Lezione 6 Introduzione al C++ Mauro Piccolo

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Non mancano le aperture verso il mondo della comunicazione mediante interfacce Bus di Campo ed Ethernet, di imminente rilascio.

Transcript:

Programmable Logic Controller Seconda Parte Sistemi per l automazione industriale Stefano Maggi Marco Bassetti Dipartimento di Elettrotecnica lunedì 10 novembre 2008

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 1

Principio di funzionamento dei PLC Lettura degli ingressi Copia Ingressi in RAM Programma Uso della RAM in accordo al programma Aggiornamento delle Uscite Copia dalla RAM verso le Uscite Program Scan: tipicamente 2-3 ms per Kbyte di programma Maggi Bassetti Mauri lunedì 10 novembre 2008 2

Limiti imposti dal funzionamento (1/2) Limite sul periodo dei segnali di input: Teorema di Shannon se f è la frequenza di variazione, essa deve essere minore 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 3

Limiti imposti dal funzionamento (2/2) Ritardi Casuali tra dati di ingresso e uscita del programma Maggi Bassetti Mauri lunedì 10 novembre 2008 4

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 5

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 6

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 e bottom-up. Un programma viene decomposto in Program Organisation Unit (POU) (funzioni, function block, programmi) Lo standard permette il pieno controllo dell'esecuzione di ciascun programma o function block, tramite l'assegnazione a task Maggi Bassetti Mauri lunedì 10 novembre 2008 7

Caratteristiche principali dello standard IEC 1131-3 (2/2) Lo standard permette la definizione di strutture dati Lo standard garantisce la portabilità di gran parte del software. Ciò avviene se coincidono: i sottoinsieme di caratteristiche di linguaggio che ciascun produttore di PLC offre gli aspetti implementativi di ciascun linguaggio Lo standard permette lo sviluppo di programmi orientati al sequencing (ad esempio tramite il Sequential Function Chart - SFC) Lo standard è basato sulla programmazione grafica Maggi Bassetti Mauri lunedì 10 novembre 2008 8

Modello software di un PLC Maggi Bassetti Mauri lunedì 10 novembre 2008 9

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 10

Il modello software - RESOURCE 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 Maggi Bassetti Mauri lunedì 10 novembre 2008 11

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: Parametro Tipo Descrizione 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. Maggi Bassetti Mauri lunedì 10 novembre 2008 12

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 13

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 14

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 15

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 16

PLC a singolo processore Maggi Bassetti Mauri lunedì 10 novembre 2008 17

PLC multi-processore Maggi Bassetti Mauri lunedì 10 novembre 2008 18

Rete di PLC Maggi Bassetti Mauri lunedì 10 novembre 2008 19

Struttura gerarchica del SW di un PLC Maggi Bassetti Mauri lunedì 10 novembre 2008 20

Comunicazione tra PLC Maggi Bassetti Mauri lunedì 10 novembre 2008 21

Partenze di un PLC COLD Durante una partenza COLD tutte le variabili sono inizializzate a valori di default o a quelli ridefiniti dall utente WARM HOT Durante una partenza WARM solo le variabili NON-RETENTIVE (attributo RETAIN non presente) sono inizializzate ai valori di default o a quelli ridefiniti dall utente. Le variabili con attributo RETAIN non vengono inizializzate ma continuano ad assumere l ultimo valore precedente alla WARM start Durante una partenza HOT nessuna variabile viene inizializzata Maggi Bassetti Mauri lunedì 10 novembre 2008 22

Linguaggio di programmazione Ladder E' il più vecchio linguaggio di programmazione per PLC Si basa su simboli di provenienza "elettrica": binari di potenza (power rail), contatti elettrici 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 connesso necessariamente al binario di potenza sinistro (left power rail), mentre il collegamento con quello destro è opzionale Maggi Bassetti Mauri lunedì 10 novembre 2008 23

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 24

Utilizzo dei contatti Ad ogni contatto viene associata una variabile binaria. Tale variabile viene solamente letta (può coincidere con un ingresso). Contatto Normalmente Aperto: la corrente fluisce da sinistra a destra se la variabile IN è 1. La corrente fluisce a destra per qualunque scansione del Programma Ladder fino a quando la variabile IN diviene 0 IN Contatto Normalmente Chiuso: la corrente fluisce da sinistra a destra se la variabile IN è 0. La corrente fluisce a destra per qualunque scansione del Diagramma Ladder fino a quando la variabile IN diviene 1 IN Maggi Bassetti Mauri lunedì 10 novembre 2008 25

Utilizzo dei coil Ad ogni coil viene associata una variabile binaria. La variabile viene scritta (può coincidere con una uscita fisica). Coil: la variabile OUT associata al Coil è posta a 1 se vi è una corrente che fluisce da sinistra. La variabile rimane a 1 per qualunque scansione del Programma Ladder fino a quando la corrente cessa di fluire da sinistra. OUT Negated Coil: la variabile OUT associata al Negated Coil è posta a 0 se vi è una corrente che fluisce da sinistra. La variabile rimane a 0 per qualunque scansione del Programma Ladder fino a quando la corrente cessa di fluire da sinistra. OUT Maggi Bassetti Mauri lunedì 10 novembre 2008 26

Altri contatti del linguaggio Ladder (1/2) Contatto sensibile alla transizione 0-1 (Positive Transition-Sensing Contact) IN P La corrente fluisce da sinistra a destra del Positive Transition-Sensing Contact, se la variabile IN passa da 0 a 1. La corrente fluisce a destra solo per una scansione del Programma Ladder (quella relativa alla transizione). Scansione 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 Maggi Bassetti Mauri lunedì 10 novembre 2008 27

Altri contatti del linguaggio Ladder (2/2) Contatto sensibile alla transizione 1-0 (Negative Transition-Sensing Contact) IN N La corrente fluisce da sinistra a destra del Negative Transition-Sensing Contact, se la variabile IN passa da 1 a 0. La corrente fluisce a destra solo per una scansione del Diagramma Ladder (quella relativa alla transizione). Scansione 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 Maggi Bassetti Mauri lunedì 10 novembre 2008 28

Altri coil del linguaggio Ladder Set Coil OUT S La variabile OUT associata al coil e' posta a 1 se vi e' una corrente che fluisce da sinistra. La variabile rimane a 1 per qualunque scansione del Diagramma Ladder fino a quando viene utilizzato un coil RESET. OUT Reset Coil R La variabile OUT associata al coil e' posta a 0 se vi e' una corrente che fluisce da sinistra. La variabile rimane a 0 per qualunque scansione del Diagramma Ladder fino a quando viene utilizzato un coil SET. Maggi Bassetti Mauri lunedì 10 novembre 2008 29

Logiche Ladder di base Logica AND START STOP M FAN Logica OR START STOP M FAN S IN Maggi Bassetti Mauri lunedì 10 novembre 2008 30

Regole di esecuzione dei Rung Un programma scritto in linguaggio Ladder viene eseguito valutando un rung alla volta. L'ordine di valutazione dei rung è quello che procede dal primo rung in alto verso l'ultimo rung in basso. Quando l'ultimo rung viene valutato, si inizia nuovamente a valutare il primo rung (dopo aver aggiornato le uscite e letti gli ingressi). Nel caso in cui vengano disegnati rung adiacenti, l'ordine di valutazione generalmente procede dal rung posto a sinistra verso quello posto alla destra. Maggi Bassetti Mauri lunedì 10 novembre 2008 31

Effetti collaterali delle regole di esecuzione dei Rung L'ordine di valutazione comporta la necessità di riunificare i rung che operano delle modifiche (Write) sulle stesse variabili o sulle stesse uscite. Esempio: L'effetto di IN1, IN2, e IN3 sulla variabile FAN è nullo. La variabile può essere modificata solo da IN4 e IN5, a causa della posizione del rung che li contiene Riunificando i rung, la variabile FAN verrà aggiornata solo dopo aver valutato il rung composto dagli ingressi IN1, IN2, IN3, IN4 e IN5 IN1 IN4 IN1 IN4 IN2 IN5 Maggi Bassetti Mauri lunedì 10 novembre 2008 32...... IN2 IN5 IN3 FAN IN3... FAN FAN

Uso di istanze di Function Block e di Funzioni E' possibile connettere contatti con gli ingressi dell'istanza del FB o della funzione, purché essi siano binari E' possibile connettere coil con le uscite dell'istanza del FB o della funzione, purché esse siano binarie Nel caso in cui una Istanza di FB o una funzione richieda un ingresso binario sempre TRUE, e' possibile collegare tale ingresso direttamente al power rail di sinistra Eventuali variabili analogiche o valori analogici (interi, reali, temporali, etc.) possono essere connessi direttamente ai corrispondenti ingressi dell'istanza del FB o della funzione Nome Istanza In1 FB1 Out1 In2 In3 Out2 y x T#1s In4 In5 Maggi Bassetti Mauri lunedì 10 novembre 2008 33

Feedback Paths E' possibile che un rung IN1 IN2 IN3 FAN presenti dei contatti e dei coil ai quali vengono associate le IN4 FAN stesse variabili FAN OUT 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 inizialmente FAN=0 e nel tempo gli ingressi IN1, IN2, IN3 e IN4 si mantengono costanti e pari a IN1=0, IN2=0, IN3=1, IN4=1 Maggi Bassetti Mauri lunedì 10 novembre 2008 34

Tecnica di programmazione Ladder Rappresentare la soluzione del problema con una macchina a stati. Ogni stato viene rappresentato da una variabile locale. Per ogni stato vengono identificate le azioni da eseguire. Vengono identificate gli eventi che producono il passaggio di stato. Ciascun evento dovrà corrispondere ad una variabile. Il programma in Ladder si compone di tre porzioni: Rappresentazione dell attivazione di un nuovo stato a partire da ciascuno stato per un determinato evento Rappresentazione della disattivazione di ciascuno degli stati a causa dell attivazione di un altro stato Rappresentazione delle azioni eseguite in ciascuno degli stati Maggi Bassetti Mauri lunedì 10 novembre 2008 35