// Block Name (Original): TestLAD // Block Number: 2 // Original Language: LAD FUNCTION_BLOCK "TestLAD" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_RETURN Ret_Val : Real; END_VAR VAR_TEMP mWaterMaxFlow : Real; mWaterMinFlow : Real; mSyrupMaxFlow : Real; mSyrupMinFlow : Real; mMinRatio : Real; mMaxRatio : Real; mBevBrixMax : Real; mBevBrixMin : Real; END_VAR BEGIN // Network 1: (Original Language: SCL) 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"; "TestLAD" := "Blender_Variables".gBlenderBlendMaxError; END_FUNCTION_BLOCK