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