FB_CTRL_RAMP_GENERATOR

FB_CTRL_RAMP_GENERATOR 1:

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:

FB_CTRL_RAMP_GENERATOR 2:

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.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.8

PC (i386)

TcControllerToolbox.lib

TwinCAT v2.9 ab Build 947

BC

TcControllerToolbox.lb6

TwinCAT v2.9 ab Build 956

BX

TcControllerToolbox.lbx