Controllo sequenziato delle fasi di un processo

In molti processi gestiti da controllore è ricorrente la necessità di temporizzare le fasi degli stessi processi. Affinché ciò sia possibile è necessario che il controllore disponga di opportune risorse fisiche (timer) e che il firmware le sfrutti adeguatamente

Nell’automazione industriale è ricorrente la necessità di gestire un processo composto da una sequenza di attività (fasi) che devono susseguirsi secondo una ben precisa sequenza temporale. A tale scopo, i processi industriali più complessi sono gestiti da appositi computer oppure da PLC. Ci sono tuttavia molte piccole applicazioni (singole macchine utensili o elettrodomestici per esempio) in cui è sufficiente, per raggiungere lo scopo, impiegare una scheda di controllo con un piccolo controllore a bordo.

Affinché ciò sia possibile è necessario che il controllore integri dei timer e che il firmware ne sfrutti adeguatamente le potenzialità. Il controllore va, ovviamente, interfacciato con le unità che fisicamente permettono il controllo del processo, cioè i cosiddetti attuatori. Un attuatore è un meccanismo attraverso cui un agente, in questo caso il controllore, agisce sul processo. L’agente spesso è, pertanto, un agente intelligente artificiale che innesca, attraverso l’attuatore, l’azione fisica all’interno del processo in una forma che può essere definita automatica. Relè, motori elettrici, pistoni idraulici, elettrovalvole sono tipici dispositivi impiegati come attuatori nel controllo dei processi industriali.

Esempio applicativo

In questo paragrafo vogliamo mostrare, con un esempio applicativo tanto generale quanto semplice e flessibile, come sia possibile gestire e temporizzare, attraverso i timer di un controllore, le fasi di un processo. In figura 1 si riporta lo schema elettrico dell’applicazione. Gli attuatori sono costituiti da relè di potenza la cui chiusura scatena l’attivazione di una determinata fase del processo (per esempio l’alimentazione e quindi l’avvio di un corrispondente motore elettrico).

Nello schema di figura 1 si ipotizza di avviare il processo manualmente attraverso un apposito pulsante (SW1). Il processo è composto da tre fasi che si susseguono in modo temporizzato: a ciascuna fase corrisponde la chiusura di un determinato relè. Lo stesso processo può essere interrotto manualmente e messo in stand-by in qualunque istante premendo il pulsante  di Stop (SW2) e successivamente riavviato attraverso  il pulsante di Start. Il riavvio  del processo e la sua temporizzazione riprendono, in questo modo, dal punto in cui questo era stato messo in stand-by. Lo stop e il riavvio possono essere ripetuti, con questa logica, quante volte si voglia fino a che tutte le fasi non sono state completate, momento in cui l’unità si pone in attesa e si rende disponibile a un nuovo ciclo.

Ovviamente, disalimentando il circuito, il controllore è resettato e l’esecuzione del processo annullata; rialimentando il circuito, il flusso esecutivo riparte da zero e l’unità si rende disponibile all’esecuzione di un nuovo ciclo di processo. Lasciamo al lettore l’analisi della sezione di alimentazione  (si notino i diodi che permettono sia di limitare la tensione in ingresso al regolatore e il relativo riscaldamento, sia di proteggere  il circuito da un’eventuale inversione di polarità dell’alimentazione). Osserviamo che i pulsanti di Start e Stop sono applicati su corrispondenti stadi di ingresso digitali invertenti a transistor. Questi ultimi consentono lo spegnimento del LED sul collettore alla pressione del pulsante, il che indica in tempo reale lo stato stesso dell’ingresso; inoltre consentono di non applicare direttamente il pulsante sul controllore e di inserire una capacità sul circuito di base che in qualche misura contribuisce a prevenire effetti di bouncing. Ciascuno stadio di uscita pilota un relè di potenza che attiva la fase corrispondente del processo e segnala con un apposito LED (sul collettore del transistor) lo stato stesso dell’uscita (fase del processo).  I LED Attività (un lampeggio ogni due secondi), Stato Start e Stato Stop servono invece a indicare, istante per istante, lo stato del flusso esecutivo del processo.

Figura 1: schema elettrico dell’esempio applicativo proposto.

Figura 1: schema elettrico dell’esempio applicativo proposto.

Il Firmware

Il firmware scritto in linguaggio C implementa  il seguente comportamento:

  •  alimentato  il circuito, il controllore resta in attesa di un comando di Start (stato iniziale);
  • premendo il pulsante di Start, al rilascio è avviata la fase 1 del processo che comporta la chiusura del primo relè. La fase 1 (attuatore 1 attivo e attuatori 2 e 3 disattivi) è temporizzata e può essere interrotta e messa in stand-by attraverso  il pulsante Stop e riavviata attraverso il pulsante Start quante volte si voglia. Alla pressione del pulsante Stop la fase attiva è interrotta e il conteggio temporizzato viene momentaneamente sospeso. Il processo e la temporizzazione possono essere riavviate dal punto in cui erano state interrotte agendo di nuovo sul pulsante Start;
  • alla conclusione della fase 1 viene attivata la fase 2 (attuatore 1 e 3 disattivi e attuatore 2 attivo) e a seguire la fase 3 (attuatore 1 e 2 disattivi e attuatore 3 attivo) con la stessa modalità di gestione della fase 1.

In figura 2 è riportato una rappresentazione a LED di un possibile ciclo di esecuzione del processo (le tre fasi si susseguono come descritto; durante la prima fase è eseguita una operazione di stop e restart). Le durate delle tre fasi sono espresse nel formato “ore, minuti, secondi” attraverso le define ore_fasex, minuti_fasex e secondi_fasex. Alla fine della terza fase, gli attuatori sono tutti disattivati,  il contatore nel formato “ore, minuti, secondi” è azzerato e il firmware si pone nuovamente in stato di attesa di un comando di Start. Si noti come il pulsante di Start abbia effetto al rilascio, mentre il pulsante  di Stop ha effetto appena venga premuto. Il cuore del firmware è il temporizzatore Timer2 che presenta la caratteristica di funzionare a interrupt

Conclusioni e suggerimenti

L’hardware e la descrizione del firmware hanno lineamenti abbastanza generali e possono essere facilmente modificati secondo esigenze specifiche che rientrino in ogni caso nella casistica applicativa descritta (controllo sequenziato delle fasi di un processo). Essi, per esempio, possono essere estesi aumentando, in maniera del tutto ovvia, il numero di fasi gestite. Anche le durate delle temporizzazioni possono essere modificate facilmente variando la variabile corrispondente. Altre modifiche possono essere apportate in base alle specifiche esigenze. Ad esempio i pin RC7(RX), RC6(TX) sono stati intenzionalmente lasciati liberi e potrebbero essere sfruttati per implementare una comunicazione seriale con un’altra unità, per esempio su RS232 attraverso l’impiego di un MAX232. Analogamente sono stati lasciati liberi i pin RB2 … RB7 che potrebbero essere utilizzati per interfacciare un LCD 2x16.

Figura 2: test del firmware ed esempio di flusso del processo

 

 

 

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 19 giugno 2017

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!