Beispiel #1
0
        /// <summary>
        /// 执行入库任务(初步执行)
        /// </summary>
        /// <param name="command"></param>
        public void Task_InInitial(WCS_COMMAND_V command)
        {
            try
            {
                // 选择目的货位最靠外的货物优先处理
                String loc1 = task.GetRGVLoc(2, command.LOC_TO_1); //运输车辊台②任务1
                String loc2 = task.GetRGVLoc(1, command.LOC_TO_2); //运输车辊台①任务2
                String loc  = task.GetLocByRgvToLoc(loc1, loc2);   //处理货位
                if (loc == "NG")
                {
                    //不能没有货物目的位置
                    return;
                }

                // 摆渡车到固定辊台对接点
                String ARFloc = task.GetARFLoc(command.FRT);               //获取对应摆渡车位置
                task.CreateItem(command.WCS_NO, ItemId.摆渡车定位固定辊台, ARFloc); //生成摆渡车任务

                // 运输车到摆渡车对接点
                task.CreateItem(command.WCS_NO, ItemId.运输车复位1, ConfigurationManager.AppSettings["StandbyP1"]);  //生成运输车任务

                // 行车到运输车对接取货点
                String ABCloc = task.GetABCTrackLoc(loc);               //获取对应行车位置
                task.CreateItem(command.WCS_NO, ItemId.行车轨道定位, ABCloc); //生成行车任务

                //更新WCS COMMAND状态——执行中
                task.UpdateCommand(command.WCS_NO, CommandStep.执行中);
                //更新WCS TASK状态——任务中
                task.UpdateTaskByWCSNo(command.WCS_NO, TaskSite.任务中);
            }
            catch (Exception ex)
            {
                //初始化
                task.UpdateCommand(command.WCS_NO, CommandStep.请求执行);
                task.UpdateTaskByWCSNo(command.WCS_NO, TaskSite.未执行);
                task.DeleteItem(command.WCS_NO, "");
                throw ex;
            }
        }