(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) (* @SYMFILEFLAGS := '59392' *) PROGRAM mPDS2000_Control VAR mFreezeMeterTmr : TOF ; mTmrReset : TP ; mTmrFault : TOF ; mReset : BOOL ; mMeterSel : BOOL ; mCountError : INT ; m_mPDS2000_RecipeTmr : TP ; mPDS2000_Block : ADSREAD ; mPDS2000_Busy : BOOL ; mPDS2000_Read : BOOL ; mPDS2000_Error : BOOL ; mPDS2000_ErrorCode : UDINT ; mDummy : BOOL ; mTmrComErr :TON; END_VAR VAR_OUTPUT EN_Out : BOOL ; END_VAR (* @END_DECLARATION := '0' *) _LD_BODY _NETWORKS : 7 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gSystem_Task_Info[3].active _EXPRESSION _NEGATIV _LD_AND _LD_OPERATOR : 2 _LD_CONTACT mReset _EXPRESSION _NEGATIV _LD_CONTACT gmPDS2000Error _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _FUNCTIONBLOCK mTmrReset _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#2s _EXPRESSION _POSITIV TP _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mReset _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 2 _ENABLED _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV gH_Blender_OPT_MeterType _OPERAND _EXPRESSION _POSITIV 2 _EXPRESSION _POSITIV EQ _OPERAND _EXPRESSION _POSITIV gH_Blender_OPT_BrixMeter _EXPRESSION _POSITIV AND _EXPRESSION _POSITIV _OUTPUTS : 2 _OUTPUT _POSITIV _NO_SET gmPDS2000Enabled _OUTPUT _POSITIV _NO_SET mMeterSel ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT mMeterSel _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 2 _ASSIGN _FUNCTIONBLOCK ??? _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV mPDS2000_Control.Read_mPDS2000 _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mDummy _ASSIGN _FUNCTIONBLOCK ??? _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV mPDS2000_Control.Write_mPDS2000 _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mDummy ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 7 _LD_CONTACT gBlenderCIPMode _EXPRESSION _NEGATIV _LD_CONTACT gBlendRecircActive _EXPRESSION _NEGATIV _LD_CONTACT gFirstProd_Running _EXPRESSION _NEGATIV _LD_CONTACT gBlenderRinseMode _EXPRESSION _NEGATIV _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gFlowToFiller _EXPRESSION _NEGATIV _LD_CONTACT gBlenderStartPumpsONS _EXPRESSION _POSITIV _EXPRESSION _POSITIV _LD_CONTACT mMeterSel _EXPRESSION _POSITIV _FUNCTIONBLOCK mFreezeMeterTmr _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#30s _EXPRESSION _POSITIV TOF _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _SET gFreezeProductMeter _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 4 _LD_CONTACT mMeterSel _EXPRESSION _POSITIV _LD_CONTACT gFreezeProductMeter _EXPRESSION _NEGATIV _LD_CONTACT gH_ProductMeter_Fault _EXPRESSION _NEGATIV _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gmPDS2000ComActive _EXPRESSION _POSITIV _LD_CONTACT gmPDS2000ReceiveOnly _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _SET gH_ProductMeter_Run _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 3 _LD_CONTACT mMeterSel _EXPRESSION _POSITIV _LD_CONTACT gmPDS2000Error _EXPRESSION _NEGATIV _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gmPDS2000ComActive _EXPRESSION _POSITIV _LD_CONTACT gmPDS2000ReceiveOnly _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _SET gProductMeterOk _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT gH_Blender_OPT_MeterReceiveOnly _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gmPDS2000ReceiveOnly END_PROGRAM ACTION Read_mPDS2000: _LD_BODY _NETWORKS : 14 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT mPDS2000_Read _EXPRESSION _NEGATIV _LD_CONTACT mPDS2000_Busy _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mPDS2000_Read _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK mPDS2000_Block _BOX_EXPR : 8 _ENABLED _OPERAND _EXPRESSION _POSITIV gBlenderAMS_NET_ID _OPERAND _EXPRESSION _POSITIV 811 _OPERAND _EXPRESSION _POSITIV 16#00004020 _OPERAND _EXPRESSION _POSITIV 16#000000C8 _OPERATOR _BOX_EXPR : 1 _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block _EXPRESSION _POSITIV SIZEOF _OPERATOR _BOX_EXPR : 1 _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block _EXPRESSION _POSITIV ADR _OPERATOR _BOX_EXPR : 2 _OPERAND _EXPRESSION _POSITIV mPDS2000_Read _OPERAND _EXPRESSION _NEGATIV mPDS2000_Busy _EXPRESSION _POSITIV AND _OPERAND _EXPRESSION _POSITIV t#3s _EXPRESSION _POSITIV ADSREAD _OUTPUTS : 2 _OUTPUT _POSITIV _NO_SET mPDS2000_Error _OUTPUT _POSITIV _NO_SET mPDS2000_ErrorCode _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mPDS2000_Busy ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ComActive _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gmPDS2000ComActive ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ProdBrix _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gProductBrix ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ProdCO2 _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gProductCO2 ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ProdTemp _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gProductTemp ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ProdDens _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gProductDens ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ProdRecipeNum _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gProductRecipeNum ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV gmPDS2000_Block.ErrorCode _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gmPDS2000ErrorCode ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_CONTACT gmPDS2000_Block.ComError _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 2 _ASSIGN _OPERATOR _BOX_EXPR : 2 _ENABLED _OPERAND _EXPRESSION _POSITIV mCountError _OPERAND _EXPRESSION _POSITIV 1 _EXPRESSION _POSITIV ADD _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mCountError _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV 0 _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 5 _OUTPUT _POSITIV _NO_SET gmPDS2000_Block.ProdRecipeNum _OUTPUT _POSITIV _NO_SET gmPDS2000_Block.ProdCO2 _OUTPUT _POSITIV _NO_SET gmPDS2000_Block.ProdBrix _OUTPUT _POSITIV _NO_SET gmPDS2000_Block.ProdDens _OUTPUT _POSITIV _NO_SET gmPDS2000_Block.ProdTemp ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_OR _LD_OPERATOR : 2 _LD_CONTACT gmPDS2000_Block.ComError _EXPRESSION _NEGATIV _LD_CONTACT gBlenderCIPMode _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 1 _ENABLED _OPERAND _EXPRESSION _POSITIV 0 _EXPRESSION _POSITIV MOVE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mCountError ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _OPERATOR _BOX_EXPR : 2 _ENABLED _OPERAND _EXPRESSION _POSITIV mCountError _OPERAND _EXPRESSION _POSITIV 6 _EXPRESSION _POSITIV GE _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gmPDS2000Error ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 4 _LD_CONTACT gProdMeterTransferRecipe _EXPRESSION _NEGATIV _FUNCTIONBLOCK mTmrComErr _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#25s _EXPRESSION _POSITIV TON _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _LD_CONTACT gmPDS2000Error _EXPRESSION _POSITIV _LD_CONTACT gProdBrixTrack_Latch _EXPRESSION _POSITIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _SET gmPDS2000_Error_Fault _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gmPDS2000Error _EXPRESSION _POSITIV _FUNCTIONBLOCK mTmrFault _BOX_EXPR : 2 _EMPTY _OPERAND _EXPRESSION _POSITIV t#10s _EXPRESSION _POSITIV TOF _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET _EMPTY _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET gH_ProductMeter_Fault END_ACTION ACTION Write_mPDS2000: gmPDS2000NumRecipe := LIMIT (0,gH_A_Recipe_ProdMeterRecipeNum,100) ; IF gBlenderCIPMode THEN gmPDS2000NumRecipe := 0 ; END_IF m_mPDS2000_RecipeTmr(IN:=(gProdMeterTransferRecipe OR gBlenderCIPMode),PT:=t#2s) ; gmPDS2000SetNewRec := m_mPDS2000_RecipeTmr.Q ; IF gProdMeterTransferRecipe THEN gProdMeterTransferRecipe := FALSE ; END_IF IF mReset THEN gmPDS2000Reset := TRUE ; gProdMeterTransferRecipe := FALSE ; gmPDS2000SetNewRec := FALSE ; ELSE gmPDS2000Reset := FALSE ; END_IF END_ACTION