林豪 左 1 gadu atpakaļ
vecāks
revīzija
8a69997657

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -288,6 +288,7 @@ namespace WCS.WorkEngineering.Extensions
                 "2728" => "1S",
                 "1606" => "1N",
                 "1666" => "1NR",
+                "1661" => "1NR",
                 "SRM1" => "1N",
                 "SRM2" => "2N",
                 _ => "",

+ 14 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -72,7 +72,7 @@ namespace WCS.WorkEngineering.Systems
                                                     break;
                                             }
 
-                                            if (task.AddrFrom is "1666")
+                                            if (task.AddrFrom is "1666" or "1661")
                                             {
                                                 task.Device = "SRM1";
                                             }
@@ -101,8 +101,21 @@ namespace WCS.WorkEngineering.Systems
                                                 }
                                                 else
                                                 {
+
+
                                                     if (task.SrmStation == "1")
                                                     {
+                                                        //var srmStation = new string[2];
+                                                        //switch (task.Device)
+                                                        //{
+                                                        //    case "SRM1":
+                                                        //        srmStation[0] = "2534";
+                                                        //        srmStation[1] = "2533";
+                                                        //        break;
+                                                        //}
+                                                        //task.SrmStation = "";
+                                                        //task.AddrTo = "2534";
+
                                                         task.SrmStation = "";
                                                         task.AddrTo = "2534";
                                                         task.Device = "SRM" + task.WarehouseCode.Substring(0, 1);

+ 17 - 14
业务工程/分拣库/WCS.WorkEngineering/Systems/RGVSystems.cs

@@ -5,7 +5,6 @@ using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity.Protocol.BCR;
-using WCS.Entity.Protocol.Protocol.Robot;
 using WCS.Entity.Protocol.RGV;
 using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
@@ -210,19 +209,22 @@ namespace WCS.WorkEngineering.Systems
                 .Select(x => new Device<IStation520, IStation521, IStation523>(x, World))
                 .Where(x => !x.Data3.Status.HasFlag(StationStatus.PH_Status))
                 .Select(x => x.Entity.Code.ToShort());
-            var dev = devs.OrderBy(x => x.Entity.Code).FirstOrDefault(x => putDev.Contains(x.Data.GoodsEnd));
-            if (dev == null) return;
-            //区分任务是拆盘机到码垛工位,还是码垛工位到拆盘机
-            if (dev.Entity.HasFlag(DeviceFlags.拆盘机09, DeviceFlags.拆盘机非09))
-            {
-                obj.Data.TaskNumber = dev.Data.TaskNumber;
-                obj.Data.CmdType = RGVCmdType.PickGoods;
-                obj.Data.StartPosition = dev.Entity.Code.ToShort();
-                obj.Data.DestPosition = dev.Data.GoodsEnd;
-                obj.Data.VoucherNo++;
-            }
-            else //非拆盘机起始任务
+            var devList = devs.OrderBy(x => x.Entity.Code).Where(x => putDev.Contains(x.Data.GoodsEnd));
+
+            foreach (var dev in devList)
             {
+                //区分任务是拆盘机到码垛工位,还是码垛工位到拆盘机
+                if (dev.Entity.HasFlag(DeviceFlags.拆盘机09, DeviceFlags.拆盘机非09))
+                {
+                    obj.Data.TaskNumber = dev.Data.TaskNumber;
+                    obj.Data.CmdType = RGVCmdType.PickGoods;
+                    obj.Data.StartPosition = dev.Entity.Code.ToShort();
+                    obj.Data.DestPosition = dev.Data.GoodsEnd;
+                    obj.Data.VoucherNo++;
+                    return;
+                }
+
+                //非拆盘机起始任务
                 //站台中的任务号
                 WCS_TaskInfo task = null;
                 SqlSugarHelper.Do(_db =>
@@ -238,12 +240,13 @@ namespace WCS.WorkEngineering.Systems
                     taskInfo.AddWCS_TASK_DTL(db, dev.Entity.Code, obj.Entity.Code, $"任务分配至{obj.Entity.Code}");
                     task = taskInfo;
                 });
-                if (task == null) return;
+                if (task == null) continue;
                 obj.Data.TaskNumber = task.ID;
                 obj.Data.CmdType = RGVCmdType.PickPutGoods;
                 obj.Data.StartPosition = dev.Entity.Code.ToShort();
                 obj.Data.DestPosition = dev.Data.GoodsEnd;
                 obj.Data.VoucherNo++;
+                return;
             }
         }
 

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/二楼拆盘机自动补空托盘组.cs

@@ -25,7 +25,7 @@ namespace WCS.WorkEngineering.Systems
         public override void Do(Device<IStation520, IStation521, IStation523> obj)
         {
             // 拆盘机没有光电
-            if (obj.Data3.Status1.HasFlag(StationStatus1.RES14)) return;
+            if (obj.Data3.Status1.HasFlag(StationStatus1.RES14) && obj.Data3.Status.HasFlag(StationStatus.PH_Status)) return;
             var tunnel = obj.Entity.Sources.Where(x => x.HasFlag(DeviceFlags.输送机)) //堆垛机取货点设备
                 .SelectMany(x => x.Sources)
                 .FirstOrDefault(x => x.HasFlag(DeviceFlags.巷道));

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/分拣支线/环形库分流点.cs

@@ -66,7 +66,7 @@ namespace WCS.WorkEngineering.Systems
                         db.Updateable(taskInfo).ExecuteCommand();
                         taskInfo.AddWCS_TASK_DTL(db, obj.Entity.Code, nextAdd.ToString(), "环形库分流");
                         isPut = true;
-                        obj.Data.CmdType = StationCmd.Res6;
+                        //obj.Data.CmdType = StationCmd.Res6;
                         break;
 
                     case 50:

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/机械臂cs.cs

@@ -1,7 +1,6 @@
 using ServiceCenter.Extensions;
 using ServiceCenter.Logs;
 using ServiceCenter.SqlSugars;
-using SqlSugar;
 using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
@@ -283,7 +282,7 @@ namespace WCS.WorkEngineering.Systems
                 if (!arrOut.Any()) throw new KnownException($"机械臂{obj.Entity.Code}无放货路径点", LogLevelEnum.High);
 
                 //获取可以放货的设备集合
-                arrOut = arrOut.Where(v => v.Data3.Status.HasFlag(StationStatus.PH_Status)).ToList();//无光电
+                arrOut = arrOut.Where(v => v.Data3.Status.HasFlag(StationStatus.PH_Status)/* && v.Data.TaskNumber == 0 && v.Data.GoodsEnd == 0*/).ToList();//有光电
                 if (!arrOut.Any()) throw new KnownException($"[{obj.Entity.Code}]等待出库任务输送到位", LogLevelEnum.Mid);
 
                 var taskInfoList = new List<WCS_TaskInfo>();
@@ -308,6 +307,7 @@ namespace WCS.WorkEngineering.Systems
                                 if (minDepth.MatCode != maxDepth.MatCode) taskInfos = taskInfos.OrderBy(x => x.ProdLine).Take(1).ToList();
                                 //深度之和等于6(机械臂当前无法同时执行两个三深度的取货任务)
                                 else if (taskInfos.Sum(x => x.Depth) == 6) taskInfos = taskInfos.OrderBy(x => x.ProdLine).Take(1).ToList();
+                                else if (taskInfos[0].SrmStation != taskInfos[1].SrmStation) taskInfos = taskInfos.OrderBy(x => x.SrmStation).Take(1).ToList();
                             }
 
                             foreach (var task in taskInfos)

+ 2 - 1
业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs

@@ -410,6 +410,7 @@ namespace WCS.WorkEngineering
 
                 //Robot码垛工位
                 new RouteInfo("Robot1", new string[] { "1666" }),
+                new RouteInfo("Robot1", new string[] { "1661" }),
 
                 #endregion 出库路径
 
@@ -556,7 +557,7 @@ namespace WCS.WorkEngineering
                 { DeviceFlags.拆盘机09, new List<string>(){ "1606" } },
                 { DeviceFlags.拆盘机非09, new List<string>(){ "1602" } },
                 { DeviceFlags.桁架码垛位, new List<string>(){ "1670", "1671", "1672", "1673", "1674", "1675","1664","1662","1665" } },
-                { DeviceFlags.环形库码垛工位, new List<string>(){ "1666" } },
+                { DeviceFlags.环形库码垛工位, new List<string>(){ "1666","1661" } },
                 { DeviceFlags.AGV取货站台口, new List<string>(){ "2533", "2534", "2734" } },
                 { DeviceFlags.Robot, new List<string>(){ "Robot1" } },
         };