From 3ac7c47ae6fae77c60bc4b9f4dcbf438d3084cd9 Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期三, 27 八月 2025 12:02:13 +0800
Subject: [PATCH] 打印二维码

---
 src/Bro.M141_AOI1.Process/AOI1Process.cs |  320 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 239 insertions(+), 81 deletions(-)

diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs
index 5769978..e2a093d 100644
--- a/src/Bro.M141_AOI1.Process/AOI1Process.cs
+++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -229,30 +229,57 @@
                         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
                     {
@@ -340,8 +367,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 +390,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 +454,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 +531,9 @@
 
 
 
+
+
+
         [ProcessMethod("", "MESup1", "MES涓婁紶杩涙枡鍙g┖绡�", InvokeType.TestInvoke)]
         public ResponseMessage MESup1(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
         {
@@ -495,34 +545,64 @@
             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
             {
@@ -532,7 +612,6 @@
 
             return msg;
         }
-
 
 
         [ProcessMethod("", "MESup2", "MES涓婁紶杩涙枡鍙f弧杞�", InvokeType.TestInvoke)]
@@ -547,35 +626,63 @@
             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
             {
@@ -590,8 +697,6 @@
         public ResponseMessage MESup3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
         {
             ResponseMessage msg = new ResponseMessage();
-
-
 
             if (ConfigAOI1.ISupMES)
             {
@@ -611,6 +716,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}");
@@ -656,7 +780,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
                     {
@@ -667,8 +813,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;
@@ -684,6 +828,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}");
@@ -706,10 +869,5 @@
             }
             return msg;
         }
-
-
-
-
-
     }
 }

--
Gitblit v1.8.0