631 lines
9.1 KiB
Plaintext
631 lines
9.1 KiB
Plaintext
|
|
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
|
(* @SYMFILEFLAGS := '59392' *)
|
|
PROGRAM ProductQuality
|
|
VAR
|
|
mProdBrixHighRS : RS ;
|
|
mProdBrixLowRS : RS ;
|
|
mProdCO2HighRS : RS ;
|
|
mProdCO2LowRS : RS ;
|
|
mProdCondLowRS : RS ;
|
|
mProdCondHighRS : RS ;
|
|
mDisableBrixHighAlarm : BOOL ;
|
|
mDisableHighCO2Alarm : BOOL ;
|
|
mDisableHighCondAlarm : BOOL ;
|
|
mDisableLowBrixAlarm : BOOL ;
|
|
mDisableLowCO2Alarm : BOOL ;
|
|
mDisableLowCondAlarm : BOOL ;
|
|
mWaterTempHighRS : RS ;
|
|
mProdTempHighRS : RS ;
|
|
mWaterTempHighDlyAlm : TON ;
|
|
mProdTempHighDlyAlm : TON ;
|
|
|
|
mDummy : BOOL ;
|
|
mTmrCO2High : TON;
|
|
END_VAR
|
|
|
|
VAR_OUTPUT
|
|
EN_Out : BOOL ;
|
|
END_VAR
|
|
|
|
(* @END_DECLARATION := '0' *)
|
|
_LD_BODY
|
|
_NETWORKS : 7
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_EMPTY
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 1
|
|
_ASSIGN
|
|
_FUNCTIONBLOCK
|
|
???
|
|
_BOX_EXPR : 0
|
|
_ENABLED
|
|
_EXPRESSION
|
|
_POSITIV
|
|
ProductQuality.Messages
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
mDummy
|
|
ENABLELIST_END
|
|
_OUTPUTS : 0
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_EMPTY
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 1
|
|
_ASSIGN
|
|
_FUNCTIONBLOCK
|
|
mProdBrixHighRS
|
|
_BOX_EXPR : 2
|
|
_ENABLED
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_Message019
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gFirstProd_Done
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gWorkshopTest
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gProductBrix
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_A_Recipe_ProdMeterHighBrix - 0.05
|
|
_EXPRESSION
|
|
_POSITIV
|
|
LT
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message019
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gProductMeterOk
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gProductBrixTooHigh
|
|
ENABLELIST_END
|
|
_OUTPUTS : 0
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_EMPTY
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 1
|
|
_ASSIGN
|
|
_FUNCTIONBLOCK
|
|
mProdBrixLowRS
|
|
_BOX_EXPR : 2
|
|
_ENABLED
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_Message018
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gFirstProd_Done
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gWorkshopTest
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gProductBrix
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_A_Recipe_ProdMeterLowBrix + 0.05
|
|
_EXPRESSION
|
|
_POSITIV
|
|
GT
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message018
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gProductMeterOk
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gProductBrixTooLow
|
|
ENABLELIST_END
|
|
_OUTPUTS : 0
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_EMPTY
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 1
|
|
_ASSIGN
|
|
_FUNCTIONBLOCK
|
|
mProdCO2HighRS
|
|
_BOX_EXPR : 2
|
|
_ENABLED
|
|
_FUNCTIONBLOCK
|
|
mTmrCO2High
|
|
_BOX_EXPR : 2
|
|
_OPERATOR
|
|
_BOX_EXPR : 4
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_Message021
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gFirstProd_Done
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gWorkshopTest
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gFreezeProductMeter
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
t#8s
|
|
_EXPRESSION
|
|
_POSITIV
|
|
TON
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
_EMPTY
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gProductCO2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_A_Recipe_ProdMeterHighCO2 - 0.08
|
|
_EXPRESSION
|
|
_POSITIV
|
|
LT
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message021
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gProductMeterOk
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gProductCO2TooHigh
|
|
ENABLELIST_END
|
|
_OUTPUTS : 0
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_EMPTY
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 1
|
|
_ASSIGN
|
|
_FUNCTIONBLOCK
|
|
mProdCO2LowRS
|
|
_BOX_EXPR : 2
|
|
_ENABLED
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_Message020
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gFirstProd_Done
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gWorkshopTest
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERATOR
|
|
_BOX_EXPR : 3
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gProductCO2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gH_A_Recipe_ProdMeterLowCO2 + 0.08
|
|
_EXPRESSION
|
|
_POSITIV
|
|
GT
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message020
|
|
_EXPRESSION
|
|
_POSITIV
|
|
AND
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gProductMeterOk
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gProductCO2TooLow
|
|
ENABLELIST_END
|
|
_OUTPUTS : 0
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
water Temperature Too High May be the suction ammonia compresso doesn't work properly.
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_LD_AND
|
|
_LD_OPERATOR : 3
|
|
_LD_CONTACT
|
|
gH_Message054
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_FUNCTIONBLOCK
|
|
mWaterTempHighDlyAlm
|
|
_BOX_EXPR : 2
|
|
_EMPTY
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
t#2m
|
|
_EXPRESSION
|
|
_POSITIV
|
|
TON
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
_EMPTY
|
|
_FUNCTIONBLOCK
|
|
mWaterTempHighRS
|
|
_BOX_EXPR : 2
|
|
_EMPTY
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message054
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 0
|
|
ENABLELIST_END
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gWaterTempTooHigh
|
|
_NETWORK
|
|
|
|
_COMMENT
|
|
|
|
_END_COMMENT
|
|
_LD_ASSIGN
|
|
_LD_AND
|
|
_LD_OPERATOR : 3
|
|
_LD_CONTACT
|
|
gH_Message052
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_FUNCTIONBLOCK
|
|
mProdTempHighDlyAlm
|
|
_BOX_EXPR : 2
|
|
_EMPTY
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
t#2m
|
|
_EXPRESSION
|
|
_POSITIV
|
|
TON
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
_EMPTY
|
|
_FUNCTIONBLOCK
|
|
mProdTempHighRS
|
|
_BOX_EXPR : 2
|
|
_EMPTY
|
|
_OPERATOR
|
|
_BOX_EXPR : 2
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_NEGATIV
|
|
gH_Message052
|
|
_OPERAND
|
|
_EXPRESSION
|
|
_POSITIV
|
|
gSyrRunOut_Done
|
|
_EXPRESSION
|
|
_POSITIV
|
|
OR
|
|
_EXPRESSION
|
|
_POSITIV
|
|
RS
|
|
_OUTPUTS : 0
|
|
_EXPRESSION
|
|
_POSITIV
|
|
_EXPRESSION
|
|
_POSITIV
|
|
|
|
|
|
ENABLELIST : 0
|
|
ENABLELIST_END
|
|
_OUTPUTS : 1
|
|
_OUTPUT
|
|
_POSITIV
|
|
_NO_SET
|
|
gProdTempTooHigh
|
|
|
|
END_PROGRAM
|
|
ACTION Messages:
|
|
IF gH_A_Recipe_ProdMeterHighBrix<>0 THEN
|
|
mDisableBrixHighAlarm := FALSE ;
|
|
ELSE
|
|
mDisableBrixHighAlarm := TRUE ;
|
|
END_IF
|
|
IF gH_A_Recipe_ProdMeterLowBrix<>0 THEN
|
|
mDisableLowBrixAlarm := FALSE ;
|
|
ELSE
|
|
mDisableLowBrixAlarm := TRUE ;
|
|
END_IF
|
|
IF gH_A_Recipe_ProdMeterHighCO2<>0 THEN
|
|
mDisableHighCO2Alarm := FALSE ;
|
|
ELSE
|
|
mDisableHighCO2Alarm := TRUE ;
|
|
END_IF
|
|
IF gH_A_Recipe_ProdMeterLowCO2<>0 THEN
|
|
mDisableLowCO2Alarm := FALSE ;
|
|
ELSE
|
|
mDisableLowCO2Alarm := TRUE ;
|
|
END_IF
|
|
IF gH_A_Recipe_ProdHighCond <>0 AND gH_Blender_OPT_ProductConductimeter THEN
|
|
mDisableHighCondAlarm := FALSE ;
|
|
ELSE
|
|
mDisableHighCondAlarm := TRUE ;
|
|
END_IF
|
|
IF gH_A_Recipe_ProdLowCond <>0 AND gH_Blender_OPT_ProductConductimeter THEN
|
|
mDisableLowCondAlarm := FALSE ;
|
|
ELSE
|
|
mDisableLowCondAlarm := TRUE ;
|
|
END_IF
|
|
|
|
IF gProductBrix>gH_A_Recipe_ProdMeterHighBrix AND gProductMeterOk AND NOT mDisableBrixHighAlarm AND gFirstProd_Done AND gSugarBeverage AND NOT gWaterRecipe AND NOT gBlenderRinseMode THEN
|
|
gH_Message019 := TRUE ; (* High Product Brix *)
|
|
ELSE
|
|
gH_Message019 := FALSE ; (* High Product Brix *)
|
|
END_IF
|
|
|
|
IF gProductBrix<gH_A_Recipe_ProdMeterLowBrix AND gProductMeterOk AND NOT mDisableLowBrixAlarm AND gFirstProd_Done AND gSugarBeverage AND NOT gWaterRecipe AND NOT gBlenderRinseMode THEN
|
|
gH_Message018 := TRUE ; (* Low Product Brix *)
|
|
ELSE
|
|
gH_Message018 := FALSE ; (* Low Product Brix *)
|
|
END_IF
|
|
|
|
IF gProductCO2<gH_A_Recipe_ProdMeterLowCO2 AND gProductMeterOk AND NOT mDisableLowCO2Alarm AND gFirstProd_Done AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gBlenderRinseMode THEN
|
|
gH_Message020 := TRUE ; (* Low Product CO2 *)
|
|
ELSE
|
|
gH_Message020 := FALSE ; (* Low Product CO2 *)
|
|
END_IF
|
|
|
|
IF gProductCO2>gH_A_Recipe_ProdMeterHighCO2 AND gProductMeterOk AND NOT mDisableHighCO2Alarm AND gFirstProd_Done AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gBlenderRinseMode THEN
|
|
gH_Message021 := TRUE ; (* High Product CO2 *)
|
|
ELSE
|
|
gH_Message021 := FALSE ; (* High Product CO2 *)
|
|
END_IF
|
|
|
|
IF gProductConductivity < gH_A_Recipe_ProdLowCond AND gFirstProd_Done AND NOT gBlenderRinseMode AND NOT mDisableLowCondAlarm THEN
|
|
gH_Message060 := TRUE ; (* Low Product Conductivity *)
|
|
ELSE
|
|
gH_Message060 := FALSE ; (* Low Product Conductivity *)
|
|
END_IF
|
|
|
|
IF gProductConductivity > gH_A_Recipe_ProdHighCond AND gFirstProd_Done AND NOT gBlenderRinseMode AND NOT mDisableHighCondAlarm THEN
|
|
gH_Message059 := TRUE ; (* High Product Conductivity *)
|
|
ELSE
|
|
gH_Message059 := FALSE ; (* High Product Conductivity *)
|
|
END_IF
|
|
|
|
IF gTempProd_PV < 1.0 AND gPID_ProdTemp_Enabled AND gFirstProd_Done THEN
|
|
gH_Message051 := TRUE ; (* Product near to freezing temperature *)
|
|
ELSE
|
|
gH_Message051 := FALSE ;
|
|
END_IF
|
|
|
|
IF gTempProd_PV > (gR_TempProd_SP + 4.0) AND gPID_ProdTemp_Enabled AND gFirstProd_Done THEN
|
|
gH_Message052 := TRUE ; (* Product temperature too high *)
|
|
ELSE
|
|
gH_Message052 := FALSE ;
|
|
END_IF
|
|
|
|
IF gTempWater_PV < 1.0 AND gPID_WaterTemp_Enabled AND gFirstProd_Done THEN
|
|
gH_Message053 := TRUE ; (* Water near to freezing temperature *)
|
|
ELSE
|
|
gH_Message053 := FALSE ;
|
|
END_IF
|
|
|
|
IF gTempWater_PV > (gR_TempWater_SP + 4.0) AND gPID_WaterTemp_Enabled AND gFirstProd_Done THEN
|
|
gH_Message054 := TRUE ; (* Water temperature too high *)
|
|
ELSE
|
|
gH_Message054 := FALSE ;
|
|
END_IF
|
|
|
|
END_ACTION
|
|
|