Controllo di temperatura di un liquido in una vasca tramite PID implementato su PLC
 

 

 

 

Descrizione modulo controllo attuatore
La parte di controllo dell’attuatore è stata implementata in SFC

Nell’action associata allo step 0 viene campionato il valore di potenza al quale deve essere impostata la resistenza Pattuat (settato dal programma che si occupa del controllo), tale valore viene limitato fra 0 e 36 ed assegnato al registro Ycorr. Dallo step 0 si dipartono delle sequenze loop alternative (a ogni program scan solo una delle sequenze sarà eseguita, in funzione della transizione che scatterà); alla fine di ogni sequenza, o nel caso in cui non scatta nessuna delle transizioni 6, 11 o 5 e quindi non viene eseguita nessuna fra le sequenze si ritorna sempre allo step 0 per campionare un nuovo valore di Pattuat. Analizziamo ora quali sono le condizioni associate a ogni transizione e quello che viene fatto in ogni sequenza.


Lo step 1 spegne la resistenza resettando il circuito che controlla la potenza erogata mandando un impulso di 1 secondo su Resetta (O 52) e inizializza Yprec e Ycorr a 36. Lo step viene eseguito se la resistenza è accesa e Ycorr=0 oppure se il livello del liquido nella vasca principale non copre completamente la resistenza (LminRP=0) evitando che si possa accendere la resistenza quando non è immersa nel liquido.
Nella sequenza viene impostato UP a livello logico basso per indicare che il circuito di controllo, opportunamente comandato, tenderà ad abbassare la tensione di alimentazione della resistenza e quindi la potenza erogata.


Lo step 8 è eseguito se non viene eseguito lo step precedente e la resistenza è spenta e completamente immersa nel liquido (LminRP=1) mentre Ycorr>0. L’esecuzione della sequenza si occupa di accendere la resistenza al valore massimo di potenza, mandando un impulso di comando della durata di 300 ms al circuito che controlla la tensione di alimentazione della resistenza su Att (O 51).


Lo step 6 è eseguito se non viene eseguita nessuna delle sequenze descritte in precedenza e se il valore della potenza che eroga la resistenza (accesa e completamente immersa nel liquido) è diverso da Ycorr, e quindi occorre variare la potenza erogata dalla resistenza.
Nell’action associata allo step 6 viene effettuato il calcolo dell’ampiezza dell’impulso da inviare al circuito di controllo per fare in modo che la resistenza eroghi la potenza specificata da Ycorr (Intervallo=|Ycorr-Yprec|) e :

  • viene settato il flag modifica se la variazione della potenza è concorde con l’andamento imposto alla tensione di alimentazione della resistenza dal circuito di regolazione (specificato dal flag UP se il circuito di regolazione tende ad aumentare la tensione di alimentazione). In tal caso verrà attivato lo step 10 la cui action associata si occupa di invertire il flag UP, in modo da nvertire, dopo la regolazione, l'andamento imposto alla tensione di alimentazione della resistenza dal circuito di regolazione. (vedi descrizione di funzionamento regolatore o datasheet SLB0587) .
  • Viene settato il flag inverti nel caso in cui la modifica della potenza non è concorde con l’andamento imposto alla tensione di alimentazione della resistenza dal circuito di regolazione, e in tal caso occorrerà invertire l’andamento al circuito di regolazione. Verrà attivato, quindi, lo step 2. La sequenza alternativa si occupa di inviare al circuito di regolazione un impulso di 500 ms per invertire l’andamento imposto alla tensione di alimentazione della resistenza dal circuito di regolazione e procedere successivamente alla regolazione vera e propria, che dovrà incrementare il valore di Intervallo di Intagg=100 ms usati per invertire l’andamento del circuito di regolazione (se non viene fatta l’inversione Intagg=0).


Nell’action associata allo step 7 viene effettuata la vera e propria regolazione inviando al circuito di controllo un impulso tramite Att (O 51) della durata di 400 ms + Intervallo + Intagg per portare la tensione di alimentazione della resistenza ad un valore tale da imporre una erogazione della potenza proporzionale al valore di Ycorr, infatti:


Pot. Erogata=Ycorr*1200/36
(in linea di massima con le dovute approssimazioni)


Nell’action associata allo step 9 viene aggiornato Yprec con il valore corrente della potenza erogata dalla resistenza Ycorr.

Clicca per vedere il filmato

 
SOFTWARE