Преглед на файлове

盘条库:堆垛机任务完成异常处理;出库目标地址转换

xu.lu преди 2 години
родител
ревизия
c95a6de498

+ 5 - 18
盘条库/WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -74,25 +74,13 @@ namespace WCS.WorkEngineering.Systems
                                     else if (agv.AgvStatus == AGVTaskStatus.WalkIntoStorage && agv.Status != AGVTaskStatus.ExitStorage)
                                     {
                                         string endPos = "";
-                                        if (agv.Position == "1021")
+                                        if (task.AddrTo == "1021" || task.AddrTo == "1022" || task.AddrTo == "1023" || task.AddrTo == "1024")
                                         {
-                                            endPos = "2001";
-                                        }
-                                        else if (agv.Position == "1022")
-                                        {
-                                            endPos = "2002";
-                                        }
-                                        else if (agv.Position == "1023")
-                                        {
-                                            endPos = "2003";
-                                        }
-                                        else if (agv.Position == "1024")
-                                        {
-                                            endPos = "2004";
+                                            endPos = "PT" + task.AddrTo;
                                         }
                                         else
                                         {
-                                            endPos = agv.Position;
+                                            endPos = task.AddrTo;
                                         }
                                         agv.Status = AGVTaskStatus.ExitStorage;
                                         db.Default.Updateable(agv).SplitTable().ExecuteCommand();
@@ -123,7 +111,7 @@ namespace WCS.WorkEngineering.Systems
                                     {
                                         var taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => v.AgvTaskID == agv.ID);
                                         if (taskInfo == null) throw new Exception($"未找到AGV任务{agv.ID}对应WCS任务");                                        
-                                        if (agv.AgvStatus == AGVTaskStatus.Complete3)
+                                        if (agv.AgvStatus == AGVTaskStatus.Complete3 && agv.AgvStatus != AGVTaskStatus.Execution)
                                         {
                                             agv.Status = AGVTaskStatus.Execution;
                                             db.Default.Updateable(agv).SplitTable().ExecuteCommand();
@@ -201,7 +189,6 @@ namespace WCS.WorkEngineering.Systems
                                             {
                                                 startPos = taskInfo.AddrFrom;
                                             }
-
                                             taskInfo.AddWCS_TASK_DTL(db, "agv", $"允许AGV任务{agv.ID}在站台{startPos}取货");
                                             AgvApi.ContinueTask(agv.AgvID, startPos);
                                         }
@@ -209,7 +196,7 @@ namespace WCS.WorkEngineering.Systems
                                         {
                                             agv.Status = AGVTaskStatus.Execution;
                                             db.Default.Updateable(agv).SplitTable().ExecuteCommand();
-                                            //WmsApi.PinkuInfoManagement(task.ID);
+                                            WmsApi.PinkuInfoManagement(taskInfo.ID);
                                         }                                      
                                         //完成任务
                                         else if (agv.AgvStatus == AGVTaskStatus.MissionCompleted && agv.Status != AGVTaskStatus.MissionCompleted)

+ 2 - 2
盘条库/WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -386,8 +386,8 @@ namespace WCS.WorkEngineering.Systems
 
         public override bool Select(Device dev)
         {
-            //return dev.Code == "SRM2";
-            return dev.HasProtocol(typeof(ISRM520));
+            return dev.Code is "SRM2" or "SRM1";
+            //return dev.HasProtocol(typeof(ISRM520));
         }
     }
 }

+ 1 - 1
盘条库/WCS.WorkEngineering/Systems/一楼入库巷道分配处理系统.cs

@@ -77,7 +77,7 @@ namespace WCS.WorkEngineering.Systems
                     var agvTask = db.Queryable<WCS_AgvTaskInfo>().SplitTable().First(v => v.AgvStatus == AGVTaskStatus.RequestOrPermission1 && v.Status != AGVTaskStatus.Complete1 && v.Position == obj.Entity.Code);
                     if (agvTask == null) throw new KnownException($"未找到对应agv任务,条码{barcode}", LogLevelEnum.High);
                     taskInfo = db.Queryable<WCS_TaskInfo>().First(v => v.AgvTaskID == agvTask.ID) ?? throw new KnownException($"未找到agv任务{agvTask.ID}对应WCS任务", LogLevelEnum.High);
-                    if (taskInfo.BarCode.StartsWith("PT") && taskInfo.BarCode != barcode) throw new KnownException($"条码读取有误,请检查条码", LogLevelEnum.High);
+                    if (taskInfo.BarCode.StartsWith("PT") && taskInfo.BarCode != barcode) throw new KnownException($"条码{barcode}读取有误,请检查条码", LogLevelEnum.High);
                     taskInfo.BarCode = barcode;
 
                     //分配巷道,agv目标站台

+ 3 - 15
盘条库/WCS.WorkEngineering/Systems/一楼出库工位处理系统.cs

@@ -42,25 +42,13 @@ namespace WCS.WorkEngineering.Systems
                         var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskNumber && v.Status == Entity.TaskStatus.ConveyorExecution) ?? throw new KnownException("无可执行任务", LogLevelEnum.Mid);
                         var agv = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(v => v.Take(2)).First(v => v.ID == task.AgvTaskID && v.Status == AGVTaskStatus.NewBuild) ?? throw new KnownException("未找到对应的AGV任务", LogLevelEnum.Mid);
                         string endPos = "";
-                        if (agv.Position == "1021")
+                        if (task.AddrFrom == "1021" || task.AddrFrom == "1022" || task.AddrFrom == "1023" || task.AddrFrom == "1024")
                         {
-                            endPos = "2001";
-                        }
-                        else if (agv.Position == "1022")
-                        {
-                            endPos = "2002";
-                        }
-                        else if (agv.Position == "1023")
-                        {
-                            endPos = "2003";
-                        }
-                        else if (agv.Position == "1024")
-                        {
-                            endPos = "2004";
+                            endPos = "PT" + task.AddrTo;
                         }
                         else
                         {
-                            endPos = agv.Position;
+                            endPos = task.AddrTo;
                         }
                         var res = AgvApi.叫料出库("PT",agv.Station,endPos, Guid.NewGuid().ToString().Replace("-", ""), "1");
                         agv.Status = AGVTaskStatus.Confirm;