| | |
| | | try |
| | | { |
| | | // 获取密集库未执行任务 根据创建时间排序 |
| | | 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(); |
| | | var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar && string.IsNullOrWhiteSpace(s.StartLocate) && string.IsNullOrWhiteSpace(s.EndLocate)).OrderBy(s => new {s.Levels, s.CreateTime}).First(); |
| | | if (waitTask == null) |
| | | { |
| | | continue; |
| | |
| | | { |
| | | var modCarDl = plcPosition.FirstOrDefault(s => s.Text == "电池电量"); |
| | | var (resultDl, valueDl) = modbusUtil.GetDBValue(modCarDl.PosType, modCarDl.PlcPos); |
| | | if (resultDl.IsSucceed && valueDl> FourWayCarDLEnum.Dl) |
| | | if (resultDl.IsSucceed && valueDl> (int)FourWayCarDLEnum.Dl) |
| | | { |
| | | //写入结束充电命令 |
| | | var modCdEnd = plcPosition.FirstOrDefault(s => s.Text == "充电命令"); |
| | | modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "2") ; |
| | | var resultDl22 = modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "3") ; |
| | | carErr = true; |
| | | break; //暂缓分配,防止同层小车关机或失联导致阻挡路径 |
| | | } |
| | |
| | | } |
| | | } |
| | | var typeStr = "1"; |
| | | var typeStr2 = 1; |
| | | if (waitTask.Levels == 888 ) |
| | | { |
| | | typeStr = "0";//小车任务是充电任务 |
| | | typeStr2 = 0; |
| | | } |
| | | //获取小车去放货储位任务路径 |
| | | var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, typeStr); |
| | | var datas2 = FourWayCarUtil.GetCarPathUp(data2, 1); |
| | | var datas2 = FourWayCarUtil.GetCarPathUp(data2, typeStr2); |
| | | |
| | | if (datas2 == null) |
| | | { |