| | |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using OnceMi.AspNetCore.OSS; |
| | | using Qiniu.Storage; |
| | | using System; |
| | | using System.Drawing.Drawing2D; |
| | | using System.Net.NetworkInformation; |
| | |
| | | try |
| | | { |
| | | // 获取密集库未执行任务 根据创建时间排序 |
| | | var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(s => s.CreateTime).First(); |
| | | var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(s => new {s.Levels, s.CreateTime}).First(); |
| | | if (waitTask == null) |
| | | { |
| | | continue; |
| | |
| | | var taskpai = int.Parse(waitTask.StartLocate.Substring(0, 2)); |
| | | var tasklie = int.Parse(waitTask.StartLocate.Substring(2, 2)); |
| | | var taskceng = int.Parse(waitTask.StartLocate.Substring(4, 2)); |
| | | |
| | | |
| | | #region 获取当前任务所在层所有空闲小车 |
| | | |
| | | // 获取有任务的小车编号 |
| | |
| | | { |
| | | //获取工位WCSPLCPosition信息 |
| | | var plcPosition = listPlcPosition.Where(s => s.DeviceId == modDevice.Id).ToList(); |
| | | if (value == 3) |
| | | { |
| | | var modCarDl = plcPosition.FirstOrDefault(s => s.Text == "电池电量"); |
| | | var (resultDl, valueDl) = modbusUtil.GetDBValue(modCarDl.PosType, modCarDl.PlcPos); |
| | | if (resultDl.IsSucceed && valueDl> (int)FourWayCarDLEnum.Dl3) |
| | | { |
| | | //写入结束充电命令 |
| | | var modCdEnd = plcPosition.FirstOrDefault(s => s.Text == "充电命令"); |
| | | var resultDl22 = modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "3") ; |
| | | carErr = true; |
| | | break; //暂缓分配,防止同层小车关机或失联导致阻挡路径 |
| | | } |
| | | } |
| | | //小车空闲加入集合 |
| | | if (value == 1) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | var typeStr = "1"; |
| | | var typeStr2 = 1; |
| | | if (waitTask.Levels == 888 ) |
| | | { |
| | | typeStr = "0";//小车任务是充电任务 |
| | | typeStr2 = 0; |
| | | } |
| | | //获取小车去放货储位任务路径 |
| | | var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, "1"); |
| | | var datas2 = FourWayCarUtil.GetCarPathUp(data2, 1); |
| | | var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, typeStr); |
| | | var datas2 = FourWayCarUtil.GetCarPathUp(data2, typeStr2); |
| | | |
| | | if (datas2 == null) |
| | | { |