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