From 31de09d1ba504cb036ae29a98a9efbb0c2d61914 Mon Sep 17 00:00:00 2001
From: quanzhou <quan.zhou@broconcentric.com>
Date: 星期四, 11 九月 2025 13:34:11 +0800
Subject: [PATCH] 增加扫码上传打印追溯条码的界面以及对mes的开关添加了日志
---
src/Bro.M141_AOI1.Process/AOI1Process.cs | 321 ++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 241 insertions(+), 80 deletions(-)
diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs
index 5e34210..8f105c1 100644
--- a/src/Bro.M141_AOI1.Process/AOI1Process.cs
+++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -229,33 +229,61 @@
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
+ {
+ try
+ {
+ if (zwordstr.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum2 = int.Parse(matches[0].Value)+1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum2 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ 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
{
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插叧闂璵es杩炴帴");
Plc1.WriteSingleAddress(1524, 1, out _);
Plc1.WriteSingleAddress(1514, 1, out _);
}
@@ -340,8 +368,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 +391,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 +455,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()}");
}
}
@@ -498,37 +546,68 @@
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
+ {
+ try
+ {
+ if (Msg.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum1 = int.Parse(matches[0].Value)+ 1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum1 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ 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
{
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插叧闂璵es杩炴帴");
Plc1.WriteSingleAddress(1590, 1, out _);
}
@@ -549,38 +628,67 @@
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
+ {
+ try
+ {
+ if (Msg.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum1 = int.Parse(matches[0].Value) + 1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum1 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ 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
{
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插叧闂璵es杩炴帴");
Plc1.WriteSingleAddress(1590, 1, out _);
}
@@ -592,8 +700,6 @@
public ResponseMessage MESup3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
{
ResponseMessage msg = new ResponseMessage();
-
-
if (ConfigAOI1.ISupMES)
{
@@ -613,6 +719,25 @@
}
else
{
+ try
+ {
+ if (Msg.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum3 = int.Parse(matches[0].Value)+1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum3 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
Plc1.WriteSingleAddress(1591, 2, out _);
}
LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 涓嬫枡鍙g┖绡� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}");
@@ -632,6 +757,7 @@
}
else
{
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插叧闂璵es杩炴帴");
Plc1.WriteSingleAddress(1591, 1, out _);
}
@@ -658,7 +784,29 @@
{
ConfigAOI1.mesnum3++;
}
- LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 涓嬫枡鍙f弧杞�1 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}");
+ else
+ {
+ try
+ {
+ if (Msg.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum3 = int.Parse(matches[0].Value) + 1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum3 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+ LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 涓嬫枡鍙f弧杞�1 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}");
}
catch
{
@@ -669,8 +817,6 @@
{
LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 涓嬫枡鍙f弧杞�1 鑾峰彇杩斿洖鍊艰В鏋愬紓甯� 杩斿洖鏁版嵁null ");
}
-
-
Thread.Sleep(1000);
//mqtt.Send("4", "DS02217", ConfigAOI1.Dicbasketcode.ContainsKey(num) ? ConfigAOI1.Dicbasketcode[num] : ConfigAOI1.basketcode, "1", num.ToString());
Msg = Task.Run(() => mqtt.MESForBasketAsync("4", "DS02217", ConfigAOI1.PlcAndBasketcodes.Any(u => u.id == num) ? ConfigAOI1.PlcAndBasketcodes.FirstOrDefault(u => u.id == num).code : "NoRead", "1", ConfigAOI1.mesnum4.ToString())).Result;
@@ -686,6 +832,25 @@
}
else
{
+ try
+ {
+ if (Msg.Contains("version閿欒"))
+ {
+ Regex reg = new Regex("[0-9]+", RegexOptions.IgnoreCase | RegexOptions.Singleline, TimeSpan.FromSeconds(2));
+ MatchCollection matches = reg.Matches(obj.zerrmsg);
+ if (matches[0] != null && matches.Count == 3)
+ {
+ ConfigAOI1.mesnum4 = int.Parse(matches[0].Value) + 1;
+ }
+ else
+ {
+ ConfigAOI1.mesnum4 = 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
Plc1.WriteSingleAddress(1591, 2, out _);
}
LogAsync(DateTime.Now, obj?.zstatus == "200" ? EnumHelper.LogLevel.Information : EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 涓嬫枡鍙f弧杞� 涓婁紶{(obj?.zstatus == "200" ? "鎴愬姛" : "澶辫触")} {obj?.zstatus}");
@@ -704,14 +869,10 @@
}
else
{
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"宸插叧闂璵es杩炴帴");
Plc1.WriteSingleAddress(1591, 1, out _);
}
return msg;
}
-
-
-
-
-
}
}
--
Gitblit v1.8.0