From ca718bf67886ef08cfd22599d22d458b610c02aa Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期五, 10 七月 2020 18:34:43 +0800 Subject: [PATCH] 板卡添加轴状态和轴报警信息输出 --- src/Bro.M071.Process/M071Process.cs | 81 +++++++++++++++++++++++++++------------- 1 files changed, 55 insertions(+), 26 deletions(-) diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index 1dea3b9..c3c2e4f 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -7,6 +7,7 @@ using Bro.M071.Model.Model; using Bro.Process; using HalconDotNet; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; @@ -49,6 +50,8 @@ base.Open(); + InitialMotionCardBaseAxisAlarm(); + SwitchBeep(false); SwitchLightGreen(false); SwitchLightRed(false); @@ -56,6 +59,21 @@ Reset(null, null, null); FullReset(null); + } + + private void InitialMotionCardBaseAxisAlarm() + { + if (outputCtrlCard != null) + { + outputCtrlCard.OnAxisAlarmRaised -= MotionCard_OnAxisAlarmRaised; + outputCtrlCard.OnAxisAlarmRaised += MotionCard_OnAxisAlarmRaised; + } + } + + private void MotionCard_OnAxisAlarmRaised(int axisIndex, string alarmMsg) + { + RaisedAlarm(alarmMsg); + MachineState = MachineState.Alarm; } private void InitialSetting() @@ -221,11 +239,10 @@ if (camera == null) return; - string imgSetId = ""; - HImage hImage = null; + IImageSet set = null; try { - hImage = CollectHImage(camera, s.CameraOp.OpConfig, out imgSetId); + set = CollectHImage(camera, s.CameraOp.OpConfig); } catch (ProcessException pEx) { @@ -233,12 +250,12 @@ throw pEx; } - if (string.IsNullOrWhiteSpace(imgSetId)) + if (set == null) { return; } - RunImageHandle(camera, s.CameraOp.OpConfig, hImage, s.Id, s.Name, pMeasure.Measurements); + RunImageHandle(camera, s.CameraOp.OpConfig, set, s.Id, s.Name, pMeasure.Measurements); }); BarCode = ""; @@ -348,7 +365,7 @@ IShapeElement indicator = null; pMeasure.ElementList.Add(indicator); - //杈撳嚭鍥惧舰鍩哄厓鍒扮晫闈� todo + //杈撳嚭鍥惧舰鍩哄厓鍒扮晫闈� OnElementUpdated?.BeginInvoke(indicator, null, null); SaveKeyImages(pMeasure.Barcode, m); @@ -378,6 +395,9 @@ var measurementUnitResultAndKeyUnitDataSet = GetMeasurementUnitResultAndKeyUnitData(pMeasure); //MES杈撳嚭 todo + if (Config.IsEnableMESUpload) + { + } //Excel鎶ヨ〃杈撳嚭 锛堝崟涓骇鍝佺殑excel瀵煎嚭锛� ExportProductionExcel(measurementUnitResultAndKeyUnitDataSet); @@ -460,7 +480,7 @@ measurementUnitResult.ProductionMeasurementRecordsId = productionMeasurementRecords.ID; measurementUnitResult.MeasurementName = MeasurementUnitResult.Name; measurementUnitResult.MeasurementType = MeasurementUnitResult.MeasureType; - measurementUnitResult.MeasurementValue = ""; + measurementUnitResult.MeasurementValue = MeasurementUnitResult.Spec.ActualValue.ToString(); measurementUnitResult.MeasurementResult = MeasurementUnitResult.Spec.MeasureResult.Value ? "OK" : "NG"; measurementUnitResults.Add(measurementUnitResult); @@ -469,17 +489,20 @@ { foreach (var keyValue in keyUnit.MeasureValueDict)//鑾峰彇鍗曚釜閿殑鍗曚釜娴嬮噺item 缁撴灉 { - KeyUnitData keyUnitData = new KeyUnitData(); - keyUnitData.Key = keyUnit.Key; - keyUnitData.MeasurementItem = keyValue.Key; - keyUnitData.ItemValue = keyValue.Value.ToString(); - keyUnitDatas.Add(keyUnitData); + bool isExist = keyUnitDatas.Any(u => u.Key == keyUnit.Key && u.MeasurementItem == keyValue.Key); + if (!isExist)//宸插瓨鍦� 涓嶉噸澶嶆坊鍔犲師濮嬫暟鎹� + { + KeyUnitData keyUnitData = new KeyUnitData(); + keyUnitData.Key = keyUnit.Key; + keyUnitData.MeasurementItem = keyValue.Key; + keyUnitData.ItemValue = keyValue.Value.ToString(); + keyUnitDatas.Add(keyUnitData); - MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation(); - measurementAndKeyDataRelation.MeasurementUnitResultId = measurementUnitResult.ID; - measurementAndKeyDataRelation.KeyUnitDataId = keyUnitData.ID; - measurementAndKeyDataRelationList.Add(measurementAndKeyDataRelation); - + MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation(); + measurementAndKeyDataRelation.MeasurementUnitResultId = measurementUnitResult.ID; + measurementAndKeyDataRelation.KeyUnitDataId = keyUnitData.ID; + measurementAndKeyDataRelationList.Add(measurementAndKeyDataRelation); + } } } } @@ -497,6 +520,9 @@ private async void ExportProductionExcel(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet) { + if (!Config.IsCSVOutputEnabled) + return; + await Task.Run(() => { ExcelExportSet excelExportDto = new ExcelExportSet(); @@ -521,7 +547,7 @@ excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList, measurementUnitResultColumns); ; byte[] filecontent = ExcelExportHelper.ExportExcel(excelExportDto, false); - string dir = Path.Combine(Config.ImageSaveFolder, DateTime.Now.ToString("yyyyMMdd")); + string dir = Path.Combine(Config.LogPath, DateTime.Now.ToString("yyyyMMdd")); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); @@ -617,7 +643,7 @@ } #endregion - private async void RunImageHandle(CameraBase camera, IOperationConfig opConfig, HImage hImage, string snapshotId, string snapshotName, List<MeasurementUnit> measureList) + private async void RunImageHandle(CameraBase camera, IOperationConfig opConfig, IImageSet imgSet, string snapshotId, string snapshotName, List<MeasurementUnit> measureList) { await Task.Run(() => { @@ -625,7 +651,8 @@ var keyBindCollection = measureList.SelectMany(u => u.KeyUnitCollection).Where(u => keys.Any(k => k.Key == u.Key)).ToList(); string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath; - HObject images = hImage; + HObject images = imgSet.HImage; + LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData); if (!string.IsNullOrWhiteSpace(toolKey)) { @@ -637,7 +664,7 @@ return; } - _halconToolDict[toolKey].InputImageDic["INPUT_Image"] = hImage; + _halconToolDict[toolKey].InputImageDic["INPUT_Image"] = imgSet.HImage; if (!_halconToolDict[toolKey].RunProcedure(out string error)) { LogAsync(DateTime.Now, $"{snapshotName}鍙栧浘绠楁硶寮傚父锛寋error}", ""); @@ -685,6 +712,8 @@ else { _halconToolDict[keyToolKey].InputImageDic["INPUT_Image"] = image; + _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X; + _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z; if (!_halconToolDict[keyToolKey].RunProcedure(out string error)) { LogAsync(DateTime.Now, $"{k.AliasName}妫�娴嬬畻娉曞紓甯革紝{error}", ""); @@ -717,11 +746,11 @@ image.Dispose(); }); - if (count.I != 1) - { - hImage?.Dispose(); - hImage = null; - } + //if (count.I != 1) + //{ + // hImage?.Dispose(); + // hImage = null; + //} }); } #endregion -- Gitblit v1.8.0