IMPARIAMO A PROGRAMMARE I PLC: SCANSIONE PROGRAMMA E FRONTI DI SALITA

Scansione programma e fronti di salita (triggers)

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!

Novità automazione e plc

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.

Impostazione tempo di ciclo scansione PLC Codesys
Nella scelta del tempo di ciclo possiamo mettere un valore maggiore o minore, naturalmente mettendo valori molto alti il programma sarà meno reattivo, d’altro canto se mettiamo valori molto bassi non è detto che l’hardware su cui il programma girerà riuscirà a sostenere la velocità
Nelle applicazioni comuni possiamo ritenere che un ciclo da 20ms sia più che sufficiente per svolgere le operazioni del processo.

A questo proposito, se non l’hai ancora fatto ti invito a leggere l’articolo sui tempi di scansione dei plc e come considerarli.
Nell’esempio della figura sopra le tre routine programmate saranno eseguite ogni 20 millisecondi, in pratica tutte le istruzioni che queste contengono saranno processate 50 volte ogni secondo, mica male vero? Vediamo ora però come tenere conto di questo nella pratica mentre scriviamo il software.

Supponiamo che vogliamo contare quante volte un bit va a 1, per esempio per sapere quante volte un motore viene avviato. Se ci limitassimo a scrivere un’istruzione che addiziona il conteggio in una variabile a fronte del bit attivo, il risultato sarebbe che questa addizione verrebbe eseguita cinquanta volte al secondo mentre il bit è a 1, perciò non funzionerebbe come vorremmo.
Nella prossima immagine troviamo che il conteggio dopo pochi secondi era già salito oltre i 600.

Programma PLC e scansione

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.

Programmare un fronte di salita nel PLC con bobine latch

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.

Istruzione trigger fronte di salita ONS (one shot) nel programma plc

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!

Copyright(C) automazione-plc.it
P. IVA: 11676200964
Sito di informazione e didattica sull'automazione industriale, il mondo dei PLC e dei sistemi di supervisione.
Programmazione PLC.
Programmazione SCADA e HMI.
Apparecchiature e hardware industriale.
Strumentazione da campo.
Policy sulla Privacy e utilizzo dei Cookies