FB_CTRL_LIN_INTERPOLATION

FB_CTRL_LIN_INTERPOLATION 1:

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;

FB_CTRL_LIN_INTERPOLATION 2:

VAR_INPUT

VAR_INPUT
    fIn         : FLOAT;
    fManValue       : FLOAT;
    bExtrapolate    : BOOL;
    eMode       : E_CTRL_MODE;
END_VAR

fIn : Eingangsgröße des Interpolationsbausteins.

bManValue : Eingangsgröße, dessen Wert im Manual-Mode ausgegeben wird.

bExtrapolate : 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 : 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

fOut : Linear interpolierter Tabellenwert.

bInIsGreaterThanMaxElement : Ein TRUE an diesem Ausgang signalisiert, dass die Eingangsgröße größer ist als die größte Stützestelle.

bInIsLessThanMinElement : Ein TRUE an diesem Ausgang signalisiert, dass die Eingangsgröße kleiner ist als die kleinste Stützestelle.

eState : State des Funktionsbausteins.

eErrorId : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.

bError : Wird TRUE, sobald ein Fehler eintritt.

VAR_IN_OUT

VAR_IN_OUT
    stParams        : ST_CTRL_LIN_INTERPOLATION_PARAMS;
END_VAR

stParams : Parameterstruktur des Interpolations-Glieds. Diese besteht aus den folgenden Elementen:

TYPE
ST_CTRL_2POINT_PARAMS :
STRUCT
    tCtrlCycleTime         : TIME     := T#0ms; (*
controller cycle time [TIME] *)
    tTaskCycleTime         : TIME     := T#0ms; (* task
cycle time [TIME] *)
    pDataTable_ADR         : POINTER TO FLOAT := 0;
    nDataTable_SIZEOF      : UINT         := 0;
    nDataTable_NumberOfRows    : UINT         := 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 Zyklus aufgerufen wird.

pDataTable_ADR : Adresse des n x 2 - Arrays, welches linear interpoliert wird

pDataTable_SIZEOF : Größe des n x 2 - Arrays.

pDataTable_NumberOfRows : Anzahl der Zeilen des Arrays.

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