From ff7cab72419729ce2c5adc46350ef45d89a5d1e5 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期六, 24 七月 2021 10:31:41 +0800
Subject: [PATCH] MES动作添加异常捕捉和重试机制
---
src/Bro.UI.Config/MenuForms/FrmStatistic.cs | 19 +++++++++
src/Bro.M071.Process/M071Process.cs | 7 ++-
src/Bro.M071.Process/M071Process_MotionCard.cs | 12 +++++
src/Bro.M071.Process/M071Process_MES.cs | 42 ++++++++++++++++++++-
src/Bro.M071.Process/Properties/AssemblyInfo.cs | 4 +-
5 files changed, 76 insertions(+), 8 deletions(-)
diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index b3c0725..a281648 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -274,7 +274,7 @@
_isdoing = true;
}
- MachineState = MachineState.Running;
+ MeasureState = MachineState = MachineState.Running;
OnCheckHintUpload?.Invoke(hint, true);
OnMeasureStart?.Invoke();
@@ -654,6 +654,7 @@
//if (MachineState == MachineState.Running)
// MachineState = MachineState.Ready;
+ MeasureState = MachineState.Ready;
if (MachineState != MachineState.Alarm)
{
if (MachineState == MachineState.Pause)
@@ -1450,8 +1451,8 @@
kb.FillKeyValues(resultDict);
}
else
- {
-
+ {
+
}
});
});
diff --git a/src/Bro.M071.Process/M071Process_MES.cs b/src/Bro.M071.Process/M071Process_MES.cs
index 43ff973..28e399e 100644
--- a/src/Bro.M071.Process/M071Process_MES.cs
+++ b/src/Bro.M071.Process/M071Process_MES.cs
@@ -7,6 +7,7 @@
using System.Linq;
using System.Reflection;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
namespace Bro.M071.Process
@@ -151,7 +152,25 @@
LogAsync(DateTime.Now, $"MES鍏ユ枡妫�娴�", JsonConvert.SerializeObject(paras));
}
- var result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString();
+ string result = "-3";
+
+ int repeatTime = 3;
+
+ do
+ {
+ try
+ {
+ result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString();
+ }
+ catch (Exception ex)
+ {
+ LogAsync(DateTime.Now, $"{barcode}浜у搧鏉$爜妫�娴嬪紓甯�", ex.GetExceptionMessage());
+ repeatTime--;
+
+ Thread.Sleep(100);
+ result = "-3";
+ }
+ } while (repeatTime > 0);
var mesReturn = (MESIncomingCheckReturn)int.Parse(result);
sw.Stop();
LogAsync(DateTime.Now, $"{barcode}浜у搧鏉$爜妫�娴嬶紝{result}|{mesReturn.ToString()}", $"鑰楁椂锛歿sw.ElapsedMilliseconds}ms");
@@ -210,7 +229,26 @@
LogAsync(DateTime.Now, $"{pMeasure.Barcode}浜у搧妫�娴嬫暟鎹笂浼�", JsonConvert.SerializeObject(paras));
}
- var result = DataUploadMethod?.Invoke(DataUploadObj, paras).ToString();
+ string result = "-3";
+
+ int repeatTime = 3;
+ do
+ {
+ try
+ {
+ result = DataUploadMethod?.Invoke(DataUploadObj, paras).ToString();
+ repeatTime = -1;
+ }
+ catch (Exception ex)
+ {
+ LogAsync(DateTime.Now, $"{barcode}浜у搧妫�娴嬫暟鎹笂浼犲紓甯�", ex.GetExceptionMessage());
+ repeatTime--;
+
+ Thread.Sleep(100);
+ result = "-3";
+ }
+ } while (repeatTime > 0);
+
var mesReturn = (MESUploadReturn)int.Parse(result);
sw.Stop();
LogAsync(DateTime.Now, $"{barcode}浜у搧妫�娴嬫暟鎹笂浼狅紝{result}|{mesReturn.ToString()}", $"鑰楁椂锛歿sw.ElapsedMilliseconds}ms");
diff --git a/src/Bro.M071.Process/M071Process_MotionCard.cs b/src/Bro.M071.Process/M071Process_MotionCard.cs
index baf87f7..7d5994c 100644
--- a/src/Bro.M071.Process/M071Process_MotionCard.cs
+++ b/src/Bro.M071.Process/M071Process_MotionCard.cs
@@ -19,6 +19,8 @@
{
public Timer ResetTimer = null;
+ MachineState MeasureState = MachineState.Unknown;
+
object machineStateLock = new object();
//MachineState _machineStatePre = MachineState.Unknown;
MachineState machineState = MachineState.Unknown;
@@ -683,7 +685,15 @@
}
_pausedHandle.Set();
RaisedAlarm("");
- MachineState = _machineStateBeforePause;
+
+ if (_machineStateBeforePause == MachineState.Running && MeasureState == MachineState.Ready)
+ {
+ MachineState = MachineState.Ready;
+ }
+ else
+ {
+ MachineState = _machineStateBeforePause;
+ }
}
}
}
diff --git a/src/Bro.M071.Process/Properties/AssemblyInfo.cs b/src/Bro.M071.Process/Properties/AssemblyInfo.cs
index 900ca23..b702623 100644
--- a/src/Bro.M071.Process/Properties/AssemblyInfo.cs
+++ b/src/Bro.M071.Process/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
//鍙互鎸囧畾鎵�鏈夎繖浜涘�硷紝涔熷彲浠ヤ娇鐢ㄢ�滅敓鎴愬彿鈥濆拰鈥滀慨璁㈠彿鈥濈殑榛樿鍊�
//閫氳繃浣跨敤 "*"锛屽涓嬫墍绀�:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.5.0")]
-[assembly: AssemblyFileVersion("1.0.5.0")]
+[assembly: AssemblyVersion("1.0.6.0")]
+[assembly: AssemblyFileVersion("1.0.6.0")]
diff --git a/src/Bro.UI.Config/MenuForms/FrmStatistic.cs b/src/Bro.UI.Config/MenuForms/FrmStatistic.cs
index d587aca..0b63795 100644
--- a/src/Bro.UI.Config/MenuForms/FrmStatistic.cs
+++ b/src/Bro.UI.Config/MenuForms/FrmStatistic.cs
@@ -352,6 +352,25 @@
{
_idleThreshold = 30;
}
+
+ this.FormClosing += (s, e) =>
+ {
+ _checkIdleTimer?.Change(-1, -1);
+ _checkIdleTimer?.Dispose();
+ _checkIdleTimer = null;
+
+ _idleTimer?.Change(-1, -1);
+ _idleTimer?.Dispose();
+ _idleTimer = null;
+
+ _downTimer?.Change(-1, -1);
+ _downTimer?.Dispose();
+ _downTimer = null;
+
+ _availableTimer?.Change(-1, -1);
+ _availableTimer?.Dispose();
+ _availableTimer = null;
+ };
}
public override void OnProcessUpdated()
--
Gitblit v1.8.0