FB_CTRL_RAMP_GENERATOR
Der Funktionsbaustein stellt einen parametrierbaren Rampengenerator dar.
Beschreibung:
Dieser Funktionsbaustein erzeugt eine Rampe, die den Anfangswert fStart mit dem Zielwert fTarget verbindet. Die Steigung der Rampe (also die Geschwindigkeit), wird mit den Parametern fVeloPos und fVeloNeg in Einheiten/s angegeben. Der Startwert wird mit der steigenden Flanke von bEnable übernommen und die Berechnung der Rampe wird gestartet. Während das Signal bEnable = TRUE ist, kann der Zielwert variiert werden und der Ausgangswert ändert sich rampenförmig von dem aktuellen Wert auf den jeweils aktuellen Zielwert.
Verhalten der Ausgangsgröße:
VAR_INPUT
VAR_INPUT
bEnable : BOOL;
fStart : FLOAT;
fTarget : FLOAT; (* target value *)
END_VAR
bEnable : Start der Rampengenerierung.
fStart : Startwert der Rampe.
fTarget : Zielwert der Rampe.
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 fTarget 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_PARAMS; (* RAMP_Generator parameter struct *)
END_VAR
stParams : Parameterstruktur des Rampengenerators. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_RAMP_GENERATOR_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 in Einheiten / s, mit der der Ausgang von einem niedrigeren Wert auf einen höheren überführt wird.
fVeloNeg : Geschwindigkeit in Einheiten / s, mit der der Ausgang von einem höheren Wert auf einen niedrigeren überführt wird.