```pascal // Block Type: FC // Block Number: 1804 // Original Network Languages: LAD FUNCTION "Baialage" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP mLatchONS : Bool; mBalaiage_Req : Bool; BalaiageFlowErrorABS : Real; mAuxReal : Real; END_VAR #_1M_30S : Bool; // Auto-generated temporary BEGIN // Network 1: Qualifier (Original Language: LAD) "Procedure_Variables"."Balaiage"."Qualifier" := "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Balaiage" AND "gBlenderProdMode" AND "gBlenderRinseMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "gIN_VoltageOk"; // Network 2: Request (Original Language: LAD) // Edge Logic handled by Coil 29 "mBaialageReqONS" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request"; // P_TRIG("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request") - Mem: "mBaialageReqONS" "Procedure_Variables"."Balaiage"."Request" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" AND NOT "mBaialageReqONS") OR ("Procedure_Variables"."Blender_Run"."Request" AND NOT "mBaialageReqONS"); "mBaialageReqONS" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request"; // P_TRIG("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request") - Mem: "mBaialageReqONS" // Network 3: Reset (Original Language: LAD) "Procedure_Variables"."Balaiage"."Reset" := "Procedure_Variables"."Balaiage"."Qualifier" OR ("Procedure_Variables"."Balaiage"."Latch" AND "gEmergencyPressed"); // Network 4: Done Reset (Original Language: LAD) IF "Procedure_Variables"."Balaiage"."Reset" THEN "Procedure_Variables"."Balaiage"."Done" := FALSE; END_IF; // Network 5: Request (Original Language: LAD) // Edge Logic handled by Coil 28 "mBaialage_Request" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq"; // P_TRIG("Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq") - Mem: "mBaialage_Request" "mBalaiage_Req" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" AND NOT "mBaialage_Request"; "mBaialage_Request" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq"; // P_TRIG("Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq") - Mem: "mBaialage_Request" // Network 6: Wait (Original Language: LAD) "Procedure_Variables"."Balaiage"."Wait" := "AUX FALSE"; // Network 7: Latch (Original Language: LAD) "Procedure_Variables"."Balaiage"."Latch" := ("Procedure_Variables"."Balaiage"."Request" AND "Procedure_Variables"."Balaiage"."Done" AND "Procedure_Variables"."Balaiage"."Reset" AND "FirstScan") OR ("Procedure_Variables"."Balaiage"."Done" AND "Procedure_Variables"."Balaiage"."Reset" AND "mBalaiage_Req" AND "FirstScan"); // Network 8: Latch ONS (Original Language: LAD) // Edge Logic handled by Coil 26 "M19074" := "Procedure_Variables"."Balaiage"."Latch"; // P_TRIG("Procedure_Variables"."Balaiage"."Latch") - Mem: "M19074" "mLatchONS" := "Procedure_Variables"."Balaiage"."Latch" AND NOT "M19074"; "M19074" := "Procedure_Variables"."Balaiage"."Latch"; // P_TRIG("Procedure_Variables"."Balaiage"."Latch") - Mem: "M19074" // Network 9: Product Tank Pressure Running (Original Language: LAD) "Procedure_Variables"."Balaiage"."Running" := "Procedure_Variables"."Balaiage"."Wait" AND "Procedure_Variables"."Balaiage"."Latch"; "HMI_Variables_Status"."Procedures"."BalaiageRun" := "Procedure_Variables"."Balaiage"."Latch"; // Network 10: Product Tank Pressure Running (Original Language: LAD) IF "Procedure_Variables"."Balaiage"."Running" THEN "gSP_AVM321" := TRUE; END_IF; IF "Procedure_Variables"."Balaiage"."Running" THEN "gSP_AVM397" := TRUE; END_IF; // Network 11: PrdTankPressFault (Original Language: LAD) "mBaialage_Fault"(IN := "Procedure_Variables"."Balaiage"."Running" AND "Procedure_Variables"."TM301_Drain"."Latch" AND "gBalaiageTankFlowOK" AND "gBlenderRinseMode", PT := S5T#1M_30S); // TODO: Declarar "mBaialage_Fault" : TON; "gBalaiage_Fault" := "mBaialage_Fault".Q; // Network 12: Aux (Original Language: LAD) IF "gBalaiage_MaxFlow" THEN "mAuxReal" := "Filler_Head_Variables"."Filler_Speed" * "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_BottleSize"; END_IF; IF "gBalaiage_MaxFlow" THEN "mAuxReal" := "mAuxReal" * 0.000999; END_IF; IF "gBalaiage_MaxFlow" THEN "mAuxReal" := "mAuxReal" * 1.1; END_IF; IF "HMI_Instrument"."FTM305"."PVFiltered" >= 5.0 THEN "mAuxReal" := "HMI_Instrument"."FTM305"."PVFiltered"; END_IF; // Network 13: Tank Flow Ok (Original Language: LAD) // PrdTankPressError = Press_SP - Press_PV "Blender_Variables"."gBalaiageFlowError" := "mAuxReal" - "HMI_Instrument"."FTM305"."PVFiltered"; // Network 14: CO2MainValveDelay (Original Language: LAD) // Network 14 did not produce printable SCL code. // Network 15: Done (Original Language: LAD) // PBox SymPy processed, logic in consumer "mBalaiageDoneONS" := "gBlenderCIPMode"; // P_TRIG("gBlenderCIPMode") - Mem: "mBalaiageDoneONS" "Procedure_Variables"."Balaiage"."Done" := "Procedure_Variables"."Balaiage"."Done" OR ("gBlenderCIPMode" AND NOT "mBalaiageDoneONS"); END_FUNCTION ```