64 lines
2.1 KiB
Markdown
64 lines
2.1 KiB
Markdown
```pascal
|
|
// Block Type: FB
|
|
// Block Number: 1786
|
|
// Original Network Languages: LAD
|
|
// Block Comment:
|
|
// TASK1 PID
|
|
|
|
FUNCTION_BLOCK "PID_RVS318"
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
|
|
VAR_STAT
|
|
PID_CIP_Temp_Proport : Real;
|
|
PID_CIP_Temp_Integral : Real;
|
|
PID_CIP_Temp_Derivat : Real;
|
|
PID : "PIDControl";
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
SP_Choose : Real;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
|
|
// Network 1: Manual Enable (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVS318"."ManualControl"."PidEnable" := ("Procedure_Variables"."Blender_Run"."Latch" AND "HMI_PID"."RVS318"."ManualControl"."ManOut" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BlenderMaintenance") OR ("gP_CIP_Temp_En" AND "gBlenderCIPMode" AND "HMI_Device"."AVS336"."Out" AND "HMI_Digital"."FSS301"."Filtered" AND "CIP_Program_Variables"."CIP_Run"."Latch");
|
|
|
|
// Network 2: Setpoint (Original Language: LAD)
|
|
// Increasing REAL Temperature Set Point
|
|
|
|
IF "gBlenderCIPMode" THEN
|
|
"HMI_PID"."RVS318"."Sp" := "CIP_Program_Variables"."General_Data"."SPTemperature" + "Blender_Constants"."gCIP_SP_DeltaT";
|
|
END_IF;
|
|
|
|
IF NOT "gBlenderCIPMode" THEN
|
|
"HMI_PID"."RVS318"."Sp" := 0.0;
|
|
END_IF;
|
|
|
|
// Network 3: Setpoint (Original Language: LAD)
|
|
|
|
IF "Procedure_Variables"."Blender_Run"."Latch" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BlenderMaintenance" THEN
|
|
"HMI_PID"."RVS318"."Sp" := "HMI_PID"."RVS318"."Pv";
|
|
END_IF;
|
|
|
|
// Network 4: PID Control (Original Language: LAD)
|
|
// Attenzione al Bit REG_INV !!
|
|
|
|
"PID"(D_Sel := "AUX TRUE", FF_Enable := "AUX TRUE", I_Sel := "AUX TRUE", LMN_FAC := 1.0, LMN_OFF := 0.0, MAN_ON := "HMI_PID"."RVS318"."ManualControl"."ManOut", PID_Data := "HMI_PID"."RVS318", PID_Enable := "HMI_PID"."RVS318"."I_ITL" OR "HMI_PID"."RVS318"."ManualControl"."PidEnable", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE");
|
|
|
|
// Network 5: Integral PID Inizialize (Original Language: LAD)
|
|
|
|
IF "HMI_PID"."RVS318"."I_ITL" THEN
|
|
"HMI_PID"."RVS318"."I_ITL" := FALSE;
|
|
END_IF;
|
|
|
|
// Network 6: Valve Output (Original Language: LAD)
|
|
|
|
SEL_R(G := "HMI_PID"."RVS318"."ManualControl"."PidEnable", IN0 := 0.0, IN1 := "HMI_PID"."RVS318"."Out");
|
|
|
|
END_FUNCTION_BLOCK
|
|
|
|
```
|