```pascal FUNCTION "Input_CheckFlowMetersSta" : Void { S7_Optimized_Access := 'FALSE' } AUTHOR : 'Author' FAMILY : TASK2 NAME : 'Name' VERSION : 1.0 VAR_TEMP WaterFlow_State : Int; WaterTot_State : Int; Syrup1Flow_State : Int; CO2Flow_State : Int; ProductFlow_State : Int; ProductTot_State : Int; END_VAR BEGIN #WaterFlow_State := BYTE_TO_INT("Profibus_Variables".gFTN301_Flow_State); #WaterTot_State := BYTE_TO_INT("Profibus_Variables".gFTN301_Tot_State); #Syrup1Flow_State := BYTE_TO_INT("Profibus_Variables".gFTP302_Flow_State); #CO2Flow_State := BYTE_TO_INT("Profibus_Variables".gFTM303_Flow_State); #ProductFlow_State := BYTE_TO_INT("Profibus_Variables".gVFM_ProductFlow_State); #ProductTot_State := BYTE_TO_INT("Profibus_Variables".gVFM_ProductTot_State); IF "HMI_Blender_Parameters".Processor_Options.Blender_OPT._WaterPromass THEN CASE #WaterFlow_State OF 16#53: "gFTN301_EPD" := TRUE ; "gFTN301_Fault" := FALSE ; 16#64: IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" THEN "gFTN301_EPD" := TRUE ; END_IF; "gFTN301_Fault" := FALSE ; 16#80: "gFTN301_EPD":= FALSE ; "gFTN301_Fault" := FALSE ; 16#9C: "gFTN301_EPD" := FALSE ; "gFTN301_Fault" := FALSE ; 16#78: "gFTN301_EPD" := FALSE; "gFTN301_Fault" := FALSE; ELSE: "gFTN301_Fault" := TRUE ; "gFTN301_EPD" := FALSE ; END_CASE; ELSE CASE #WaterFlow_State OF 16#47: IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" THEN "gFTN301_EPD" := TRUE ; END_IF; "gFTN301_Fault" := FALSE ; 16#80: "gFTN301_EPD" := FALSE ; "gFTN301_Fault" := FALSE ; 16#4F: "gFTN301_EPD" := FALSE ; "gFTN301_Fault" := FALSE ; ELSE: CASE #WaterTot_State OF 16#03: "gFTN301_Fault" := FALSE ; "gFTN301_EPD" := FALSE ; 16#47: IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" THEN "gFTN301_EPD" := TRUE ; END_IF; "gFTN301_Fault" := FALSE ; // ELSE: "gFTN301_Fault" := TRUE ; "gFTN301_EPD" := FALSE ;// 16#00: "gFTN301_Fault" := FALSE; "gFTN301_EPD" := FALSE; END_CASE; END_CASE; END_IF; IF "Blender_Variables_Pers".gWaterRecipe THEN "gFTP302_Fault" := FALSE ; "gFTP302_EPD" := FALSE ; ELSE CASE #Syrup1Flow_State OF 16#43: "gFTP302_EPD" := TRUE ; "gFTP302_Fault" := FALSE ; 16#53: "gFTP302_EPD" := TRUE ; "gFTP302_Fault" := FALSE ; 16#64: "gFTP302_EPD" := TRUE ; "gFTP302_Fault" := FALSE ; 16#78: IF "gBlenderBlending" OR "Procedure_Variables".FTP302Line_Preparation.Latch THEN "gFTP302_EPD" := TRUE; "gFTP302_Fault" := FALSE; END_IF; 16#80: "gFTP302_EPD" := FALSE ; "gFTP302_Fault" := FALSE ; 16#9C: "gFTP302_EPD" := FALSE ; "gFTP302_Fault" := FALSE ; ELSE: "gFTP302_Fault" := FALSE ; "gFTP302_EPD" := FALSE ; END_CASE; END_IF; CASE #CO2Flow_State OF 16#43: "gFTM303_EPD" := TRUE ; "gFTM303_Fault" := FALSE ; 16#53: "gFTM303_EPD" := TRUE ; "gFTM303_Fault" := FALSE ; 16#64: "gFTM303_EPD" := TRUE ; "gFTM303_Fault" := FALSE ; 16#80: "gFTM303_EPD" := FALSE ; "gFTM303_Fault" := FALSE ; 16#9C: "gFTM303_EPD" := FALSE ; "gFTM303_Fault" := FALSE ; ELSE: "gFTM303_Fault" := TRUE ; "gFTM303_EPD" := FALSE ; END_CASE; IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" AND "Procedure_Variables".BlendFill_StartUp.Done THEN CASE #ProductFlow_State OF 16#47: IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" AND "Procedure_Variables".BlendFill_StartUp.Done THEN "gProductVFM_EPD" := TRUE ; END_IF; "gProductVFM_Fault" := FALSE ; 16#80: "gProductVFM_EPD" := FALSE ; "gProductVFM_Fault" := FALSE ; ELSE: CASE #ProductTot_State OF 16#47: IF "gBlenderBlending" AND NOT ("System_RunOut_Variables".FastChangeOverActivated AND "Procedure_Variables".Syr_RunOut.Done) AND NOT "gBlenderCIPMode" AND "Procedure_Variables".BlendFill_StartUp.Done THEN "gProductVFM_EPD" := TRUE ; END_IF; "gProductVFM_Fault" := FALSE ; ELSE: "gProductVFM_Fault" := TRUE ; "gProductVFM_EPD" := FALSE ; END_CASE; END_CASE; ELSE "gProductVFM_Fault" := FALSE ; "gProductVFM_EPD" := FALSE ; END_IF; IF "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation OR "gBlenderCIPMode" OR "HMI_Blender_Parameters".Processor_Options.Blender_OPT._FlowMeterType THEN "gFTN301_Fault" := FALSE ; "gFTN301_EPD" := FALSE ; "gFTP302_Fault" := FALSE ; "gFTP302_EPD" := FALSE ; "gProductVFM_Fault" := FALSE ; "gProductVFM_EPD" := FALSE ; END_IF; IF "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation OR "gBlenderCIPMode" OR NOT "HMI_Blender_Parameters".Processor_Options.Blender_OPT._CarboPresent OR "HMI_Blender_Parameters".Processor_Options.Blender_OPT._FlowMeterType THEN "gFTM303_Fault" := FALSE ; "gFTM303_EPD" := FALSE ; END_IF; END_FUNCTION ```