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.Process/M141Process_ImageCheck.cs | 92 +++++++++++++++------------------------------- 1 files changed, 30 insertions(+), 62 deletions(-) diff --git a/src/Bro.M141.Process/M141Process_ImageCheck.cs b/src/Bro.M141.Process/M141Process_ImageCheck.cs index fc4dc13..f8d90da 100644 --- a/src/Bro.M141.Process/M141Process_ImageCheck.cs +++ b/src/Bro.M141.Process/M141Process_ImageCheck.cs @@ -2,6 +2,7 @@ using Bro.Common.Helper; using Bro.Common.Interface; using Bro.Common.Model; +using Bro.DataBase.Model; using Bro.M135.Common; using Bro.M135.DBManager; using HalconDotNet; @@ -441,7 +442,7 @@ return msg; } - + @@ -481,26 +482,18 @@ } while (true); - var Defaultclass = M141Config.DefectClassCollection.FirstOrDefault(u => u.IsDefault); - productList.ForEach(p => - { - if (Defaultclass == null) - { - if (string.IsNullOrEmpty(p.Result)) - { - p.Result = "NG"; - } - } - else - { - if (string.IsNullOrEmpty(p.Result)) - { - p.Result = Defaultclass.ClassName; - } - } + var Defaultclass = M141Config.DefectClassCollection.FirstOrDefault(u => u.ClassName == productList[0].Result); - Plc1.WriteSingleAddress(1526, p.Result.ToUpper().Contains("NG") ? 2 : 1, out _); - }); + if (M141Config.StationCode == "S4" && productList[0].Result == "OK") + { + ////mysqlhelper.GetS2Result(productList[0].SEQUENCE); + Plc1.WriteSingleAddress(1526, mysqlhelper.GetS2Result(productList[0].SEQUENCE) ? 1 : 2, out _); + } + else + { + Plc1.WriteSingleAddress(1526, Defaultclass?.ClassValue ?? 2, out _); + } + Plc1.WriteSingleAddress(1516, 1, out _); return msg; @@ -520,14 +513,14 @@ else { _isDemoStarted = true; - OfflineDemoAsync(opConfig.ImageFolder); + OfflineDemoAsync(opConfig.ImageFolder, opConfig.IsOK, opConfig.SaveImageTime); } } return new ResponseMessage(); } - private async void OfflineDemoAsync(string imageFolder) + private async void OfflineDemoAsync(string imageFolder, bool isok, int saveimagetime) { await Task.Run(() => { @@ -539,14 +532,20 @@ { return; } - var imageFile = Path.GetFileNameWithoutExtension(imageFileNames[i]); if (imageFile.EndsWith("Fit")) { continue; } - - var nameDatas = imageFile.Split(new char[] { '_'}, StringSplitOptions.RemoveEmptyEntries).ToList(); + if (imageFile.EndsWith("OK") & isok == false) + { + continue; + } + if (imageFile.EndsWith("NG") & isok == true) + { + continue; + } + var nameDatas = imageFile.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (nameDatas.Count != 5) { LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"鏂囦欢{imageFile}鍛藉悕涓嶇鍚堣鑼冿紝涓嶆墽琛岀绾挎祴璇�"); @@ -554,9 +553,9 @@ } var sn = nameDatas[0]; - var imageSeq = nameDatas[1]; - + var imageSeq = nameDatas[2][^1].ToString(); var measureBind = M141Config.MeasureBindCollection.FirstOrDefault(u => u.ImageSaveSeq == imageSeq); + if (measureBind == null || !measureBind.IsFixed) { LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"绂荤嚎娴嬭瘯锛屽伐浣峽(measureBind == null ? "鏈尮閰�" : $"{measureBind.WorkPosition}鏈紑鍚�")}"); @@ -565,50 +564,19 @@ LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"绂荤嚎娴嬭瘯锛屼骇鍝亄sn}寮�濮嬪伐浣峽measureBind.WorkPosition}绂荤嚎妫�娴�"); MLImageSet imgSet = new MLImageSet(); + imgSet.HImage = new HalconDotNet.HImage(imageFileNames[i]); imgSet.PID = sn; var detectResults = ML.RunMLDetectionSync(imgSet, null, measureBind.DetectionId); - + Thread.Sleep(saveimagetime); imgSet.HImage?.Dispose(); imgSet.HImage = null; - - - //var defectFields = M141Config.DefectLocationSettings.FirstOrDefault(u => u.PositionCode == measureBind.WorkPosition); - - - //var list = detectResults.SelectMany(u => u.NetResults.SelectMany(m => m.DetectDetails)).ToList(); - ////if (list.Count > 0) - ////{ - //// //list.ForEach(d => - //// //{ - //// // //if (defectFields == null) - //// // //{ - //// // // d.Tag = ""; - //// // //} - //// // //else - //// // //{ - //// // // RectangleF rect = new RectangleF(d.Rect.Point_LU.X, d.Rect.Point_LU.Y, d.Rect.Width, d.Rect.Height); - //// // // //var rectList = defectFields.Display.RectDict.Where(u => rect.IntersectsWith(u.Value)).ToList(); - //// // // //if (rectList.Count > 0) - //// // // //{ - //// // // // d.Tag = string.Join(" ", rectList.Select(u => u.Key).OrderBy(u => u)); - //// // // //} - //// // // //else - //// // // //{ - //// // // // d.Tag = ""; - //// // // //} - //// // //} - //// //}); - ////} - - //Bitmap originImage = new Bitmap(imageFileNames[i]); - //DetectResultSaveExcelAsync(detectResults, sn, originImage, DateTime.Now); } }); } - + [ProcessMethod("printer", "printer", "鎵撳嵃鏈烘墦鍗�", InvokeType.TestInvoke)] @@ -747,7 +715,7 @@ UpdateDefectAsync(defects); var defectClass = GetDefectClassFromDefectList(defects); - UpdateResult(DateTime.Now, p.SN, defectClass.ClassName, "",p.ImagePaths); + UpdateResult(DateTime.Now, p.SN, defectClass.ClassName, "", p.ImagePaths); //浜у搧搴忓彿+1 //Interlocked.Increment(ref _productIndex); -- Gitblit v1.8.0