Administrator hace 2 años
padre
commit
40d28b5ca5

BIN
DLL/PLC.Siemens.dll


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

@@ -58,6 +58,11 @@ namespace WCS.Service.Works.RGV
                     {
                         if (gw1.Data2.Goodsend != gw2.Data2.Goodsend) throw new WarnException($"{obj.Entity.CODE}目标地址不一致");
                     }
+
+                    if (rgv.Data2.TaskID_1 > 10000 && rgv.Data2.TaskID_2 > 10000 && !rgv.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.光电))
+                    {
+                        throw new Exception($"RGV8有任务{rgv.Data2.TaskID_1}-{rgv.Data2.TaskID_2}但无光电,请检查设备状况");
+                    }
                     rgv.Data.TaskID_1 = gw1.Data2.Tasknum;
                     rgv.Data.TaskID_2 = gw2.Data2.Tasknum;
                     if (gw1.Data2.Tasknum != 0)

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

@@ -409,7 +409,7 @@ namespace WCS.Service.Works.Station
                             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);
                             //只能有一组任务的下一个地址是交货点
-                            if (db.Default.Set<WCS_TASK>().Any(v => v.ADDRNEXT == taskInStation.CODE)) continue;
+                            if (db.Default.Set<WCS_TASK>().Any(v => v.ADDRNEXT == taskInStation.CODE && v.STATUS < TaskStatus.已完成)) continue;
 
                             //RGV是否有正在前往这个地址的任务
                             var rgvList = Device.Where(v => v.Is(DF.涂布RGV)).Select(v => v.Create<RGVDevice>());