```pascal // Block Type: FC // Block Number: 1930 // Original Network Languages: LAD FUNCTION "CIPMain" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP #_6S : Bool; // Auto-generated temporary END_VAR BEGIN // Network 1: CIP - Low pressure (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN CIPLocal(); END_IF; // Network 2: CIP - Product Tank Low Pressure (Original Language: LAD) "gCIP_PrdTank_PressLow" := "HMI_PID"."RVM301"."Pv" < 1.0; // Network 3: CIP - Product Tank Low Pressure (Original Language: LAD) IF "gBlenderCIPMode" THEN "gCIP_PrdTank_PressLow" := FALSE; END_IF; // Network 4: CIP Completed Signal (Original Language: LAD) // PBox SymPy processed, logic in consumer "mCIP_CompletedONS" := "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" AND "gIN_CIP_CIPCompleted"; // P_TRIG("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" AND "gIN_CIP_CIPCompleted") - Mem: "mCIP_CompletedONS" IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" AND "gIN_CIP_CIPCompleted" AND NOT "mCIP_CompletedONS" THEN "CIP_Program_Variables"."Status"."Completed" := TRUE; END_IF; // Network 5: CIP Completed Signal (Original Language: LAD) IF "gBlenderCIPMode" OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" AND "gCIP_BlenderDrainDone") THEN "CIP_Program_Variables"."Status"."Completed" := FALSE; END_IF; IF "gBlenderCIPMode" OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" AND "gCIP_BlenderDrainDone") THEN "CIP_Program_Variables"."Status"."BlenderDrainRunning" := FALSE; END_IF; // Network 6: CIP Flood (Original Language: LAD) CIPMain_Flood(); // Network 7: CIp Total Drain (Original Language: LAD) CIPMain_Total_Drain(); // Network 8: Blender total Drain In CIP Running (Original Language: LAD) "HMI_Variables_Status"."Procedures"."CIP_BlenderDrainRun" := "CIP_Program_Variables"."Status"."BlenderDrainRunning"; // Network 9: Blender Empty (Original Language: LAD) IF "CIP_Program_Variables"."Status"."CausticRecoveryRun" AND "gBlenderEmpty" THEN "CIP_Program_Variables"."Status"."BlenderEmpty" := TRUE; END_IF; // Network 10: MIX - To CIP Room (Original Language: LAD) "gOUT_CIPChangeReady" := "gIN_FillerCIPChangeReady"; // Network 11: Blender Empty (Original Language: LAD) "mBlenderEmprtyTON"(IN := "CIP_Program_Variables"."Status"."CausticRecoveryRun", PT := S5T#6S); // TODO: Declarar "mBlenderEmprtyTON" : TON; IF "mBlenderEmprtyTON".Q THEN "CIP_Program_Variables"."Status"."BlenderEmpty" := FALSE; END_IF; // Network 12: Started (Original Language: LAD) IF "gBlenderCIPMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gIN_FillerCIPRequest" THEN "CIP_Program_Variables"."Status"."Started" := TRUE; END_IF; // Network 13: Started (Original Language: LAD) IF "gOUT_FillerCIPCompleted" OR "gBlenderCIPMode" THEN "CIP_Program_Variables"."Status"."Started" := FALSE; END_IF; // Network 14: Alarms (Original Language: LAD) "HMI_Alarms"."gH_Status" := "gIN_CIP_DrainRequest" AND "gBlenderCIPMode"; "HMI_Alarms"."gH_Status" := "DI_CIP_CIP_Enable" AND "HMI_Alarms"."gH_Status" AND "gBlenderCIPMode"; "HMI_Alarms"."gH_Status" := ("HMI_Alarms"."gH_Status" AND "gBlenderCIPMode") OR ("DI_CIP_End" AND "gBlenderCIPMode"); "HMI_Alarms"."gH_Status" := "DI_CIP_End" AND "DI_CIP_Fault" AND "gBlenderCIPMode"; "HMI_Alarms"."gH_Status" := "DI_CIP_End" AND "DI_Flr1_CIP/RinseFiller" AND "gBlenderCIPMode"; END_FUNCTION ```