From dbf68d954db78f369b87e87212e1f82b5513a894 Mon Sep 17 00:00:00 2001
From: zhouquan <zhouquan@LAPTOP-J27PNMJT>
Date: 星期五, 01 八月 2025 13:52:59 +0800
Subject: [PATCH] MES功能添加强制上传成功,以及关闭NG产品上传功能合并
---
src/Bro.M141.Process/MyMQTT.cs | 4
libs/halcon12/halcondotnet.dll | 0
src/Bro.M141.Process/UI/UIPrinter.cs | 2
libs/halcon12/hdevenginedotnet.dll | 0
src/Bro.M141_AOI1.Process/AOI1Process.cs | 166 +++++++++++++++++++--------------
src/Bro.M141.Process/M141Config.cs | 10 ++
src/Bro.M141.Process/M141Process.cs | 73 +++++++++++---
7 files changed, 164 insertions(+), 91 deletions(-)
diff --git a/libs/halcon12/halcondotnet.dll b/libs/halcon12/halcondotnet.dll
index 52831e9..6b217c0 100644
--- a/libs/halcon12/halcondotnet.dll
+++ b/libs/halcon12/halcondotnet.dll
Binary files differ
diff --git a/libs/halcon12/hdevenginedotnet.dll b/libs/halcon12/hdevenginedotnet.dll
index e6c23df..9252032 100644
--- a/libs/halcon12/hdevenginedotnet.dll
+++ b/libs/halcon12/hdevenginedotnet.dll
Binary files differ
diff --git a/src/Bro.M141.Process/M141Config.cs b/src/Bro.M141.Process/M141Config.cs
index 6323e49..0000efa 100644
--- a/src/Bro.M141.Process/M141Config.cs
+++ b/src/Bro.M141.Process/M141Config.cs
@@ -203,6 +203,16 @@
public bool ISupMES { get; set; } = false;
[Category("MES閰嶇疆")]
+ [Description("鏄惁寮哄埗MES涓婁紶鎴愬姛")]
+ [DisplayName("鏄惁寮哄埗MES涓婁紶鎴愬姛")]
+ public bool ISokMes { get; set; } = false;
+
+ [Category("MES閰嶇疆")]
+ [Description("鏄惁涓婁紶NG鏁版嵁")]
+ [DisplayName("鏄惁涓婁紶NG鏁版嵁")]
+ public bool ISupNG { get; set; } = true;
+
+ [Category("MES閰嶇疆")]
[Description("鎺ュ彛閫夋嫨,0绡叿鎺ュ彛,1鏁版嵁涓婁紶鎺ュ彛,-1鎵�鏈夋帴鍙�")]
[DisplayName("鎺ュ彛閫夋嫨")]
public int MESchannel { get; set; } = 0;
diff --git a/src/Bro.M141.Process/M141Process.cs b/src/Bro.M141.Process/M141Process.cs
index 7d7fa09..93b8fe0 100644
--- a/src/Bro.M141.Process/M141Process.cs
+++ b/src/Bro.M141.Process/M141Process.cs
@@ -1258,13 +1258,25 @@
M141Config.numpro = 0;
}
+ string Msgreceice = null;
+
if (pList[0].Result == "OK")
{
- M141Config.numpro++;
+ M141Config.numpro++;
+ Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
}
-
- //mqtt.demes(productList[0], M141Config.zwoid);
- string Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(),M141Config.numpro)).Result;
+ else
+ {
+ if (M141Config.ISupNG)
+ {
+ Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{pList[0].PID}鍚姩NG涓婁紶");
+ }
+ else
+ {
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{pList[0].PID}鍏抽棴NG涓婁紶");
+ }
+ }
M141Config.mesnum2++;
if (Msgreceice == null)
{
@@ -1322,10 +1334,17 @@
newp.Zword = plist[0].Zword;
newp.Result = "NG";
newp.SN = plist[0].SN;
- var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
- M141Config.mesnum2++;
- LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"鍓嶇珯NG鎺掓枡浜у搧{newp.PID}鏁版嵁涓婁紶,缁撴灉涓簕newp.Result}");
-
+ if (M141Config.ISupNG)
+ {
+ var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ M141Config.mesnum2++;
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍚姩NG涓婁紶");
+ }
+ else
+ {
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍏抽棴NG涓婁紶");
+ }
+
}
catch
{
@@ -1353,9 +1372,20 @@
newp.BasketCode = plist[0].BasketCode;
newp.Result = "NG";
newp.SN = plist[0].SN;
- var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
- M141Config.mesnum2++;
- LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"PlcNumForAll锛屽墠绔橬G鎺掓枡涓攑lc瑙﹀彂娓呴浂浜у搧{newp.PID}鏁版嵁涓婁紶,缁撴灉涓簕newp.Result}");
+ if (M141Config.ISupNG)
+ {
+ var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ M141Config.mesnum2++;
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍚姩NG涓婁紶");
+ }
+ else
+ {
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍏抽棴NG涓婁紶");
+ }
+ //var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ //M141Config.mesnum2++;
+ //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"PlcNumForAll锛屽墠绔橬G鎺掓枡涓攑lc瑙﹀彂娓呴浂浜у搧{newp.PID}鏁版嵁涓婁紶,缁撴灉涓簕newp.Result}");
+
}
catch
{
@@ -1374,19 +1404,26 @@
newp.Zword = plist[0].Zword;
newp.Result = "NG";
newp.SN = plist[0].SN;
- var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
- M141Config.mesnum2++;
- LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"numplca锛屽墠绔橬G鎺掓枡涓攑lc瑙﹀彂娓呴浂浜у搧{newp.PID}鏁版嵁涓婁紶,缁撴灉涓簕newp.Result}");
+ if (M141Config.ISupNG)
+ {
+ var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ M141Config.mesnum2++;
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍚姩NG涓婁紶");
+ }
+ else
+ {
+ LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"浜у搧{newp.PID}鍏抽棴NG涓婁紶");
+ }
+
+ //var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
+ //M141Config.mesnum2++;
+ //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"numplca锛屽墠绔橬G鎺掓枡涓攑lc瑙﹀彂娓呴浂浜у搧{newp.PID}鏁版嵁涓婁紶,缁撴灉涓簕newp.Result}");
}
catch
{
-
}
}
}
-
-
-
PlcNumForAll = numplca;
}
diff --git a/src/Bro.M141.Process/MyMQTT.cs b/src/Bro.M141.Process/MyMQTT.cs
index 209162d..7623fcb 100644
--- a/src/Bro.M141.Process/MyMQTT.cs
+++ b/src/Bro.M141.Process/MyMQTT.cs
@@ -134,7 +134,7 @@
}
}
- public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMs = 30000)
+ public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMes = 30000)
{
var guid = Guid.NewGuid().ToString();
var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -157,7 +157,7 @@
CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 绡叿 鍙戦��1锛歿message}");
_sendChannel.BasicPublish("", "auto_line_mac_queue", null, body);
- var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMs));
+ var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMes));
_pendingTask1.TryRemove(guid, out _);
if (completed == tcs.Task)
return await tcs.Task;
diff --git a/src/Bro.M141.Process/UI/UIPrinter.cs b/src/Bro.M141.Process/UI/UIPrinter.cs
index d668f90..08daaa9 100644
--- a/src/Bro.M141.Process/UI/UIPrinter.cs
+++ b/src/Bro.M141.Process/UI/UIPrinter.cs
@@ -669,7 +669,7 @@
int pronum = 0;
private void button6_Click(object sender, EventArgs e)//sn,result,zword,zno,entray
{
- string Msg = Task.Run(() => Process141.mqtt.MESForProduceAsync(new ProductModel() { SN = textBox3.Text, Result = textBox4.Text ,Zword= textBox5.Text,}, textBox8.Text, Convert.ToInt32(textBox6.Text), textBox7.Text)).Result;
+ string Msg = Task.Run(() => Process141.mqtt.MESForProduceAsync(new ProductModel() { SN = textBox3.Text, Result = textBox4.Text ,Zword= textBox5.Text}, textBox8.Text, Convert.ToInt32(textBox6.Text), textBox7.Text)).Result;
if (Msg == null)
{
CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 鐗╂枡 杩斿洖鏁版嵁涓� null");
diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs
index 5e34210..a6e11ba 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
{
@@ -364,7 +372,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++)
@@ -498,34 +507,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
{
@@ -549,35 +568,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
{
@@ -592,8 +620,6 @@
public ResponseMessage MESup3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
{
ResponseMessage msg = new ResponseMessage();
-
-
if (ConfigAOI1.ISupMES)
{
--
Gitblit v1.8.0