PLC-API pDenominatorArray_ADR : Address of the array with the denominator coefficients. nDenominatorArray_SIZEOF : Size of the array with the denominator coefficients in bytes. pTransferfunction2Data_ADR : Address of the data array. nTransferfunction2Data_SIZEOF : Size of the data array in bytes. TYPE ST_CTRL_TRANSFERFUNCTION_2_DATA: STRUCT Interne Struktur. Auf diese darf nicht schreibend zugegriffen werden. END_STRUCT END_TYPE Sample: PROGRAM PRG_TRANSFERFUNCTION_2_TEST VAR CONSTANT nOrderOfTheTransferfunction : USINT := 2; END_VAR VAR ar_fNumeratorArray : ARRAY[0..nOrderOfTheTransferfunction] OF FLOAT; ar_DenominatorArray :
ARRAY[0..nOrderOfTheTransferfunction] OF FLOAT; ar_stTransferfunction2Data : ARRAY[0..nOrderOfTheTransferfunction] OF ST_CTRL_TRANSFERFUNCTION_2_DATA; eMode : E_CTRL_MODE; stParams : ST_CTRL_TRANSFERFUNCTION_2_PARAMS; eErrorId : E_CTRL_ERRORCODES; bError : BOOL; fbTansferfunction : FB_CTRL_TRANSFERFUNCTION_2; bInit : BOOL := TRUE; fIn : FLOAT := 0; fOut : FLOAT; b_0, b_1, b_2 : FLOAT; a_0,a_1,a_2 :
FLOAT; END_VAR IF bInit THEN (* set values in the local arrays *) ar_fNumeratorArray[0] := 1.24906304658218E-007; ar_fNumeratorArray[1] := 2.49812609316437E-007; ar_fNumeratorArray[2] := 1.24906304658218E-007; ar_DenominatorArray[0] := 0.998501124344101; ar_DenominatorArray[1] := -1.99850062471888; ar_DenominatorArray[2] := 1.0; (* set values in the parameter struct *) stParams.tTaskCycleTime := T#2ms; stParams.tCtrlCycleTime := T#2ms; stParams.nOrderOfTheTransferfunction := nOrderOfTheTransferfunction; (* set the mode *) eMode := eCTRL_MODE_ACTIVE; bInit := FALSE; END_IF (* set the addresses *) stParams.pNumeratorArray_ADR := ADR( ar_fNumeratorArray); stParams.nNumeratorArray_SIZEOF := SIZEOF( ar_fNumeratorArray); stParams.pDenominatorArray_ADR := ADR( ar_DenominatorArray ); stParams.nDenominatorArray_SIZEOF := SIZEOF( ar_DenominatorArray ); stParams.pTransferfunction2Data_ADR := ADR( ar_stTransferfunction2Data ); stParams.nTransferfunction2Data_SIZEOF := SIZEOF( ar_stTransferfunction2Data ); fbTansferfunction ( fIn := fIn, eMode := eMode, stParams := stParams, fOut => fOut, eErrorId => eErrorId, bError => bError ); TS4100 38 Version:
1.1