```pascal FUNCTION "BlenderPID_FlowMeterErro" : Real { S7_Optimized_Access := 'FALSE' } AUTHOR : 'Author' FAMILY : TASK1 NAME : 'Name' VERSION : 1.0 VAR_TEMP mWaterMaxFlow : Real; mWaterMinFlow : Real; mSyrupMaxFlow : Real; mSyrupMinFlow : Real; mMinRatio : Real; mMaxRatio : Real; mBevBrixMax : Real; mBevBrixMin : Real; END_VAR BEGIN IF "Blender_Variables".gSP_H2O <> 0 THEN "Blender_Variables".gWaterVFMCalcError := "Blender_Variables".gWaterVFMMeasError / 100 * "Blender_Variables".gSP_H2O ; END_IF; IF "Blender_Variables".gSP_SYR <> 0 THEN "Blender_Variables".gSyrupMFMCalcError := ("Blender_Variables".gSyrupMFMMeasError / 100 + ("Blender_Variables".gSyrupMFMZeroStab / ("Blender_Variables".gSP_SYR * 60)) / 100) * "Blender_Variables".gSP_SYR ; END_IF; IF "Blender_Variables".gSP_CO2 <>0 THEN "Blender_Variables".gCO2MFMCalcError := ("Blender_Variables".gCO2MFMMeasError / 100 + ("Blender_Variables".gCO2MFMZeroStab / ("Blender_Variables".gSP_CO2 * 60 / 1000)) / 100) * "Blender_Variables".gSP_CO2 ; END_IF; #mWaterMaxFlow := "Blender_Variables".gSP_H2O + "Blender_Variables".gWaterVFMCalcError ; #mWaterMinFlow := "Blender_Variables".gSP_H2O - "Blender_Variables".gWaterVFMCalcError ; IF "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity <> 0 THEN #mSyrupMaxFlow := ("Blender_Variables".gSP_SYR + "Blender_Variables".gSyrupMFMCalcError) / "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity ; #mSyrupMinFlow := ("Blender_Variables".gSP_SYR - "Blender_Variables".gSyrupMFMCalcError) / "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity ; END_IF; IF #mSyrupMaxFlow <> 0 THEN #mMinRatio := #mWaterMinFlow / #mSyrupMaxFlow ; END_IF; IF #mSyrupMinFlow <> 0 THEN #mMaxRatio := #mWaterMaxFlow / #mSyrupMinFlow ; END_IF; IF "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity <> 0 THEN #mBevBrixMax := "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupBrix / ((#mMinRatio / "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity) + 1) ; #mBevBrixMin := "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupBrix / ((#mMaxRatio / "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity) + 1) ; END_IF; "Blender_Variables".gBlenderBlendMaxError := #mBevBrixMax - #mBevBrixMin ; #BlenderPID_FlowMeterErro := "Blender_Variables".gBlenderBlendMaxError ; END_FUNCTION ```