Corso di Automazione industriale Lezione 3 PLC - Ladder Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 1 Idea base Il Ladder è un linguaggio a contatti: tra i due montanti si costituiscono le linee (rung) composte da diversi elementi Questo linguaggio nasce dall’implementazione in logica cablata: attraverso il passaggio di elettricità (definita attraverso delle condizioni degli input) dal montante di sinistra verso quello di destra avviene il settaggio degli output del controllo Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 2 Regole base 1.La corrente può fluire soltanto da sinistra verso destra 2.I rung vengono esplorati dal PLC dal primo in alto all’ultimo in basso. Di conseguenza l’ordine dei rung è rilevante. 3.La sincronizzazione delle variabili del programma con ingressi e uscite avviene in questo modo: 1.Lettura ingressi 2.Esecuzione di tutti i rung 3.Aggiornamento uscite 4.Riavvio operazioni Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 3 Elementi del linguaggio Ladder Contatto 𝑉𝑎𝑟𝐼𝑛 Il contatto è un elemento che porta continuità sul lato destro. Esso è associato ad una variabile (in questo caso 𝑉𝑎𝑟𝐼𝑛). Normalmente questo elemento è connesso al montante sinistro. Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 4 Elementi del linguaggio Ladder Contatti normalmente aperti – normalmente chiusi Normalmente aperto 𝑉𝑎𝑟𝐼𝑛 Normalmente chiuso 𝑉𝑎𝑟𝐼𝑛 Il contatto normalmente aperto porta continuità sul lato destro se il valore di 𝑉𝑎𝑟𝐼𝑛 è 1. Nella sua versione normalmente chiusa porta continuità se 𝑉𝑎𝑟𝐼𝑛 assume valore 0. Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 5 Elementi del linguaggio Ladder Contatti a riconoscimento di fronte Fronte positivo Fronte negativo 𝑉𝑎𝑟𝐼𝑛 𝑉𝑎𝑟𝐼𝑛 P N Il contatto porta continuità a destra solo per il ciclo in cui è presente un passaggio di fronte di 𝑉𝑎𝑟𝐼𝑛 (da 0 a 1 per i contatti P, da 1 a 0 per i contatti N) Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 6 Elementi del linguaggio Ladder Bobina 𝑉𝑎𝑟𝑂𝑢𝑡 La bobina è l’elemento terminale di un’istruzione. Normalmente questo elemento è connesso al montante destro e abilita 𝑉𝑎𝑟𝑂𝑢𝑡 in caso di continuità sul pin sinistro dello stesso. Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 7 Esempio Esempio contatti + bobine 𝑈=𝐴 𝐴 𝑈 𝑈 =𝐴+𝐵 𝐴 𝑈 𝐵 𝑈 =𝐴∙𝐵 𝐴 𝐵 𝑈 N.B.: in generale trascuriamo nella parte teorica la dichiarazione delle variabili, che invece, viene mostrata nei progetti d’esempio. Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 8 Elementi del linguaggio Ladder Bobine latch - unlatch Bobina latch Bobina unlatch 𝑉𝑎𝑟𝑂𝑢𝑡 𝑉𝑎𝑟𝑂𝑢𝑡 L U La bobina latch attiva 𝑉𝑎𝑟𝑂𝑢𝑡 se c’è continuità alla sua sinistra e lo mantiene attivato anche se viene a mancare (si disabilita solo se una bobina unlatch comanda 𝑉𝑎𝑟𝑂𝑢𝑡) N.B.: In Automation Studio si chiamano Set - Reset Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 9 Esempio Esempio contatti + bobine latch - unlatch Sviluppare un software che simuli il comportamento di un flip-flop set-reset S R U 0 0 Uold 0 1 0 1 0 1 1 1 - 𝑆 𝑅 𝑈 L 𝑆 𝑅 𝑈 U Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 10 Elementi del linguaggio Ladder Temporizzatore T 𝑁𝑜𝑚𝑒𝑇𝑒𝑚𝑝 𝐷𝑢𝑟𝑎𝑡𝑎 Il temporizzatore è un elemento che esegue una verifica di durata a partire dall’istante in cui vi è continuità sull’ingresso sinistro. Al raggiungimento del valore 𝐷𝑢𝑟𝑎𝑡𝑎, 𝑁𝑜𝑚𝑒𝑇𝑒𝑚𝑝 viene settata ad 1. In caso di mancanza di continuità a sinistra il timer viene resettato (e 𝑁𝑜𝑚𝑒𝑇𝑒𝑚𝑝 settato a 0) Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 11 Elementi del linguaggio Ladder Temporizzatore a ritenuta Bobina reset 𝑁𝑜𝑚𝑒𝑇𝑒𝑚𝑝 TR 𝑁𝑜𝑚𝑒𝑇𝑒𝑚𝑝 𝐷𝑢𝑟𝑎𝑡𝑎 RES Il temporizzatore a ritenuta è analogo al temporizzatore normale. L’unica differenza è che, in caso di mancata continuità a sinistra, l’accumulatore non viene resettato ma mantenuto fisso al valora raggiunto in precedenza. Il reset di questo temporizzatore è fatto attraverso la bobina a destra Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 12 Esempio Esempio temporizzatori Sviluppare un software che attivi l’elettrovalvola U se il sensore troppo-pieno S resta attivo per più di 10 s e la mantiene attivata per 30 s Soluzione 1 Ragioniamo sulla soluzione: 𝑆 𝑈 T L 𝑇𝑖𝑚𝑒𝑟𝑂𝑁 se S resta alto per più di 40 s 10 Cosa succede? 𝑈 𝑈 T «Vince» l’ultima istruzione 𝑇𝑖𝑚𝑒𝑟𝑂𝐹𝐹 U 30 U disabilitato Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 13 Esempio Esempio temporizzatori Sviluppare un software che attivi l’elettrovalvola U se il sensore troppo-pieno S resta attivo per più di 10 s e lo mantiene attivato per 30 s Soluzione 2 In questo caso: 𝑆 𝑈 𝑈 T L 𝑇𝑖𝑚𝑒𝑟𝑂𝑁 Se S resta alto U, dopo 30 s di 10 attivazione si disabilita e riparte 𝑈 𝑈 T il conteggio di TimerON 𝑇𝑖𝑚𝑒𝑟𝑂𝐹𝐹 U 30 Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 14 Elementi del linguaggio Ladder Contatori Contatore CU 𝑁𝑜𝑚𝑒𝐶𝑜𝑛𝑡 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡 Contatore a ritenuta CUR 𝑁𝑜𝑚𝑒𝐶𝑜𝑛𝑡 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡 Il contatore è l’elemento che consente di contare i fronti di salita dell’ingresso fino al raggiungimento di 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡, dopo di che viene attivata l’uscita. Per quello a ritenuta (valgono le proprietà definite per il temporizzatore a ritenuta, compreso il reset) Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 15 Elementi del linguaggio Ladder Contatori a decremento Contatore a decremento CD 𝑁𝑜𝑚𝑒𝐶𝑜𝑛𝑡 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡 Contatore a decremento a ritenuta CDR 𝑁𝑜𝑚𝑒𝐶𝑜𝑛𝑡 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡 Il contatore a decremento inizia a contare da 𝐹𝑟𝑜𝑛𝑡𝑖𝐷𝑎𝐶𝑜𝑛𝑡 fino a raggiungere 0; al raggiungimento del valore 0 attiva l’uscita. N.B.: in alcuni framework esistono anche contatori U-D Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 16 Esempio Esempio contatori Sviluppare un software che avvisa il passaggio del decimo cliente, utilizzando una fotocellula sull’ingresso 𝐹𝑖𝑛 CU 𝐶𝑜𝑛𝑡10 10 𝐷𝑒𝑐𝑖𝑚𝑜 L Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 17 Istruzioni di controllo del flusso Salto ad etichetta Si spiega meglio con un esempio 𝐴 𝑇ℎ𝑒𝑛 JMP 𝐶 if(A) { 𝑈 𝐸𝑛𝑑𝐼𝑓 U = B; 𝑇ℎ𝑒𝑛 } else { JMP LBL 𝐵 𝑈 U = C; } 𝐸𝑛𝑑𝐼𝑓 LBL Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 18 Istruzioni di controllo del flusso Salto a subroutine 𝐿𝑎𝑏𝑒𝑙 JSR . . . 𝐿𝑎𝑏𝑒𝑙 JSR 𝐿𝑎𝑏𝑒𝑙 . . . SBR Subroutine RET N.B.: in Automation Studio non è presente questo tipo di salti Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 19 Istruzioni aritmetico - logiche Operazioni aritmetiche / logiche Se al blocco giunge corrente le variabili 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜1 e 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜2 vengono sommate e il risultato viene posto nella variabile 𝑅𝑖𝑠𝑢𝑙𝑡𝑎𝑡𝑜 ADD 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜1 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜2 𝑅𝑖𝑠𝑢𝑙𝑡𝑎𝑡𝑜 Oltre ad ADD esistono: SUB, MUL, DIV, AND, OR, ecc… N.B.: Alcuni PLC consentono di trattare solo numeri interi, altri anche numeri reali, il tipo è definito nel file .var Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 20 Istruzioni di comparazione Operazioni di confronto Se al blocco giunge corrente le variabili 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜1 e 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜2 vengono confrontate, se 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜1 > 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜2 allora si abilita la continuità a destra GRT 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜1 𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑜2 Oltre ad GRT esistono: EQU, NEQ, GEQ, LEQ, LES, ecc… Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 21 Esempio Operazioni «non booleane» Sviluppare un software che, ricevendo in ingresso un segnale analogico a 10 bit (0 ÷ 1024), scali il segnale con offset 512 e gain 10/512 e alzi un flag di allarme se la misura, in modulo, supera il valore 5. Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 22 Istruzioni aggiuntive Istruzioni / blocchi aggiuntivi • MOVE Setta il valore di una variabile non booleana • ADR Restituisce l’indirizzo di una variabile • SIZEOF Restituisce la dimensione di una variabile in byte • PID Consente di integrare un controllore modulante PID •… Università degli Studi di Bergamo, Automazione Industriale, A.A. 2014/2015, A. L. Cologni 23
© Copyright 2024 Paperzz