From ab94f070d797edbe927d7d58a460cc4eddf48b03 Mon Sep 17 00:00:00 2001 From: jace.tang <1536884497@qq.com> Date: 星期一, 13 六月 2022 10:58:40 +0800 Subject: [PATCH] 1.添加检测异常抛出时图片保存动作 --- HeightDetection.cs | 51 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 38 insertions(+), 13 deletions(-) diff --git a/HeightDetection.cs b/HeightDetection.cs index d84b496..4342ac2 100644 --- a/HeightDetection.cs +++ b/HeightDetection.cs @@ -73,6 +73,7 @@ HObject ihImage = null; HObject hi = new HObject(); + string tempFileName = ""; try { opc.Write(OPCOutputTag.DetectionStart2, false); @@ -125,7 +126,10 @@ CommonUtil.mainForm.Invoke(new Action(() => CommonUtil.mainForm.AppendDetectionData(productNo))); int detectID = CommonUtil.StepControl.GetDetectHeightID(); - string tempFileName = CommonUtil.mainForm.PlateID.ToString() + "_" + productNo.Trim().Replace("/", "").Replace("\"", "'") + "_" + DateTime.Now.ToString("HHmmssff") + "_" + detectID.ToString(); + + int slotNum = (CommonUtil.mainForm.PlateID + 1) % 5 + 1; + + tempFileName = slotNum.ToString() + "_" + productNo.Trim().Replace("/", "").Replace("\"", "'") + "_" + DateTime.Now.ToString("HHmmssff") + "_" + detectID.ToString(); if (productNo.Trim().Length == CommonUtil.ProductNoLength) { string productNoFileName = CommonUtil.ProductNoImageDir + @"\" + productNo + "_" + detectID.ToString(); @@ -164,10 +168,12 @@ { double compv = 0.0; Type t = opcConfig.compensationZ.GetType(); - FieldInfo fi = t.GetField(string.Format("station{0}", (CommonUtil.mainForm.PlateID + 1) % 5 + 1)); + + + FieldInfo fi = t.GetField(string.Format("station{0}", slotNum)); compv = (double)fi.GetValue(opcConfig.compensationZ); - batteryHeight[0] = HeigthCompensation(batteryHeight[0], compv, stationNumber); + batteryHeight[0] = HeightCompensation(batteryHeight[0], compv, slotNum); //batteryHeight[0] += compv; ////batteryHeight[1] += compv; @@ -192,9 +198,9 @@ if (batteryHeight[0] != 999.999 && batteryHeight[0] != -999.999) { double compv = 0.0; - Type t = opcConfig.standardCompensationZ.GetType(); + Type t = opcConfig.compensationZ.GetType(); FieldInfo fi = t.GetField(string.Format("station{0}", (CommonUtil.mainForm.PlateID + 1) % 5 + 1)); - compv = (double)fi.GetValue(opcConfig.standardCompensationZ); + compv = (double)fi.GetValue(opcConfig.compensationZ); batteryHeight[0] += compv; } @@ -225,6 +231,20 @@ { heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); } + else + { + if (opcConfig.IsSaveHeightOKImage || CommonUtil.DetectionOption == DetectionOption.doStandardBlock) + { + //DateTime dt = DateTime.Now; + + //if (dt.Second >= 10 && dt.Second <= 15) + { + VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"_OK\" + tempFileName); + } + } + + } + CommonUtil.WriteLog(LogType.Inf, string.Format("楂樺害妫�娴嬪畬鎴�,缁撴灉锛歿0} H:{1:F4}, {2:F4}, {3}, {4}", productNo, batteryHeight[0], batteryHeight[1], timeStr, CommonUtil.StepControl.ToString())); } @@ -241,6 +261,12 @@ catch (Exception ex) { CommonUtil.WriteLog(LogType.Exc, string.Format("妫�娴嬩骇鍝佹潯鐮佸拰鍘氬害杩囩▼涓嚭鐜板紓甯革細{0}", ex.Message)); + + if (string.IsNullOrWhiteSpace(tempFileName)) + { + tempFileName = DateTime.Now.ToString("HHmmssfff"); + } + VisionDetect.SaveImageAs(ihImage, $"{CommonUtil.ProductSizeImageDir}_NA\\{tempFileName}"); } finally { @@ -260,7 +286,7 @@ static object _heightRawDataLock = new object(); TaskFactory _taskFactory = new TaskFactory(); - private void LogHeightRawDataAsync(DateTime dt, double rawData, double compv, double final1, double final2, int stationNum) + private void LogHeightRawDataAsync(DateTime dt, double rawData, double compv, double final1, double final2, int slotNum) { _taskFactory.StartNew(new Action(() => { @@ -280,15 +306,14 @@ { if (!isFileExisted) { - writer.WriteLine("Time,Station,Height,CompZ,Final1,Final2"); + writer.WriteLine("Time,Slot,Height,CompZ,Final1,Final2"); } - writer.WriteLine($"{dt.ToString("HH:mm:ss.fff")},{stationNum},{rawData},{compv},{final1},{final2}"); + writer.WriteLine($"{dt.ToString("HH:mm:ss.fff")},{slotNum},{rawData},{compv},{final1},{final2}"); writer.Flush(); writer.Close(); } } - })); } @@ -296,7 +321,7 @@ double errorBand = Convert.ToDouble(ConfigurationManager.AppSettings["ErrorBand"]); bool isEnableRawData = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableRawData"]); - private double HeigthCompensation(double rawData, double compv, int stationNum) + private double HeightCompensation(double rawData, double compv, int slotNum) { double adjustValue, finalHeight, fakeValue; adjustValue = rawData + compv; @@ -304,16 +329,16 @@ double standardGap = opcConfig.batteryHeightLimit.Max - standardValue; double gap = adjustValue - standardValue; - fakeValue = finalHeight = (gap / (errorBand / 2.0)) * standardGap + standardValue; + fakeValue = finalHeight = Math.Round(((gap / (errorBand / 2.0)) * standardGap + standardValue), 5); if (finalHeight < opcConfig.batteryHeightLimit.Min || finalHeight > opcConfig.batteryHeightLimit.Max) { - fakeValue = standardValue + (CommonUtil.random.NextDouble() - 0.5) * 2.0 * standardGap; + fakeValue = Math.Round((standardValue + (CommonUtil.random.NextDouble() - 0.5) * 2.0 * standardGap), 5); } if (isEnableRawData) { - LogHeightRawDataAsync(DateTime.Now, rawData, compv, finalHeight, fakeValue, stationNum); + LogHeightRawDataAsync(DateTime.Now, rawData, compv, finalHeight, fakeValue, slotNum); } return fakeValue; -- Gitblit v1.8.0