コード例 #1
0
ファイル: ClientForm.cs プロジェクト: wuheideyun/keda_wcs
        /// <summary>
        /// 检测调度状态
        /// </summary>
        private void CheckDispatch()
        {
            WcfMainHelper.InitPara(_severIp, "", "");

            List <DispatchBackMember> result = WcfMainHelper.GetDispatchList();

            if (result != null)
            {
                foreach (var item in result)
                {
                    if (item.TaskImf == _clientMark && item.OrderStatue == ResultTypeEnum.Suc)
                    {
                        WcfMainHelper.CtrDispatch(item.DisGuid, DisOrderCtrTypeEnum.Stop);
                    }
                }

                if (_callingTask != null)
                {
                    if (result.Find(c => { return(c.DisGuid == _callingTask.DisGuid); }) == null)
                    {
                        _callingTask = null;
                    }
                }
            }

            if (_callingTask == null)
            {
                _isCalling = false;
            }
        }
コード例 #2
0
ファイル: F_Logic.cs プロジェクト: wuheideyun/keda_wcs
        /// <summary>
        /// 发生故障、离线的车,清除其相应的任务
        /// </summary>
        public void ClearTask()
        {
            while (true)
            {
                Thread.Sleep(5000);
                List <F_AGV>            agvs         = F_DataCenter.MDev.ErrorOrFalse();
                List <FDispatchBackImf> dispatchList = WcfMainHelper.GetDispatchList();
                if (dispatchList != null && agvs != null && dispatchList.Count > 0)
                {
                    foreach (var agv in agvs)
                    {
                        foreach (var dispatch in dispatchList)
                        {
                            // 有故障的车是否对应任务的设备ID
                            if (agv.Id == dispatch.Dev)
                            {
                                if (dic.ContainsKey(agv.Id))
                                {
                                    int count = 0;
                                    dic.TryGetValue(agv.Id, out count);
                                    if (count >= 10)
                                    {
                                        // 终止该任务
                                        WcfMainHelper.CtrDispatch(dispatch.Id, EnumCtrType.Stop);
                                        sendServerLog("终止异常的 " + agv.Id + "正在执行的任务");

                                        //LogFactory.LogRunning("终止异常的 " + agv.Id + "正在执行的任务");
                                        FLog.Log("终止异常的 " + agv.Id + "正在执行的任务");

                                        count = 0;

                                        //异常终止的任务释放AGV
                                        F_AGV.AgvRelease(agv.Id);
                                    }
                                    else
                                    {
                                        count++;
                                        sendServerLog("异常的 " + agv.Id + "已等待处理 " + count + " 次");

                                        //LogFactory.LogRunning("异常的 " + agv.Id + "已等待处理 " + count + " 次");
                                        FLog.Log("异常的 " + agv.Id + "已等待处理 " + count + " 次");
                                    }
                                    dic.Remove(agv.Id);
                                    dic.Add(agv.Id, count);
                                }
                                else
                                {
                                    dic.Add(agv.Id, 0);
                                }
                            }
                        }
                    }
                }
                else
                {
                    dic.Clear();
                }
            }
        }
コード例 #3
0
ファイル: F_ExcTask.cs プロジェクト: wuheideyun/keda_wcs
 /// <summary>
 /// 任务完成
 /// </summary>
 public void ISetTaskSuc()
 {
     if (_taskDispatch != null)
     {
         if (WcfMainHelper.CtrDispatch(_taskDispatch.Id, EnumCtrType.Stop))
         {
             _isSuc = true;
         }
     }
     FLog.Log(_taskDispatch.Id + "任务完成");
 }
コード例 #4
0
ファイル: F_ExcTask.cs プロジェクト: smallredarmy/keda_wcs
        /// <summary>
        /// 任务完成
        /// </summary>
        public void ISetTaskSuc()
        {
            //if (_plc != null)
            //{
            //    _plc.IsLock = false;
            //}

            //if (_agv != null) { F_AGV.AgvRelease(_agv.Id); }

            if (_taskDispatch != null)
            {
                if (WcfMainHelper.CtrDispatch(_taskDispatch.Id, EnumCtrType.Stop))
                {
                    _isSuc = true;
                }
            }
        }