领胜LDS 键盘AOI检测项目
patrick.xu
2021-07-24 ff7cab72419729ce2c5adc46350ef45d89a5d1e5
MES动作添加异常捕捉和重试机制
5个文件已修改
78 ■■■■■ 已修改文件
src/Bro.M071.Process/M071Process.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/M071Process_MES.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/M071Process_MotionCard.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M071.Process/Properties/AssemblyInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.UI.Config/MenuForms/FrmStatistic.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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");
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,11 +685,19 @@
                            }
                            _pausedHandle.Set();
                            RaisedAlarm("");
                            if (_machineStateBeforePause == MachineState.Running && MeasureState == MachineState.Ready)
                            {
                                MachineState = MachineState.Ready;
                            }
                            else
                            {
                            MachineState = _machineStateBeforePause;
                        }
                    }
                }
            }
            }
            );
        }
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")]
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()