FB_CTRL_RAMP_GENERATOR_EXT
Der Funktionsbaustein stellt einen parametrierbaren Rampengenerator dar, welcher gegenüber dem FB_CTRL_RAMP_GENERATOR die E_CTRL_MODE's unterstützt.
Beschreibung:
Dieser Funktionsbaustein erzeugt eine Rampe, die den Anfangswert fStartValue mit dem Zielwert fTargetValue verbindet. Die Steigung der Rampe (also die Geschwindigkeit), wird mit den Parametern fVeloPos und fVeloNeg in Einheiten/s angegeben. Der Startwert wird bei einem Wechsel vom eCTRL_MODE_RESET in den eCTRL_MODE_ACTIVE übernommen und die Berechnung der Rampe wird gestartet. Während sich der Baustein im eCTRL_MODE_ACTIVE befindet, kann der Zielwert variiert werden und der Ausgangswert ändert sich rampenförmig von dem aktuellen Wert auf den jeweils aktuellen Zielwert. An dem Ausgang fVeloOut wird die jeweils aktuelle Geschwindigkeit ausgegeben. Diese kann eventuell zur Vorsteuerung des Regelkreises genutzt werden.
Verhalten der Ausgangsgröße:
VAR_INPUT
VAR_INPUT
fStartValue : FLOAT;
fTargetValue : FLOAT;
fManValue : FLOAT;
bHold : BOOL;
eMode : E_CTRL_MODE;
END_VAR
fStartValue : Startwert der Rampe.
fTargetValue : Zielwert der Rampe.
fManValue : Eingangsgröße, auf die der Ausgang im eCTRL_MODE_MANUAL gesetzt wird.
bHold : Die Berechnung der Rampe wird auf dem aktuellen Wert angehalten.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
fVeloOut : FLOAT;
bValueReached : BOOL;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fOut : Ausgang des Rampengenerators.
fVeloOut : Aktuelle Geschwindigkeit des Rampengenerators.
bValueReached : Der Ausgang signalisiert mit einem TRUE, das der Ausgang fOut den Wert fTargetValue erreicht hat.
eState : State des Funktionsbausteins.
eErrorId : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.
bError : Wird TRUE, sobald eine Fehlersituation eintritt.
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_RAMP_GENERATOR_EXT_PARAMS;
END_VAR
stParams : Parameterstruktur des Rampengenerators. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_RAMP_GENERATOR_EXT_PARAMS :
STRUCT
tTaskCycleTime : TIME; (* task cycle time [TIME]
*)
tCtrlCycleTime : TIME; (* controller cycle time [TIME]
*)
fVeloPos : FLOAT; (* velocity ramp by time range:
> 0.0 *)
fVeloNeg : FLOAT; (* velocity ramp by time range:
> 0.0 *)
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 Task-Zyklus aufgerufen wird.
fVeloPos : Geschwindigkeit (>0.0) in Einheiten / s, mit der der Ausgang von einem niedrigeren Wert auf einen höheren überführt wird.
fVeloNeg : Geschwindigkeit (>0.0) in Einheiten / s, mit der der Ausgang von einem höheren Wert auf einen niedrigeren überführt wird.