林豪 左 2 年之前
父節點
當前提交
4db968c119
共有 1 個文件被更改,包括 47 次插入7 次删除
  1. 47 7
      WCS.Core/DataTrans/DataBlock.cs

+ 47 - 7
WCS.Core/DataTrans/DataBlock.cs

@@ -1,9 +1,9 @@
 using DBHelper;
-using Logs;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Diagnostics;
+using System.IO;
 using System.Linq;
 using System.Reflection;
 using System.Runtime.InteropServices;
@@ -36,13 +36,18 @@ namespace WCS.Core
         public void DataRefresh()
         {
             var sw = new Stopwatch();
+            string msg = "";
             try
             {
                 if (Entity.NOUPDATE && Data != null)
                     return;
                 if (failed && (DateTime.Now - AliveTime).TotalMilliseconds < 6000)
                 {
-                    throw new Exception(Entity.NAME + "连接失败");
+                    msg = $"{Entity.PLC.NAME}{Entity.PLC.IP}{Entity.NO}:{Entity.NAME}连接失败--DataBlock46";
+                    Console.WriteLine(msg);
+                    Log(msg);
+                    Console.ResetColor();
+                    //throw new Exception(Entity.NAME + "连接失败");
                 }
                 AliveTime = DateTime.Now;
                 byte[] data = null;
@@ -58,17 +63,31 @@ namespace WCS.Core
                 if (Data == null || !data.SequenceEqual(Data))
                 {
                     Data = data;
-                    DB.Do(db =>
+
+                    try
+                    {
+                        DB.Do(db =>
+                        {
+                            DataChanged?.Invoke(db, Data);
+                        });
+                    }
+                    catch (Exception ex)
                     {
-                        DataChanged?.Invoke(db, Data);
-                    });
+                        msg = $"{Entity.PLC.NAME}{Entity.PLC.IP}{Entity.NO}:{ex.Message}--DataBlock79";
+                        Console.WriteLine(msg);
+                        Log(msg);
+                        Console.ResetColor();
+                    }
                 }
             }
             catch (Exception ex)
             {
                 sw.Stop();
                 failed = true;
-                throw new Exception($"[Type:{ex.GetType().Name}][StackTrace:{ex.StackTrace}][Message:{ex.Message.Replace("\r\n", " ")}]");
+                msg = $"{Entity.PLC.NAME}{Entity.PLC.IP}{Entity.NO}:{ex.Message}--DataBlock87";
+                Console.WriteLine(msg);
+                Log(msg);
+                Console.ResetColor();
             }
             finally
             {
@@ -81,6 +100,27 @@ namespace WCS.Core
             }
         }
 
+        private string logPath = @"Log\" + "DataRefresh" + @"\";
+
+        protected void Log(string msg)
+        {
+            try
+            {
+                var str = "-----------" + DateTime.Now.ToString("yyyyMMdd HH:mm:ss:fff") + "-----------\r\n";
+                str += msg;
+                if (!Directory.Exists(logPath))
+                    Directory.CreateDirectory(logPath);
+                var file = logPath + DateTime.Now.ToString("yyyyMMdd") + ".log";
+                var writer = File.AppendText(file);
+                writer.WriteLine(str);
+                writer.Flush();
+                writer.Close();
+            }
+            catch (Exception ex)
+            {
+            }
+        }
+
         public PlcItem<T> Regist<T>(string objid, string name, int start, byte arrLen = 1, byte strLen = 0)
         {
             var t = typeof(T);
@@ -459,4 +499,4 @@ namespace WCS.Core
 
         #endregion 写入
     }
-}
+}