Benvenuto in questa lezione del corso di programmazione plc, oggi parliamo della scansione del programma e del suo tempo, inoltre capiremo come considerare il funzionamento di questa scansione delle istruzioni quando creiamo le nostre routine.
Come sempre, allegato a questa lezione trovi il video con le mie spiegazioni e gli esempi pratici di supporto, cominciamo subito!
Scansione ciclica del programma nei plc.
A differenza di ciò che avviene nei comuni software ad alta interazione con l’utente, i programmi del plc vengono eseguiti con una scansione molto veloce che si ripete continuamente, per lo meno questo è il modo più comune di schedulare l’esecuzione delle routine che scriviamo in linguaggio ladder o negli altri linguaggi di programmazione disponibili per questi controllori a logica programmabile.
La schedulazione dei programmi può avvenire in diversi modi, per esempio su evento, oppure con un’esecuzione una tantum, o ancora possiamo lanciarli richiamandoli all’interno di altri programmi; per la lezione di oggi ci occupiamo di capire come funziona la schedulazione ciclica.
Nella prossima immagine vediamo nell’ambiente Codesys come sono schedulate alcune POU (routine), si vede che vengono eseguite ciclicamente ogni 20 millisecondi.
Per far funzionare il programma come vogliamo dobbiamo inventarci qualcosa per fermare il conteggio dopo l’incremento e riprenderlo solamente dopo un nuovo avviamento del motore, ovvero quando il bit di comando va a zero e poi nuovamente a uno.
In questo caso si parla di testare il fronte di salita, e si può fare in diversi modi.
Il primo modo per valutare i fronti di salita nei plc è di creare noi una memoria che si ricordi che il ramo è andato a uno, e usare questa per tagliare la linea del conteggio; vediamo le istruzioni nella figura qui sotto.
Come si vede in figura, con questa soluzione inseriamo una bobina di tipo latch (set) dopo l’addizione, questa una volta alzata rimane a 1 finché non la resettiamo con l’apposita istruzione reset (unlatch).
Il contatto chiuso di questa bobina messo prima dell’istruzione matematica impedisce la ripetizione del conteggio mentre il bit di test “pompa_accesa” rimane a uno.
Nella seconda linea del ladder quando la pompa viene spenta la bobina di memoria viene resettata.
Questo è un modo molto semplice per testare i fronti di salita nei plc, vediamo ora un sistema più elegante per ottenere lo stesso risultato mediante un’istruzione dedicata, chiamata ONS (one shot) oppure “trigger”: eccola nella prossima immagine.
L’istruzione R_TRIG non fa altro che memorizzare al suo interno il fatto che il ramo che la precede fosse “vero” e impedire di eseguire le istruzioni di uscita.
Quando il ramo che precede questo box torna falso e poi nuovamente vero l’istruzione lascia eseguire nuovamente il resto delle istruzioni presenti dopo di essa.
Ok, siamo così arrivati al termine di questa lezione sul plc. Abbiamo visto che quando dobbiamo progettare il software dobbiamo tenere presente come funziona la scansione del programma, e abbiamo imparato come testare i fronti di salita dei condizionamenti, sia con semplici elementi della logica ladder che con l’istruzione apposita.
A me non resta che invitarti a iscriverti al mio canale YouTube e darti appuntamento qui sul mio sito tutto dedicato all’automazione; ci vediamo presto!