PLC-API eErrorId : E_CTRL_ERRORCODES; bError : BOOL; END_VAR tTaskCycleTime : This output indicates the current task cycle time, with a resolution of 1 ms. bCycleTimeValid : The time contained in the tTaskCycleTime output is valid when this output is TRUE. eState : State of the function block. eErrorId : Supplies the error number [ } 16] when the bError output is set. bError : Becomes TRUE, as soon as an error occurs. Sample: PROGRAM PRG_GET_TASK_CYCLETIME_TEST VAR tTaskCycleTime : TIME; bCycleTimeValid : BOOL; eState : E_CTRL_STATE; eErrorId : E_CTRL_ERRORCODES; bError : BOOL; fbCTRL_GET_TASK_CYCLETIME : FB_CTRL_GET_TASK_CYCLETIME; (* control loop *) bInit : BOOL := TRUE; fSetpointValue :
FLOAT := 45.0; fActualValue : FLOAT; fbCTRL_PI : FB_CTRL_PI; stCTRL_PI_Params : ST_CTRL_PI_PARAMS; fbCTRL_PT1 : FB_CTRL_PT1; stCTRL_PT1_Params :
ST_CTRL_PT1_PARAMS; END_VAR (* call fb to get the task cycle time *) fbCTRL_GET_TASK_CYCLETIME( eMode := eCTRL_MODE_ACTIVE, tTaskCycleTime => tTaskCycleTime, bCycleTimeValid => bCycleTimeValid, eState => eCTRL_MODE_ACTIVE, eErrorId => eErrorId, bError => bError ); (* call control loop if the cycle time is valid *) IF fbCTRL_GET_TASK_CYCLETIME.bCycleTimeValid THEN IF bInit THEN stCTRL_PT1_Params.tTaskCycleTime := fbCTRL_GET_TASK_CYCLETIME.tTaskCycleTime; stCTRL_PT1_Params.tCtrlCycleTime := T#100ms; stCTRL_PT1_Params.fKp := 1.0; stCTRL_PT1_Params.tT1 := T#10s; stCTRL_PI_Params.tTaskCycleTime := fbCTRL_GET_TASK_CYCLETIME.tTaskCycleTime; stCTRL_PI_Params.tCtrlCycleTime := T#100ms; stCTRL_PI_Params.fKp := 0.5; stCTRL_PI_Params.tTn := T#5s; stCTRL_PI_Params.fOutMaxLimit := 100.0; stCTRL_PI_Params.fOutMinLimit := 0.0; bInit := FALSE; END_IF (* call controller *) fbCTRL_PI( fActualValue := fbCTRL_PT1.fOut, fSetpointValue := fSetpointValue, eMode := eCTRL_MODE_ACTIVE, stParams := stCTRL_PI_Params ); (* call PT1 *) fbCTRL_PT1( fIn := fbCTRL_PI.fOut, eMode := eCTRL_MODE_ACTIVE, stParams := stCTRL_PT1_Params, fOut => fActualValue ); END_IF TS4100 21 Version:
1.1