Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| software:qview:qview_6:qcl_library:ot21pidreg [2019/08/29 17:01] – creata - modifica esterna 127.0.0.1 | software:qview:qview_6:qcl_library:ot21pidreg [2024/09/02 14:57] (versione attuale) – [Errori] qem214 | ||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | ====== OT21PidReg ====== | ||
| + | |||
| + | **O = **//Output digitale// | ||
| + | |||
| + | **T = **// | ||
| + | |||
| + | La funzione OT21PidReg __implementa un regolatore generico PID__. Oltre a fornire in uscita il valore di regolazione, | ||
| + | |||
| + | ===== IMPLEMENTAZIONE ===== | ||
| + | |||
| + | **OT21PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, aglOutReg )** | ||
| + | |||
| + | Parametri: | ||
| + | |||
| + | ^IN/ | ||
| + | |IN|ARRSYS|aswParReg [1]|W|Tempo di campionamento regolatore PID (msec) [0÷32767].| | ||
| + | |IN|ARRSYS|aswParReg [2]|W|Limite massimo di scala della variabile da regolare(UM) [-32768÷32767]| | ||
| + | |IN|ARRSYS|aswParReg [3]|W|Limite minimo di scala della variabile da regolare(UM) [-32768÷32767]| | ||
| + | |IN|ARRSYS|aswParReg [4]|W|Valore massimo uscita di regolazione [-32768 ÷32767]| | ||
| + | |IN|ARRSYS|aswParReg [5]|W|Valore minimo uscita di regolazione [-32768 ÷32767]| | ||
| + | |IN|ARRSYS|aswParUsr [1]|W|Guadagno proporzionale.('' | ||
| + | |IN|ARRSYS|aswParUsr [2]|W|Tempo integrale (msec) [0÷9999]| | ||
| + | |IN|ARRSYS|aswParUsr [3]|W|Tempo derivativo (msec) [0÷9999]| | ||
| + | |IN|ARRSYS|aswParUsr [4]|W|Tempo di campionamento della derivata [0÷255]\\ 0=tempo di campionamento regolatore PID\\ 1=2*tempo di campionamento regolatore PID\\ …\\ …\\ n=(n+1)*tempo di campionamento regolatore PID| | ||
| + | |IN|ARRSYS|aswParUsr [5]|W|Costante di tempo filtro derivata (msec.) [0÷9999]| | ||
| + | |IN|ARRSYS|aswParUsr [6]|W|Feed Forward (‰) [0÷2000]| | ||
| + | |IN|GLOBAL|gwSetPoint|W|Setpoint di regolazione (UM)| | ||
| + | |IN|GLOBAL|gwMeasure|W|Valore della variabile da regolare(UM)| | ||
| + | |IN|GLOBAL|gfEnaReg|F|Abilitazione regolazione [0÷1]\\ 0=regolatore disabilitato\\ 1=regolatore abilitato| | ||
| + | |OUT|ARRGBL|aglOutReg[1]|L|Registro uscita PID| | ||
| + | |OUT|ARRGBL|aglOutReg[2]|L|Registro uscita proporzionale| | ||
| + | |OUT|ARRGBL|aglOutReg[3]|L|Registro uscita integrale| | ||
| + | |OUT|ARRGBL|aglOutReg[4]|L|Registro uscita derivativa| | ||
| + | |OUT|ARRGBL|aglOutReg[5]|L|Registro uscita feedforward| | ||
| + | |OUT|ARRGBL|aglOutReg[6]|L|Registro errore| | ||
| + | |OUT|ARRGBL|aglOutReg[7]|L|Stati del regolatore: | ||
| + | |OUT|ARRGBL|aglOutReg[8]|L|Codice Errore| | ||
| + | |||
| + | ==== Errori ==== | ||
| + | |||
| + | Una volta richiamata la funzione la variabile " | ||
| + | 0: Nessun errore\\ | ||
| + | 1: errore impostazione tempo di campionamento\\ | ||
| + | 2: errore impostazione limite inferiore e/o superiore di scala\\ | ||
| + | 3: errore impostazione valore guadagno proporzionale\\ | ||
| + | 4: errore impostazione tempo integrale\\ | ||
| + | 5: errore impostazione tempo derivativo\\ | ||
| + | 6: errore impostazione valore percentuale feed-forward\\ | ||
| + | 7: errore impostazione valore minimo e/o valore massimo uscita regolatore\\ | ||
| + | 8: errore impostazione tempo di campionamento derivativa\\ | ||
| + | 9: errore impostazione costante di tempo filtro derivata | ||
| + | |||
| + | === Esempio === | ||
| + | |||
| + | <code QCL> | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | aswParReg [0]=500 ; tempo campionamento = 500ms | ||
| + | aswParReg [1]=10000 ; | ||
| + | aswParReg [2]=0 | ||
| + | aswParReg [3]=500 ; Valore massimo uscita regolatore | ||
| + | aswParReg [4]=0 | ||
| + | |||
| + | aswParUsr[1] = 100 ; Guadagno proporzionale = 0.1 | ||
| + | aswParUsr[2] = 200 ; Tempo integrale = 0.2 sec. | ||
| + | |||
| + | gfEnaReg = 1 ; | ||
| + | MAIN: | ||
| + | gwSetPoint = 800 | ||
| + | OT20PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, aslOutReg ) | ||
| + | ofOutPow = aslOutReg[7] ANDB &H01 | ||
| + | WAIT 1 | ||
| + | JUMP MAIN | ||
| + | </ | ||
| + | |||
| + | ==== Definizione di regolatore ==== | ||
| + | |||
| + | Un regolatore legge una variabile di ingresso (gwMeasure), | ||
| + | |||
| + | ==== Regolatore PID ==== | ||
| + | |||
| + | Uno dei più diffusi tipi di regolatori è il PID (Proportional, | ||
| + | |||
| + | === Azione proporzionale === | ||
| + | Questa azione di controllo stabilisce una relazione di proporzionalità diretta tra l' | ||
| + | La regola che stabilisce il valore di uscita (aslOutReg[7]) definisce che: con guadagno unitario (1000), l' | ||
| + | |||
| + | === Azione integrale === | ||
| + | L' | ||
| + | |||
| + | === Azione derivativa === | ||
| + | L' | ||
| + | |||
| + | === Azione feed-forward === | ||
| + | |||
| + | In aggiunta al regolatore PID è presente anche l' | ||
| + | |||
| + | === DIFFERENZE RISPETTO ALLE VECCHIE RELEASE === | ||
| + | * (dalla 20 alla 21) Aggiunto uno stato di esecuzione regolazione. ? Evitato un errore "" | ||