PIDLogic

PIDLogic 1:

In this method, the parameters of the TwinCAT PID controller FB_CTRL_PID_EXT (see https://infosys.beckhoff.com/content/1033/tf4100_tc3_controller_toolbox/245438859.html?id=7056393866169628239) are set and the controller is invoked.

Syntax

METHOD PIDLogic : BOOL
//Set PID Params
PidParams.tCtrlCycleTime      := LREAL_TO_TIME(fCycleTime * 1000);
PidParams.tTaskCycleTime      := LREAL_TO_TIME(fCycleTime * 1000);
PidParams.fKp                 := P;
PidParams.tTn                 := REAL_TO_TIME(TI * 1000);
PidParams.tTv                 := REAL_TO_TIME(TD * 1000);
PidParams.tTd                 := REAL_TO_TIME(TD * 100);
PidParams.fDeadBandInput      := 0.0
PidParams.fDeadBandOutput     := 0.0
PidParams.fInnerWindow        := 0.0
PidParams.fOuterWindow        := 0.0
PidParams.fOutMaxLimit        := MVMax;
PidParams.fOutMinLimit        := MVMin;
PidParams.bPInTheFeedbackPath := FALSE;
PidParams.bDInTheFeedbackPath := FALSE;
PidParams.bARWOnIPartOnly     := TRUE;

//Call Controller Toolbox PID function block
fbPid(
   fSetpointValue := SEL(P >= 0, PV, SP),
   fActualValue   := SEL(P >= 0, SP, PV),
   eMode          := eCTRL_MODE_ACTIVE,
   stParams       := PidParams);

//Write resulting Manipulated Value to MTP function block
MV:= LREAL_TO_REAL(fbPid.fOut);

PIDLogic 2: Return value

Name

Type

Description

PIDLogic

BOOL