FB_CTRL_PARAMETER_SWITCH
Mit diesem Baustein kann der Parametersatz des FB_CTRL_PID_SPLITRANGE umgeschaltet werden.
Verhalten des Ausgangs:
Beschreibung des Funktionsbausteins:
Dieser Baustein dient zur Umschaltung des Parametersatzes bei dem FB_CTRL_PID_SPLITRANGE. Insbesondere ist dieser Baustein dazu gedacht, bei Regelungen, die mit zwei Stellgliedern heizen und kühlen können, die Parametersätze umzuschalten und die Begrenzungen des Reglers zu setzen. Als Eingangsparameter wird die Zeit tMinWaitTime angegeben, die bei einer Umschaltanforderung mindestens vergehen muss, damit der Parameterbereich gewechselt wird und die Reglerbegrenzungen so gesetzt werden, damit vom Heizbetrieb auf Kühlbetrieb umgeschaltet wird. Durch diese Maßnahmen soll verhindert werden, dass bei einem leichten Überschwingen des Reglers sofort die Betriebsart gewechselt wird.
Für den Heizbetrieb wird der Parameterbereich eCTRL_PARAMETER_RECORD_HEATING = Heizen angewählt und für den Kühlbetrieb der Parameterbereich eCTRL_PARAMETER_RECORD_COOLING = Kühlen. Die Reglerparametersätze müssen entsprechend dieser Vorgabe parametriert werden.
Die eigentliche Umschaltanforderung wird mit einem 2-Punkt-Glied bestimmt (vergleiche Bild). Als Eingangsgröße für die gezeigte Hysterese-Kennlinie sollte die Reglerausgangsgröße, also die Stellgröße, verwendet werden. Eine Umschaltanforderung, die das Hysterese-Glied erzeugt, muss mindestens für die angegebene Wartezeit anliegen, damit der Parameterbereich gewechselt wird.
Mit den Eingängen bDisableRange1 und bDisableRange2 ist es möglich, die Umschaltung in einen der beiden Bereiche zu verhindern. So kann beispielsweise im Sommer der Heizbetrieb deaktiviert werden und im Winter der Kühlbetrieb. Denkbar ist es auch, den Wechsel der Betriebsart von der aktuellen Regeldifferenz abhängig zu machen. Im Sommer muss es zum Beispiel 2°C zu warm sein, damit in den Kühlbetrieb geschaltet wird. Auch dieses kann durch eine entsprechende Beschaltung der Eingänge erreicht werden.
Zusätzlich zu der Ausgabe des Parameterbereiches werden Max- und Min-Limits ausgeben, die in den Parametersatz des PID-Reglers kopiert werden können. Wenn sich der FB_CTRL_PARAMETER_SWITCH in der Betriebsart Heizen befindet, werden die Limits folgendermaßen gesetzt:
In der Betriebsart Kühlen werden die Limits folgendermaßen gesetzt:
VAR_INPUT
VAR_INPUT
fManipulatedVariable : FLOAT; (* fOut from the FB_CTRL_PID_SPLITRANGE *)
nManSyncValue : eCTRL_PARAMETER_RECORD_HEATING;
bSync : BOOL;
eMode : E_CTRL_MODE;
END_VAR
fManipulatedVariable : Eingangsgröße des FB_Parameter_Switch. Diese sollte gleich der Ausgangsgröße des Reglers sein.
nManSyncValue : Eingang, mit dem der Funktionsbaustein auf einen der beiden Parameterbereiche gesetzt werden kann.
bSync : Mit einer steigenden Flanke an diesem Eingang wird der Funktionsbaustein auf den Wert nManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
eParameterRecord : E_CTRL_PARAMETER_RECORD;
fOutMaxLimit : FLOAT;
fOutMinLimit : FLOAT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
eParameterRecord : Ausgang des Funktionsbausteins, der den Parameterbereich angibt.
fOutMaxLimit : Maximale Ausgangsgröße, mit der der Regler begrenzt wird. (Sollte in die Parameter-Struktur des Reglers kopiert werden.)
fOutMinLimit : Minimale Ausgangsgröße, mit der der Regler begrenzt wird. (Sollte in die Parameter-Struktur des Reglers kopiert werden.)
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_PARAMETER_SWITCH_PARAMS;
END_VAR
stParams : Parameterstruktur des Funktionsbausteins. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_2POINT_PARAMS :
STRUCT
tTaskCycleTime : TIME; (* task cycle time [TIME]
*)
tCtrlCycleTime : TIME; (* controller cycle time [TIME]
*)
fThreshold : FLOAT;
fOutMaxLimit : FLOAT; (* max limit for heating
*)
fOutMinLimit : FLOAT; (* min limit for heating
*)
tMinWaitTime : TIME;
END_STRUCT
END_TYPE
tTaskCycleTime : Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.
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.
fThreshold : Schaltschwelle, siehe Bild oben.
fOutMaxLimit : Max-Limit, welches an den Regler weitergegeben wird.
fOutMinLimit : Min-Limit, welches an den Regler weitergegeben wird.
tMinWaitTime : Wartezeit (siehe Beschreibung oben)