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