From 73d6d058983ff914e5092bba4b2c403eef2caec5 Mon Sep 17 00:00:00 2001 From: peizhiyong <zhiyong.pei@broconcentric.com> Date: 星期三, 06 八月 2025 18:40:38 +0800 Subject: [PATCH] 检测产品线轮廓度的结果添加双重补偿,深度图存图绑定产品二维码 --- src/Bro.M141_AOI1.Process/AOI1Process.cs | 23 ++++++++++- src/Bro.M141.Process/M141Process.cs | 39 ++++++++++++++----- 2 files changed, 50 insertions(+), 12 deletions(-) diff --git a/src/Bro.M141.Process/M141Process.cs b/src/Bro.M141.Process/M141Process.cs index 93b8fe0..3fbe71a 100644 --- a/src/Bro.M141.Process/M141Process.cs +++ b/src/Bro.M141.Process/M141Process.cs @@ -589,7 +589,8 @@ { item1.IsAbandoned = false; item1.FinalResult = ResultState.NG; - LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{products[0].PID}_{products[0].SEQUENCE}宸ヤ綅{measureBind.WorkPosition} S3S5缁勫悎妫�娴嬫鍑虹己闄�:{item1.NetName}"); + //products[0].Result = M141Config.defectname; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{products[0].PID}_{products[0].SEQUENCE}宸ヤ綅{measureBind.WorkPosition} S3S5缁勫悎妫�娴嬫鍑虹己闄�:{item1.NetName}锛屼骇鍝佺粨鏋滀负{products[0].Result}"); break; } } @@ -695,10 +696,19 @@ } string ngImageFile = Path.Combine(folder, $"{id}.{post}"); - var bitmap = imgSet.HImage.ConvertHImageToBitmap(); - bitmap.Save(ngImageFile, M141Config.ImageFormatNG); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖宸蹭繚瀛�"); - bitmap.Dispose(); + //var bitmap = imgSet.HImage.ConvertHImageToBitmap(); + //bitmap.Save(ngImageFile, M141Config.ImageFormatNG); + //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖宸蹭繚瀛�"); + //bitmap.Dispose(); + try + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}NG鍥剧墖娴嬭瘯杞瓨{ngImageFile}"); + imgSet.HImage.WriteImage(M141Config.ImageFormatOK.ToString().ToLower(), 0, ngImageFile); + } + catch (Exception) + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{id}NG鍥剧墖淇濆瓨澶辫触"); + } } } } @@ -731,11 +741,20 @@ post = M141Config.ImageFormatOK.ToString().ToLower(); } - string ngImageFile = Path.Combine(folder, $"{id}.{post}"); - var bitmap = imgSet.HImage.ConvertHImageToBitmap(); - bitmap.Save(ngImageFile, M141Config.ImageFormatOK); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖宸蹭繚瀛�"); - bitmap.Dispose(); + string ngImageFile = Path.Combine(folder, $"{id}.{post}"); + //var bitmap = imgSet.HImage.ConvertHImageToBitmap(); + //bitmap.Save(ngImageFile, M141Config.ImageFormatOK); + //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖宸蹭繚瀛�"); + //bitmap.Dispose(); + try + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{id}OK鍥剧墖娴嬭瘯杞瓨{ngImageFile}"); + imgSet.HImage.WriteImage(M141Config.ImageFormatOK.ToString().ToLower(), 0, ngImageFile); + } + catch (Exception) + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{id}OK鍥剧墖淇濆瓨澶辫触"); + } } } } diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs index a6e11ba..6a88850 100644 --- a/src/Bro.M141_AOI1.Process/AOI1Process.cs +++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs @@ -348,8 +348,7 @@ LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"妫�娴嬩骇鍝佺嚎杞粨搴﹁緭鍏ョ偣鏁版嵁 {string.Join(',', pointdataF)}"); var tool = GetHalconTool(null, "", opConfig.AlgorithemPath); - var ret = tool.RunProcedure(new Dictionary<string, HalconDotNet.HTuple>() { { "INPUT_Points", pointdataF.ToArray() } }, new Dictionary<string, HalconDotNet.HObject>() { { "INPUT_Image", opConfig.ImageSet.HImage } }, new List<string>() { "OUTPUT_Results", "OUTPUT_PointZ" }, null); - + var ret = tool.RunProcedure(new Dictionary<string, HalconDotNet.HTuple>() { { "INPUT_Points", pointdataF.ToArray() } }, new Dictionary<string, HalconDotNet.HObject>() { { "INPUT_Image", opConfig.ImageSet.HImage } }, new List<string>() { "OUTPUT_Results", "OUTPUT_PointZ" }, null); if (ret == null) { LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鑴氭湰{opConfig.AlgorithemPath}杩愯寮傚父锛岃繑鍥炲�间负null"); @@ -436,6 +435,26 @@ else { item.ActualValue = retcal.Item2["OUTPUT_Results"].HTupleToDouble()[0]; + + if (item.IsEnableCompensation && item.CompensationValue.Count > 1) + { + string index = opConfig.TriggerStr.Split('#')[0]; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩{index}锛屽垵濮嬪�间负{item.ActualValue}"); + + if (index=="1") + { + item.ActualValue += item.CompensationValue[0]; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩,琛ュ伩鍊间负{item.CompensationValue[0]}锛屾渶缁堢粨鏋滀负{item.ActualValue}"); + } + else + { + item.ActualValue += item.CompensationValue[1]; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{item.Code}杩涘叆鍙岄噸琛ュ伩,琛ュ伩鍊间负{item.CompensationValue[1]}锛屾渶缁堢粨鏋滀负{item.ActualValue}"); + } + + } + + LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"{results[0].PID}鑾峰彇璁$畻鍏紡鏁版嵁{item.Code} {item.GetMeasureValueStr()}"); } } -- Gitblit v1.8.0