ParamManagerScripts/backend/script_groups/TwinCat/.example/PRODUCTTANKBRIX.EXP

45 lines
1.3 KiB
Plaintext

(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
(* @SYMFILEFLAGS := '59392' *)
PROGRAM ProductTankBrix
VAR
mTemp : REAL ;
mIntH2O : Integral ;
mIntH2O_Syr : Integral ;
mIntSugar : Integral ;
mIntProduct : Integral ;
END_VAR
VAR_OUTPUT
EN_Out : BOOL ;
END_VAR
(* @END_DECLARATION := '0' *)
IF gBlenderBlending AND gActualSyrupDens<>0 THEN
mIntProduct.i_NewValue:=(gH2O_Flow_Meas + gSYR_Flow_Meas / gActualSyrupDens) - gEstimateFillerSpeed ;
mIntProduct.i_IntCycle:=gTask02CycleTime ;
mIntProduct(Out_Integral := gInTotProduct) ;
mTemp := gH2O_Flow_Meas - gOutTankH2O + (gSYR_Flow_Meas * (1 - gActualSyrupBrix / 100)) ;
mIntH2O.i_NewValue:=mTemp ;
mIntH2O.i_IntCycle:=gTask02CycleTime ;
mIntH2O(Out_Integral := gInTotH2O) ;
mIntSugar.i_NewValue:=(gSYR_Flow_Meas * gActualSyrupBrix / 100) - gOutTankSugar ;
mIntSugar.i_IntCycle:=gTask02CycleTime ;
mIntSugar(Out_Integral := gInTotSugar) ;
gOutTankH2O := gEstimateFillerSpeed * gProductDensity * (1 - gFlowProdBrix / 100) - gBlendError ;
gOutTankSugar := gEstimateFillerSpeed * gProductDensity * gFlowProdBrix / 100 ;
END_IF
IF gInTotH2O<>0 THEN
gProdTankBrix := gInTotSugar / gInTotH2O * 100 ;
END_IF
IF NOT gBlenderProdMode OR gBlenderRinseMode THEN
gInTotH2O := 0.0 ;
gInTotSugar := 0.0 ;
gInTotProduct := 0.0 ;
END_IF
END_PROGRAM