Beispiel #1
0
        //出库后任务处理,通知物流线是空筐还是满筐
        private bool AsrsOutTaskBusiness(AsrsControl.AsrsPortalModel outPort, CtlDBAccess.Model.ControlTaskModel task, ref string reStr)
        {
            try
            {
                if (task == null)
                {
                    reStr = "任务为空";
                    return(false);
                }
                if (task.TaskType == (int)SysCfg.EnumAsrsTaskType.产品出库)
                {
                    outPort.Db1ValsToSnd[1] = 2;
                }
                else if (task.TaskType == (int)SysCfg.EnumAsrsTaskType.空筐出库)
                {
                    outPort.Db1ValsToSnd[1] = 1;
                }
                if (!outPort.NodeCmdCommit(true, ref reStr))
                {
                    reStr = string.Format("出库站台{0}状态'出库完成'提交失败", outPort.PortSeq);
                    return(false);
                }
                System.Threading.Thread.Sleep(500);

                return(true);
            }
            catch (Exception ex)
            {
                reStr = ex.ToString();
                return(false);
            }
        }
Beispiel #2
0
        private bool AsrsOutTaskBusiness(AsrsControl.AsrsPortalModel outPort, AsrsControl.AsrsTaskParamModel taskParam, ref string reStr)
        {
            try
            {
                outPort.Db1ValsToSnd[1] = (short)taskParam.CellPos1.Row;
                if (!outPort.NodeCmdCommit(true, ref reStr))
                {
                    reStr = string.Format("出库站台{0}状态'出库完成'提交失败", outPort.PortSeq);
                    return(false);
                }
                System.Threading.Thread.Sleep(500);

                return(true);
            }
            catch (Exception ex)
            {
                reStr = ex.ToString();
                return(false);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 空筐出库请求处理
        /// </summary>
        private void EmptyPalletOutputRequire()
        {
            AsrsCtlModel    asrsHouse          = asrsCtls[0];
            AsrsPortalModel emptyPalletOutport = asrsHouse.GetPortByDeviceID("2003");

            if (emptyPalletOutport.Db2Vals[1] == 1)
            {
                //出口有框,禁止出库
                return;
            }
            if (emptyPalletOutport.Db1ValsToSnd[0] == 2)
            {
                return;
            }
            if (emptyPalletOutport.Db2Vals[0] != 3)
            {
                return;
            }
            bool exitFlag = false;
            int  row = 2, col = 21, layer = 6; //要查询得到

            int r = 1, c = 1, L = 1;

            for (r = 1; r < row + 1; r++)
            {
                if (exitFlag)
                {
                    break;
                }
                for (c = 1; c < col + 1; c++)
                {
                    if (exitFlag)
                    {
                        break;
                    }
                    for (L = 1; L < layer + 1; L++)
                    {
                        CellCoordModel   cell          = new CellCoordModel(r, c, L);
                        EnumCellStatus   cellStoreStat = EnumCellStatus.空闲;
                        EnumGSTaskStatus cellTaskStat  = EnumGSTaskStatus.完成;
                        if (!this.asrsResourceManage.GetCellStatus(asrsHouse.HouseName, cell, ref cellStoreStat, ref cellTaskStat))
                        {
                            continue;
                        }
                        if (cellStoreStat == EnumCellStatus.空料框 && cellTaskStat != EnumGSTaskStatus.锁定)
                        {
                            if (asrsHouse.GenerateOutputTask(cell, null, SysCfg.EnumAsrsTaskType.空筐出库, true))
                            {
                                exitFlag = true;
                                emptyPalletOutport.Db1ValsToSnd[0] = 2;
                                string reStr = "";
                                if (!emptyPalletOutport.NodeCmdCommit(true, ref reStr))
                                {
                                    logRecorder.AddDebugLog(emptyPalletOutport.NodeName, "发送命令失败" + reStr);
                                }
                                else
                                {
                                    return;
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }