LADDER LOGIC
Transcript
LADDER LOGIC
Reti e Sistemi per l’Automazione LADDER LOGIC Stefano Panzieri Ladder Logic - 1 Linguaggi di Programmazione Reti e Sistemi per l’Automazione ◊ 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 Reti e Sistemi per l’Automazione I1:4 I1:4 Stefano Panzieri I1:7 I1:7 Ladder Logic - 3 U3:15 Functional Block Diagram (1) I22 & Reti e Sistemi per l’Automazione M3 U31 + I2 & I15 I4 U6 & Stefano Panzieri M22 Ladder Logic - 4 Functional Block Diagram (2) F1 I1 X1 Y1 Reti e Sistemi per l’Automazione I2 X2 F2 X1 U1 Y1 I3 F3 X2 Y2 >BACK> X3 I4 Stefano Panzieri Ladder Logic - 5 A1 B1 A2 B2 U2 >BACK> Sequential Functional Chart Reti e Sistemi per l’Automazione 1 10 20 11 31 Stefano Panzieri Ladder Logic - 6 41 Linguaggi Testuali ◊ Lista di istruzioni Reti e Sistemi per l’Automazione Start LD ADD MUL SUB GT STO LD ◊ Testo strutturato If (livello<livello_max) then valvola1 = true else allarme = true valvola1 = false end_if aux=i25*10-4 i25 var 10 livello 25 m2 u39 Stefano Panzieri Ladder Logic - 7 Linguaggio a contatti virtuale ◊ Area degli ingressi ◊ I1-I32 Ix:y ◊ Area delle uscite Reti e Sistemi per l’Automazione ◊ U1-U32 ◊ P1-P4 ◊ W1-W512 ◊ Address/Symbols ◊ Instruction comments ◊ Rung comments Tx Cx Stefano Panzieri -> Wx:y ◊ Database (eventuale) ◊ Area Contatori ◊ C1-C16 Px ◊ Area Utente Ux:y ◊ Area dei Temporizzatori ◊ T1-T16 ◊ Area PID Ladder Logic - 8 Reti e Sistemi per l’Automazione Ladder Logic Stefano Panzieri Ladder Logic - 9 Istruzioni di base ◊ Contatto normalmente aperto ◊ Si chiude se il bit vale 1 ◊ Contatto normalmente chiuso Reti e Sistemi per l’Automazione ◊ 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 U ◊ Riporta ad OFF un’uscita Stefano Panzieri L Ladder Logic - 10 Esempio di Rung Reti e Sistemi per l’Automazione I1 I2 I3 I5 I6 I7 Stefano Panzieri Ladder Logic - 11 I4 U1 Programmazione di una XOR I1:4 I1:7 Reti e Sistemi per l’Automazione I1:4 U3:15 I1:7 I1:4 I1:7 U3:15 Stefano Panzieri Ladder Logic - 12 Programmazione di un elemento di memoria I2:2 I3:9 Reti e Sistemi per l’Automazione U1:1 I2:2 I3:9 U1:1 Stefano Panzieri Ladder Logic - 13 U1 :1 Riconoscimento di Fronte di Salita I1:1 W1:2 W1:1 Reti e Sistemi per l’Automazione W1:2 I1:1 W1:2 W1:1 Stefano Panzieri Ladder Logic - 14 Riconoscimento di Fronte di Discesa I1:1 W1:2 W1:1 Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione I1:1 U4:1 U1:15 U4:1 U1:15 U6:3 U1:15 U4:1 U1:15 I1:1 U4:1 L’ordine con cui vengono eseguiti i vari Rung è fondamentale Stefano Panzieri Ladder Logic - 17 U6:3 Istruzioni di Temporizzazione Reti e Sistemi per l’Automazione ◊ 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 Reti e Sistemi per l’Automazione T4R 1000 T2 T2 U3:2 T4 W1:5 T4R W5:2 RES Stefano Panzieri Ladder Logic - 19 Ritardo di Spegnimento I1:1 U2:1 Reti e Sistemi per l’Automazione U2:1 T1 I1:1 T1 500 I1:1 5s T1 U2:1 Stefano Panzieri Ladder Logic - 20 Oscillatore ad Onda Quadra I10:3 T6 T5 200 T5 Reti e Sistemi per l’Automazione T6 300 U2:4 I10:3 2s T5 3s T6 U2:4 Stefano Panzieri Ladder Logic - 21 Impulso all’Accensione I3:2 T1 100 Reti e Sistemi per l’Automazione T1 I3:2 1s T1 U2:1 Stefano Panzieri Ladder Logic - 22 U2:4 Impulso allo Spegnimento I1:1 I1:1 T9 200 Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione ◊ Contatore ad incremento ◊ Se il rung di attivazione subisce una transizione falsovero 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 Reti e Sistemi per l’Automazione C2 122 C2 U2:4 W1:4 C2 RES Stefano Panzieri Ladder Logic - 25 Conteggio di Eventi I1:1 W1:2 W1:1 W2:1 C4 3 C4 Reti e Sistemi per l’Automazione U1:1 U1:1 W1:1 C4 C4 RES I1:1 W1:1 W1:2 C4 U1:1 Stefano Panzieri Ladder Logic - 26 W1:2 sostituire a w2:1 Temporizzatori e Contatori in Cascata I1:1 T1 360000 T1 T2 180000 T5 T5 6000 Reti e Sistemi per l’Automazione T5 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)-- Reti e Sistemi per l’Automazione ◊ 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 Reti e Sistemi per l’Automazione JMP (procedura di inizializzazione) W1:1 L 200 LBL (programma) Stefano Panzieri Ladder Logic - 29 Esempio di Utilizzo del Master Control Relay Reti e Sistemi per l’Automazione MCR (zona controllata) MCR Stefano Panzieri Ladder Logic - 30 Esempio di Utilizzo del Salto a Sottoprogramma 300 Reti e Sistemi per l’Automazione JSR 300 JSR 300 SBR (sottoprogramma) RET Stefano Panzieri Ladder Logic - 31 Istruzione MOV Trasferimento di memoria Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione MUL SUB DIV XXX OP1 OP2 RES AND OR Stefano Panzieri Ladder Logic - 33 Istruzioni di Comparazione Le istruzioni di comparazione fanno parte delle condizioni di attivazione dei rung Reti e Sistemi per l’Automazione EQU NEQ GEQ LEQ yyy OP1 OP2 GRT LES Stefano Panzieri Ladder Logic - 34 Esempio di Utilizzo di Operazioni Aritmetiche e istruzioni di Comparazione W3:1 Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione T5 500 U2:4 GRT T5.acc 200 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 Reti e Sistemi per l’Automazione 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 Reti e Sistemi per l’Automazione EQU I23 654 RSD W5 I22:1 U1:1 W5:12 Stefano Panzieri U1:2 Ladder Logic - 38 Sequenziatore Realizza sequenze fissate di bit in uscita Reti e Sistemi per l’Automazione 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 Istruzione PID Regolatore Proporzionale Integrale Derivativo Kp: guadagno proporzionale Kd : guadagno derivativo Ki: guadagno integrale Reti e Sistemi per l’Automazione rif: word del riferimento 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 Invia un blocco di word ad un altro PLC connesso in rete Reti e Sistemi per l’Automazione num: identificativo del PLC SEND num ind lun ind: indirizzo di partenza del blocco da spedire lun: lunghezza del blocco GET Riceve un blocco di word da un altro PLC connesso in rete Stefano Panzieri Ladder Logic - 41 GET num ind lun