45 lines
1.3 KiB
Plaintext
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
|