Administrator 2 years ago
parent
commit
a4d1751068
2 changed files with 4 additions and 2 deletions
  1. BIN
      DLL/PLC.Siemens.dll
  2. 4 2
      Projects/永冠/WCS.Service/Works/Stations/AGV交互.cs

BIN
DLL/PLC.Siemens.dll


+ 4 - 2
Projects/永冠/WCS.Service/Works/Stations/AGV交互.cs

@@ -248,7 +248,7 @@ namespace WCS.Service.Works.Stations
                         }
                         else if (Ltc.Do(agvtask, v => v.Status < v.AGVStatus || v.AGVStatus == AGVTaskStatus.确认))
                         {
-                            if (Ltc.Do(agvtask, v => v.AGVStatus == AGVTaskStatus.确认))
+                            if (Ltc.Do(agvtask, v => v.AGVStatus == AGVTaskStatus.确认 && v.Status != AGVTaskStatus.确认))
                             {
                                 if (agvTasks.Any(v => v.Status >= AGVTaskStatus.确认 && v.Status != AGVTaskStatus.执行 && v.Status < AGVTaskStatus.完成扫码 && v.Station == "3001"))
                                     throw new Exception($"同时放货任务数量最大为1");
@@ -256,6 +256,8 @@ namespace WCS.Service.Works.Stations
                                 var inTemp = Device.Find("3006", "3001", "3012","3004","3005").Select(v => v.Device<IStation521, IStation523>());
                                 if (inTemp.Any(v => v.Data.PH_STATUS == true || v.Data.TASKNUM > 0 || v.Data.GOODSEND == 3006 || v.Data2.Status.HasFlag(StationStatus.运行状态位))) return;
                                 if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS < TaskStatus.已完成 && v.ADDRNEXT == "3060")) return;
+                                if (db.Default.Set<WCS_AGVTask>().Any(v => v.AGVStatus >= AGVTaskStatus.确认 && v.TaskType == AGVTaskType.叫料
+                                 && v.Station == "3001" && v.Status < AGVTaskStatus.完成)) return;
 
                                 //3060没有出库任务
                                 var con3060 = Device.Find("3060").Device<IStation521, IStation523>();
@@ -371,7 +373,7 @@ namespace WCS.Service.Works.Stations
                                 {
                                     var qty = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.叫料 && v.Status > AGVTaskStatus.新建 && v.Status < AGVTaskStatus.完成)
                                     .Where(v => v.Position == agvtask.Position).Count();
-                                    if (Ltc.Do(qty, OutTaskQty => OutTaskQty >= 2))
+                                    if (Ltc.Do(qty, OutTaskQty => OutTaskQty >= 5))
                                     {
                                         throw new Exception($"{agvtask.Position}正在执行的叫料任务数量已达{qty},暂停出库");
                                     }