| | |
| | | |
| | | HObject ihImage = null; |
| | | HObject hi = new HObject(); |
| | | string tempFileName = ""; |
| | | try |
| | | { |
| | | opc.Write(OPCOutputTag.DetectionStart2, false); |
| | |
| | | |
| | | 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(); |
| | |
| | | double compv = 0.0; |
| | | Type t = opcConfig.compensationZ.GetType(); |
| | | |
| | | int slotNum = (CommonUtil.mainForm.PlateID + 1) % 5 + 1; |
| | | |
| | | FieldInfo fi = t.GetField(string.Format("station{0}", slotNum)); |
| | | compv = (double)fi.GetValue(opcConfig.compensationZ); |
| | | |
| | |
| | | cellHeightResult = MeasureState.NA; |
| | | } |
| | | #endregion |
| | | |
| | | //保存高度图片 |
| | | if (cellHeightResult == MeasureState.OK) |
| | | { |
| | | heightResult = MeasureState.OK; |
| | | DateTime dt = DateTime.Now; |
| | | if (dt.Second >= 10 && dt.Second <= 15) |
| | | { |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | } |
| | | |
| | | } |
| | | else if (cellHeightResult == MeasureState.NG) |
| | | { |
| | | heightResult = MeasureState.NG; |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | } |
| | | else |
| | | { |
| | | heightResult = MeasureState.NA; |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | 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; |
| | | |
| | | cellHeightResult = batteryHeight[0] >= opcConfig.standardHeightLimit.Min |
| | | && batteryHeight[0] <= opcConfig.standardHeightLimit.Max ? MeasureState.OK : MeasureState.NG; |
| | | } |
| | | |
| | | //batteryHeight[1] = 999.999; |
| | | else |
| | | { |
| | | cellHeightResult = MeasureState.NA; |
| | | } |
| | | |
| | | cellHeightResult = batteryHeight[0] >= opcConfig.standardHeightLimit.Min |
| | | && batteryHeight[0] <= opcConfig.standardHeightLimit.Max ? MeasureState.OK : MeasureState.NG; |
| | | //保存高度图片 |
| | | if (cellHeightResult == MeasureState.OK) |
| | | { |
| | | heightResult = MeasureState.OK; |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"\" + tempFileName); |
| | | } |
| | | else if (cellHeightResult == MeasureState.NG) |
| | | { |
| | | heightResult = MeasureState.NG; |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"\" + tempFileName); |
| | | } |
| | | else |
| | | { |
| | | heightResult = MeasureState.NA; |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | timeStr = DateTime.Now.ToString("hh:mm:ss fff"); |
| | | heightResult = cellHeightResult; |
| | | |
| | | //保存高度图片 |
| | | //if (cellHeightResult == MeasureState.OK) |
| | |
| | | // heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"_NG\" + tempFileName); |
| | | //} |
| | | |
| | | heightResult = cellHeightResult; |
| | | //保存产品及标准块高度图片 |
| | | //if (heightResult != MeasureState.OK) |
| | | //{ |
| | | |
| | | // if (CommonUtil.DetectionOption == DetectionOption.doStandardBlock) |
| | | // { |
| | | // heightFileName=VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"\" + tempFileName); |
| | | // } |
| | | // else |
| | | // { |
| | | // heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | // } |
| | | |
| | | //} |
| | | //else |
| | | //{ |
| | | // if (opcConfig.IsSaveHeightOKImage||CommonUtil.DetectionOption == DetectionOption.doStandardBlock) |
| | | // { |
| | | // if (CommonUtil.DetectionOption == DetectionOption.doStandardBlock) |
| | | // { |
| | | // heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"\" + tempFileName); |
| | | // } |
| | | // else |
| | | // { |
| | | // DateTime dt = DateTime.Now; |
| | | // if (dt.Second >= 10 && dt.Second <= 15) |
| | | // { |
| | | // heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + @"_OK\" + tempFileName); |
| | | // } |
| | | |
| | | // } |
| | | |
| | | // } |
| | | |
| | | if (heightResult != MeasureState.OK) |
| | | { |
| | | heightFileName = VisionDetect.SaveImageAs(hi, CommonUtil.ProductHeightImageDir + $"_{heightResult.ToString()}\\{ tempFileName}"); |
| | | } |
| | | //} |
| | | |
| | | CommonUtil.WriteLog(LogType.Inf, string.Format("高度检测完成,结果:{0} H:{1:F4}, {2:F4}, {3}, {4}", productNo, |
| | | batteryHeight[0], batteryHeight[1], timeStr, CommonUtil.StepControl.ToString())); |
| | | } |
| | |
| | | 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.ProductNoImageDir}_NA\\{tempFileName}"); |
| | | } |
| | | finally |
| | | { |
| | |
| | | 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) |