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