```pascal // Block Type: FB // Block Number: 1807 // Original Network Languages: LAD FUNCTION_BLOCK "ProcedureProdTankDrain" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_STAT mStepNum : Int; mTimeStep : Int; mTransition : Bool; mAuxONS : Bool; mAux1ONS : Bool; mPrdTank_DrainTPON : Bool; mPrdTank_DrainTP0ON : Bool; mPrdTank_DrainTP1ON : Bool; mPrdTank_DrainTP : "TP_TIME:v1.0"; mPrdTank_DrainTP0 : "TP_TIME:v1.0"; mPrdTank_DrainTP1 : "TP_TIME:v1.0"; END_VAR VAR_TEMP mAuxCalcInt : Int; mAuxCalcDInt : DInt; mAuxCalcReal : Real; END_VAR BEGIN // Network 1: Qualifier (Original Language: LAD) "Procedure_Variables"."TM301_Drain"."Qualifier" := "System_RunOut_Variables"."FastChangeOverActivated" OR ("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."TM301_RunOut"."Latch" AND "gBlenderSuppliesOk") OR ("gBlenderProdMode" AND "Blender_Variables_Pers"."gFillerRinse_DoneLatch" AND "Procedure_Variables"."TM301_RunOut"."Latch" AND "gBlenderSuppliesOk"); // Network 2: Request (Original Language: LAD) // Network 2 did not produce printable SCL code. // Network 3: Reset (Original Language: LAD) // PBox SymPy processed, logic in consumer "ProdTankDrainReset" := ("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq"); // P_TRIG(("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq")) - Mem: "ProdTankDrainReset" "Procedure_Variables"."TM301_Drain"."Reset" := ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "ProdTankDrainReset") OR ("Procedure_Variables"."TM301_Drain"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" AND NOT "ProdTankDrainReset") OR ("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."TM301_Drain"."Latch" AND NOT "ProdTankDrainReset") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" AND "Procedure_Variables"."TM301_Drain"."Latch" AND NOT "ProdTankDrainReset"); // Network 4: Reset (Original Language: LAD) IF "Procedure_Variables"."TM301_Drain"."Reset" THEN "mStepNum" := 0; END_IF; IF "Procedure_Variables"."TM301_Drain"."Reset" THEN "Procedure_Variables"."TM301_Drain"."Done" := FALSE; END_IF; // Network 5: TM301 Drain Reset (Original Language: LAD) // PBox SymPy processed, logic in consumer "M19076" := "Procedure_Variables"."TM301_Drain"."Request" AND "System_RunOut_Variables"."FastChangeOverActivated"; // P_TRIG("Procedure_Variables"."TM301_Drain"."Request" AND "System_RunOut_Variables"."FastChangeOverActivated") - Mem: "M19076" // Network 6: Wait (Original Language: LAD) "Procedure_Variables"."TM301_Drain"."Wait" := "gDrainPressNotOK" AND "Disable_Bit"; // Network 7: State Num (Original Language: LAD) "Procedure_Variables"."TM301_Drain"."Latch" := ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "Procedure_Variables"."TM301_Drain"."Request" AND "FirstScan") OR ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "FirstScan" AND "Procedure_Variables"."TM301_Drain"."Latch"); IF ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "Procedure_Variables"."TM301_Drain"."Request" AND "FirstScan") OR ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "FirstScan" AND "Procedure_Variables"."TM301_Drain"."Latch") THEN "HMI_Variables_Status"."Procedures"."BlenderStateNum" := 10; END_IF; // Network 8: Running (Original Language: LAD) "Procedure_Variables"."TM301_Drain"."Running" := "Procedure_Variables"."TM301_Drain"."Wait" AND "Procedure_Variables"."TM301_Drain"."Latch"; "HMI_Alarms"."gH_Status" := "Procedure_Variables"."TM301_Drain"."Latch"; "HMI_Variables_Status"."Procedures"."TM301DrainRun" := "Procedure_Variables"."TM301_Drain"."Latch"; // Network 9: Sequence (Original Language: LAD) IF "Procedure_Variables"."TM301_Drain"."Running" THEN Prod_Tank_Drain_Seq(mStep := "mStepNum", mTime := "mTimeStep", mTransition := "mTransition"); END_IF; END_FUNCTION_BLOCK ```