Pārlūkot izejas kodu

Merge branch '环穿' of zuolinhao/YG-OPP-WCS into master

zuolinhao 2 gadi atpakaļ
vecāks
revīzija
94d46ab0d3

BIN
DLL/PLC.Siemens.dll


+ 1 - 1
Projects/永冠OPP/WCS.Entity.Protocol/WCS_TASK_OLD.cs

@@ -145,4 +145,4 @@ namespace WCS.Entity.Protocol
         /// </summary>
         public string MaterialCode { get; set; }
     }
-}
+}

+ 1 - 1
Projects/永冠OPP/WCS.Service/Works/RGV/RGVWorks.cs

@@ -209,7 +209,7 @@ namespace WCS.Service.Works.RGV
                         //找到自己的后一个小车
                         var afterRgv = rgvDevice.After();
 
-                        //自己是否阻挡了该小车
+                        //自己是否阻挡了该小车 
                         if (afterRgv.Data2.WorkMode == RGVMode.自动 && afterRgv.Data2.SystemStatus != RGVRunStatus.空闲 && rgvDevice.StopedByMe(afterRgv))
                         {
                             switch (pickStation.Entity.CODE)

+ 13 - 1
Projects/永冠OPP/WCS.Service/Works/Station/BOPP入库.cs

@@ -145,7 +145,18 @@ namespace WCS.Service.Works.Station
                         //下一个目标地址包含取货点的设备,此时获得的数据是旋转台
                         var turntable = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && allIn.Contains(p.NEXT.CODE))).Select(v => v.CODE);
                         //获得RGV的交货点
-                        var rgvDeliveryPoint = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && turntable.Contains(p.NEXT.CODE)))
+                        StationDevice rgvDeliveryPoint = null;
+                        if (item.CODE == "TY1")
+                        {
+                            rgvDeliveryPoint = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && turntable.Contains(p.NEXT.CODE)))
+                                      .Select(v => v.Create<StationDevice>()) //取所有可以到达取货点设备的信息
+                                      .Where(v => v.Data3.Status.HasFlag(StationStatus.自动))//筛选出空闲的路径点,此处因输送机都是一个动力,因此可以先找路径点再找设备组
+                                      .Distinct()
+                                      .FirstOrDefault();//去一次重
+                        }
+                        else
+                        {
+                             rgvDeliveryPoint = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && turntable.Contains(p.NEXT.CODE)))
                                       .Select(v => v.Create<StationDevice>()) //取所有可以到达取货点设备的信息
                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.运行状态位)
                                                && !v.Data2.Status.HasFlag(IstationStatus.光电状态)
@@ -154,6 +165,7 @@ namespace WCS.Service.Works.Station
                                       .Distinct()
                                       .FirstOrDefault();//去一次重
 
+                        }
                         if (rgvDeliveryPoint == null) continue;
                         var taskInStation = Device.Where(p => p.CODE.StartsWith("G") && p.DEVICEGROUP.Any(d => d.MEMBER == rgvDeliveryPoint.Entity)).MinBy(p => p.CODE);
                         //RGV是否有正在前往这个地址的任务