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 | 193 ++++++++++++++++++++++++++++++------------------ 1 files changed, 120 insertions(+), 73 deletions(-) diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs index 5769978..6a88850 100644 --- a/src/Bro.M141_AOI1.Process/AOI1Process.cs +++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs @@ -229,30 +229,38 @@ string zwordstr = Task.Run(() => mqtt.MESForBasketAsync("2", "DS02217", barcode, "1", ConfigAOI1.mesnum2.ToString())).Result; ConfigAOI1.mesnum2++; - - try + if (ConfigAOI1.ISokMes) { - var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(zwordstr); - ConfigAOI1.zwoid = obj.zwoid; - if (!string.IsNullOrEmpty(obj.zwoid) && obj.zstatus == "200") + Plc1.WriteSingleAddress(1524, 1, out _); + Plc1.WriteSingleAddress(1514, 1, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插己鍒惰鏍忓叿鐮佽繍琛岃澶�"); + } + else + { + try { - Plc1.WriteSingleAddress(1524, 1, out _); - Plc1.WriteSingleAddress(1514, 1, out _); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ zwoid鑾峰彇鎴愬姛 {obj.zstatus} {obj.zwoid} "); + var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(zwordstr); + ConfigAOI1.zwoid = obj.zwoid; + if (!string.IsNullOrEmpty(obj.zwoid) && obj.zstatus == "200") + { + Plc1.WriteSingleAddress(1524, 1, out _); + Plc1.WriteSingleAddress(1514, 1, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ zwoid鑾峰彇鎴愬姛 {obj.zstatus} {obj.zwoid} "); + } + else + { + Plc1.WriteSingleAddress(1524, 2, out _); + Plc1.WriteSingleAddress(1514, 1, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ zwoid鑾峰彇澶辫触 {zwordstr} "); + } } - else + catch { Plc1.WriteSingleAddress(1524, 2, out _); Plc1.WriteSingleAddress(1514, 1, out _); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ zwoid鑾峰彇澶辫触 {zwordstr} "); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ zwoid鑾峰彇寮傚父 杩斿洖鏁版嵁涓� {zwordstr} "); } - } - catch - { - Plc1.WriteSingleAddress(1524, 2, out _); - Plc1.WriteSingleAddress(1514, 1, out _); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ zwoid鑾峰彇寮傚父 杩斿洖鏁版嵁涓� {zwordstr} "); - } + } } else { @@ -340,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"); @@ -364,7 +371,8 @@ if (datasZ.Count == CheckPointList.Count) { string Postion = "P" + opConfig.TriggerStr.Split('#')[0]; - string csvhead = "Time,Pid,Postion"; + string csvhead = "Time,Pid" + + ",Postion"; string csvdata = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}T,{results[0].PID},{Postion}"; for (int i = 0; i < CheckPointList.Count; i++) @@ -427,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()}"); } } @@ -484,6 +512,9 @@ + + + [ProcessMethod("", "MESup1", "MES涓婁紶杩涙枡鍙g┖绡�", InvokeType.TestInvoke)] public ResponseMessage MESup1(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) { @@ -495,34 +526,44 @@ if (ConfigAOI1.ISupMES) { string Msg = Task.Run(() => mqtt.MESForBasketAsync("1", "DS02216", "", "0", ConfigAOI1.mesnum1.ToString())).Result; - if (Msg != null) - { - try - { - var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(Msg); - if (obj?.zstatus == "200") - { - ConfigAOI1.mesnum1++; - Plc1.WriteSingleAddress(1590, 1, out _); - } - else - { - Plc1.WriteSingleAddress(1590, 2, out _); - } - LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}"); - } - catch - { - LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁{Msg} "); - Plc1.WriteSingleAddress(1590, 2, out _); - } + if (ConfigAOI1.ISokMes) + { + ConfigAOI1.mesnum1++; + Plc1.WriteSingleAddress(1590, 1, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"宸插己鍒禡ES涓婁紶杩涙枡鍙g┖绡�"); } else { - Plc1.WriteSingleAddress(1590, 2, out _); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 鑾峰彇杩斿洖鍊煎け璐� 杩斿洖鏁版嵁null "); - } + if (Msg != null) + { + try + { + var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(Msg); + if (obj?.zstatus == "200") + { + ConfigAOI1.mesnum1++; + Plc1.WriteSingleAddress(1590, 1, out _); + } + else + { + Plc1.WriteSingleAddress(1590, 2, out _); + } + LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}"); + + } + catch + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁{Msg} "); + Plc1.WriteSingleAddress(1590, 2, out _); + } + } + else + { + Plc1.WriteSingleAddress(1590, 2, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙g┖绡� 鑾峰彇杩斿洖鍊煎け璐� 杩斿洖鏁版嵁null "); + } + } } else { @@ -532,7 +573,6 @@ return msg; } - [ProcessMethod("", "MESup2", "MES涓婁紶杩涙枡鍙f弧杞�", InvokeType.TestInvoke)] @@ -547,35 +587,44 @@ if (ConfigAOI1.ISupMES) { string Msg = Task.Run(() => mqtt.MESForBasketAsync("1", "DS02216", "", "1", ConfigAOI1.mesnum1.ToString())).Result; - if (Msg != null) + if (ConfigAOI1.ISokMes) { - - try - { - var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(Msg); - if (obj?.zstatus == "200") - { - ConfigAOI1.mesnum1++; - Plc1.WriteSingleAddress(1590, 1, out _); - } - else - { - Plc1.WriteSingleAddress(1590, 2, out _); - } - - LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}"); - } - catch - { - Plc1.WriteSingleAddress(1590, 2, out _); - LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁{Msg} "); - } - } + ConfigAOI1.mesnum1++; + Plc1.WriteSingleAddress(1590, 1, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"宸插己鍒禡ES涓婁紶杩涙枡鍙f弧杞�"); + } else { - LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁null "); - Plc1.WriteSingleAddress(1590, 2, out _); - } + if (Msg != null) + { + + try + { + var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(Msg); + if (obj?.zstatus == "200") + { + ConfigAOI1.mesnum1++; + Plc1.WriteSingleAddress(1590, 1, out _); + } + else + { + Plc1.WriteSingleAddress(1590, 2, out _); + } + + LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}"); + } + catch + { + Plc1.WriteSingleAddress(1590, 2, out _); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁{Msg} "); + } + } + else + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩涙枡鍙f弧杞� 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁null "); + Plc1.WriteSingleAddress(1590, 2, out _); + } + } } else { @@ -590,8 +639,6 @@ public ResponseMessage MESup3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) { ResponseMessage msg = new ResponseMessage(); - - if (ConfigAOI1.ISupMES) { -- Gitblit v1.8.0