林豪 左 1 year ago
parent
commit
02ba4e621d

+ 2 - 16
WCS.Core/World.cs

@@ -210,20 +210,14 @@ namespace WCS.Core
             var sw = new Stopwatch();
             while (true)
             {
-                var title = GetType().GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute;
-                ExLog(title.Description, 1);
                 this.Frame = DateTime.Now;
                 WorkTimes wt = new WorkTimes();
                 wt.Key = $"{this.Description} 周期:{Interval}";
                 sw.Restart();
-                ExLog(title.Description, 2);
                 BeforeUpdate();
-                ExLog(title.Description, 3);
                 Update(wt.Items);
-                ExLog(title.Description, 4);
-                AfterUpdate();
+                AfterUpdate(); ;
                 sw.Stop();
-                ExLog(title.Description, 5);
                 var workTimes = (int)sw.ElapsedMilliseconds;
                 var ms = Interval - workTimes;
 
@@ -231,18 +225,10 @@ namespace WCS.Core
                 {
                     Thread.Sleep(ms);//不要使用Task.Delay().Wait()
                 }
-                ExLog(title.Description, 6);
                 wt.Total = workTimes;
                 FrameInfo(wt);
-                ExLog(title.Description, 7);
             }
-        }
-
-        private void ExLog(string word, int msg)
-        {
-            var path = $"D:\\WCSLogs\\{DateTime.Now:yyyy-MM-dd}\\执行记录";
-            if (!Directory.Exists(path)) Directory.CreateDirectory(path);
-            File.AppendAllLines(Path.Combine(path, $"{word}.txt"), new[] { $"{DateTime.Now:yyyy-MM-dd hh:mm:ss:fffff}-----{msg}" });
+            // ReSharper disable once FunctionNeverReturns
         }
 
         public void Stop()

+ 54 - 54
业务工程/分拣库/WCS.Entity.Protocol/Robot/RobotEnum.cs

@@ -185,112 +185,112 @@ namespace WCS.Entity.Protocol.Protocol.Robot
         无 = 0,
 
         /// <summary>
-        ///  入库货位有货
+        ///  入库深度数据错误
         /// </summary>
-        [Description("入库货位有货")]
-        入库货位有货 = 1L << 0,
+        [Description("入库深度数据错误")]
+        入库深度数据错误 = 1L << 0,
 
         /// <summary>
-        ///  出库货位无货
+        ///  出库深度数据错误
         /// </summary>
-        [Description("出库货位无货")]
-        出库货位无货 = 1L << 1,
+        [Description("出库深度数据错误")]
+        出库深度数据错误 = 1L << 1,
 
         /// <summary>
-        ///  库位任务超出范围报
+        ///  出库码垛数据出
         /// </summary>
-        [Description("库位任务超出范围报错")]
-        库位任务超出范围报错 = 1L << 2,
+        [Description("出库码垛数据出错")]
+        出库码垛数据出错 = 1L << 2,
 
         /// <summary>
-        ///  码垛任务超出范围报错
+        ///  入库时检测有料
         /// </summary>
-        [Description("码垛任务超出范围报错")]
-        码垛任务超出范围报错 = 1L << 3,
+        [Description("入库时检测有料")]
+        入库时检测有料 = 1L << 3,
 
         /// <summary>
-        ///  夹具1抓取货物报
+        ///  入库任务放置数据出
         /// </summary>
-        [Description("夹具1抓取货物报错")]
-        夹具1抓取货物报错 = 1L << 4,
+        [Description("入库任务放置数据出错")]
+        入库任务放置数据出错 = 1L << 4,
 
         /// <summary>
-        ///  夹具2抓取货物报
+        ///  出库任务放置数据出
         /// </summary>
-        [Description("夹具2抓取货物报错")]
-        夹具2抓取货物报错 = 1L << 5,
+        [Description("出库任务放置数据出错")]
+        出库任务放置数据出错 = 1L << 5,
 
         /// <summary>
-        /// 夹具1压货报警
+        /// 夹具1/2压货报警
         /// </summary>
-        [Description("夹具1压货报警")]
-        夹具1压货报警 = 1L << 6,
+        [Description("夹具1/2压货报警")]
+        夹具12压货报警 = 1L << 6,
 
         /// <summary>
-        ///  夹具2压货报警
+        ///  移库任务放置数据出错
         /// </summary>
-        [Description("夹具2压货报警")]
-        夹具2压货报警 = 1L << 7,
+        [Description("移库任务放置数据出错")]
+        移库任务放置数据出错 = 1L << 7,
 
         /// <summary>
-        ///  夹具1掉料报警
+        ///  夹具1/2掉料报警
         /// </summary>
-        [Description("夹具1掉料报警")]
-        夹具1掉料报警 = 1L << 8,
+        [Description("夹具1/2掉料报警")]
+        夹具12掉料报警 = 1L << 8,
 
         /// <summary>
-        ///  夹具2掉料报警
+        ///  机器人充磁失败报警
         /// </summary>
-        [Description("夹具2掉料报警")]
-        夹具2掉料报警 = 1L << 9,
+        [Description("机器人充磁失败报警")]
+        机器人充磁失败报警 = 1L << 9,
 
         /// <summary>
-        ///  机器人限位报警
+        ///  光栅报警
         /// </summary>
-        [Description("机器人限位报警")]
-        机器人限位报警 = 1L << 10,
+        [Description("光栅报警")]
+        光栅报警 = 1L << 10,
 
         /// <summary>
-        ///  机器人充磁失败报警
+        ///  光栅误触报警
         /// </summary>
-        [Description("机器人充磁失败报警")]
-        机器人充磁失败报警 = 1L << 11,
+        [Description("光栅误触报警")]
+        光栅误触报警 = 1L << 11,
 
         /// <summary>
-        ///  安全门急停报警
+        ///  安全门急停报警(取反)
         /// </summary>
-        [Description("安全门急停报警")]
-        安全门急停报警 = 1L << 12,
+        [Description("安全门急停报警取反")]
+        安全门急停报警取反 = 1L << 12,
 
         /// <summary>
-        ///  光栅报警
+        ///  检查机械臂A4轴报错
         /// </summary>
-        [Description("光栅报警")]
-        光栅报警 = 1L << 13,
+        [Description("检查机械臂A4轴报错")]
+        检查机械臂A4轴报错 = 1L << 13,
 
         /// <summary>
-        ///  光栅误触报警
+        ///  初始化后检测出夹具接近开关有物料
         /// </summary>
-        [Description("光栅误触报警")]
-        光栅误触报警 = 1L << 14,
+        [Description("初始化后检测出夹具接近开关有物料")]
+        初始化后检测出夹具接近开关有物料 = 1L << 14,
 
         /// <summary>
-        ///  托盘任务出错
+        ///  安全门打开(取反)
         /// </summary>
-        [Description("托盘任务出错")]
-        托盘任务出错 = 1L << 15,
+        [Description("安全门打开(取反)")]
+        安全门打开 = 1L << 15,
 
         /// <summary>
-        ///  抓深度2在深度1有货
+        ///  夹取物料5秒后光电未检测到
         /// </summary>
-        [Description("抓深度2在深度1有货")]
-        抓深度2在深度1有货 = 1L << 16,
+        [Description("夹取物料5秒后光电未检测到")]
+        夹取物料5秒后光电未检测到 = 1L << 16,
 
         /// <summary>
-        ///  抓深度3在深度1或者2有货
+        ///  A4轴报错
         /// </summary>
-        [Description("抓深度3在深度1或者2有货")]
-        抓深度3在深度1或者2有货 = 1L << 17,
+        [Description("A4轴报错")]
+        A4轴报错 = 1L << 17,
 
         /// <summary>
         ///  备用

+ 0 - 15
业务工程/分拣库/WCS.WorkEngineering/Systems/分拣主线/满轮主线预写入目标地址.cs

@@ -79,21 +79,6 @@ namespace WCS.WorkEngineering.Systems
                             World.Log($"{bcrCode}:找不到匹配任务--{value}", LogLevelEnum.High);
                             return;
                         }
-
-                        //if ((obj.Entity.Code == "18" && task.WarehouseCode == "1N") ||
-                        //    (obj.Entity.Code == "118" && task.WarehouseCode == "1S") ||
-                        //    (obj.Entity.Code == "38" && task.WarehouseCode == "2N") ||
-                        //    (obj.Entity.Code == "138" && task.WarehouseCode == "2S") ||
-                        //    (obj.Entity.Code == "58" && task.WarehouseCode == "3N") ||
-                        //    (obj.Entity.Code == "158" && task.WarehouseCode == "3S"))
-                        //{
-                        //    task.Status = TaskStatus.WaitingToExecute;
-                        //    task.EditWho = "WCS";
-                        //    task.StartTime = DateTime.Now;
-                        //}
-                        //task.EditTime = DateTime.Now;
-                        //db.UpdateableRowLock(task).ExecuteCommand();
-                        //task.AddWCS_TASK_DTL(db, obj.Entity.Code, next, "任务完成预分流");
                         taskInfo = task;
                     });
                 }

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

@@ -143,7 +143,7 @@ namespace WCS.WorkEngineering.Systems
             });
             //获取入库次数
             var inQuantity = obj.Entity.GetFlag<int>("InQuantity");
-            var inMaxQuantity = 3;
+            var inMaxQuantity = 2; //出入库的周期检查比为1:3
             //入库任务优先 或 上一个周期是出库任务并且出库任务无优先
             if (inQuantity <= inMaxQuantity) //入库任务
             {
@@ -182,6 +182,7 @@ namespace WCS.WorkEngineering.Systems
                 if (!arrIn.Any())
                 {
                     World.Log($"[{obj.Entity.Code}]等待入库任务输送到位");
+                    obj.Entity.SetFlag("InQuantity", 4); //在无货物的情况下,只检查一次,下次直接查询是否有出库任务,避免无效检查周期的产生
                     return;
                 }
 
@@ -194,7 +195,12 @@ namespace WCS.WorkEngineering.Systems
                                                             .Where(x => x.Data2.TaskNumber > 0 && x.Data.Status.HasFlag(StationStatus.PH_Status) /*&& x.Data.Status1.HasFlag(StationStatus1.IsLock)*/)
                                                             .OrderByDescending(x => x.Entity.Code.ToShort())
                                                             .Take(2);
-                    if (!devGroup.Any()) throw new KnownException($"无有效入库取货位", LogLevelEnum.High);
+                    if (!devGroup.Any())
+                    {
+                        obj.Entity.SetFlag("InQuantity", 4); //在无有效取货位的情况下,只检查一次,下次直接查询是否有出库任务,避免无效检查周期的产生
+                        throw new KnownException($"无有效入库取货位", LogLevelEnum.High);
+                    }
+
                     foreach (var dev in devGroup)
                     {
                         var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.Type == TaskType.SetPlate && v.Status == Entity.TaskStatus.FinishOfShunt && dev.Data2.TaskNumber == v.ID);
@@ -203,6 +209,7 @@ namespace WCS.WorkEngineering.Systems
                         if (res.ResCode != ResponseStatusCodeEnum.Sucess)
                         {
                             World.Log(res.ResMsg);
+                            obj.Entity.SetFlag("InQuantity", 4); //在获取货物异常的情况下,只检查一次,下次直接查询是否有出库任务,避免无效检查周期的产生
                             return;
                         }
                         task.Status = Entity.TaskStatus.StackerExecution;

+ 13 - 1
业务工程/分拣库/WCS.WorkEngineering/Worlds/MainWorld.cs

@@ -48,7 +48,19 @@ namespace WCS.WorkEngineering.Worlds
         /// </summary>
         protected override void AfterUpdate()
         {
-            LogHub.WorldPublish(Logs, this.GetType().Name);
+            //通过异步处理,加快周期速度
+            Task.Run(() =>
+            {
+                try
+                {
+                    LogHub.WorldPublish(Logs, this.GetType().Name);
+                }
+                catch (Exception e)
+                {
+                    //Console.WriteLine(e);
+                    //throw;
+                }
+            });
         }
 
         /// <summary>