FB_CTRL_SETPOINT_GENERATOR
Der Funktionsbaustein stellt einen Sollwertgenerator dar, der aus einer Tabelle den angewählten Sollwert ausgibt. Der Wechsel von einem zum anderen Sollwert kann stetig oder unstetig erfolgen.
Verhalten der Ausgangsgröße
Tabelle des Beispiels:
Index |
|
---|---|
1 | 12 |
2 | 42 |
3 | 25 |
… | 73 |
Beschreibung
In dem Array, welches mit den entsprechenden Parametern dem Baustein bekannt gemacht wird, werden die einzelnen Sollwerte abgelegt. Über den Eingang nSetpointIndex
wird ein in der Tabelle hinterlegter Sollwert ausgewählt. Dieser wird dann am Ausgang ausgegeben und kann als Sollwert für die Regelung verwendet werden. Der Wechsel von einem Wert auf einen anderen kann linear oder sprungförmig erfolgen. Die Geschwindigkeit eines stetigen Übergangs wird mit den Parametern fVeloPos und fVeloNeg festgelegt. Der Ausgang bValueReached
signalisiert das Erreichen des angewählten Sollwertes.
Eingänge
VAR_INPUT
nSetpointIndex : INT;
fManValue : FLOAT;
eMode : E_CTRL_MODE;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
nSetpointIndex | INT | Index des angewählten Sollwertes |
fManValue | FLOAT | Eingang, der im Manual-Mode ausgegeben wird. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
Ausgänge
VAR_OUTPUT
fOut : SETPOINT_TABLE_ELEMENT;
bValueReached : BOOL;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOut | SETPOINT_ | Ausgang des Sollwert-Generators |
bValueReached | BOOL | Der Ausgang ist TRUE, wenn der angewählte Sollwert erreicht worden ist, also wenn das Rampen auf den angewählten Wert beendet ist. |
eState | E_CTRL_STATE | State des Funktionsbausteins |
eErrorId | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
Ein-/ Ausgänge
VAR_IN_OUT
stParams : ST_CTRL_SETPOINT_GENERATOR_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_SETPOINT_ | Parameterstruktur des Rampengenerators |
stParams
besteht aus den folgenden Elementen:
TYPE ST_CTRL_SETPOINT_GENERATOR_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
pDataTable_ADR : POINTER TO
INTERPOLATION_TABLE_ELEMENT := 0;
nDataTable_SIZEOF : UINT := 0;
nDataTable_NumberOfRows : UINT := 0;
fVeloPos
: FLOAT;
fVeloNeg : FLOAT;
bDisableRamping : BOOL := FALSE;
END_STRUCT
END_TYPE
Name | Typ | Beschreibung |
---|---|---|
tCtrlCycleTime | TIME | 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 | TIME | Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird. |
pDataTable_ADR | POINTER TO INTERPOLATION_ | Adresse des Daten-Arrays |
nDataTable_SIZEOF | UINT | Größe des Daten-Arrays |
nDataTable_NumberOfRows | UINT | Anzahl der Zeilen des Daten-Arrays |
fVeloPos | FLOAT | Geschwindigkeit in Einheiten / s, mit der der Ausgang von einem niedrigeren Wert auf einen höheren überführt wird. |
fVeloNeg | FLOAT | Geschwindigkeit in Einheiten / s, mit der der Ausgang von einem höheren Wert auf einen niedrigeren überführt wird. |
bDisableRamping | BOOL | Wenn dieser Parameter TRUE ist, wird keine stetige Ausgangsgröße berechnet. Es wird sprungförmig zwischen den Ausgangswerten umgeschaltet. |