From 3cba54c4ee8d29d33ed21a2c749a9d2f2d03e22d Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期五, 03 七月 2020 18:33:30 +0800 Subject: [PATCH] 板卡IO定义修改。板卡预定义操作功能实现 --- src/Bro.M071.Process/M071Process.cs | 83 ++++++++++++++++++----------------------- 1 files changed, 37 insertions(+), 46 deletions(-) diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index 2667c4f..b5235b2 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -42,6 +42,16 @@ InitialSetting(); base.Open(); + + CheckMachineState(); + } + + /// <summary> + /// 妫�鏌ヨ澶囩姸鎬� + /// </summary> + private void CheckMachineState() + { + throw new NotImplementedException(); } private void InitialSetting() @@ -100,7 +110,7 @@ if (keyRespone.Count == 0) throw new ProcessException($"{u.GetDisplayText()}瀵瑰簲鐨勫崟閿笉瀛樺湪鎴栦笉鍙敤"); - if (b.KeyResult == "All") + if (b.KeyResultId == "All") { keyRespone.SelectMany(kr => kr.KeyResultList).ToList().ForEach(r => { @@ -109,7 +119,7 @@ } else { - b.MeasureValueDict[b.KeyResult] = null; + b.MeasureValueDict[b.KeyResultId] = null; } }); }); @@ -154,6 +164,8 @@ } } + List<ProductionMeasurement> productionList = new List<ProductionMeasurement>(); + [ProcessMethod("", "StartJob", "寮�濮嬫壂鎻�", InvokeType.TestInvoke)] public ProcessResponse StartJob(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) { @@ -176,6 +188,16 @@ Measurements = measurements, }; + var existedProduction = productionList.FirstOrDefault(u => u.Barcode == pMeasure.Barcode); + if (existedProduction != null) + { + productionList.Remove(existedProduction); + existedProduction.Dispose(); + existedProduction = null; + } + + productionList.Add(pMeasure); + pMeasure.InitialMeasurementsPropertyChanged(); pMeasure.PropertyChanged += MeasureProduction_PropertyChanged; @@ -183,27 +205,24 @@ { _pauseHandle.WaitHandle.WaitOne(); - IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == s.MotionDevice); + IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == s.MotionOp.Device); if (device == null) throw new ProcessException($"{s.Name}鎷嶇収鐐逛綅鏈缃繍鍔ㄨ澶�"); - IMotion motionDevice = device as IMotion; + IMotionCard motionDevice = device as IMotionCard; if (motionDevice == null) throw new ProcessException($"{s.Name}鎷嶇収鐐逛綅璁剧疆{device.Name}涓嶆槸杩愬姩璁惧"); - if (!motionDevice.MoveToPoint(null)) + var response = motionDevice.Run(s.MotionOp.OpConfig); + if (!response.Result) { - throw new ProcessException("杩愬姩涓", null, ExceptionLevel.Info); + throw new ProcessException($"{device.Name}寮傚父锛寋response.Message}", null, ExceptionLevel.Info); } CameraBase camera = DeviceCollection.FirstOrDefault(u => u.Id == s.CameraOp.Device) as CameraBase; if (camera == null) return; - - //IImageSet imgSet = camera.Snapshot(s.CameraOp.OpConfig); - //if (imgSet == null) - // return; HImage hImage = CollectHImage(camera, s.CameraOp.OpConfig, out string imgSetId); if (string.IsNullOrWhiteSpace(imgSetId)) @@ -215,40 +234,8 @@ }); BarCode = ""; + return new ProcessResponse(true); - } - - /// <summary> - /// 鏆傚仠鏍囧織 - /// WaitHandle 鏆傚仠鍙ユ焺 榛樿涓洪潪闃诲 鍙墽琛� - /// WaitResult 鏆傚仠鏍囧織 true 姝e父鎵ц false 鏆傚仠涓� - /// </summary> - ManualWaitConfirm _pauseHandle = new ManualWaitConfirm() - { - WaitHandle = new ManualResetEvent(true), - WaitResult = true, - }; - - [ProcessMethod("", "PauseJob", "鏆傚仠娴佺▼", InvokeType.TestInvoke)] - public ProcessResponse PauseJob(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) - { - if (_pauseHandle.WaitResult) - { - #region 鏉垮崱鏆傚仠鍔ㄤ綔 - #endregion - - _pauseHandle.WaitHandle.Reset(); - } - else - { - #region 鏉垮崱鎭㈠鍔ㄤ綔 - #endregion - - _pauseHandle.WaitHandle.Set(); - } - - _pauseHandle.WaitResult = !_pauseHandle.WaitResult; - return new ProcessResponse(_pauseHandle.WaitResult); } #region 绉佹湁鏂规硶 @@ -294,8 +281,12 @@ } } + LogAsync(DateTime.Now, $"{m.GetDisplayText()}妫�娴嬬粨鏋�", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}"); + + IShapeElement indicator = null; + pMeasure.ElementList.Add(indicator); //杈撳嚭鍥惧舰鍩哄厓鍒扮晫闈� todo - OnElementUpdated?.BeginInvoke(null, null, null); + OnElementUpdated?.BeginInvoke(indicator, null, null); SaveKeyImages(pMeasure.Barcode, m); @@ -309,8 +300,6 @@ return; } - - //MES杈撳嚭 todo //Excel鎶ヨ〃杈撳嚭 todo @@ -318,6 +307,8 @@ //鏁版嵁搴撲繚瀛� todo SaveWholeImage(pMeasure); + + productionList.RemoveAll(p => p.Barcode == pMeasure.Barcode); pMeasure.Dispose(); } } -- Gitblit v1.8.0