chengsc
2025-04-29 08eb1d72105662b301275fefd876be18df1b9fec
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -170,12 +170,10 @@
                        int valueTaskStr = Convert.ToInt32(valueTask);
                        //获取任务信息 根据  任务号、小车编号
                        var carTask = _db.Queryable<WcsCarTasks>().First(m=>m.IsDelete == false && m.Status == TaskStatusEnum.Doing && m.CarTaskNo == valueTaskStr && m.CarNo == modDevice.PlcIdIP);
                        if (carTask == null)
                        if (carTask != null)
                        {
                            //var modRests = modDevice.listStation.FirstOrDefault(s => s.Text == "复位");
                            //plcConn.SetDBValue(modRests.PosType, modRests.PlcPos, "1");//没有找到任务  复位
                            return;
                        }
                         
                        var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo);
                        if (modFinshTask == null)
@@ -231,7 +229,7 @@
                            HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>());
                            
                        }
                        }
                    }
                    
                    WcsTask modTask;
@@ -260,12 +258,12 @@
                    var modStationZ = modDevice.listStation.FirstOrDefault(s => s.Text == "四向车位置(Z)");
                    var (resultz, valuez) = plcConn.GetDBValue(modStationZ.PosType, modStationZ.PlcPos);
                    var carXYZ = valuex.ToString().PadLeft(2, '0') + valuey.ToString().PadLeft(2, '0') + valuez.ToString().PadLeft(2, '0');
                    if (modTask == null || carTaskNext == null)
                    if (modTask == null)
                    {
                        //读取小车电量
                        var modPosCarDl = modDevice.listStation.FirstOrDefault(s => s.Text == "电池电量");
                        var (resultDl, valueDl) = plcConn.GetDBValue(modPosCarDl.PosType, modPosCarDl.PlcPos);
                        if (resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl)
                        if (resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl)
                        {
                            var endLocateCar = "";
                            if (valuez == 1)
@@ -297,7 +295,7 @@
                            _db.Insertable(modCarTask).ExecuteCommand();
                            HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
                        }
                        else if(resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl2)
                        else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2)
                        {
                            //判断小车是否有空闲时间记录 没有:添加  有:判断当前时间与记录时间是否满足5分钟 满足:添加让小车去充电任务
                            var carTime = _db.Queryable<WcsCarTime>().First(m => m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
@@ -364,7 +362,10 @@
                        
                        return;
                    }
                    if (carTaskNext == null)
                    {
                        return;
                    }
                    if (carTaskNext.Status == TaskStatusEnum.Doing)
                    {
                        Thread.Sleep(3000);