Obsidean_VM/04-SIDEL/06 - E5.007363 - Modifica O.../Source/source/BlenderPID_FlowMeterErro.md

2.4 KiB

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