FB_CTRL_LIN_INTERPOLATION
Dieser Baustein gibt aus einer Stützstellentabelle den linear interpolierten Wert aus.
Verhalten des Ausgangs
fIn | fOut |
arrTable[1,1] := 10; | arrTable[1,2] := 7; |
arrTable[2,1] := 15; | arrTable[2,2] := 10; |
arrTable[3,1] := 21; | arrTable[3,2] := 9; |
arrTable[4,1] := 22; | arrTable[4,2] := 2; |
arrTable[5,1] := 30; | arrTable[5,2] := 3; |
arrTable[6,1] := 40; | arrTable[6,2] := 6; |
VAR_INPUT
VAR_INPUT
fIn : FLOAT;
fManValue : FLOAT;
bExtrapolate : BOOL;
eMode : E_CTRL_MODE;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fIn | FLOAT | Eingangsgröße des Interpolationsbausteins |
fManValue | FLOAT | Eingangsgröße, dessen Wert im Manual-Mode ausgegeben wird. |
bExtrapolate | BOOL | Wenn dieser Eingang FALSE ist, wird bei Überschreiten der Tabellengrenze der Wert der letzten Stützstelle ausgegeben. Wenn ein TRUE anliegt, wird mit den letzten zwei Stützstellen extrapoliert. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
bInIsGreaterThanMaxElement : BOOL;
bInIsLessThanMinElement : BOOL;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOut | FLOAT | Linear interpolierter Tabellenwert |
bInIsGreater | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass die Eingangsgröße größer ist als die größte Stützestelle. |
bInIsLessThan | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass die Eingangsgröße kleiner ist als die kleinste Stützestelle. |
eState | E_CTRL_ | State des Funktionsbausteins |
eErrorId | E_CTRL_ | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_LIN_INTERPOLATION_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_LIN_INTERPOLATION_ | Parameterstruktur des Interpolations-Glieds |
stParams
besteht aus den folgenden Elementen:
TYPE ST_CTRL_2POINT_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
pDataTable_ADR : POINTER TO FLOAT := 0;
nDataTable_SIZEOF : UINT := 0;
nDataTable_NumberOfRows : UINT := 0;
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_ | POINTER TO FLOAT | Adresse des n x 2 - Arrays, welches linear interpoliert wird. |
nDataTable_ | UINT | Größe des n x 2 - Arrays |
nDataTable_ | UINT | Anzahl der Zeilen des Arrays |