예제 #1
0
 public virtual bool GetOHxC2MTL_CarOutInterlock()
 {
     try
     {
         ValueWrite vm_carOutInterlock = bcfApp.getWriteValueEvent(eqpt.EqptObjectCate, eqpt.EQPT_ID, "OHXC_TO_MTL_U2D_CAR_OUT_INTERLOCK");
         eqpt.Interlock = (Boolean)vm_carOutInterlock.getText();
         return((Boolean)vm_carOutInterlock.getText());
     }
     catch (Exception ex)
     {
         logger.Error(ex, "Exception");
         eqpt.Interlock = false;
         return(false);
     }
 }
예제 #2
0
        private void AliveMTL()
        {
            if (System.Threading.Interlocked.Exchange(ref syncMTLPoint, 1) == 0)
            {
                try
                {
                    ValueWrite isAliveIndexVW = scApp.getBCFApplication().getWriteValueEvent(SCAppConstants.EQPT_OBJECT_CATE_EQPT, "MTL", "OHXC_TO_MTL_ALIVE_INDEX");
                    if (isAliveIndexVW == null)
                    {
                        return;
                    }
                    UInt16 isAliveIndex = (UInt16)isAliveIndexVW.getText();

                    int x = isAliveIndex + 1;
                    if (x > 9999)
                    {
                        x = 1;
                    }
                    isAliveIndexVW.setWriteValue((UInt16)x);
                    ISMControl.writeDeviceBlock(scApp.getBCFApplication(), isAliveIndexVW);
                }
                catch (Exception e)
                {
                }
                finally
                {
                    System.Threading.Interlocked.Exchange(ref syncMTLPoint, 0);
                }
            }
        }
예제 #3
0
 private void doChcekPLCLinkStatus()
 {
     if (System.Threading.Interlocked.Exchange(ref syncCheckPLC_Point, 1) == 0)
     {
         try
         {
             UInt16 isAliveIndex = (UInt16)isAliveIndexVW.getText();
             int    x            = isAliveIndex + 1;
             if (x > 9999)
             {
                 x = 1;
             }
             isAliveIndexVW.setWriteValue((UInt16)x);
             bool isWriteSucess = smControl.writeDeviceBlock(isAliveIndexVW);
             logger.Trace($"Alive Index:{x}");
             dicCommInfo["PLC"].IsCommunactionSuccess = isWriteSucess;
             dicCommInfo["PLC"].IsConnectinoSuccess   = isWriteSucess;
         }
         catch (Exception ex)
         {
             logger.Error(ex, "Exception");
         }
         finally
         {
             System.Threading.Interlocked.Exchange(ref syncCheckPLC_Point, 0);
         }
     }
 }
예제 #4
0
        private void AliveToDevice(int syncIndex, string eqID, string writeName)
        {
            if (System.Threading.Interlocked.Exchange(ref syncPoint[syncIndex], 1) == 0)
            {
                bool isWriteSucess = false;
                try
                {
                    ValueWrite isAliveIndexVW = scApp.getBCFApplication().getWriteValueEvent(SCAppConstants.EQPT_OBJECT_CATE_EQPT, eqID, writeName);
                    if (isAliveIndexVW == null)
                    {
                        return;
                    }
                    UInt16 isAliveIndex = (UInt16)isAliveIndexVW.getText();

                    int x = isAliveIndex + 1;
                    if (x > 9999)
                    {
                        x = 1;
                    }
                    isAliveIndexVW.setWriteValue((UInt16)x);
                    ISMControl.writeDeviceBlock(scApp.getBCFApplication(), isAliveIndexVW);

                    if (isWriteSucess || switchFlag)
                    {
                        isWriteSucess = false;
                        switchFlag    = false;
                        isWriteSucess = ISMControl.writeDeviceBlock(scApp.getBCFApplication(), isAliveIndexVW);
                        switchFlag    = true;
                    }
                    else
                    {
                        switchFlag    = false;
                        isWriteSucess = false;
                    }
                }
                catch (Exception e)
                {
                    switchFlag    = true;
                    isWriteSucess = false;
                }
                finally
                {
                    AEQPT eqpt = scApp.getEQObjCacheManager().getEquipmentByEQPTID(eqID);
                    if (eqpt != null)
                    {
                        eqpt.Plc_Link_Stat = isWriteSucess ? SCAppConstants.LinkStatus.LinkOK : SCAppConstants.LinkStatus.LinkFail;
                    }

                    System.Threading.Interlocked.Exchange(ref syncPoint[syncIndex], 0);
                }
            }
        }
예제 #5
0
 public virtual bool GetOHxC2MTL_CarInMoving()
 {
     try
     {
         ValueWrite vm_carMoving = bcfApp.getWriteValueEvent(eqpt.EqptObjectCate, eqpt.EQPT_ID, "OHXC_TO_MTL_D2U_CAR_MOVING");
         return((Boolean)vm_carMoving.getText());
     }
     catch (Exception ex)
     {
         logger.Error(ex, "Exception");
         return(false);
     }
 }
예제 #6
0
        public override void doProcess(object obj)
        {
            bool isWriteSucess = false;

            try
            {
                if (mCharger == null)
                {
                    mCharger = scApp.getEQObjCacheManager().getEquipmentByEQPTID("MCharger");
                }
                ValueWrite isAliveIndexVW = scApp.getBCFApplication().getWriteValueEvent(SCAppConstants.EQPT_OBJECT_CATE_EQPT, "MCharger", "AGVC_TO_CHARGER_ALIVE_INDEX");
                if (isAliveIndexVW == null)
                {
                    return;
                }
                UInt16 isAliveIndex = (UInt16)isAliveIndexVW.getText();

                int x = isAliveIndex + 1;
                if (x > 9999)
                {
                    x = 1;
                }
                isAliveIndexVW.setWriteValue((UInt16)x);

                if (isWriteSucess || switchFlag)
                {
                    isWriteSucess = false;
                    switchFlag    = false;

                    //isWriteSucess = smControl.writeDeviceBlock(isAliveIndexVW);
                    isWriteSucess           = ISMControl.writeDeviceBlock(scApp.getBCFApplication(), isAliveIndexVW);
                    switchFlag              = true;
                    mCharger.AGVCAliveIndex = x;
                }
                else
                {
                    switchFlag    = false;
                    isWriteSucess = false;
                }
            }
            catch (Exception e)
            {
                switchFlag    = true;
                isWriteSucess = false;
            }
        }