林豪 左 1 ano atrás
pai
commit
e46fcdf450

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

@@ -329,7 +329,7 @@ namespace WCS.WorkEngineering.Extensions
                 "1736" => "3SR",
                 "1741" => "3SR",
 
-                #endregion 库
+                #endregion 库
 
                 _ => "",
             };
@@ -392,196 +392,197 @@ namespace WCS.WorkEngineering.Extensions
         桁架09异常缓存放行点 = 1L << 41,
         二次码垛RGV取货口 = 1L << 42,
         无交互触发设备 = 1L << 43,
+        桁架18取货点 = 1L << 44,
     }
+}
 
+/// <summary>
+/// 输送机段信息
+/// </summary>
+public class StationSegmentInfo
+{
     /// <summary>
-    /// 输送机段信息
+    ///  构造函数
     /// </summary>
-    public class StationSegmentInfo
+    /// <param name="start">起始设备号</param>
+    /// <param name="end">结束设备号</param>
+    /// <param name="ip">ip</param>
+    public StationSegmentInfo(int start, int end, string ip)
     {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="start">起始设备号</param>
-        /// <param name="end">结束设备号</param>
-        /// <param name="ip">ip</param>
-        public StationSegmentInfo(int start, int end, string ip)
-        {
-            Start = start;
-            End = end;
-            Ip = ip;
-        }
+        Start = start;
+        End = end;
+        Ip = ip;
+    }
 
-        /// <summary>
-        /// 起始设备编号
-        /// </summary>
-        public int Start { get; set; }
+    /// <summary>
+    /// 起始设备编号
+    /// </summary>
+    public int Start { get; set; }
 
-        /// <summary>
-        ///结束设备编号
-        /// </summary>
-        public int End { get; set; }
+    /// <summary>
+    ///结束设备编号
+    /// </summary>
+    public int End { get; set; }
 
-        /// <summary>
-        ///  输送机段所属IP
-        /// </summary>
-        public string Ip { get; set; }
-    }
+    /// <summary>
+    ///  输送机段所属IP
+    /// </summary>
+    public string Ip { get; set; }
+}
 
+/// <summary>
+/// RGV信息
+/// </summary>
+public class RgvSegmentInfo
+{
     /// <summary>
-    /// RGV信息
+    ///  构造函数
     /// </summary>
-    public class RgvSegmentInfo
+    /// <param name="code"></param>
+    /// <param name="ip">ip</param>
+    public RgvSegmentInfo(int code, string ip)
     {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="code"></param>
-        /// <param name="ip">ip</param>
-        public RgvSegmentInfo(int code, string ip)
-        {
-            Code = code;
-            Ip = ip;
-        }
-
-        /// <summary>
-        /// 设备编号
-        /// </summary>
-        public int Code { get; set; }
-
-        /// <summary>
-        ///  输送机段所属IP
-        /// </summary>
-        public string Ip { get; set; }
+        Code = code;
+        Ip = ip;
     }
 
     /// <summary>
-    /// 桁架信息
+    /// 设备编号
     /// </summary>
-    public class TrussSegmentInfo
-    {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="code"></param>
-        /// <param name="ip">ip</param>
-        public TrussSegmentInfo(int code, string ip)
-        {
-            Code = code;
-            Ip = ip;
-        }
+    public int Code { get; set; }
 
-        /// <summary>
-        /// 设备编号
-        /// </summary>
-        public int Code { get; set; }
+    /// <summary>
+    ///  输送机段所属IP
+    /// </summary>
+    public string Ip { get; set; }
+}
 
-        /// <summary>
-        ///  输送机段所属IP
-        /// </summary>
-        public string Ip { get; set; }
+/// <summary>
+/// 桁架信息
+/// </summary>
+public class TrussSegmentInfo
+{
+    /// <summary>
+    ///  构造函数
+    /// </summary>
+    /// <param name="code"></param>
+    /// <param name="ip">ip</param>
+    public TrussSegmentInfo(int code, string ip)
+    {
+        Code = code;
+        Ip = ip;
     }
 
     /// <summary>
-    ///  扫码器信息
+    /// 设备编号
     /// </summary>
-    public class BcrInfo
-    {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="deviceNo">设备编号</param>
-        /// <param name="ip">ip</param>
-        public BcrInfo(string[] deviceNo, string ip)
-        {
-            DeviceNo = deviceNo;
-            Ip = ip;
-        }
+    public int Code { get; set; }
 
-        /// <summary>
-        ///  设备编号
-        /// </summary>
-        public string[] DeviceNo { get; set; }
+    /// <summary>
+    ///  输送机段所属IP
+    /// </summary>
+    public string Ip { get; set; }
+}
 
-        /// <summary>
-        ///  ip
-        /// </summary>
-        public string Ip { get; set; }
+/// <summary>
+///  扫码器信息
+/// </summary>
+public class BcrInfo
+{
+    /// <summary>
+    ///  构造函数
+    /// </summary>
+    /// <param name="deviceNo">设备编号</param>
+    /// <param name="ip">ip</param>
+    public BcrInfo(string[] deviceNo, string ip)
+    {
+        DeviceNo = deviceNo;
+        Ip = ip;
     }
 
     /// <summary>
-    ///  外形信息
+    ///  设备编号
     /// </summary>
-    public class ShapeInfo
-    {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="deviceNo">设备编号</param>
-        /// <param name="ip">ip</param>
-        public ShapeInfo(int[] deviceNo, string ip)
-        {
-            DeviceNo = deviceNo;
-            Ip = ip;
-        }
+    public string[] DeviceNo { get; set; }
 
-        /// <summary>
-        ///  设备编号
-        /// </summary>
-        public int[] DeviceNo { get; set; }
+    /// <summary>
+    ///  ip
+    /// </summary>
+    public string Ip { get; set; }
+}
 
-        /// <summary>
-        ///  ip
-        /// </summary>
-        public string Ip { get; set; }
+/// <summary>
+///  外形信息
+/// </summary>
+public class ShapeInfo
+{
+    /// <summary>
+    ///  构造函数
+    /// </summary>
+    /// <param name="deviceNo">设备编号</param>
+    /// <param name="ip">ip</param>
+    public ShapeInfo(int[] deviceNo, string ip)
+    {
+        DeviceNo = deviceNo;
+        Ip = ip;
     }
 
     /// <summary>
-    /// 路径信息
+    ///  设备编号
     /// </summary>
-    public class RouteInfo
-    {
-        /// <summary>
-        ///  构造函数
-        /// </summary>
-        /// <param name="deviceCode">起始点设备号</param>
-        /// <param name="nextList">下一个设备集合</param>
-        public RouteInfo(string deviceCode, string[] nextList)
-        {
-            DeviceCode = deviceCode;
-            NextList = nextList;
-        }
+    public int[] DeviceNo { get; set; }
 
-        /// <summary>
-        ///  设备号
-        /// </summary>
-        public string DeviceCode { get; set; }
+    /// <summary>
+    ///  ip
+    /// </summary>
+    public string Ip { get; set; }
+}
 
-        /// <summary>
-        ///  下一个设备
-        /// </summary>
-        public string[] NextList { get; set; }
+/// <summary>
+/// 路径信息
+/// </summary>
+public class RouteInfo
+{
+    /// <summary>
+    ///  构造函数
+    /// </summary>
+    /// <param name="deviceCode">起始点设备号</param>
+    /// <param name="nextList">下一个设备集合</param>
+    public RouteInfo(string deviceCode, string[] nextList)
+    {
+        DeviceCode = deviceCode;
+        NextList = nextList;
     }
 
     /// <summary>
-    ///  缓存分流信息
+    ///  设备号
     /// </summary>
-    public class CacheBcr
-    {
-        public CacheBcr(string bcrCode, short nextAdd)
-        {
-            BcrCode = bcrCode;
-            NextAdd = nextAdd;
-        }
+    public string DeviceCode { get; set; }
 
-        /// <summary>
-        ///  条码
-        /// </summary>
-        public string BcrCode { get; set; }
+    /// <summary>
+    ///  下一个设备
+    /// </summary>
+    public string[] NextList { get; set; }
+}
 
-        /// <summary>
-        ///  下一个地址
-        /// </summary>
-        public short NextAdd { get; set; }
+/// <summary>
+///  缓存分流信息
+/// </summary>
+public class CacheBcr
+{
+    public CacheBcr(string bcrCode, short nextAdd)
+    {
+        BcrCode = bcrCode;
+        NextAdd = nextAdd;
     }
+
+    /// <summary>
+    ///  条码
+    /// </summary>
+    public string BcrCode { get; set; }
+
+    /// <summary>
+    ///  下一个地址
+    /// </summary>
+    public short NextAdd { get; set; }
 }

+ 14 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架.cs

@@ -300,6 +300,19 @@ namespace WCS.WorkEngineering.Systems
                     if (rowList.Count == 2 && rowList[0].LocationNo == rowList[1].LocationNo) rowList = rowList!.Take(1).ToList();
                     //两个行号,差值大于一时,只执行一个任务
                     if (rowList.Count == 2 && rowList[0].RowNo + 1 != rowList[1].RowNo) rowList = rowList!.Take(1).ToList();
+                    //如果取货行号是在18取货区域,只
+
+                    if (rowList.Count == 2)
+                    {
+                        var locationNos = rowList.Select(x => x.LocationNo);
+                        var devCodes = Device.All.Where(x => x.HasFlag(DeviceFlags.桁架18取货点)).Select(x => x.Code.ToShort());
+                        if (devCodes.Any(x => locationNos.Contains(x)))
+                        {
+                            rowList = rowList!.Take(1).ToList();
+                        }
+                    }
+
+                    rowList = rowList!.Take(1).ToList();
 
                     var palletizingRows = new List<WCS_PalletizingRow>();
 
@@ -355,6 +368,7 @@ namespace WCS.WorkEngineering.Systems
                             obj.Data.Task1_1 = devs[0].Data.TaskNumber;
                             obj.Data.Dest1_1 = locs[0].XYNo.ToShort();
                         }
+
                         if (devs.Length >= 2)
                         {
                             obj.Data.Task1_2 = devs[1].Data.TaskNumber;

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

@@ -1096,6 +1096,7 @@ namespace WCS.WorkEngineering
                 { DeviceFlags.桁架取货点, new List<string>(){ "461", "475", "489", "503", "517", "531", "545", "559", "573", "586", "661", "675", "689", "703", "717", "731", "745", "759", "773", "786",
                      "861", "875", "889", "903", "917", "931", "945", "959", "973", "986", "1061", "1075", "1089", "1103", "1117", "1131", "1145", "1159", "1173", "1186",
                      "1261", "1275", "1289", "1303", "1317", "1331", "1345", "1359", "1373", "1386" , "1461", "1475", "1489", "1503", "1517", "1531", "1545", "1559", "1573", "1586" } },
+                { DeviceFlags.桁架18取货点, new List<string>(){ "545", "559", "573", "945", "959", "973", "1345", "1359", "1373", "745", "759", "773", "1145", "1159", "1173", "1545", "1559", "1573" } },
                 //{ DeviceFlags.拆盘机09, new List<string>(){ /*"1606", "1616",*/"1626","1636","1646","1656" } },
                 { DeviceFlags.拆盘机, new List<string>(){ "1602", "1612", "1622", "1632", "1642", "1652" } },
                 { DeviceFlags.桁架码垛位, new List<string>(){ /*"1670", "1671",*/ "1672", "1673", "1674", "1675", "1664","1662","1663","1665","1677","1678","1679","1680",/*"1685","1686",*/"1687","1688","1689",