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

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