LADDER LOGIC Stefano Panzieri Ladder Logic - 1
Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali (FBD) Diagramma sequenziale funzionale (SFC) Lista di istruzioni Testo strutturato Stefano Panzieri Ladder Logic - 2
Ladder Diagram I1:4 I1:7 U3:15 I1:4 I1:7 Stefano Panzieri Ladder Logic - 3
Functional Block Diagram (1) I22 M3 I2 & + U31 & M22 I15 I4 & U6 Stefano Panzieri Ladder Logic - 4
Functional Block Diagram (2) F1 I1 I2 X1 X2 Y1 F2 I3 >BACK> X1 X2 X3 Y1 Y2 U1 A1 F3 B1 U2 I4 A2 B2 >BACK> Stefano Panzieri Ladder Logic - 5
Sequential Functional Chart 1 10 20 11 31 41 Stefano Panzieri Ladder Logic - 6
Linguaggi Testuali Lista di istruzioni Start LD i25 ADD var MUL 10 SUB livello GT 25 STO m2 LD u39 Testo strutturato If (livello<livello_max) then valvola1 = true else allarme = true valvola1 = false end_if aux=i25*10-4 Stefano Panzieri Ladder Logic - 7
Linguaggio a contatti virtuale Area degli ingressi I1-I32 Ix:y Area delle uscite U1-U32 Ux:y Area dei Temporizzatori T1-T16 Tx Area Contatori C1-C16 Cx Area PID P1-P4 Px Area Utente W1-W512 -> Wx:y Database (eventuale) Address/Symbols Instruction comments Rung comments Stefano Panzieri Ladder Logic - 8
Ladder Logic Stefano Panzieri Ladder Logic - 9
Istruzioni di base Contatto normalmente aperto Si chiude se il bit vale 1 Contatto normalmente chiuso Si apre se il bit vale 1 Bobina Se le condizioni logiche alla sua sinistra sono verificate l uscita associata andrà ad 1 (ON) Latch bobina Mantiene lo stato ON anche quando le condizioni di attivazione vengono a mancare Unlatch bobina Riporta ad OFF un uscita L U Stefano Panzieri Ladder Logic - 10
Esempio di Rung I1 I2 I3 I4 U1 I5 I6 I7 Stefano Panzieri Ladder Logic - 11
Programmazione di una XOR I1:4 I1:7 U3:15 I1:4 I1:7 I1:4 I1:7 U3:15 Stefano Panzieri Ladder Logic - 12
Programmazione di un elemento di memoria I2:2 I3:9 U1:1 U1:1 I2:2 I3:9 U1:1 Stefano Panzieri Ladder Logic - 13
Riconoscimento di Fronte di Salita I1:1 W1:2 W1:1 W1:2 I1:1 W1:2 W1:1 Stefano Panzieri Ladder Logic - 14
Riconoscimento di Fronte di Discesa I1:1 W1:2 W1:1 W1:2 I1:1 W1:2 W1:1 Stefano Panzieri Ladder Logic - 15
Flip-Flop di tipo D I1:1 W1:2 W1:1 W1:2 W1:1 U2:1 U2:1 U U2:1 U2:1 L I1:1 W1:2 W1:1 U2:1 Stefano Panzieri Ladder Logic - 16
Due Programmi Non Equivalenti I1:1 U4:1 U1:15 U6:3 U4:1 U1:15 U4:1 U1:15 U1:15 U6:3 I1:1 U4:1 L ordine con cui vengono eseguiti i vari Rung è fondamentale Stefano Panzieri Ladder Logic - 17
Istruzioni di Temporizzazione Temporizzatore Tx Se il rung che lo contiene è abilitato conta il trascorrere del tempo fino ad un valore preimpostato. Quando arriva a questo valore Tx diventa vero. In Tx.acc è possibile leggere il tempo trascorso Se il rung torna falso prima del completamento del tempo Tx si disattiva. Temporizzatore a ritenuta TxR Continua a contare anche se il rung di attivazione diventa falso. Reset temporizzatore RES Resetta un temporizzatore a ritenuta. Stefano Panzieri Ladder Logic - 18
Temporizzatori I3:1 T2 6000 I4:2 T2 T4R 1000 U3:2 T2 T4 W1:5 W5:2 T4R RES Stefano Panzieri Ladder Logic - 19
Ritardo di Spegnimento I1:1 T1 U2:1 U2:1 I1:1 T1 500 I1:1 T1 5s U2:1 Stefano Panzieri Ladder Logic - 20
Oscillatore ad Onda Quadra I10:3 T6 T5 200 T5 T6 300 U2:4 I10:3 T5 2s 3s T6 U2:4 Stefano Panzieri Ladder Logic - 21
Impulso all Accensione I3:2 T1 100 T1 U2:4 I3:2 T1 1s U2:1 Stefano Panzieri Ladder Logic - 22
Impulso allo Spegnimento I1:1 I1:1 T9 200 W2:2 W2:1 W2:1 T9 W2:2 I1:1 W2:2 U1:1 I1:1 W2:1 W2:2 T9 2s U1:1 Stefano Panzieri Ladder Logic - 23
Istruzioni di Conteggio Contatore ad incremento Se il rung di attivazione subisce una transizione falso vero il contatore Cx si incrementa di un unità. Cx.acc contiene il valore attuale del contatore Cx diventa vero quando il contatore raggiunge il limite preimpostato. Reset contatore Riporta a zero il contatore Cx Stefano Panzieri Ladder Logic - 24
Contatore I1:2 C2 122 C2 U2:4 W1:4 C2 RES Stefano Panzieri Ladder Logic - 25
I1:1 W1:2 W1:1 Conteggio di Eventi W2:1 W1:2 sostituire a w2:1 C4 U1:1 C4 3 U1:1 W1:1 C4 C4 RES I1:1 W1:1 W1:2 C4 U1:1 Stefano Panzieri Ladder Logic - 26
Temporizzatori e Contatori in Cascata I1:1 T1 360000 T1 T5 T5 T2 180000 T5 6000 C5 1000 I2:2 C5 RES I5:4 C7 500 C7 C8 10 C7 RES Stefano Panzieri Ladder Logic - 27
Controllo del programma Etichetta -- LBL -- Label per salti Salto --(JMP)-- Se il rung è abilitato il programma passa al rung con l etichetta indicata Salto a sottoprogramma (JSR) Inizio sottoprogramma -- SBR -- Ritorno da sottoprogramma (RET) Master Control Relay (MCR) (MCR) I rung della zona delimitata non vengono eseguiti se la condizione è falsa, e le bobine di uscita vengono resettate Zone control Last State (ZCL) (ZCL) I rung della zona delimitata non vengono eseguiti ma le bobine di uscita rimangono inalterate. Stefano Panzieri Ladder Logic - 28
Esempio di Utilizzo del Salto W1:1 200 JMP (procedura di inizializzazione) W1:1 L 200 LBL (programma) Stefano Panzieri Ladder Logic - 29
Esempio di Utilizzo del Master Control Relay MCR (zona controllata) MCR Stefano Panzieri Ladder Logic - 30
Esempio di Utilizzo del Salto a Sottoprogramma 300 JSR 300 JSR 300 SBR (sottoprogramma) RET Stefano Panzieri Ladder Logic - 31
Istruzione MOV Trasferimento di memoria Il contenuto di una word è trasferito in un altra word MOV OP1 OP2 Stefano Panzieri Ladder Logic - 32
Operazioni Aritmetico/Logiche Operazioni aritmetico/logiche a due operandi ADD MUL SUB DIV AND OR XXX OP1 OP2 RES Stefano Panzieri Ladder Logic - 33
Istruzioni di Comparazione Le istruzioni di comparazione fanno parte delle condizioni di attivazione dei rung EQU NEQ GEQ LEQ GRT LES yyy OP1 OP2 Stefano Panzieri Ladder Logic - 34
Esempio di Utilizzo di Operazioni Aritmetiche e istruzioni di Comparazione W3:1 MCR SUB I2 25 W1 LEQ W1 120 GEC W1 90 MOV W1 W125 MCR Stefano Panzieri Ladder Logic - 35
Altra Versione dell Oscillatore I10:3 T5 T5 500 GRT T5.acc 200 U2:4 Stefano Panzieri Ladder Logic - 36
Registro a Scorrimento a Destra Registro di scorrimento a destra Nel caso in cui il rung sia attivato la word W viene shiftata a destra di un bit A sinistra entra il bit indicato come secondo operando RSD W3 I2:1 Stefano Panzieri Ladder Logic - 37
Esempio di Utilizzo del Registro a Scorrimento I22:1 EQU I23 654 RSD W5 I22:1 U1:1 W5:12 U1:2 Stefano Panzieri Ladder Logic - 38
Sequenziatore Realizza sequenze fissate di bit in uscita Ad ogni esecuzione sull uscita out vengono scritte la ciclicamente le parole comprese tra word e word +num-1. SEQ out word num Stefano Panzieri Ladder Logic - 39
Regolatore Proporzionale Integrale Derivativo Kp: guadagno proporzionale Kd : guadagno derivativo Ki: guadagno integrale rif: word del riferimento Istruzione PID var: variabile da controllare con: valore del controllo PID Kp Kd Ki rif var con Stefano Panzieri Ladder Logic - 40
Istruzioni Di Comunicazione Via Rete SEND GET Invia un blocco di word ad un altro PLC connesso in rete num: identificativo del PLC ind: indirizzo di partenza del blocco da spedire lun: lunghezza del blocco Riceve un blocco di word da un altro PLC connesso in rete SEND num ind lun GET num ind lun Stefano Panzieri Ladder Logic - 41