From 2120c4a86e6b7bfe2b8e27f79c0ebe2efddbc0e0 Mon Sep 17 00:00:00 2001 From: kingno <30263@KINGNO> Date: 星期二, 01 四月 2025 17:25:38 +0800 Subject: [PATCH] 数据汇总调整 --- src/Bro.M141_AOI1.Process/AOI1Process.cs | 94 ++++++++++++++++++++++++++++++---------------- 1 files changed, 61 insertions(+), 33 deletions(-) diff --git a/src/Bro.M141_AOI1.Process/AOI1Process.cs b/src/Bro.M141_AOI1.Process/AOI1Process.cs index 139b24d..78b73b9 100644 --- a/src/Bro.M141_AOI1.Process/AOI1Process.cs +++ b/src/Bro.M141_AOI1.Process/AOI1Process.cs @@ -28,19 +28,18 @@ #endregion AOI1Config ConfigAOI1 => Config as AOI1Config; - TcpClientWrapBase BarcodeScanner = null; + public override void Open() { base.Open(); - BarcodeScanner = DeviceCollection.FirstOrDefault(u => u is TcpClientWrapBase) as TcpClientWrapBase; + } [ProcessMethod("", "PositionCheck_P1", "宸ヤ綅1妫�娴�", InvokeType.TestInvoke)] public ResponseMessage PositionCheck_P1(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) { - var positionSet = M141Config.WorkPositionCollection.Where(u => u.IsEnabled).FirstOrDefault(u => u.TriggerValue == "1#"); if (positionSet == null) { @@ -97,65 +96,94 @@ ResponseMessage msg = new ResponseMessage(); if (config is IImageCheckOperationConfig opConfig) { - var results = opConfig.Products.Select(u => + if (invokeDevice is TcpClientWrapBase BarcodeScanner) { - DetectResult result = new DetectResult(); - result.PID = u.PID; - result.Specs = GetSpecListFromConfigSelection(opConfig.SpecCollection); - return result; - }).ToList(); + var results = opConfig.Products.Select(u => + { + DetectResult result = new DetectResult(); + result.PID = u.PID; + result.Specs = GetSpecListFromConfigSelection(opConfig.SpecCollection); + return result; + }).ToList(); - msg.DataObj = results; + msg.DataObj = results; - string barcode = BarcodeScannerCommunicate(); + string barcode = BarcodeScannerCommunicate(BarcodeScanner); - List<double> ret = new List<double>(); - if ("NOREAD".Equals(barcode.ToUpper())) - { - ret.Add(999); + List<double> ret = new List<double>(); + if ("NOREAD".Equals(barcode.ToUpper())) + { + ret.Add(999); + } + else + { + ret.Add(1); + } + + 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); + + LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{opConfig.Products[0].PID}鏉$爜鑾峰彇涓簕barcode}"); } - else - { - ret.Add(1); - } - - 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); - - LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"浜у搧{opConfig.Products[0].PID}鏉$爜鑾峰彇涓簕barcode}"); - } return msg; } + [ProcessMethod("ImageCheck", "ReadBarcode2", "璇绘爮鍏风爜", InvokeType.TestInvoke)] + public ResponseMessage ReadBarcode2(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice) + { + ResponseMessage msg = new ResponseMessage(); - private string BarcodeScannerCommunicate() + if (invokeDevice is TcpClientWrapBase BarcodeScanner2) + { + string barcode = BarcodeScannerCommunicate(BarcodeScanner2); + if (string.IsNullOrEmpty(barcode) || "noread".Equals(barcode.ToLower())) + { + LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏍忓叿鐮佽幏鍙栧け璐�"); + Plc1.WriteSingleAddress(1524, 2, out _); + Plc1.WriteSingleAddress(1514, 1, out _); + } + else + { + Plc1.WriteSingleAddress(1524, 1, out _); + Plc1.WriteSingleAddress(1514, 1, out _); + ConfigAOI1.basketcode = barcode; + LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鑾峰彇鍒版爮鍏风爜涓簕barcode}"); + } + } + + return msg; + } + + + + private string BarcodeScannerCommunicate(TcpClientWrapBase client) { string barcode = ""; for (int i = 0; i < 3; i++) { - if (BarcodeScanner.WriteAndRead("start", out string error, out barcode, true)) + if (client.WriteAndRead("start", out string error, out barcode, true)) { barcode = barcode.Trim(' ', '\r', '\n'); if (CheckBarcodeValid(barcode)) { - LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{BarcodeScanner.Name}鎵爜瀹屾垚锛屽弽棣坽barcode}"); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{client.Name}鎵爜瀹屾垚锛屽弽棣坽barcode}"); return barcode; } else { - LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{BarcodeScanner.Name}绗瑊i + 1}鎵爜瀹屾垚锛屽弽棣坽barcode}锛屼笉鏄悎娉曟潯鐮�"); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"{client.Name}绗瑊i + 1}鎵爜瀹屾垚锛屽弽棣坽barcode}锛屼笉鏄悎娉曟潯鐮�"); Thread.Sleep(200); } } else { - LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{BarcodeScanner.Name}鎵爜澶辫触锛寋error}"); + LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"{client.Name}鎵爜澶辫触锛寋error}"); break; } } -- Gitblit v1.8.0