From e41fb4bea3afa879caaf6c9f316f01bacf262545 Mon Sep 17 00:00:00 2001 From: kingno <30263@KINGNO> Date: 星期一, 23 六月 2025 20:03:12 +0800 Subject: [PATCH] S2和S4结果联动.S2抛条码NG,其余NG到S4抛料 --- src/Bro.M141_AOI1.Process/AOI1Process.cs | 86 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs index 85fbd48..9b8a134 100644 --- a/src/Bro.M141_AOI1.Process/AOI1Process.cs +++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs @@ -40,13 +40,14 @@ //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)] public ResponseMessage PositionCheck_P1(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) @@ -65,6 +66,7 @@ return msg; } + [ProcessMethod("", "PositionCheck_P2", "宸ヤ綅2妫�娴�", InvokeType.TestInvoke)] public ResponseMessage PositionCheck_P2(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) { @@ -82,6 +84,7 @@ return msg; } + [ProcessMethod("", "PositionCheck_P3", "宸ヤ綅3妫�娴�", InvokeType.TestInvoke)] public ResponseMessage PositionCheck_P3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) { @@ -98,7 +101,6 @@ return msg; } - [ProcessMethod("ImageCheck", "ReadBarcode", "璇荤爜", InvokeType.TestInvoke)] @@ -128,14 +130,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 _);//缁檖lc鎶ヨ + } + } + 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}"); } @@ -164,12 +199,15 @@ Plc1.WriteSingleAddress(1514, 1, out _); ConfigAOI1.basketcode = barcode; LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鑾峰彇鍒版爮鍏风爜涓簕barcode}"); + + mysqlhelper.NewBasketcode(barcode); + RerefreshBasketcode(); + } } return msg; } - private string BarcodeScannerCommunicate(TcpClientWrapBase client) @@ -202,6 +240,7 @@ return "NOREAD"; } + private bool CheckBarcodeValid(string barcode) { bool isBarcodeValid = true; @@ -211,10 +250,6 @@ } return isBarcodeValid; } - - - - [ProcessMethod("ImageCheck", "CheckLineProfile", "妫�娴嬩骇鍝佺嚎杞粨搴�", InvokeType.TestInvoke)] @@ -360,16 +395,33 @@ } + [ProcessMethod("ImageCheck", "GetMatrix", "鑾峰彇鐭╅樀", InvokeType.TestInvoke)] + public ResponseMessage GetMatrix(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) + { + ResponseMessage msg = new ResponseMessage(); + if (config is IImageCheckOperationConfig opConfig) + { + var tool = GetHalconTool(null, "", opConfig.AlgorithemPath); + var ret = tool.RunProcedure(null, new Dictionary<string, HalconDotNet.HObject>() { { "INPUT_Image", opConfig.ImageSet.HImage } }, new List<string>() { "OUTPUT_Results" }, null); - - - - - - - - + if (ret == null) + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鑴氭湰{opConfig.AlgorithemPath}杩愯寮傚父锛岃繑鍥炲�间负null"); + } + else if (!ret.Item1) + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鑴氭湰{opConfig.AlgorithemPath}杩愯寮傚父锛寋ret.Item4}"); + } + else + { + List<double> datas = ret.Item2["OUTPUT_Results"].HTupleToDouble(); + opConfig.Products[0].Centermatrix = datas; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{opConfig.Products[0].PID}鐭╅樀鑾峰彇涓� {string.Join(',', datas)}"); + } + } + return msg; + } } -- Gitblit v1.8.0