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