3.7 KiB
3.7 KiB
// Block Type: FB
// Block Number: 1785
// Original Network Languages: LAD
// Block Comment:
// TASK1 PID
FUNCTION_BLOCK "PID_RVM319_PRD"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
PID_Enable : Bool;
MAN_ON : Bool;
P_Sel : Bool;
I_Sel : Bool;
D_Sel : Bool;
FF_Enable : Bool;
REG_INV : Bool;
LMN_FAC : Real;
LMN_OFF : Real;
END_VAR
VAR_OUTPUT
LMN_P : Real;
LMN_I : Real;
LMN_D : Real;
END_VAR
VAR_INOUT
CIP_CVQ : Real;
END_VAR
VAR_STAT
PID_Prod_Temp_Proport : Real;
PID_Prod_Temp_Integral : Real;
PID_Prod_Temp_Derivat : Real;
PID : "PIDControl";
END_VAR
VAR_TEMP
mAux : Real;
SP_Choose : Real;
mDummy : Bool;
END_VAR
BEGIN
// Network 1: Manual Enable (Original Language: LAD)
"HMI_PID"."RVM319_PRD"."ManualControl"."PidEnable" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BlenderMaintenance" AND "HMI_PID"."RVM319_PRD"."ManualControl"."ManOut" AND "Procedure_Variables"."Blender_Run"."Latch") OR ("gBlenderCIPMode" AND "Blender_Variables_Pers"."gCoolerEnabled" AND (("gProdDoubleChillerEn" AND "HMI_Variables_Status"."Procedures"."WarmRinseRun" AND (("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Running") OR ("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gEnRecircPHE"))) OR ("HMI_Variables_Status"."Procedures"."WarmRinseRun" AND "gProductChillerEn" AND (("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Running") OR ("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gEnRecircPHE")))));
// Network 2: Setpoint (Original Language: LAD)
"HMI_PID"."RVM319_PRD"."Sp" := "Blender_Variables"."gSP_Prod_Temperature";
// Network 3: Setpoint (Original Language: LAD)
IF ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BlenderMaintenance" AND "HMI_PID"."RVM319_PRD"."ManualControl"."ManOut" AND "Procedure_Variables"."Blender_Run"."Latch") OR ("HMI_PID"."RVM319_PRD"."ManualControl"."PidEnable" AND "gBlenderEnToRamp" AND "gEnRecircPHE" AND "Procedure_Variables"."Blender_Rinse"."Running" AND "Procedure_Variables"."CarboWaterLine"."Running") THEN
"HMI_PID"."RVM319_PRD"."Sp" := "HMI_PID"."RVM319_PRD"."Pv";
END_IF;
// Network 4: Integral PID Hold (Original Language: LAD)
"HMI_PID"."RVM319_PRD"."Hold_Int" := "HMI_PID"."RVM319_PRD"."ManualControl"."PidEnable" AND "PID_Variables"."PID_RVM319_PRD_EnInt";
// Network 5: 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"."RVM319_PRD"."ManualControl"."ManOut", PID_Data := "HMI_PID"."RVM319_PRD", PID_Enable := "HMI_PID"."RVM319_PRD"."ManualControl"."PidEnable" OR "HMI_PID"."RVM319_PRD"."I_ITL", P_Sel := "AUX TRUE", REG_INV := "AUX TRUE");
// Network 6: Integral PID Inizilize (Original Language: LAD)
IF "HMI_PID"."RVM319_PRD"."I_ITL" THEN
"HMI_PID"."RVM319_PRD"."I_ITL" := FALSE;
END_IF;
// Network 7: Valve Output (Original Language: LAD)
SEL_R(G := "gGencoldChillerEn" AND Eq("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_CoolerControl", 3), IN0 := "HMI_Instrument"."TTN321"."PVFiltered", IN1 := "HMI_PID"."RVM319_PRD"."Pv");
CIP_CVQ(i_TempIn := "mAux", i_TempOut := "HMI_Instrument"."TTM306_PRD"."PVFiltered");
// Network 8: Valve Output (Original Language: LAD)
SEL_R(G := "Blender_Variables_Pers"."gCoolerEnabled" AND "gGencoldChillerEn" AND ("gBlenderCIPMode" OR "HMI_Variables_Status"."Procedures"."WarmRinseRun"), IN0 := 0.0, IN1 := "mAux");
// Network 9: Valve Output (Original Language: LAD)
SEL_R(G := "HMI_PID"."RVM319_PRD"."ManualControl"."PidEnable", IN0 := "mAux", IN1 := "HMI_PID"."RVM319_PRD"."Out");
END_FUNCTION_BLOCK