(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) (* @SYMFILEFLAGS := '59392' *) PROGRAM FirstProduction VAR mFirstProdONS : R_TRIG ; mFirstProdTP : TP ; mFirstProdTP1 : TP ; mAuxONS : R_TRIG ; mAuxTP : TP ; mTimeDone : TON ; mSwitchLevel : REAL ; mSyrupCount : REAL ; mSyrupCountInit : REAL ; mFirstProdSR : SR ; mFirstProdCountDone : BOOL ; mInitialSyrupOk : BOOL ; mDelaySyrOk : TON ; mDummy : BOOL ; END_VAR VAR_OUTPUT EN_Out : BOOL ; END_VAR (* @END_DECLARATION := '0' *) _LD_BODY _NETWORKS : 17 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 3 _LD_CONTACT gBlenderProdMode _EXPRESSION _POSITIV _LD_CONTACT gBlenderRinseMode _EXPRESSION _NEGATIV _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gBlenderSuppliesOk _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Qualifier _NETWORK _COMMENT Exceptionally the Request Bit is Latched in order TO save it FOR the next Production switching. _END_COMMENT _LD_ASSIGN _LD_OR _LD_OPERATOR : 4 _LD_CONTACT gBlenderCIPMode _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 3 _LD_CONTACT gFastChangeOverActivated _EXPRESSION _NEGATIV _LD_OR _LD_OPERATOR : 3 _LD_CONTACT gFirstProd_Request _EXPRESSION _POSITIV _LD_CONTACT gBlenderRinseMode _EXPRESSION _POSITIV _LD_CONTACT gProdPipeRunOut_Done _EXPRESSION _POSITIV _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Done _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 5 _LD_CONTACT gH_CMD_FirstProduction _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Latch _EXPRESSION _NEGATIV _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _LD_CONTACT gFastChangeOverActivated _EXPRESSION _NEGATIV _FUNCTIONBLOCK mFirstProdTP _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#1s _EXPRESSION _POSITIV TP _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 4 _LD_CONTACT gFastChangeOverActivated _EXPRESSION _POSITIV _LD_CONTACT gFastRinse_Done _EXPRESSION _POSITIV _LD_CONTACT gBlenderAlarm _EXPRESSION _NEGATIV _FUNCTIONBLOCK mFirstProdTP1 _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#1s _EXPRESSION _POSITIV TP _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Request _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_OR _LD_OPERATOR : 3 _LD_CONTACT gFirstProd_Qualifier _EXPRESSION _NEGATIV _LD_CONTACT gBlenderRinse_DoneONS _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 4 _LD_CONTACT gFastChangeOverActivated _EXPRESSION _NEGATIV _LD_CONTACT gFirstProd_Request _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _FUNCTIONBLOCK mFirstProdONS _BOX_EXPR : 1 _EMPTY _EXPRESSION _POSITIV R_TRIG _OUTPUTS : 0 _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Reset _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT gFirstProd_Reset _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK ??? _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV FirstProduction.Reset _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mDummy ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT Waits UNTIL Production is Selected _END_COMMENT _LD_ASSIGN _LD_OR _LD_OPERATOR : 5 _LD_CONTACT gBlenderProdMode _EXPRESSION _NEGATIV _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gBlenderProdMode _EXPRESSION _POSITIV _LD_CONTACT gBlenderRun_Running _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _LD_CONTACT gBlenderRinseMode _EXPRESSION _POSITIV _LD_CONTACT gAirLowPress_Fault _EXPRESSION _POSITIV _LD_CONTACT gCO2LowPress_Fault _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Wait _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Running _EXPRESSION _POSITIV _FUNCTIONBLOCK mFirstProdSR _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV gFirstProd_Done _EXPRESSION _POSITIV SR _OUTPUTS : 0 _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProdLatched _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Running _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _SET gFirstProdStop _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProdStop _EXPRESSION _POSITIV _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gBlenderLevelTarget _EXPRESSION _NEGATIV _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gH_Blender_OPT_Simulation _EXPRESSION _NEGATIV _LD_CONTACT gWorkshopTest _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _NEGATIV _SET gFirstProdStop _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 3 _LD_CONTACT gSyrLineMFMPrep_Done _EXPRESSION _POSITIV _LD_CONTACT gPV_SyrDensOk _EXPRESSION _POSITIV _LD_CONTACT gFirstProdLatched _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gH_SyrupTotalizerLt _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mSyrupCountInit ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT During Fisrt Production the SyrupRunOutLiters Parameters is multiplied BY 1.3 (30% more syrup) AND used TO state when all the Low Brix Syrup is ran Out. _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gPV_SyrDensOk _EXPRESSION _POSITIV _LD_CONTACT gFirstProdLatched _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 2 _ENABLED _OPERATOR _BOX_EXPR : 2 _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gSyrupTotal _OPERAND _EXPRESSION _POSITIV gActualSyrupDens _EXPRESSION _POSITIV DIV _OPERAND _EXPRESSION _POSITIV mSyrupCountInit _EXPRESSION _POSITIV SUB _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gH_ProcessSetup_SyrupRunOutLiters _OPERAND _EXPRESSION _POSITIV 1.0 _EXPRESSION _POSITIV MUL _EXPRESSION _POSITIV GT _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mFirstProdCountDone ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 3 _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Request _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Latch _EXPRESSION _POSITIV _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Reset _EXPRESSION _NEGATIV _LD_CONTACT gFirstProd_Done _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 3 _OUTPUT _POSITIV _NO_SET gH_FirstProdRun _OUTPUT _POSITIV _NO_SET gH_Status006 _OUTPUT _POSITIV _NO_SET gFirstProd_Latch _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Latch _EXPRESSION _POSITIV _LD_CONTACT gFirstProd_Wait _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Running _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Running _EXPRESSION _POSITIV _FUNCTIONBLOCK mAuxTP _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#1s _EXPRESSION _POSITIV TP _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK ??? _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV FirstProduction.ResetTotalizers _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mDummy ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT gAlwaysOff _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _FUNCTIONBLOCK _FBD_PROGRAM _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV FirstProduction.SwitchLevel _OUTPUTS : 0 ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK mDelaySyrOk _BOX_EXPR : 2 _ENABLED _OPERATOR _BOX_EXPR : 2 _OPERATOR _BOX_EXPR : 1 _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gActualRecipe_Syrup_Brix _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gMeterSyrBrix _OPERAND _EXPRESSION _POSITIV gActualRecipe_Syrup_Brix_Fact _EXPRESSION _POSITIV MUL _EXPRESSION _POSITIV SUB _EXPRESSION _POSITIV ABS _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gActualRecipe_SP_MaxDeltaBrix _OPERAND _EXPRESSION _POSITIV 0.8 _EXPRESSION _POSITIV MUL _EXPRESSION _POSITIV LT _OPERAND _EXPRESSION _POSITIV t#1s _EXPRESSION _POSITIV TON _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mInitialSyrupOk ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT First production stops when product tank level gets MAX Lvel (80%) OR when the Syrup Brix Error is minimum. _END_COMMENT _LD_ASSIGN _LD_OR _LD_OPERATOR : 2 _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Latch _EXPRESSION _POSITIV _LD_OR _LD_OPERATOR : 2 _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gBlenderStopLevel _EXPRESSION _POSITIV _LD_CONTACT gBlenderRinseMode _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 3 _LD_CONTACT gBlenderBlending _EXPRESSION _POSITIV _LD_OR _LD_OPERATOR : 2 _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gBlenderLevelTarget _EXPRESSION _POSITIV _LD_CONTACT mInitialSyrupOk _EXPRESSION _POSITIV _EXPRESSION _POSITIV _LD_CONTACT gSyrupRoomEn _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _FUNCTIONBLOCK mTimeDone _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#10s _EXPRESSION _POSITIV TON _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gFirstProd_Reset _EXPRESSION _NEGATIV _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gFirstProd_Done _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT gFirstProd_Done _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gH_FirstProductionDone END_PROGRAM ACTION Reset: mFirstProdCountDone := FALSE ; gFirstProdLatched := FALSE ; gFirstProd_Done := FALSE ; END_ACTION ACTION ResetTotalizers: _LD_BODY _NETWORKS : 1 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 4 _OUTPUT _POSITIV _NO_SET gWaterVFMResetTot _OUTPUT _POSITIV _NO_SET gSyrupMFMResetTot _OUTPUT _POSITIV _NO_SET gCO2MFMResetTot _OUTPUT _POSITIV _NO_SET gProductMFMResetTot END_ACTION ACTION SwitchLevel: IF gActualRecipe_SP_Tank_Press>0 THEN mSwitchLevel :=(1 - gCO2EqPressure / gActualRecipe_SP_Tank_Press) * 100 ; END_IF END_ACTION