wxw
2025-08-17 e4690fca932b352927af3d186ed2a4767f017e79
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -89,6 +89,12 @@
                    {
                        break;//出库锁定打开则不执行出库任务
                    }
                    //判断该巷道有没有到达取货工位的入库任务,优先执行入库任务再执行移库/出库任务
                    var taskIn = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.TaskType == TaskTypeEnum.In && s.EndRoadway == modDevice.StationNum && !string.IsNullOrEmpty(s.EndLocate));
                    if (taskIn != null)
                    {
                        break;
                    }
                    PlcTaskInfo taskInfo = new PlcTaskInfo();
                    if (modTask.TaskType == TaskTypeEnum.Move)
@@ -308,14 +314,17 @@
                        //下发任务日志
                        HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>());
                        //修改led屏信息
                        var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == taskInfo.EndStation && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
                        ledText += $"任务类型:{modTask.TaskType.GetDescription()}\n\n";
                        ledText += $"任务号:{modTask.TaskNo}\n";
                        ledText += $"托盘号:{modTask.PalletNo}\n\n";
                        ledText += $"起始位:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
                        ledText += $"目标位:{modTask.EndRoadway + " " + modTask.EndLocate}";
                        LedDisplay(ledDevice.LedIP, ledText);
                        if (modTask.TaskType == TaskTypeEnum.Out)
                        {
                            //修改led屏信息
                            var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == taskInfo.EndStation && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
                            ledText += $"任务类型:{modTask.TaskType.GetDescription()}\n\n";
                            ledText += $"任务号:{modTask.TaskNo}\n";
                            ledText += $"托盘号:{modTask.PalletNo}\n\n";
                            ledText += $"起始位:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
                            ledText += $"目标位:{modTask.EndRoadway + " " + modTask.EndLocate}";
                            LedDisplay(ledDevice.LedIP, ledText);
                        }
                    }
                }
                break;
@@ -2210,14 +2219,7 @@
                        {
                            // 跺机非空闲等待
                            break;
                        }
                        //判断该巷道有没有待执行的移库/出库任务,优先执行移库/出库任务再执行入库任务
                        var taskOutMove = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Wait && (s.TaskType == TaskTypeEnum.Out || s.TaskType == TaskTypeEnum.Move)
                        && s.StartRoadway == modDevice.StationNum);
                        if (taskOutMove != null)
                        {
                            break;
                        }
                        }
                        // 给PLC写入任务数据
                        var listResult = new List<Result>();