Gokiburi
2025-06-17 2ad4cf6d588bd9bc446e8bde2a916c17aec3dad6
src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -6,12 +6,14 @@
using Bro.M141.Process;
using Bro.UI.Model.Winform;
using HalconDotNet;
using Newtonsoft.Json;
using NPOI.POIFS.Crypt.Dsig;
using NPOI.SS.Formula.Functions;
using NPOI.XSSF.Streaming.Values;
using System.Collections.Concurrent;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using static Bro.Common.Helper.EnumHelper;
using static NPOI.HSSF.Util.HSSFColor;
using static Org.BouncyCastle.Crypto.Engines.SM2Engine;
using static Org.BouncyCastle.Math.EC.ECCurve;
@@ -29,12 +31,21 @@
        AOI1Config ConfigAOI1 => Config as AOI1Config;
        public override void Open()
        {
            base.Open();
            //string configPath = @"C:\Users\30263\Desktop\666.txt";
            //string _configBackupStr = "";
            //using (StreamReader reader = new StreamReader(configPath, System.Text.Encoding.UTF8))
            //{
            //    _configBackupStr = reader.ReadToEnd();
            //}
            //ProductModel p = JsonConvert.DeserializeObject<ProductModel>(_configBackupStr, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
            base.Open();
        }
        [ProcessMethod("", "PositionCheck_P1", "工位1检测", InvokeType.TestInvoke)]
@@ -117,14 +128,47 @@
                    }
                    else
                    {
                        ret.Add(1);
                        if (barcode.Split('-').Length > 5)
                        {
                            int mh = Plc1.Read(4000, 1, out _)[0];
                            string codestr = barcode.Split('-')[4];
                            if (codestr == "L")
                            {
                                codestr = "10";
                            }
                            if (codestr.Equals(mh.ToString()))
                            {
                                ret.Add(1);
                            }
                            else
                            {
                                ret.Add(2);
                                Plc1.WriteSingleAddress(4010, 1, out _);//给plc报警
                            }
                        }
                        else
                        {
                            ret.Add(999);
                        }
                    }
                    FillSpecResults(results[0].PID, results[0].Specs, ret, opConfig.Products[0].SEQUENCE);
                    opConfig.Products[0].SN = barcode;
                    opConfig.Products[0].Details.ForEach(u => u.SN = barcode);
                    opConfig.Products[0].PID = barcode + "_1";
                    opConfig.Products[0].Details.ForEach(u =>
                    {
                        u.SN = barcode;
                        u.PID = barcode + "_1";
                        u.ResultList.ForEach(x =>
                    {
                        x.PID = barcode + "_1";
                    });
                    });
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"产品{opConfig.Products[0].PID}条码获取为{barcode}");
                }
@@ -158,7 +202,6 @@
            return msg;
        }
        private string BarcodeScannerCommunicate(TcpClientWrapBase client)
@@ -200,10 +243,6 @@
            }
            return isBarcodeValid;
        }
        [ProcessMethod("ImageCheck", "CheckLineProfile", "检测产品线轮廓度", InvokeType.TestInvoke)]
@@ -347,15 +386,6 @@
            return msg;
        }