```pascal // Block Type: FB // Block Number: 1824 // Original Network Languages: LAD FUNCTION_BLOCK "ProductPipeDrain" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_STAT mStepNum : Int; mTimeStep : Int; mTransition : Bool; mAuxONS : Bool; mProdPipeDrainCMDTPON : Bool; mProdPipeDrainTPON : Bool; mProdPipeDrainCMDTP : "TP_TIME:v1.0"; mProdPipeDrainTP : "TP_TIME:v1.0"; END_VAR BEGIN // Network 1: Qualifier (Original Language: LAD) "System_RunOut_Variables"."ProdPipe_Drain"."Qualifier" := ("System_RunOut_Variables"."ProdPipe_Drain"."Latch" AND "AUX FALSE") OR ("gBlenderProdMode" AND "gBlenderSuppliesOk" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "AUX FALSE"); // Network 2: ProductPipeDrain (Original Language: LAD) // Network 2 did not produce printable SCL code. // Network 3: Reset (Original Language: LAD) // PBox SymPy processed, logic in consumer "ProdPipeDrainReset" := "System_RunOut_Variables"."ProdPipe_RunOut"."Done" OR "HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq"; // P_TRIG("System_RunOut_Variables"."ProdPipe_RunOut"."Done" OR "HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq") - Mem: "ProdPipeDrainReset" "System_RunOut_Variables"."ProdPipe_Drain"."Reset" := ("System_RunOut_Variables"."ProdPipe_Drain"."Qualifier" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND NOT "ProdPipeDrainReset") OR ("HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq" AND NOT "ProdPipeDrainReset"); // Network 4: Wait (Original Language: LAD) "System_RunOut_Variables"."ProdPipe_Drain"."Wait" := "AUX FALSE"; // Network 5: Reset (Original Language: LAD) IF "System_RunOut_Variables"."ProdPipe_Drain"."Reset" THEN "mStepNum" := 0; "mTimeStep" := 0; END_IF; IF "System_RunOut_Variables"."ProdPipe_Drain"."Reset" THEN "System_RunOut_Variables"."ProdPipe_Drain"."Done" := FALSE; END_IF; // Network 6: Latch (Original Language: LAD) "System_RunOut_Variables"."ProdPipe_Drain"."Latch" := ("System_RunOut_Variables"."ProdPipe_Drain"."Reset" AND "System_RunOut_Variables"."ProdPipe_Drain"."Request" AND "System_RunOut_Variables"."ProdPipe_Drain"."Done") OR ("System_RunOut_Variables"."ProdPipe_Drain"."Reset" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch" AND "System_RunOut_Variables"."ProdPipe_Drain"."Done"); // Network 7: Running (Original Language: LAD) "System_RunOut_Variables"."ProdPipe_Drain"."Running" := "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch"; "HMI_Alarms"."gH_Status" := "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch"; IF "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch" THEN ProductPipeDrain_Seq(mStep := "mStepNum", mTime := "mTimeStep", mTransition := "mTransition"); END_IF; // Network 8: ToFillerStartPipeRunOut (Original Language: LAD) "HMI_Variables_Status"."System_Run_Out"."ProductPipeDrainDone" := "System_RunOut_Variables"."ProdPipe_Drain"."Done"; END_FUNCTION_BLOCK ```