57 lines
2.5 KiB
Plaintext
57 lines
2.5 KiB
Plaintext
// 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
|