فهرست منبع

环穿RGV新增check点

林豪 左 3 سال پیش
والد
کامیت
096acc733d

+ 2 - 2
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -464,7 +464,6 @@ namespace WCS.Service.Extensions
             if (Data2.TaskType_1 != RGVTaskType.取货) return false;
             if (!Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.RGV到站)) return false;
             if (!Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.任务完成)) return false;
-            if (!Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.任务完成)) return false;
             if (!Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.光电)) return false;
             return true;
         }
@@ -475,7 +474,8 @@ namespace WCS.Service.Extensions
         /// <param name="addr">目标地址</param>
         public void Move(StationDeviceGroup addr)
         {
-
+            if (!Data2.WorkMode.HasFlag(RGVMode.自动)) throw new WarnException($"RGV状态{Data2.WorkMode},无法执行移动任务");
+            if (!Data2.SystemStatus.HasFlag(RGVRunStatus.空闲)) throw new WarnException($"rgv状态为{Data2.SystemStatus},无法执行移动任务");
             Data.TaskID_1 = addr.Entity.CODE.Replace("G", "").ToShort();
             Data.TaskType_1 = RGVTaskType.移动;
             Data.DestPosition_1 = addr.Entity.CODE.Replace("G", "").ToShort();

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

@@ -89,6 +89,7 @@ namespace WCS.Service.Works.RGV
                 //RGV当前是否刚刚完成取货任务,等待放货
                 if (obj.IsPut())
                 {
+                    if (!obj.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.光电)) throw new WarnException("RGV无光电,无法放货,请检查实际情况");
                     //取小车上的任务
                     DB.Do(db =>
                     {
@@ -120,6 +121,10 @@ namespace WCS.Service.Works.RGV
                             //开始下达取货任务
                             DB.Do(db =>
                             {
+                                if (obj.Data2.TaskType_1 != RGVTaskType.移动) throw new WarnException($"RGV正在执行{obj.Data2.TaskType_1}");
+                                if (obj.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.光电)) throw new WarnException("RGV有光电,无法取货,请检查实际情况");
+                                if (!obj.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.RGV到站)) throw new WarnException("RGV无到站状态,请检查RGV实际状态");
+
                                 var taskids = devs.Select(v => v.Data2.Tasknum);
                                 var tasks = db.Default.Set<WCS_TASK>().Where(p => taskids.Contains(p.ID));
                                 if (tasks.GroupBy(p => p.TaskGroupKey).Count() > 1)