2.9 KiB
2.9 KiB
// Block Type: FB
// Block Number: 1780
// Original Network Languages: LAD
// Block Comment:
// TASK1 PID
FUNCTION_BLOCK "PID_RMM301"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INOUT
mH20PIDEn_Aux : Bool;
END_VAR
VAR_STAT
PID_Water_Proportional : Real;
PID_Water_Integral : Real;
PID_Water_Derivative : Real;
Water_Valve_Out : Real;
mH20PIDEn : Bool;
PID : "PIDControl";
END_VAR
BEGIN
// Network 1: Blend Error Enable (Original Language: LAD)
"PID_Variables"."Blend_Error_Enable" := ("gBlenderBlending" AND "HMI_PID"."RMM301"."ManualControl"."ManOut" AND "HMI_PID"."RMP302"."ManualControl"."ManOut" AND "Blender_Variables_Pers"."gWaterRecipe" AND "gStopBlendCarboError") OR ("PID_Variables"."Blend_Error_Enable" AND "HMI_PID"."RMM301"."ManualControl"."ManOut" AND "HMI_PID"."RMP302"."ManualControl"."ManOut" AND "Blender_Variables_Pers"."gWaterRecipe" AND "gStopBlendCarboError");
// Network 2: Carbo Co2 Error Enable (Original Language: LAD)
"PID_Variables"."CarboCO2_Error_Enable" := ("gBlenderBlending" AND "gStopBlendCarboError" AND "HMI_PID"."RMM303"."ManualControl"."ManOut" AND "Blender_Variables_Pers"."gCarboStillProduct" AND "gWorkshopTest") OR ("gStopBlendCarboError" AND "PID_Variables"."CarboCO2_Error_Enable" AND "HMI_PID"."RMM303"."ManualControl"."ManOut" AND "Blender_Variables_Pers"."gCarboStillProduct" AND "gWorkshopTest");
// Network 3: Manual Enable (Original Language: LAD)
"HMI_PID"."RMM301"."ManualControl"."PidEnable" := ("gBlenderBlending" AND "gBlendFiStillWaterByPass") OR ("gBlenderCIPMode" AND "gCIPRinseOpenValves" AND "CIP_Program_Variables"."Status"."BlenderDrainRunning");
// Network 4: Setpoint (Original Language: LAD)
"HMI_PID"."RMM301"."Sp" := "Blender_Variables"."gSP_H2O";
// Network 5: PV forcing (Original Language: LAD)
IF "HMI_PID"."RMM301"."ManualControl"."PidEnable" AND "gBlenderStableFlow" THEN
"HMI_PID"."RMM301"."Pv" := "HMI_PID"."RMM301"."Sp";
END_IF;
// Network 6: 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 := "gBlenderCIPMode" OR ("gRinseClose_RMM301" AND "Procedure_Variables"."Blender_Rinse"."Running"), PID_Data := "HMI_PID"."RMM301", PID_Enable := "HMI_PID"."RMM301"."ManualControl"."PidEnable" OR "HMI_PID"."RMM301"."I_ITL", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE");
// Network 7: Integral (Original Language: LAD)
"mPID_RMM301_Int" := "PID_Water_Integral";
// Network 8: Integral PID Inizialize (Original Language: LAD)
IF "HMI_PID"."RMM301"."I_ITL" THEN
"HMI_PID"."RMM301"."I_ITL" := FALSE;
END_IF;
// Network 9: Water Valve Output (Original Language: LAD)
// Network 9 did not produce printable SCL code.
// Network 10: Water Valve Output (Original Language: LAD)
SEL_R(G := "HMI_PID"."RMM301"."ManualControl"."PidEnable", IN0 := 0.0, IN1 := "HMI_PID"."RMM301"."Out");
END_FUNCTION_BLOCK