```pascal // Block Type: FC // Block Name (Original): CIPMain_Total Drain // Block Number: 1932 // Original Network Languages: LAD FUNCTION "CIPMain_Total_Drain" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP mCIPTotalDrainReq : Bool; mDrainEnd : Bool; END_VAR #_10M : Bool; // Auto-generated temporary #_60s : Bool; // Auto-generated temporary BEGIN // Network 1: Request (Original Language: LAD) "mCIPTotalDrainReq" := "gBlenderCIPMode" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_CIP_TotalDrainReq" AND "CIP_Program_Variables"."CIP_Run"."Latch"; // Network 2: End (Original Language: LAD) // Edge Logic handled by Coil 30 "M19061" := "gBlenderCIPMode" AND "CIP_Program_Variables"."CIP_Run"."Latch" AND "gIN_CIP_DrainRequest"; // N_TRIG("gBlenderCIPMode" AND "CIP_Program_Variables"."CIP_Run"."Latch" AND "gIN_CIP_DrainRequest") - Mem: "M19061" "mDrainEnd" := ("M19061" AND NOT "gBlenderCIPMode") OR ("M19061" AND NOT "CIP_Program_Variables"."CIP_Run"."Latch") OR ("M19061" AND NOT "gIN_CIP_DrainRequest"); "M19061" := "gBlenderCIPMode" AND "CIP_Program_Variables"."CIP_Run"."Latch" AND "gIN_CIP_DrainRequest"; // N_TRIG("gBlenderCIPMode" AND "CIP_Program_Variables"."CIP_Run"."Latch" AND "gIN_CIP_DrainRequest") - Mem: "M19061" // Network 3: Running (Original Language: LAD) "CIP_Program_Variables"."Status"."BlenderDrainRunning" := ("gBlenderCIPMode" AND "gIN_CIP_DrainRequest") OR ("gBlenderCIPMode" AND "gIN_CIP_CIPCompleted" AND "Disable_Bit"); // Network 4: Blender Drain T (Original Language: LAD) "mBlenderDrainTimer"(IN := "CIP_Program_Variables"."Status"."BlenderDrainRunning", PT := S5T#10M); // TODO: Declarar "mBlenderDrainTimer" : TON; // Network 5: CIP - Drain (Original Language: LAD) "mBlenderDrainTimerDelay"(IN := "gBlenderEmpty", PT := S5T#60s); // TODO: Declarar "mBlenderDrainTimerDelay" : TON; "gCIP_BlenderDrainDone" := "mBlenderDrainTimerDelay".Q OR "mBlenderDrainTimer"; "HMI_Variables_Status"."Procedures"."CIP_BlenderDrainDone" := "mBlenderDrainTimerDelay".Q OR "mBlenderDrainTimer"; // Network 6: Procedure auxiliary variable (Original Language: LAD) IF "gOUT_PPN301_Run" AND "gOUT_PPN305_Run" AND "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVN314" := TRUE; END_IF; IF "gOUT_PPN301_Run" AND "gOUT_PPN305_Run" AND "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP316" := TRUE; END_IF; // Network 7: Buffer Tank Empty (Original Language: LAD) // Network 7 did not produce printable SCL code. // Network 8: Procedure auxiliary variable (Original Language: LAD) IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM323" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP324" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP389" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP390" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM317" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVN327" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP344" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVP361" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM389" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM372" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM388" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM330" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM385" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM386" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM369" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM322" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM315" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM345" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM353" := TRUE; END_IF; IF "CIP_Program_Variables"."Status"."BlenderDrainRunning" THEN "gSP_AVM362" := TRUE; END_IF; END_FUNCTION ```