|
@@ -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 写入
|
|
|
}
|
|
|
-}
|
|
|
+}
|