```pascal // Block Type: FC // Block Number: 2019 // Original Network Languages: LAD FUNCTION "BlenderRinse" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP mColdReq : Bool; mWarmReq : Bool; mColdStop : Bool; mWarmStop : Bool; END_VAR BEGIN // Network 1: Qualifier (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Qualifier" := "HMI_Variables_Status"."System"."Blender_Prod_CIP" AND "gBlenderSuppliesOk" AND "gBlenderBlending" AND "gBlenderCIPMode" AND "Procedure_Variables"."TM301_Drain"."Latch"; // Network 2: Stop / Request (Original Language: LAD) // PBox SymPy processed, logic in consumer "M19014" := ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled"); // P_TRIG(("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled")) - Mem: "M19014" "mColdReq" := ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19014") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19014"); "mColdStop" := ("ColdRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq" AND NOT "M19014") OR ("ColdRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND NOT "M19014"); // Network 3: Warm Request / Stop (Original Language: LAD) // PBox SymPy processed, logic in consumer "M19015" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled"); // P_TRIG(("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled")) - Mem: "M19015" "mWarmReq" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19015") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19015"); "mWarmStop" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "WarmRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "M19015") OR ("WarmRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND NOT "M19015"); // Network 4: Rinse Request (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Request" := ("mColdReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier") OR ("mWarmReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier"); // Network 5: ColdRinseSR (Original Language: LAD) // Network 5 did not produce printable SCL code. // Network 6: WarmRinse (Original Language: LAD) // Network 6 did not produce printable SCL code. // Network 7: Wait (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Wait" := "Procedure_Variables"."TM301_Drain"."Latch" OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Deaireation" AND "Procedure_Variables"."TN301_StartUp"."Done"); // Network 8: Reset (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Reset" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" OR "gBlenderCIPMode"; // Network 9: Done (Original Language: LAD) IF "Procedure_Variables"."Blender_Rinse"."Reset" OR "Procedure_Variables"."Blender_Rinse"."Latch" THEN "HMI_Variables_Status"."Procedures"."Rinse_WarmRinseDone" := FALSE; END_IF; IF "Procedure_Variables"."Blender_Rinse"."Reset" OR "Procedure_Variables"."Blender_Rinse"."Latch" THEN "HMI_Variables_Status"."Procedures"."Rinse_ColdRinseDone" := FALSE; END_IF; // Network 10: Latch (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Latch" := ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "FirstScan" AND "Procedure_Variables"."Blender_Rinse"."Done") OR ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Request" AND "FirstScan" AND "Procedure_Variables"."Blender_Rinse"."Done"); // Network 11: Rinse Mode (Original Language: LAD) "gBlenderRinseMode" := "Procedure_Variables"."Blender_Rinse"."Latch"; IF "Procedure_Variables"."Blender_Rinse"."Latch" THEN "HMI_Variables_Status"."Procedures"."BlenderStateNum" := 18; END_IF; // Network 12: Running (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Running" := "Procedure_Variables"."Blender_Rinse"."Latch" AND "Procedure_Variables"."Blender_Rinse"."Wait"; // Network 13: Warm Rinse Running (Original Language: LAD) "HMI_Alarms"."gH_Status" := "WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch"; "HMI_Variables_Status"."Procedures"."WarmRinseRun" := "WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch"; // Network 14: Cold Rinse Running (Original Language: LAD) "HMI_Alarms"."gH_Status" := "ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch"; "HMI_Variables_Status"."Procedures"."ColdRinseRun" := "ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch"; // Network 15: Rinse Drain Active (Original Language: LAD) "HMI_Alarms"."gH_Status" := "gBlenderRinseMode" AND "Procedure_Variables"."TM301_Drain"."Latch"; "gRinseDrainRunning" := "gBlenderRinseMode" AND "Procedure_Variables"."TM301_Drain"."Latch"; // Network 16: Done (Original Language: LAD) "Procedure_Variables"."Blender_Rinse"."Done" := ("Procedure_Variables"."Blender_Rinse"."Latch" AND "Procedure_Variables"."TM301_Drain"."Done") OR ("Procedure_Variables"."Blender_Rinse"."Latch" AND "M19077") OR ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Done" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_FastChangeOverEnabled"); // Network 17: Done (Original Language: LAD) IF "Procedure_Variables"."Blender_Rinse"."Done" OR "gBlenderCIPMode" THEN "Blender_Variables_Pers"."gFillerRinse_DoneLatch" := FALSE; END_IF; // Network 18: Rinse Completed (Original Language: LAD) // PBox SymPy processed, logic in consumer "M19020" := "System_RunOut_Variables"."In_Flr_FastRinseComplete"; // P_TRIG("System_RunOut_Variables"."In_Flr_FastRinseComplete") - Mem: "M19020" IF ("WarmRinseON" AND "mWarmStop") OR ("Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN "Blender_Variables_Pers"."gFillerRinse_DoneLatch" := TRUE; END_IF; IF ("WarmRinseON" AND "mWarmStop") OR ("WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN "HMI_Variables_Status"."Procedures"."Rinse_WarmRinseDone" := TRUE; END_IF; IF ("ColdRinseON" AND "WarmRinseON" AND "mWarmStop") OR ("ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN "HMI_Variables_Status"."Procedures"."Rinse_ColdRinseDone" := TRUE; END_IF; // Network 19: Rinse Done ONS (Original Language: LAD) // Edge Logic handled by Coil 26 "M19021" := "Procedure_Variables"."Blender_Rinse"."Done"; // P_TRIG("Procedure_Variables"."Blender_Rinse"."Done") - Mem: "M19021" "Procedure_Variables"."Blender_Rinse"."ONS_Done" := "Procedure_Variables"."Blender_Rinse"."Done" AND NOT "M19021"; "M19021" := "Procedure_Variables"."Blender_Rinse"."Done"; // P_TRIG("Procedure_Variables"."Blender_Rinse"."Done") - Mem: "M19021" // Network 20: Blender Rinse Done (Original Language: LAD) IF "Procedure_Variables"."Blender_Rinse"."ONS_Done" THEN BlenderRinse_Done(); END_IF; END_FUNCTION ```