| | |
| | | |
| | | if (waitTask.TaskType == TaskTypeEnum.In ) |
| | | { |
| | | //入库任务起始巷道就是起始工位 |
| | | //入库任务起始巷道就是四向车取货工位 |
| | | if (string.IsNullOrWhiteSpace(waitTask.StartRoadway) || string.IsNullOrWhiteSpace(waitTask.EndLocate)) |
| | | { |
| | | continue; |
| | |
| | | } |
| | | else if (waitTask.TaskType == TaskTypeEnum.Out) |
| | | { |
| | | //出库任务目标巷道就是四向车放货工位 |
| | | taskceng = int.Parse(waitTask.StartLocate.Substring(4, 2)); |
| | | starLocate = waitTask.StartLocate; |
| | | endLocate = waitTask.EndRoadway; |
| | |
| | | } |
| | | var modCarPall = plcPosition.FirstOrDefault(s => s.Text == "托盘检测"); |
| | | var (resultPall, valuePall) = modbusUtil.GetDBValue(modCarPall.PosType, modCarPall.PlcPos); |
| | | if (resultPall.IsSucceed && valuePall == 1) //1有托盘 2无托盘 |
| | | //var modCarju = plcPosition.FirstOrDefault(s => s.Text == "举升位置"); |
| | | //var (resultju, valueju) = modbusUtil.GetDBValue(modCarju.PosType, modCarju.PlcPos); |
| | | //if (resultPall.IsSucceed && valuePall == 1 && resultPall.IsSucceed && valuePall != 1) //1顶货 2子通道 3主通道 |
| | | //{ |
| | | // break; //暂缓分配 |
| | | //} |
| | | if (resultPall.IsSucceed && valuePall == 1) //1有托盘 2无托盘 |
| | | { |
| | | break; //暂缓分配 |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="data">当前任务总路径</param> |
| | | /// <param name="kXCarList">所有小车</param> |
| | | /// <param name="assignCar">当前分配小车</param> |
| | | /// <param name="waitTask">当前总任务</param> |
| | | /// <param name="moveType">0去取货任务 1去放货</param> |
| | | /// <returns></returns> |
| | | public static bool AddCarTask(List<CarModel> data, List<CarInfo> kXCarList, CarInfo assignCar, WcsTask waitTask,int moveType) |
| | | { |
| | | #region 获取适合执行当前任务的小车 生成路径(需考虑小车阻阻挡) |
| | |
| | | var lastPath = lastPathList[lastPathList.Length - 2]; |
| | | var lastPath2 = lastPath.Substring(0,6); |
| | | |
| | | //如果此此分配路径包含醉舞中最终节点路径,添加移走小车 |
| | | //如果此此分配路径包含任务中最终节点路径,添加移走小车 |
| | | if (path.Contains(lastPath2)) |
| | | { |
| | | |
| | |
| | | |
| | | var result = await url.SetHeaders(dic).SetBody(mod, "application/json", Encoding.UTF8).PostAsAsync<ResponseAgvDto>(); |
| | | Log.Information("调用AGV小车接口继续执行任务" + result.ToJson()); |
| | | return null; |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |