1 / 142

LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC

LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC. Prof. Raffaele Iervolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli, Federico II. Introduzione.

duman
Télécharger la présentation

LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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. 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

  4. Esempio di funzionamento di un PLC (2/III) Un generico programma che svolga le funzioni proprie del circuito elettrico può essere così articolato: • Controlla lo stato dell’ingresso I1 • Controlla lo stato dell’ingresso I2 • Solo se I1 e I2 sono entrambi alti accendi la lampada posta sull’uscita O1 • Torna al punto 1 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  5. Esempio di funzionamento di un PLC (3/III) 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

  6. 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

  7. 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

  8. 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: • Testo strutturato (ST) • Linguaggio a contatti (LD) • Diagramma a blocchi funzionali (FBD) • Lista di istruzioni (IL) • Diagramma funzionale sequenziale (SFC) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  9. Variabili e Tipi di variabili Lo standard 61131 prevede alcuni tipi predefiniti di variabili: • INT e UINT per rappresentare numeri interi rispettivamente in [-32768, 32767] ed in [0, 216-1] • REAL per rappresentare numeri reali nell’intervallo ±10±38 • TIME per rappresentare una durata temporale in unità che vanno dai giorni ai ms T#dhmsms • DATE e TIME_OF_DAY per rappresentare la data e l’ora • STRING per definire le stringhe di caratteri • BOOL (1 bit), BYTE (8 bit), WORD (16 bit), DWORD (32 bit), LWORD (64 bit) • ANY se la variabile può essere di qualsiasi tipo • ANY_NUM se la variabile può essere INT o REAL Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  10. Tipi derivati Possono essere introdotti vari tipi derivati in vari modi: • Per equivalenza a quelli predefiniti • Per enumerazione • Per restrizione dei tipi già definiti • Definendo insiemi ordinati di più elementi dello stesso tipo (array) • Definendo insiemi di più elementi di tipo diverso (struct) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  11. 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

  12. 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

  13. IL TESTO STRUTTURATO Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  14. Il Testo Strutturato (ST) E’ un linguaggio di programmazione testuale, di alto livello (Pascal), per le applicazioni dell’automazione. Esempi di operatori contemplati: • 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

  15. Il Testo Strutturato: costrutti di selezione Esistono poi i consueti costrutti di selezione: • IF cond THEN istr END_IF • IF cond1 THEN istr1 ELSIF cond2 THEN istr2 ELSE istr3 END_IF • CASE var OF val_i : istr_i ELSE istr END_CASE Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  16. 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

  17. IL LADDER DIAGRAM Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  18. 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

  19. 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

  20. Esempio di programma Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  21. 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

  22. 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

  23. 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 W1-W512. Serve per la memorizzazione di condizioni interne. Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  24. 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

  25. 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

  26. 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àilcontatto 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

  27. 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

  28. Es.1: Programmazione di una XOR U3:15 = (I1:4 AND NOT(I1:7)) OR (NOT(I1:4) AND I1:7) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  29. Es.2: Programmazione di un elemento di memoria (flip-flop SR) SET RESET U1:1 = NOT(I3:9) AND (I2:2 OR U1:1) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  30. Es.3: Riconoscimento di fronte di salita W1:1 = NOT(W1:2) AND I1:1 W1:2 = I1:1 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  31. Esercizio • Tradurre in LD la seguente istruzione in ST Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  32. Soluzione Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  33. 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

  34. 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

  35. Es. Utilizzo del salto per una procedura di inizializzazione Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  36. Istuzioni di connessione • La coppia di istruzioni di connessione -->zyx> e >zyx>-- viene utilizzata per spezzare un rung troppo lungo: Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  37. IL DIAGRAMMA A BLOCCHI FUNZIONALI Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  38. 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

  39. 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

  40. Esempio di una rete in FBD Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  41. LA LISTA DI ISTRUZIONI Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  42. 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

  43. 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

  44. 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

  45. Es. Istruzioni per la XOR LD a (* metti il valore di a nell’acc *) ANDN b (* AND dell’acc con il NOT di b *) OR( b (* OR dell’acc con l’espressione *) ANDN a ) ST c (* conserva l’acc in c *) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  46. PROGRAM ORGANIZATION UNITS (POU) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino

  47. 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 • BlocchiFunzionali: 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

  48. 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

  49. 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

  50. 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

More Related