STM035 - PID per termoregolazione per PLC Q

Transcript

STM035 - PID per termoregolazione per PLC Q
Area FA - HMI
Specifica tecnica STM035
Cliente: ##
PID per termoregolazione per
PLC Q
Mod. FA_STM_00
STM035.docx
Rev. 00
Firme
Data: 28/03/2013
Preparato da:
Pag. 1/15
Verificato da:
Munari Alessandro
Firma digitale
Munari Alessandro
Firma digitale
Sommario
01. Introduzione
1.1
1.2
1.3
Scopo del documento
Librerie e documentazione di riferimento
Documentazione PID
02. Configurazione hardware del test
03. Creazione del progetto con GX-WORKS2
3.1
3.2
3.3
Integrazione della libreria
Funzioni della libreria
Sviluppo del progetto con GX-WORKS per la termoregolazione di 4 punti
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
Integrare la scheda Q64TD
Creare una GlobalLabel per la parametrizzazione dei PID
Creare una FB che inizializza le variabili dei 4 Loop
Creare FB per il comando PWM
Creare programma POU_Termoregolatore
04. Considerazioni sulla regolazione PID
4.1
Confronto curve di riscaldo con / senza Preheat range
05. Conclusioni
STM035.docx rev.00
Data: 28/03/2013
pag. 2 di 15
01. Introduzione
1.1 Scopo del documento
Scopo del seguente documento è realizzare un progetto software su PLC serie Q per la gestione
della termoregolazione di quattro pinze saldanti.
Questo pacchetto si rende necessario quando si acquistano le schede di temperatura tipo Q64TD
che eseguono la lettura della temperatura e non hanno integrato il PID per la termoregolazione e i
relativi comandi hardware (uscite PWM o analogiche).
1.2 Librerie e documentazione di riferimento
Dal sito MyMitsubishi ci sono due librerie a disposizione per la regolazione PID:
A) PidHvacQ
Libreria del 2006 sviluppata per GX IEC.
Vedi directory …\LIBRERIE\ [Q] PID DEVELOPER - IEC
B) System_Q___GX_Works2___PID_Control___PidQ_GW2_V100
Libreria del marzo 2012 sviluppata per GX-WORKS3
Vedi directory …\LIBRERIE\[Q] PID GX-WORKS2
La libreria A) è completa non solo delle funzioni PID ma anche delle funzioni per la gestione di impianti HVAC . Essendo realizzata in GX-IEC deve essere adattata in alcune istruzioni perché non
compatibili. Ha un ottimo help.
La libreria B) ha solo le funzioni PID e sarebbe già pronta all’uso. L’help è molto limitato.
In vista di sviluppi futuri si è preferito utilizzare la libreria A).
Att.ne: seguire bene le istruzioni di seguito in quanto sono necessarie alcune modifiche alle
librerie per renderle funzionanti.
1.3 Documentazione PID
Vedi: \Documentazione PID\sh080040m_PID Control
In questo documento viene spiegato nel dettaglio il funzionamento dell’algoritmo PID integrato nella CPU.
E’ importante sapere che l’algoritmo PID è integrato ed elaborato all’interno della CPU.
Le librerie A) o B) hanno come scopo:
- Assegnare le aree di lavoro del PID ( R o D),
- Stabilire quanti PID LOOP sono attivi.
- Passare i parametri di regolazione (P.I.D.)
- Fornire dei FB di facile utilizzo.
STM035.docx rev.00
Data: 28/03/2013
pag. 3 di 15
02. Configurazione hardware del test
GT12
ETH connection
Q06UDEHCPU
Q64TD
QY80
GT12
NR. 1
NR. 1
NR. 1
CPU
Modulo acquisizione 4 termocoppie tipo J …
Modulo uscite statiche per comando relè statico riscaldamento
Terminale impostazione parametri
Sonda tipo J
Relè statico per comando resistenza riscaldamento 230vac
Gruppo pinza scaldante
Il test è stato eseguito su una sola pinza scaldante, ma la configurazione è per 4 gruppi.
STM035.docx rev.00
Data: 28/03/2013
pag. 4 di 15
03. Creazione del progetto con GX-WORKS2
3.1 Integrazione della libreria
Per creare da zero il progetto utilizzando la libreria IEC è necessario eseguire alcune modifiche alla libreria stessa per renderla funzionante e per evitare errori durante la compilazione. Da notare infatti che tale libreria deriva da GX-DEVELOPER IEC.
Importare la LibreriaPidHvacQ_V400:
Rinominare Global1
in Global_HVAC
Rinominare FB
PWM in PWM_HVAC
RAMP in RAMP_HVAC
STM035.docx rev.00
Data: 28/03/2013
pag. 5 di 15
All’interno della FB PWM_Hvac, rinominare su LocalLabel e su Program la variabile
PWM in PWM_hvac
All’interno della FB InPidQ, rinominare su LocalLabel e su Program le variabili
Max in Max_Input
k in k_line
IMPORTANTE!!!
Le librerie di configurazione PID riportate qui sotto devono essere modificate altrimenti
non funzionano.
L’istruzione BMOV che sposta due variabili deve essere sostituita con due MOVE separati.
Non
funziona
Sostituisci con:
OK
Stessa modifica (con le opportune personalizzazioni) deve essere fatta alle altre FB
PIDControl… se utilizzate.
STM035.docx rev.00
Data: 28/03/2013
pag. 6 di 15
Modificare D345Z9:
Errato
Sostituire con D105Z9:
OK
A questo punto è possibile utilizzare le funzioni base della libreria.
3.2 Funzioni della libreria
Per una spiegazione dettagliata di tutte le funzioni si rimanda all’help della libreria:
La parte essenziale del PID fa riferimento ai seguenti FB:
 FB confiugurazione blocco PID
PIDControlQBaseD
32 PID su CPU base appoggiato alle variabili D
PIDControlQBaseR
32 PID su CPU base appoggiato alle variabili R
PIDControlQHighD
64 PID su CPU High appoggiato alle variabili D
PIDControlQHighR
64 PID su CPU High appoggiato alle variabili R
 FB avvio blocco PID
PIDStartQBaseD
PIDStartQBaseR
PIDStartQHighD
PIDStartQHighR
Avvio blocco PID configurato in PIDControlQBaseD
Avvio blocco PID configurato in PIDControlQBaseR
Avvio blocco PID configurato in PIDControlQHighD
Avvio blocco PID configurato in PIDControlQHighR
Nell’esempio abbiamo scelto di usare il PIDControlQBaseD perché ci servivano solo 4
PID di regolazione su variabili D. Utilizzando PIDControlQHighD avremmo inutilmente
sprecato risorse di sistema.
STM035.docx rev.00
Data: 28/03/2013
pag. 7 di 15
3.3 Sviluppo del progetto con GX-WORKS per la termo
regolazione di 4 punti.
Per la termoregolazione di quattro punti, come da esempio allegato, si è partiti dunque dalla libreria standard IEC scaricata dal sito, eseguendo le modifiche come indicato in precedenza. Segue ora la descrizione delle parti salienti del codice sviluppato per il controllo
completo del programma.
3.3.1 Integrare la scheda Q64TD e configurare i 4 canali
per lettura termocoppie tipo J.
Nei parameter della scheda abilitare i quattro canali:
In caso di guasto alla sonda, assegnare come sicurezza il valore di fondoscala: in tal modo si ferma il riscaldamento.
STM035.docx rev.00
Data: 28/03/2013
pag. 8 di 15
3.3.2 Creare una GlobalLabel per la parametrizzazione dei PID; Vedi programma di
esempio per la configurazione completa.
Impostare la PidQBaseDGlobal. Segue un estratto della prima parte:
La variabile DOffset_P:
rappresenta l’offset di partenza delle variabili D che la CPU utilizzarà per il funzionamento
del PID.
Per il funzionamento di PIDControlQBaseD la CPU necessita di 493 word a 16 bit, pertanto nell’esempio la CPU utilizzerà da D500 a D992.
La definizione dell’array:
è puramente indicativa per far capire che da D500 per 493 word (D500-D993) non devono
essere usate.
La variabile
Rappresenta la memoria che inizializza tutte le variabili al valore di default.
STM035.docx rev.00
Data: 28/03/2013
pag. 9 di 15
3.3.3 Creare una FB che inizializza le variabili dei 4 Loop PID a dei valori predefiniti.
STM035.docx rev.00
Data: 28/03/2013
pag. 10 di 15
3.3.4 Creare FB per il comando PWM.
Il sistema di riscaldamento dell’esempio utilizza un relè statico che deve essere pilotato
mediante PWM. Il PID restituisce un valore continuo -32000 / +32000 perciò si rende necessario definire una FB che converta tale valore in un PWM da associare ad un’uscita
ON/OFF.
NOTA: La PWM_hvac non è stata utilizzata per due motivi: 1) avrebbe dovuto essere riscritta in quanto ha all’interno molti comandi obsoleti 2) Usa una base tempi 100ms al posto di 10ms.
3.3.5 Creare il programma
POU_Termoregolatore
come da esempio.
Il programma è diviso in 3 sezioni:
SEZIONE 1
Inizializzazione PID CPU e
parametri di configurazione
STM035.docx rev.00
Data: 28/03/2013
pag. 11 di 15
SEZIONE 2a CH1
Lettura ingresso
- controllo limiti parametri
PREHEAT
- Attivazione man/aut PID
SEZIONE 2b CH1
- Lancio PID
- Comando PWM per termoregolazione
Seguono le sezioni 2a CH2 / 2b CH2 … CH4.
Per concludere e la sezione 3:
SEZIONE 3
- Avvio dei 4 PID
NOTE:
1) Il comando PIDStart… deve sempre essere lanciato DOPO i PIDControl…
2) In numero di PID lanciati deve corrispondere ai PIDControl… dichiarati in precedenza, altrimenti si avrà un CPU ERROR.
STM035.docx rev.00
Data: 28/03/2013
pag. 12 di 15
4
Considerazioni sulla regolazione PID
L’algoritmo PID prevede tre parametri di regolazione: proporzionale, integrale e derivativo.
Per la spiegazione dettagliata si rimanda ai documenti allegati.
Nella termoregolazione della pinza termosaldante (oggetto dell’esempio), sono stati inseriti
altri tre parametri per velocizzare il raggiungimento della temperatura desiderata evitando
grosse sovraoscillazioni e garantendo tempi rapidi per il raggiungimento del setpoint:
PrHeON
PrHePw
AllOff
= Preheat ON range in °C
= Preheat power in %
= Allways OFF in °C
Premesso che
PV=Process Value e SP=Setpoint value
Se PV > SP + AllOff l’uscita è forzata ad OFF e il PID è inattivo.
Il parametro AllOff ha lo scopo di prevenire eventuali impostazioni errate del PID che possono portare a sovratemperature eccessive. Deve essere considerato un parametro di sicurezza, per questo viene proposto di default a 10 gradi. Se viene impostato a valori molto
piccoli rischia di interagire con il PID e quindi farlo lavorare male.
Se PV < SP - PrHeON
inattivo.
l’uscita è forzata ON con potenza fissa = PrHePw% e il PID è
Il parametro PrHeON (e relativa potenza PrHePw) viene utilizzato per velocizzare il riscaldamento da freddo evitando eccessive sovraelongazioni.
Infatti se si volesse riscaldare da temperatura ambiente utilizzando solo i parametri PID si
dovrebbero utilizzare una parametrizzazione “soft” (=Kp piccolo KI=elevato) per evitare
l’overshoot dovuto all’inerzia termica del sistema; con questa configurazione però i tempi
per raggiungere il setpoint sono molto alti.
In alternativa si possono modificare i parametri PID per rendere più pronta la regolazione
(KP elevata, KI piccola); si arriva prima al Setpoint ma con il rischio di ottenere un overshoot molto ampio.
STM035.docx rev.00
Data: 28/03/2013
pag. 13 di 15
4.1 Confronto curve di riscaldo con / senza Preheat range.
Riscaldamento
con
Preheat=30,0°C
SV=150°C
PV
Out%
400sec
= 6’40”
Overshoot
= 20°C
Riscaldamento
con
Preheat=150,0°C
(=ESCLUSO!)
Si evidenzia come, nella curva senza Preheat, l’overshoot (dovuto all’inerzia) è molto
grande a causa del notevole errore PID accumulato.
Nella curva con Preheat il tempo di riscaldo è paragonabile ma con overshoot azzerato.
Senza il preheat si poteva limitare l’overshoot mettendo un’azione PID molto più soft, con
due problematiche:
1) aumento notevole del tempo di riscaldo;
2) lentezza di risposta alle variazione quando li sistema è a regime di temperatura costante.
STM035.docx rev.00
Data: 28/03/2013
pag. 14 di 15
5
Conclusioni
1) La regolazione dei parametri PID deve essere comunque personalizzata specificatamente per ogni sistema.
2) Solo poche istruzioni della libreria IEC sono state usate in questo esempio. Tutte le
altre funzioni HVAC devono essere convertite a GX-WORKS da GX-DEVELOPERIEC.
3) E’ consigliabile realizzare il grafico temporale dei valori di SetPointValue (SV), ProcessValue (PV) e Out%; Risulta indispensabile in applicazioni dove non si conosce
come risponde il sistema e come devono essere tarati i parametri PID (con eventuale Preheat o altri algoritmi sovrapposti).
FINE DOCUMENTO
STM035.docx rev.00
Data: 28/03/2013
pag. 15 di 15