diff --git a/halftoneproject-master/BanBoShi/Properties/AssemblyInfo.cs b/halftoneproject-master/BanBoShi/Properties/AssemblyInfo.cs index 5312d870..1b21aaea 100644 --- a/halftoneproject-master/BanBoShi/Properties/AssemblyInfo.cs +++ b/halftoneproject-master/BanBoShi/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.4.0")] -[assembly: AssemblyFileVersion("2.0.4.0")] +[assembly: AssemblyVersion("2.0.5.0")] +[assembly: AssemblyFileVersion("2.0.5.0")] diff --git a/halftoneproject-master/BanBoShi/SysCtrl/SysEnum.cs b/halftoneproject-master/BanBoShi/SysCtrl/SysEnum.cs index f4820c44..f25f08e0 100644 --- a/halftoneproject-master/BanBoShi/SysCtrl/SysEnum.cs +++ b/halftoneproject-master/BanBoShi/SysCtrl/SysEnum.cs @@ -270,7 +270,8 @@ namespace MaiMuAOI.SysCtrl 分片间隔, 焊点长, 焊点宽, - 焊点间隔 + 焊点间隔, + SP2主栅宽度 } #region 打印数据类型 diff --git a/halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs b/halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs index 49e518fb..b9f81aed 100644 --- a/halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs +++ b/halftoneproject-master/BanBoShi/SysCtrl/SysMgr.cs @@ -2029,19 +2029,36 @@ namespace MaiMuAOI.SysCtrl public double TensionGetValueNewStep() { double tensionValue = 0; - for (int i = 0; i < 10; i++) + for (int cnt = 0; cnt < 2; cnt++) { - tensionValue = tensionDev.GetValue() + confMgr.SysConfigParams.Tension_Offset;//加入张力偏差 - tensionValue = Math.Round(tensionValue, 2);//保留2位小数 + for (int i = 0; i < 10; i++) + { + tensionValue = tensionDev.GetValue() + confMgr.SysConfigParams.Tension_Offset;//加入张力偏差 + tensionValue = Math.Round(tensionValue, 2);//保留2位小数 + if (tensionValue >= 0) + break; + Thread.Sleep(50); + } + //成功读取跳出循环 if (tensionValue >= 0) break; + else + { + //重连 + tensionDev.CloseDev(); + Thread.Sleep(100); + if (tensionDev.OpenDevByCom(confMgr.SysConfigParams.TensionCom, confMgr.SysConfigParams.TensionComBaud) < 0) + { + Log("张力传感器重连失败!", "重连", WarningEnum.High); + return -10; + } + } } if (tensionValue < 0) - { + { return -1; } - - + return tensionValue; } public class TensionResult @@ -2631,7 +2648,7 @@ namespace MaiMuAOI.SysCtrl Log("张力传感器初始化失败!", "初始化", WarningEnum.High); return; } - InitLog("初始化张力传感器成功!"); + //InitLog("初始化张力传感器成功!"); //镜头电机初始化 Log("复位", "镜头电机初始化"); @@ -4276,7 +4293,10 @@ namespace MaiMuAOI.SysCtrl tensionValue = TensionGetValueNewStep(); if (tensionValue < 0) { - Log("张力读取", "张力读取失败,忽略此次测试!"); + if(tensionValue == -1) + Log("张力读取", "张力读取失败,忽略此次测试!"); + else + Log("张力读取", "张力读取失败且处理失败,忽略此次测试!"); ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.触发张力按钮灯), GetIOBitIndex((int)DOName.触发张力按钮灯), false); return stepIndex; } @@ -5083,75 +5103,24 @@ namespace MaiMuAOI.SysCtrl attachmentFile = model.AttachmentList.FirstOrDefault(x => x.Type == 0); Log($"{stepIndex + 1}-{processName}", $"比对图像,{model.AttachmentList.Count}|{(attachmentFile == null ? "null" : attachmentFile.NameTimestamp + attachmentFile.ExtendName)}"); - if (testParam.AutoMark) + //自动点位数计算 + if (attachmentFile != null) { - //自动点位数计算 - if (attachmentFile != null) - { - gbxBmpPath = confMgr.ProjectDir + $"\\{attachmentFile.NameTimestamp}"; - if (!File.Exists(gbxBmpPath + attachmentFile.ExtendName)) - gbxBmpPath = ""; - } - if (gbxBmpPath == "") - { - Log($"{stepIndex + 1}-{processName}", $"比对图像,图纸不存在!", WarningEnum.High); - return stepIndex; - } + gbxBmpPath = confMgr.ProjectDir + $"\\{attachmentFile.NameTimestamp}"; + if (!File.Exists(gbxBmpPath + attachmentFile.ExtendName)) + gbxBmpPath = ""; } - else + if (gbxBmpPath == "") + { + Log($"{stepIndex + 1}-{processName}", $"比对图像,图纸不存在!", WarningEnum.High); + return stepIndex; + } + + if (!testParam.AutoMark) { - //自动点位数计算 - if (attachmentFile != null) - { - gbxBmpPath = confMgr.ProjectDir + $"\\{attachmentFile.NameTimestamp}"; - if (!File.Exists(gbxBmpPath + attachmentFile.ExtendName)) - gbxBmpPath = ""; - } - if (gbxBmpPath == "") - { - Log($"{stepIndex + 1}-{processName}", $"比对图像,图纸不存在!", WarningEnum.High); - return stepIndex; - } //手动点位数计算 CurrAdaqter = new int[testLabels.Count]; CurrAdaqter[(int)testParam.TestType] = testParam.PointCnt; -#if OLD_Invalid - switch (testParam.TestType) - { - case PointTestType.Y轴方向PT值检测: - CurrAdaqter[0] = testParam.PointCnt; - break; - case PointTestType.线宽正面: - CurrAdaqter[1] = testParam.PointCnt; - break; - case PointTestType.反面检测: - CurrAdaqter[2] = testParam.PointCnt; - break; - case PointTestType.X轴方向PT值检测: - CurrAdaqter[3] = testParam.PointCnt; - break; - case PointTestType.主栅连接线检测: - CurrAdaqter[4] = testParam.PointCnt; - break; - case PointTestType.主栅宽度检测: - CurrAdaqter[5] = testParam.PointCnt; - break; - case PointTestType.主栅间距: - CurrAdaqter[6] = testParam.PointCnt; - break; - case PointTestType.细栅间距检测: - CurrAdaqter[7] = testParam.PointCnt; - break; - case PointTestType.背极宽度: - CurrAdaqter[8] = testParam.PointCnt; - break; - default: - Log($"{stepIndex + 1}-{processName}", $"参数不支持!", WarningEnum.High); - OnAutoRuning(new RunEventArgs(liStatocStepIndex, $"参数不支持!", 4, false)); - return stepIndex; - - } -#endif } //自动寻点 if ((testParam.AutoMark)|| (testParam.DefPos)) @@ -5197,10 +5166,17 @@ namespace MaiMuAOI.SysCtrl } int posIndex = this.CurrPoinntCount; //手动顺寻 - if (!testParam.SelectPoint) + if( (!testParam.SelectPoint)&&(testParam.Indexs.Count >= testParam.PointCnt)) { posIndex = testParam.Indexs[this.CurrPoinntCount]; } + else if (!testParam.SelectPoint) + { + Log($"{stepIndex + 1}-{processName}", + $"手动测试点位顺序范围错误:{testParam.Indexs.Count}!", WarningEnum.High); + return stepIndex; + } + //判断是否一点完成 bool IsOverDef = true; @@ -5817,7 +5793,42 @@ namespace MaiMuAOI.SysCtrl + this.CurrAdaqter[14] + this.CurrAdaqter[15] + this.CurrAdaqter[16] + this.CurrAdaqter[17] + this.CurrAdaqter[18] + this.CurrAdaqter[19] + 4 * posIndex + 3]); break; - + case PointTestType.SP2主栅宽度: + IsOverDef = false; + TestCnt = testParam.PointCnt; + t = model.TestDefectPointsList.Where(q => q.PointCode == "SP2主栅宽度").ToList(); + if (testParam.AutoMark) + if (testParam.PointCnt > t.Count) + { + Log($"{stepIndex + 1}-{processName}", $"SP2主栅宽度参数,点数大于产品配置点数!", WarningEnum.High); + return stepIndex; + } + //走位计算 + TestPosTagPPUValue[0] = double.Parse(TestPos[this.CurrAdaqter[0] * 4 + this.CurrAdaqter[1] + + this.CurrAdaqter[2] + this.CurrAdaqter[3] * 4 + this.CurrAdaqter[4] + this.CurrAdaqter[5] + + this.CurrAdaqter[6] + this.CurrAdaqter[7] + this.CurrAdaqter[8] + this.CurrAdaqter[9] + + this.CurrAdaqter[10] + this.CurrAdaqter[11] + this.CurrAdaqter[12] + this.CurrAdaqter[13] + + this.CurrAdaqter[14] + this.CurrAdaqter[15] + this.CurrAdaqter[16] + this.CurrAdaqter[17] + + this.CurrAdaqter[18] + this.CurrAdaqter[19] + this.CurrAdaqter[20] + 4 * posIndex]); + TestPosTagPPUValue[1] = double.Parse(TestPos[this.CurrAdaqter[0] * 4 + this.CurrAdaqter[1] + + this.CurrAdaqter[2] + this.CurrAdaqter[3] * 4 + this.CurrAdaqter[4] + this.CurrAdaqter[5] + + this.CurrAdaqter[6] + this.CurrAdaqter[7] + this.CurrAdaqter[8] + this.CurrAdaqter[9] + + this.CurrAdaqter[10] + this.CurrAdaqter[11] + this.CurrAdaqter[12] + this.CurrAdaqter[13] + + this.CurrAdaqter[14] + this.CurrAdaqter[15] + this.CurrAdaqter[16] + this.CurrAdaqter[17] + + this.CurrAdaqter[18] + this.CurrAdaqter[19] + this.CurrAdaqter[20] + 4 * posIndex + 1]); + TestPosTagPPUValue[2] = double.Parse(TestPos[this.CurrAdaqter[0] * 4 + this.CurrAdaqter[1] + + this.CurrAdaqter[2] + this.CurrAdaqter[3] * 4 + this.CurrAdaqter[4] + this.CurrAdaqter[5] + + this.CurrAdaqter[6] + this.CurrAdaqter[7] + this.CurrAdaqter[8] + this.CurrAdaqter[9] + + this.CurrAdaqter[10] + this.CurrAdaqter[11] + this.CurrAdaqter[12] + this.CurrAdaqter[13] + + this.CurrAdaqter[14] + this.CurrAdaqter[15] + this.CurrAdaqter[16] + this.CurrAdaqter[17] + + this.CurrAdaqter[18] + this.CurrAdaqter[19] + this.CurrAdaqter[20] + 4 * posIndex + 2]); + TestPosTagPPUValue[3] = double.Parse(TestPos[this.CurrAdaqter[0] * 4 + this.CurrAdaqter[1] + + this.CurrAdaqter[2] + this.CurrAdaqter[3] * 4 + this.CurrAdaqter[4] + this.CurrAdaqter[5] + + this.CurrAdaqter[6] + this.CurrAdaqter[7] + this.CurrAdaqter[8] + this.CurrAdaqter[9] + + this.CurrAdaqter[10] + this.CurrAdaqter[11] + this.CurrAdaqter[12] + this.CurrAdaqter[13] + + this.CurrAdaqter[14] + this.CurrAdaqter[15] + this.CurrAdaqter[16] + this.CurrAdaqter[17] + + this.CurrAdaqter[18] + this.CurrAdaqter[19] + this.CurrAdaqter[20] + 4 * posIndex + 3]); + break; default: Log($"{stepIndex + 1}-{processName}", $"参数不支持!", WarningEnum.High); OnAutoRuning(new RunEventArgs(liStatocStepIndex, $"参数不支持!", 4, false)); @@ -7478,6 +7489,22 @@ namespace MaiMuAOI.SysCtrl } testName = "焊点间隔检测"; break; + case 9902: + Log($"SP2主栅宽度值", $"SP2主栅宽度{lstTestData.Count}:{Math.Round(data + testParam.OffsetValue, 4)}"); + //if (order != null) + // order.WeldingSpotDisValue = aveData; + if (testParam.OpenUseLimit) + { + PtUpper = testParam.StandardValues + testParam.MaxLimit; + PtLower = testParam.StandardValues - testParam.MinLimit; + } + else + { + PtUpper = 0; + PtLower = 0; + } + testName = "SP2主栅宽度检测"; + break; #endregion } @@ -7647,6 +7674,12 @@ namespace MaiMuAOI.SysCtrl else testindex = 9802; break; + case PointTestType.SP2主栅宽度: + if (!isPtLastPoint) + testindex = 9901; + else + testindex = 9902; + break; default: Log($"{stepIndex + 1}-{processName}", $"参数不支持!", WarningEnum.High); return false; @@ -7688,7 +7721,7 @@ namespace MaiMuAOI.SysCtrl || (res.index == 8502) || (res.index == 8602) || (res.index == 8702) || (res.index == 8802) || (res.index == 8902) || (res.index == 9102) || (res.index == 9202) || (res.index == 9302) || (res.index == 9402) || (res.index == 9502) || (res.index == 9602) || (res.index == 9702) - || (res.index == 9802)) + || (res.index == 9802) || (res.index == 9902)) { //PT测量 等两点测量 lock (lstTestData) @@ -7905,7 +7938,7 @@ namespace MaiMuAOI.SysCtrl || (res.index == 8502) || (res.index == 8602) || (res.index == 8702) || (res.index == 8802) || (res.index == 8902) || (res.index == 9102) || (res.index == 9202) || (res.index == 9302) || (res.index == 9402) || (res.index == 9502) || (res.index == 9602) || (res.index == 9702) - || (res.index == 9802)) + || (res.index == 9802) || (res.index == 9902)) { //PT测量 lock (lstTestData) @@ -8935,7 +8968,7 @@ namespace MaiMuAOI.SysCtrl { double pos = GetAxisPosValueMM(axisno); camDevFront.ClearImageQueue(); - Acquisition acq = camDevFront.Snap(1, 1000); + Acquisition acq = camDevFront.Snap(1, 5000); if (acq.GrabStatus == "GrabPass") { //显示 @@ -8967,6 +9000,11 @@ namespace MaiMuAOI.SysCtrl } //Log("自动找方向", $"步进次数:{cnt},位置:{z_hpos - cnt * dir_step}, 反馈:{dir}"); } + else + { + Log("自动找方向", $"拍照失败!"); + return false; + } if((DateTime.Now - dt).TotalMilliseconds > Timeout) { return false; @@ -9005,6 +9043,15 @@ namespace MaiMuAOI.SysCtrl } } + else + { + Log("自动找方向", $"拍照失败!"); + return false; + } + if ((DateTime.Now - alldt).TotalMilliseconds > Timeout) + { + return false; + } } return true; } diff --git a/halftoneproject-master/BanBoShi/SysCtrl/SysUpdata.cs b/halftoneproject-master/BanBoShi/SysCtrl/SysUpdata.cs index 2c4ecf4a..abbcd268 100644 --- a/halftoneproject-master/BanBoShi/SysCtrl/SysUpdata.cs +++ b/halftoneproject-master/BanBoShi/SysCtrl/SysUpdata.cs @@ -9,7 +9,7 @@ namespace MaiMuAOI.SysCtrl public class SysUpdata { //系统信息 - public static string Info = "软件名称:版博士\r\n软件版本:V2.0.4\r\n公司:迈沐智能科技有限公司\r\n"; + public static string Info = "软件名称:版博士\r\n软件版本:V2.0.5\r\n公司:迈沐智能科技有限公司\r\n"; public static string Updata = "V2.0:\r\n" + "\t新版本,新流程,兼容老流程\r\n" + @@ -51,6 +51,8 @@ namespace MaiMuAOI.SysCtrl "\t3.支持同一测试项不同流程数据储存\r\n" + "\t4.打印配置移动到产品和流程中\r\n" + "\t5.开启前部相机查看小图功能\r\n" + - "\t6.加入可开启单边计算目数功能\r\n"; + "\t6.加入可开启单边计算目数功能\r\n" + + "V2.0.5:\r\n" + + "\t1.测试项加入SP2—主栅宽度\r\n"; } } diff --git a/halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs b/halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs index 52cff263..86674e00 100644 --- a/halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs +++ b/halftoneproject-master/BanBoShi/SysUI/DefectPicShow/DataQueryFrm.cs @@ -1281,7 +1281,7 @@ namespace MaiMuAOI.SysUI.DefectPicShow dr["料号"] = item.ProductInfo.Code; dr["网版编码"] = item.SN; dr["批次"] = item.BatchId; - dr["合格"] = item.Qualified ? "不合格" : "合格"; + dr["合格"] = item.Qualified ? "合格" : "不合格"; dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复"; dr["异常情况"] = item.Abnormalities; dr["修复人员"] = item.RepairCode; diff --git a/halftoneproject-master/BanBoShi/SysUI/SysSet/SysLogFrm.cs b/halftoneproject-master/BanBoShi/SysUI/SysSet/SysLogFrm.cs index 6d3fcc84..c8009134 100644 --- a/halftoneproject-master/BanBoShi/SysUI/SysSet/SysLogFrm.cs +++ b/halftoneproject-master/BanBoShi/SysUI/SysSet/SysLogFrm.cs @@ -47,7 +47,7 @@ namespace MaiMuAOI.SysUI.SysSet List list = new List(); for (int i = 0; i < Dirs.Length; i++) { - string[] files = Directory.GetFiles(Dirs[i]); + string[] files = Directory.GetFiles(Dirs[i], "*.log"); list.AddRange(files); }