(* @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