diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/0bc6b9c9-7e84-461a-aa87-c246aabe787d.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/41fb4c62-3b42-4d94-937e-bb187321210b.vsidx similarity index 72% rename from LeatherProject/.vs/LeatherApp/FileContentIndex/0bc6b9c9-7e84-461a-aa87-c246aabe787d.vsidx rename to LeatherProject/.vs/LeatherApp/FileContentIndex/41fb4c62-3b42-4d94-937e-bb187321210b.vsidx index fd2b594..962b797 100644 Binary files a/LeatherProject/.vs/LeatherApp/FileContentIndex/0bc6b9c9-7e84-461a-aa87-c246aabe787d.vsidx and b/LeatherProject/.vs/LeatherApp/FileContentIndex/41fb4c62-3b42-4d94-937e-bb187321210b.vsidx differ diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/942c9b07-b4df-4ac4-b8a5-18a9e6490559.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/942c9b07-b4df-4ac4-b8a5-18a9e6490559.vsidx new file mode 100644 index 0000000..cabf58c Binary files /dev/null and b/LeatherProject/.vs/LeatherApp/FileContentIndex/942c9b07-b4df-4ac4-b8a5-18a9e6490559.vsidx differ diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/f4516017-31cd-4980-8066-afb28d76cacc.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/c05692fe-d6cc-40e4-9fd0-dc03220e7263.vsidx similarity index 65% rename from LeatherProject/.vs/LeatherApp/FileContentIndex/f4516017-31cd-4980-8066-afb28d76cacc.vsidx rename to LeatherProject/.vs/LeatherApp/FileContentIndex/c05692fe-d6cc-40e4-9fd0-dc03220e7263.vsidx index cb7650f..9b3055d 100644 Binary files a/LeatherProject/.vs/LeatherApp/FileContentIndex/f4516017-31cd-4980-8066-afb28d76cacc.vsidx and b/LeatherProject/.vs/LeatherApp/FileContentIndex/c05692fe-d6cc-40e4-9fd0-dc03220e7263.vsidx differ diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/4de2110c-608b-4e36-af1e-38baff08625f.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/cecbc0a1-403e-46d8-848e-587f5c2a274e.vsidx similarity index 86% rename from LeatherProject/.vs/LeatherApp/FileContentIndex/4de2110c-608b-4e36-af1e-38baff08625f.vsidx rename to LeatherProject/.vs/LeatherApp/FileContentIndex/cecbc0a1-403e-46d8-848e-587f5c2a274e.vsidx index b2fe9b9..6f352f8 100644 Binary files a/LeatherProject/.vs/LeatherApp/FileContentIndex/4de2110c-608b-4e36-af1e-38baff08625f.vsidx and b/LeatherProject/.vs/LeatherApp/FileContentIndex/cecbc0a1-403e-46d8-848e-587f5c2a274e.vsidx differ diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/6c4cf150-c40f-4d12-8a84-23afd8725a13.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/d20df390-676d-4e82-b854-ce3c9d97907a.vsidx similarity index 54% rename from LeatherProject/.vs/LeatherApp/FileContentIndex/6c4cf150-c40f-4d12-8a84-23afd8725a13.vsidx rename to LeatherProject/.vs/LeatherApp/FileContentIndex/d20df390-676d-4e82-b854-ce3c9d97907a.vsidx index 300b57f..307deff 100644 Binary files a/LeatherProject/.vs/LeatherApp/FileContentIndex/6c4cf150-c40f-4d12-8a84-23afd8725a13.vsidx and b/LeatherProject/.vs/LeatherApp/FileContentIndex/d20df390-676d-4e82-b854-ce3c9d97907a.vsidx differ diff --git a/LeatherProject/.vs/LeatherApp/FileContentIndex/eb162534-f0fc-47b0-8b70-3510dde5b8cd.vsidx b/LeatherProject/.vs/LeatherApp/FileContentIndex/eb162534-f0fc-47b0-8b70-3510dde5b8cd.vsidx deleted file mode 100644 index 96b8d95..0000000 Binary files a/LeatherProject/.vs/LeatherApp/FileContentIndex/eb162534-f0fc-47b0-8b70-3510dde5b8cd.vsidx and /dev/null differ diff --git a/LeatherProject/GeBoShi/SysCtrl/OpencvUtils.cs b/LeatherProject/GeBoShi/SysCtrl/OpencvUtils.cs index 44c14cf..7b10689 100644 --- a/LeatherProject/GeBoShi/SysCtrl/OpencvUtils.cs +++ b/LeatherProject/GeBoShi/SysCtrl/OpencvUtils.cs @@ -641,7 +641,7 @@ namespace GeBoShi.SysCtrl int tm = 0; byte tempVal = 0; bool findOne = false; - if (IsLeft) + if (!IsLeft) { tempVal = filled_image3.At(0, 0); //filled_image3. diff --git a/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs b/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs index 794350f..ae0a521 100644 --- a/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs +++ b/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs @@ -158,6 +158,8 @@ namespace GeBoShi.SysCtrl /// 界面光源值 /// private int FrmLightValue = 0; + + private string ImgDirSN = ""; #region 处理类型 private class ScanPhotoInfo { @@ -1038,7 +1040,7 @@ namespace GeBoShi.SysCtrl } else - Log($"二次判断2", $"(图像{liPhotoIndex})-缺陷未获得", WarningEnum.Low, false); + Log($"二次判断2", $"(图像{liPhotoIndex})-缺陷未获得,是否包含在({string.Join(",", DefectItemsPuaseNameList.ToArray())})或({string.Join(",", curRecord.ProductInfo.DefectPauseOption.ToArray())})中。", WarningEnum.Low, false); #if false curRecord.dicPhoto_Defect.TryUpdate(liPhotoIndex, false, true); #endif @@ -1086,7 +1088,7 @@ namespace GeBoShi.SysCtrl if (confMgr.SysConfigParams.CamImag.AutoSave && !string.IsNullOrEmpty(confMgr.SysConfigParams.CamImag.SavePath)) { Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records; - string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}" }); + string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}_{ImgDirSN}" }); //OpenCvSharp.Extensions.BitmapConverter.ToBitmap(img).Save($"{dirPath}Cam1-{Cam1Cnt}.bmp", ImageFormat.Bmp); AddImageSave($"{dirPath}Cam1-{Cam1Cnt}.bmp", img); @@ -1131,7 +1133,7 @@ namespace GeBoShi.SysCtrl //边缘异常计数 marginException++; Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records; - string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}" }); + string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}_{ImgDirSN}" }); AddImageSave($"{dirPath}Cam1-{Cam1Cnt}.bmp", img); Log($"图像预处理", $"(相机1-图像{Cam1Cnt})-裁边异常:{marginWidth0}-{_marginWidth1} 》 {10 * confMgr.SysConfigParams.Cm2px_x}", WarningEnum.Normal, false); } @@ -1261,7 +1263,7 @@ namespace GeBoShi.SysCtrl if (confMgr.SysConfigParams.CamImag.AutoSave && !string.IsNullOrEmpty(confMgr.SysConfigParams.CamImag.SavePath)) { Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records; - string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}" }); + string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}_{ImgDirSN}" }); //OpenCvSharp.Extensions.BitmapConverter.ToBitmap(img).Save($"{dirPath}Cam2-{Cam2Cnt}.bmp", ImageFormat.Bmp); AddImageSave($"{dirPath}Cam2-{Cam2Cnt}.bmp", img); @@ -1305,7 +1307,7 @@ namespace GeBoShi.SysCtrl //边缘异常计数 marginException++; Records curRecord = Hashtable.Synchronized(htTask)[currKey] as Records; - string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}" }); + string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.CamImag.SavePath, new List { $"{curRecord.BarCode}_{curRecord.BarCodeName}_{ImgDirSN}" }); AddImageSave($"{dirPath}Cam2-{Cam2Cnt}.bmp", img); Log($"图像预处理", $"(相机2-图像{Cam2Cnt})-裁边异常:{marginWidth0}-{_marginWidth2} 》 {10 * confMgr.SysConfigParams.Cm2px_x}", WarningEnum.Normal, false); } @@ -2138,7 +2140,7 @@ namespace GeBoShi.SysCtrl else OnAutoRuning(new RunEventArgs(res.bmp)); - string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSrcImag.SavePath, new List { $"{ res.record.BarCode}_{ res.record.BarCodeName}" }); + string dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSrcImag.SavePath, new List { $"{ res.record.BarCode}_{ res.record.BarCodeName}_{ImgDirSN}" }); if (confMgr.SysConfigParams.DefectSrcImag.AutoSave)//保存所有原图 { AddImageSave($"{dirPath}{res.photoIndex}.bmp", res.bmp); @@ -2211,7 +2213,7 @@ namespace GeBoShi.SysCtrl //保存打标小图 if (confMgr.SysConfigParams.DefectSmallImag.AutoSave) { - dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSmallImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}" }); + dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSmallImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}_{ImgDirSN}" }); string filename = $"{dirPath}{res.photoIndex}_X{defectInfo.X}_Y{defectInfo.Y}_W{defectInfo.Width}_H{defectInfo.Height}_目标{defectInfo.Target}_类别{defectInfo.Code}_置信度{defectInfo.ZXD}.jpg"; //OpenCvSharp.Extensions.BitmapConverter.ToBitmap(res.lstDefectBmp[i]).Save(filename, ImageFormat.Jpeg); AddImageSave(filename, res.lstDefectBmp[i]); @@ -2243,7 +2245,7 @@ namespace GeBoShi.SysCtrl time += $"->打标小图保存({stopWatch.ElapsedMilliseconds})"; //有瑕疵打标图必需保存 Jpeg - dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSplicImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}" }); + dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSplicImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}_{ImgDirSN}" }); if (confMgr.SysConfigParams.DefectSplicImag.AutoSave)//保存瑕疵图 { AddImageSave($"{dirPath}{res.photoIndex}_tag.jpg", res.bmpTag); @@ -2263,7 +2265,7 @@ namespace GeBoShi.SysCtrl step = 9; //Log($"检测完成", "保存CSV", WarningEnum.Normal, false); //保存CSV - dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSplicImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}" }); + dirPath = Util.CreateSubDir(confMgr.SysConfigParams.DefectSplicImag.SavePath, new List { $"{res.record.BarCode}_{res.record.BarCodeName}_{ImgDirSN}" }); //bool b = Utils.ExcelUtil.DataTable2CSV($"{dirPath}{res.photoIndex}.csv", res.excelTable); AddImageSave($"{dirPath}{res.photoIndex}.csv", res.excelTable); //AddTextEvent(DateTime.Now,$"打标完成", $"{res.tag}.xlsx {(b ? "保存成功!" : "保存失败!")}"); @@ -3252,7 +3254,7 @@ namespace GeBoShi.SysCtrl bool ret = true; _FatherFrm = fatherFrm; string barCodeName = "", len = "0", batchId = "", reelId = ""; - if(string.IsNullOrEmpty(name)) + if (string.IsNullOrEmpty(name)) name = "未找到"; //运行前清除过期图片文件 //DateTime st = DateTime.Now; @@ -3268,7 +3270,7 @@ namespace GeBoShi.SysCtrl Log("运行", "产品条码为空!", WarningEnum.Low); return false; } - + //禾欣数据 sn,长度数量, 批号, 卷号 if (!string.IsNullOrWhiteSpace(confMgr.SysConfigParams.ErpDBConStr) && !string.IsNullOrWhiteSpace(confMgr.SysConfigParams.ErpSql) && !string.IsNullOrWhiteSpace(sn)) { @@ -3295,7 +3297,7 @@ namespace GeBoShi.SysCtrl { Product model; //禾欣客户使用 - if(confMgr.SysConfigParams.CustomerName == "hexin") + if (confMgr.SysConfigParams.CustomerName == "hexin") { errStep = 1; //SHNY-PX-6-*** @@ -3323,15 +3325,15 @@ namespace GeBoShi.SysCtrl string mjson = GetMesJson(sn); string mfid = ""; string httprel = ""; - if(MesReturn(mjson, out mfid, out httprel)) + if (MesReturn(mjson, out mfid, out httprel)) { Log("Mes", $"Mes反馈({httprel})", WarningEnum.Normal, false); JObject Param = JObject.Parse(httprel); name = Param["List"][0]["Mname"].ToString(); barCodeName = name; len = Param["List"][0]["PQty"].ToString(); - batchId = Param["List"][0]["FID"].ToString(); - reelId = Param["List"][0]["RawMFid"].ToString(); + batchId = Param["List"][0]["FID"].ToString(); + reelId = Param["List"][0]["RawMFid"].ToString(); //根据mfid查询检测标准 model = PdtService.GetModelNavByMFID(mfid); if (model == null) @@ -3339,7 +3341,7 @@ namespace GeBoShi.SysCtrl Log("Mes", $"MFID({mfid})对应配方不存在,请先添加产品配方设置!", WarningEnum.Normal); //弹窗添加配方 MesSelectPdt mesSelectPdt = new MesSelectPdt(mfid); - if(mesSelectPdt.ShowDialog() == DialogResult.OK) + if (mesSelectPdt.ShowDialog() == DialogResult.OK) { model = PdtService.GetModelNavByMFID(mfid); Log("Mes", $"MFID({mfid})绑定配方({model.Name})成功!", WarningEnum.Normal); @@ -3385,7 +3387,7 @@ namespace GeBoShi.SysCtrl batchId = batch; reelId = reel; double t; - cnt = double.TryParse(cnt, out t) ?cnt:"0"; + cnt = double.TryParse(cnt, out t) ? cnt : "0"; model = PdtService.GetModelNavByName(DefectName); } if (model == null) @@ -3462,7 +3464,7 @@ namespace GeBoShi.SysCtrl //显示二次判定项和打标项 OnAutoRuning(new RunEventArgs(model)); //加载所有二次判断 - + //显示光源亮度 OnAutoRuning(new RunEventArgs(model.LightValue)); //计米器清空 @@ -3491,8 +3493,9 @@ namespace GeBoShi.SysCtrl // Log("内存", $"相机2清空内存失败!", WarningEnum.High); // return false; //} - //电机启动 - StartMotion(); + //判断是否已经有同名称产品存图 + ImgDirSN = DateTime.Now.ToString("HHmmss"); + pStopWatch.Restart(); pRunSpeedWatch.Restart(); @@ -3531,6 +3534,9 @@ namespace GeBoShi.SysCtrl //获取模型label GetDefectAllLabel(); + + //电机启动 + StartMotion(); } catch (Exception ex) {