il linguaggio per la programmazione del plc ing. marco giannini prof. giuseppe mastronardi...

31
IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico 2008/2009

Upload: leandro-donato

Post on 01-May-2015

232 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

IL Linguaggio per la programmazione del PLC

Ing. Marco Giannini

Prof. Giuseppe Mastronardi

Architettura e Programmazionedei Microelaboratori

Anno accademico 2008/2009

Page 2: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Ladder Diagram(Linguaggio a contatti)

Page 3: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Linguaggio a contattiLinguaggio a contatti

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.

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.

Page 4: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Linguaggio a contattiLinguaggio a contatti

Regola fondamentale: il flusso di energia ha come unico verso quello che va dal montante sinistro al montante destro; la bobina U1 può essere accesa se sono chiusi i contatti I1, I2, I3, I4 e non quando sono chiusi i contatti I7, I5, I2, I3, I4.

Page 5: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Tipi di istruzioni del linguaggio a contattiTipi di istruzioni del linguaggio a contatti

1.Istruzioni di base: contatti e uscite di tipo relè2.Istruzioni di temporizzazione e conteggio3.Istruzioni per il controllo del programma4.Istruzioni per la gestione dei dati5.Istruzioni per funzioni speciali (regolatori PID)

Page 6: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Descrizione della memoria RAM di un PLC virtualeDescrizione della memoria RAM di un PLC virtuale

Area degli ingressi: 32 word da 16 bit con indirizzi I1-I32; Ix:y indica il bit y della word x; ad ogni ingresso digitale corrisponde un bit; ad ogni ingresso analogico corrisponde una word di 16 bit.

Area delle uscite: 32 word da 16 bit con indirizzi U1-U32; si utilizzano le stesse convenzioni dell’area degli ingressi.

Page 7: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Descrizione della memoria RAM di un PLC virtualeDescrizione della memoria RAM di un PLC virtuale

Area utente: 512 word da 16 bit indirizzabili con W1-W512; è utilizzata per memorizzare dati, tabelle, risultati parziali dell’elaborazione del programma utente.

Area PID: sono previste 4 strutture di tipo regolatore PID indirizzabili con P1-P4.

sono previste 16 strutture di temporizzazione con indirizzi T1-T16.

Area deiTemporizzatori

:

Page 8: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Modalità di esecuzione di un programma scritto in Modalità di esecuzione di un programma scritto in linguaggio a contattilinguaggio a contatti

1. Lettura degli ingressi e scrittura del loro stato in memoria.2. Esecuzione del programma un rung dopo l’altro,

procedendo dall’alto verso il basso, da sinistra verso destra.

3. Scrittura delle uscite, prelevando il loro stato dalla memoria.

Page 9: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni di baseIstruzioni di base

Contatto normalmente aperto: se il bit ad esso associato è ad 1 (ON) il processore chiude il contatto; se il bit è a 0 (OFF) il contatto rimane aperto. Il bit ad esso associato può appartenere all’area di memoria degli ingressi (Ix:y), delle uscite (Ux:y) e all’area utente (Wx:y).

Contatto normalmente chiuso: se il bit ad esso associato è ad 1 (ON) il processore apre il contatto; se il bit è a 0 (OFF) il contatto rimane chiuso.Valgono le stesse considerazioni dell’istruzione precedente.

Page 10: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni di baseIstruzioni di base

Bobina: è utilizzata per settare il bit ad essa associato che può essere un bit dell’area delle uscite (Ux:y) o un bit dell’area utente (Wx:y).Questa istruzione deve essere sempre inserita all’estrema destra del rung; se le istruzioni che la precedono realizzano la continuità elettrica e logica, il bit ad essa associato assume valore “1”, altrimenti assume valore “0”.

Latch bobina: mantiene lo stato ON del bit associato anche quando le condizioni che lo hanno attivato sono diventate false; l’unico modo di portarlo nello stato OFF è utilizzare l’istruzione UNLATCH BOBINA.

Page 11: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni di baseIstruzioni di base

Unlatch bobina: è l’istruzione duale della LATCH BOBINA e quindi mantiene lo stato OFF del bit associato anche quando le istruzioni precedenti realizzano la continuità elettrica e logica.Per portare allo stato ON il bit associato, si deve utilizzare necessariamente l’istruzione LATCH BOBINA .

Page 12: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Esempi di programmi con istruzioni di baseEsempi di programmi con istruzioni di base

Si vuole memorizzare nel bit U1:1 il risultato della OR tra i bit I1:1 e I1:2.

Page 13: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Annotazione importanteAnnotazione importante

L’ordine in cui vengono scritti i rung è molto importante.

Nel programma a sinistra tutte le uscite vengono aggiornate in un solo ciclo di esecuzione, mentre nel programma a destra le tre uscite vengono aggiornate in tre cicli successivi una dopo l’altra.

Page 14: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Riconoscimento del fronte di salitaRiconoscimento del fronte di salita

Primo ciclo di esecuzione:

il primo rung viene abilitato quando I 1:1 = 1, per cui W 1:1 viene portato a 1.

Successivamente viene eseguito il secondo rung e quindi anche W 1:2 = 1.

Secondo ciclo di esecuzione:

W 1:2 era stato portato a 1 per cui W 1:1 va a 0.

Page 15: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni di temporizzazione e conteggioIstruzioni di temporizzazione e conteggio

Il temporizzatore deve essere sempre posizionato all’estrema destra del rung; Tx è il suo indirizzo con x = 1 - 16; la durata massima è di 360000 centesimi di secondo (un’ora).

Se viene stabilita la continuità logica del rung, il temporizzatore inizia il conteggio e la sua locazione di memoria contiene 0; quando termina il conteggio, Tx = 1 fin quando il temporizzatore non viene resettato; se durante il conteggio si interrompe l’alimentazione, si resetta.

Temporizzatore a ritenuta: il suo funzionamento è molto simile al temporizzatore semplice; se viene interrotta l’alimentazione, viene conservato il valore raggiunto nel conteggio. Per resettare questo temporizzatore si utilizza l’istruzione -(RES)-.

Il valore corrente del conteggio è nell’indirizzo Tx.acc.

Page 16: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Contatore ad incremento: Cx indica l’indirizzo (x = 1- 16), e il massimo numero di eventi contati è 1000.

Deve essere sempre posizionato a destra del rung e, se il rung in cui si trova subisce una transizione falso/vero (0- 1), incrementa di uno il suo valore.

Quando il contatore raggiunge il n. di eventi impostato, il bit ad esso associato assume 1 e viene resettato automaticamente il conteggio.

Per resettare a zero il conteggio da programma, si utilizza l’istruzione -(RES)-; il valore corrente del conteggio è disponibile all’indirizzo Cx.acc.

Istruzioni di temporizzazione e conteggioIstruzioni di temporizzazione e conteggio

Page 17: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni per il controllo del programmaIstruzioni per il controllo del programma

Se alimentata, permette di saltare ad un rung dove è presente l’istruzione di etichetta corrispondente indicata mediante un numero; deve essere posizionata all’estrema destra del rung.

Indica la destinazione del salto e deve essere posizionata a sinistra del rung.

Permette di controllare, attraverso un solo insieme di condizioni, l’esecuzione di un’intera parte di programma racchiuse tra due istruzioni MCR (Master Control Relay);se la prima viene alimentata, viene eseguita quella parte, altrimenti tutte le bobine di quella parte sono messe a zero. Le due istruzioni sono posizionate alla destra dei rung.

Page 18: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Il funzionamento del ZCL (Zone Control Last state) è identico a quello dell’istruzione precedente; l’unica differenza è che, se la prima delle due istruzioni non viene alimentata, le uscite presenti nella parte di programma controllata rimangono nel loro stato.

Salto a sottoprogramma: il sottoprogramma è racchiuso tra due istruzioni, una di inizio –I SBR I-, corredata dal numero di sottoprogramma, e l’altra di fine –( RET )-.

Istruzioni per il controllo del programmaIstruzioni per il controllo del programma

Page 19: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni per la movimentazione di datiIstruzioni per la movimentazione di dati

Trasferisce il contenuto di una word di memoria (OP 1) oppure un valore assoluto in OP 2.

E’ un’istruzione di uscita e quindi va posizionata a destra del rung.

Esegue operazioni aritmetico/logiche tra due operandi; il risultato dell’operazione è memorizzato in RES.

Le operazioni sono: ADD, MUL, SUB, DIV, AND, OR.

Si posiziona a destra del rung.

Page 20: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni per la attivazione dei rungIstruzioni per la attivazione dei rung

Esegue operazioni di comparazione tra due operandi; il risultato dell’operazione è memorizzato in RES.

Le operazioni sono: EQU, NEQ, GEQ, LEQ, GRT, LES.

Si posiziona a sinistra del rung.

Page 21: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni PIDIstruzioni PID

Kp: guadagno proporzionale Kd : guadagno derivativo Ki: guadagno integrale rif: word del riferimento var: variabile da controllare com: valore del controllo

Page 22: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Istruzioni di connessioneIstruzioni di connessione

La coppia di istruzioni di connessione -->zyx> e >zyx>-- viene utilizzata per spezzare un rung troppo lungo:

I1 :1 W 1 :2

I2 :1 U 2 :1

> zyx >

> zyx >

Page 23: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Esempi

Page 24: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

U3:15 = (I1:4 AND NOT(I1:7)) OR (NOT(I1:4) AND I1:7)

I1 :4

I1 :7

U 3 :1 5

Programmazione di una XORProgrammazione di una XOR

Page 25: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Riconoscimento del Fronte di SalitaRiconoscimento del Fronte di Salita

Page 26: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Riconoscimento del Fronte di DiscesaRiconoscimento del Fronte di Discesa

Page 27: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Flip Flop di tipo DFlip Flop di tipo D

Page 28: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Ritardo di spegnimentoRitardo di spegnimento

Page 29: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Esercizi

Page 30: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

EsercizioEsercizio

• Tradurre in LD la seguente istruzione in ST

ENDIF

17: U1SET

T2) OR 7:6))AND(W2:OR(W2)5:W2 AND 1:I3 AND 1:((I5 IF

Page 31: IL Linguaggio per la programmazione del PLC Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico

Soluzione ISoluzione I