FB_CTRL_2POINT_PWM_ADAPTIVE
Der Funktionsbaustein stellt einen adaptiven Zweipunkt-Regler dar, der insbesondere für Einzelraumregelungen geeignet ist, bei denen hohe Vorlauftemperaturen vorhanden sind und die ein thermisches Stellglied einsetzen.
Verhalten des Ausgangs:
Beschreibung der Funktionsweise:
Der Regler nutz intern einen PWM-Baustein, der zu Ansteuerung des thermischen Stellglieds verwendet wird. Das Puls-Pausen-Verhältnis des PWM-Bausteins wird adaptiv an das Verhalten der Regelstrecke angepasst. Der PWM-Ausgang wird eingeschaltet, sobald die Regelabweichung fE = Sollwert - Istwert größer Null ist und abgeschaltet, wenn die Regelabweichung kleiner Null ist. Solange sich die Regelabweichung innerhalb des Intervalls [ -fOkRange ... fOkRange] befindet, wird das Puls-Pausen-Verhältnis nicht verändert. Wenn fE > fOkRange ist, wird das Puls-Pausen-Verhältnis um fStepSize erhöht. Nach diesem Erhöhen wird die Zeit tWaitTime abgewartet, bevor das Puls-Pausen-Verhältnis eventuell erneut verändert wird. Bei unterschreiten von -fOkRange wird das Puls-Pausen-Verhältnis um fStepSize reduziert. Das Puls-Pausen-Verhältnis wir nur innerhalb des Intervalls [fMinLimit ... fMaxLimit] variiert. Die Periodendauer des PWM-Signals wird mit dem Parameter tPWMPeriod angegeben.
VAR_INPUT
VAR_INPUT
fSetpointValue : FLOAT;
fActualValue : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
END_VAR
fSetpointValue : Sollwert der Regelgröße.
fActualValue : Istwert der Regelgröße.
fManSyncValue : Eingang, auf den das Puls-Pausen-Verhältnis des Reglers gesetzt werden kann, oder mit dem der Ausgang im Manual-Mode gesetzt werden kann. Im Manual-Mode wird der Ausgang gesetzt, wenn fManSyncValue > 0.0 ist.
bSync : Mit einer steigenden Flanke an diesem Eingang wird das Puls-Pausen-Verhältnis des internen PWM-Bausteins auf den Wert fManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
bOut : BOOL;
fPWMDutyCycle : FLOAT; (* debug only *)
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
bOut : Ausgang des Reglers.
fPWMDutyCycle : Aktuelles Puls-Pausen-Verhältnis des internen PWM-Bausteins.
eState : State des Funktionsbausteins.
eErrorId : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.
bError : Wird TRUE, sobald ein Fehler eintritt.
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_2POINT_PWM_ADAPTIVE_PARAMS;
END_VAR
stParams : Parameterstruktur des 2Punkt-Glieds. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_2POINT_PWM_ADAPTIVE_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller cycle
[TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle time
[TIME] *)
tPWMPeriod : TIME
fOkRange : FLOAT
fForceRange : FLOAT
fStepSize : FLOAT
fMinLimit : FLOAT (* [0% ... 100%]
*)
fMaxLimit : FLOAT (* [0% ... 100%]
*)
tWaitTime : TIME
END_STRUCT
END_TYPE
tCtrlCycleTime : Zykluszeit, mit der der Regelkreis bearbeitet wird. Diese muss größer oder gleich der TaskCycleTime sein. Der Funktionsbaustein berechnet mit dieser Eingangsgröße intern, ob die Zustands- und Ausgangsgrößen im aktuellen Zyklus aktualisiert werden müssen.
tTaskCycleTime : Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.
tPMWPeriod :Periodendauer des PWM-Signals.
fOkRange :Bereich von fE, in dem das Puls-Pausen-Verhältnis nicht verändert wird.
fForceRange :Wenn fE diesen Bereich überschreitet, wird das Ausgang dauerhaft auf TRUE gesetzt.
fStepSize :Wert, um den das Puls-Pausen-Verhältnis bei jeder Adaption variiert wird. [0% ... 100%]
fMaxLimit :Maximales Puls-Pausen-Verhältnis in Prozent [0% ... 100%].
fMinLimit :Minimales Puls-Pausen-Verhältnis in Prozent [0% ... 100%].
tWaiTimet :Wartezeit zwischen den einzelnen Variationen des Puls-Pausen-Verhältnisses.