chengsc
2025-04-29 9a7c4fea85f85824dddeac9e6ce6ebb75ccee679
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -378,7 +378,7 @@
                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;
@@ -417,11 +417,11 @@
                                {
                                    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; //暂缓分配,防止同层小车关机或失联导致阻挡路径
                                    }
@@ -505,13 +505,15 @@
                        }
                    }
                    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) 
                    {