diff --git a/Rs.SkyLine/Commom/VacManager.cs b/Rs.SkyLine/Commom/VacManager.cs index 9285279..91565b3 100644 --- a/Rs.SkyLine/Commom/VacManager.cs +++ b/Rs.SkyLine/Commom/VacManager.cs @@ -34,7 +34,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void DischargeVacSuction(EVacOperator eOperator, params int[] indexes) + public static void DischargeVacSuction(EVacOperator eOperator, bool needSleep,params int[] indexes) { if (indexes.Length > 0) { @@ -52,12 +52,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime); + if (needSleep) + Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime); MessageQueue.Instance.Insert($"打开排料{string.Join(",", indexes)}号吸嘴真空吸"); } else { - Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + if (needSleep) + Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); MessageQueue.Instance.Insert($"关闭排料{string.Join(",", indexes)}号吸嘴真空吸"); } } @@ -102,7 +104,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void TurnoverTrayVacSuction(EVacOperator eOperator, params int[] indexes) + public static void TurnoverTrayVacSuction(EVacOperator eOperator,bool NeedSleep=true, params int[] indexes) { if (indexes.Length > 0) { @@ -120,12 +122,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); + if(NeedSleep) + Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); MessageQueue.Instance.Insert($"打开周转盘{string.Join(",", indexes)}号穴位真空吸"); } else { - Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); + if(NeedSleep) + Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); MessageQueue.Instance.Insert($"关闭周转盘{string.Join(",", indexes)}号穴位真空吸"); } } @@ -154,12 +158,12 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); + Thread.Sleep(GlobalVar.TurnoverTrayOpenVacBreakDelaytime); MessageQueue.Instance.Insert($"打开周转盘{indexes.ToJoinString()}号穴位真空破"); } else { - Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); + Thread.Sleep(GlobalVar.TurnoverTrayCloseVacBreakDelaytime); MessageQueue.Instance.Insert($"关闭周转盘{indexes.ToJoinString()}号穴位真空破"); } } diff --git a/Rs.SkyLine/Flow/Camera/VisionManager.cs b/Rs.SkyLine/Flow/Camera/VisionManager.cs index a136f46..95aaffa 100644 --- a/Rs.SkyLine/Flow/Camera/VisionManager.cs +++ b/Rs.SkyLine/Flow/Camera/VisionManager.cs @@ -198,7 +198,7 @@ namespace Rs.MotionPlat.Flow.Camera /// 检测周转盘放料是否OK /// /// - public static VisionResult TurnoverTrayDumpProductOK(HObject image) + public static VisionResult TurnoverTrayDumpProductOK(HObject image,bool bNeedLocation=true) { upCameraScanBarCodeModel = new ModelParameter("周转盘产品定位"); VisionResult vr = new VisionResult(); @@ -208,7 +208,7 @@ namespace Rs.MotionPlat.Flow.Camera HOperatorSet.ReduceDomain(image, upCameraScanBarCodeModel.SearchRegion, out searchImg); else searchImg = image; - if(GlobalVar.EnableTurnoverTrayRecheck) + if(bNeedLocation) { HOperatorSet.GetShapeModelContours(out HObject modelContours, upCameraScanBarCodeModel.ModelID, 1); HOperatorSet.FindShapeModel(searchImg, upCameraScanBarCodeModel.ModelID, @@ -227,9 +227,10 @@ namespace Rs.MotionPlat.Flow.Camera vr.OffsetY = -1 * (row.D - upCameraScanBarCodeModel.ModelMatchResult[0].D) * GlobalVar.UpCameraMmPerPixel; vr.OffsetR = AngleTool.Rad2Deg((angle.D - upCameraScanBarCodeModel.ModelMatchResult[2].D)); vr.SourceImage = image; - if (vr.OffsetX < GlobalVar.TurnoverTrayLocateXRange && vr.OffsetY < GlobalVar.TurnoverTrayLocateYRange && vr.OffsetR < GlobalVar.TurnoverTrayLocateRRange) + if (Math.Abs(vr.OffsetX) < GlobalVar.TurnoverTrayLocateXRange + && Math.Abs(vr.OffsetY) < GlobalVar.TurnoverTrayLocateYRange + && Math.Abs(vr.OffsetR) < GlobalVar.TurnoverTrayLocateRRange) { - vr.SearchModelOK = true; } else @@ -283,7 +284,7 @@ namespace Rs.MotionPlat.Flow.Camera //HOperatorSet.GenRectangle1(out HObject searchRegion,row1, col1, row2, col2); HOperatorSet.ReduceDomain(images, _barCodeRegion, out HObject imgReduaced); - HOperatorSet.Emphasize(imgReduaced, out HObject imageEmphasize, new HTuple(7), new HTuple(7), new HTuple(1)); + //HOperatorSet.Emphasize(imgReduaced, out HObject imageEmphasize, new HTuple(7), new HTuple(7), new HTuple(1)); //HOperatorSet.CropDomain(imgReduaced, out HObject imagePart); //HOperatorSet.WriteImage(imagePart, "bmp", 0, "d://images/11"); //HOperatorSet.Threshold(imagePart, out HObject region, new HTuple(200), new HTuple(255)); @@ -308,14 +309,29 @@ namespace Rs.MotionPlat.Flow.Camera foreach (string mode in modes) { HOperatorSet.CreateDataCode2dModel("Data Matrix ECC 200", "default_parameters", mode, out HTuple dataCodeHandle); - HOperatorSet.FindDataCode2d(imageEmphasize, out xlds, dataCodeHandle, new HTuple(), new HTuple(), out HTuple resultHandles, out decodedDataStrings); + HOperatorSet.FindDataCode2d(imgReduaced, out xlds, dataCodeHandle, new HTuple(), new HTuple(), out HTuple resultHandles, out decodedDataStrings); if (decodedDataStrings.Length > 0) { + HOperatorSet.ClearDataCode2dModel(dataCodeHandle); return decodedDataStrings.ToString().Replace("\"", ""); } else { + HOperatorSet.ClearDataCode2dModel(dataCodeHandle); + //增强对比度之后再识别一次 + HOperatorSet.MultImage(imgReduaced, imgReduaced, out HObject imageMulti, new HTuple(0.005), new HTuple(0)); + HOperatorSet.CreateDataCode2dModel("Data Matrix ECC 200", "default_parameters", mode, out dataCodeHandle); + HOperatorSet.FindDataCode2d(imageMulti, out xlds, dataCodeHandle, new HTuple(), new HTuple(), out resultHandles, out decodedDataStrings); + if (decodedDataStrings.Length > 0) + { + HOperatorSet.ClearDataCode2dModel(dataCodeHandle); + return decodedDataStrings.ToString().Replace("\"", ""); + } + else + { + HOperatorSet.ClearDataCode2dModel(dataCodeHandle); + } if (mode == "maximum_recognition") { string saveDir = $"d://images//{DateTime.Now.ToString("yyyyMMdd")}//Ng"; diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 30ba6ab..830035c 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -17,6 +17,7 @@ using System.Diagnostics; using System.Diagnostics.Eventing.Reader; using System.IO; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -291,6 +292,8 @@ namespace Rs.MotionPlat.Flow if (curTask.FromType == TurnoverType.Turnover) { targetPos = GetVacOffsetHeight(reFetchNum) + SysConfigParam.GetValue($"TurnoverNozzle{curNozzle.NozzleIndex}TakeHeight"); + VacManager.DischargeVacSuction(EVacOperator.Open, false, curNozzle.NozzleIndex); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, false, curNozzle.FromIndex + 1); } else if (curTask.FromType == TurnoverType.ToBeTested) { @@ -334,7 +337,7 @@ namespace Rs.MotionPlat.Flow /*打开排料吸嘴真空吸*/ //Ops.On($"{curNozzle.NozzleIndex}号吸嘴真空吸电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime); - VacManager.DischargeVacSuction(EVacOperator.Open, curNozzle.NozzleIndex); + //logInfo = GetClassName()+ $"打开{curNozzle.NozzleIndex}号排料吸嘴真空吸"; //MessageQueue.Instance.Insert(logInfo); if (curTask.FromType == TurnoverType.Turnover) @@ -344,7 +347,7 @@ namespace Rs.MotionPlat.Flow //Ops.Off($"周转盘{curTask.FromIndex + 1}号穴位真空吸"); //Thread.Sleep(GlobalVar.TurnoverTrayCloseVacSuctionDelaytime); //MessageQueue.Instance.Insert(logInfo); - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, curNozzle.FromIndex+1); + //VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, curNozzle.FromIndex+1); /*打开周转盘真空破*/ //logInfo = GetClassName() + $"打开周转盘{curTask.FromIndex + 1}号穴位真空破"; //Ops.On($"周转盘{curTask.FromIndex + 1}号穴位真空破"); @@ -356,7 +359,11 @@ namespace Rs.MotionPlat.Flow //Ops.Off($"周转盘{curTask.FromIndex + 1}号穴位真空破"); //Thread.Sleep(GlobalVar.TurnoverTrayCloseVacBreakDelaytime); //MessageQueue.Instance.Insert(logInfo); - VacManager.TurnoverTrayVacBreak( EVacOperator.Close,curNozzle.FromIndex + 1); + + } + else + { + VacManager.DischargeVacSuction(EVacOperator.Open, true, curNozzle.NozzleIndex); } flowStep = EDischargeFlowStep.取料完成抬起; break; @@ -382,7 +389,11 @@ namespace Rs.MotionPlat.Flow if (Ops.IsStop($"NozzleZ{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis) { logInfo = GetClassName()+$"取{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位产品完成已抬起"; - MessageQueue.Instance.Insert(logInfo); + MessageQueue.Instance.Insert(logInfo); + if (curTask.FromType == TurnoverType.Turnover) + { + VacManager.TurnoverTrayVacBreak(EVacOperator.Close, curNozzle.FromIndex + 1); + } flowStep = EDischargeFlowStep.取料完成后真空检测; } break; @@ -1140,6 +1151,10 @@ namespace Rs.MotionPlat.Flow if (curNozzle.ToType == TurnoverType.Turnover) { targetPos = SysConfigParam.GetValue($"TurnoverNozzle{curNozzle.NozzleIndex}TakeHeight"); + /*打开周转盘真空吸*/ + logInfo = GetClassName() + $"打开周转盘{curNozzle.ToIndex + 1}号穴位真空吸"; + MessageQueue.Instance.Insert(logInfo); + VacManager.TurnoverTrayVacSuction(EVacOperator.Open, false, curNozzle.ToIndex + 1); } else { @@ -1165,18 +1180,12 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); if (curNozzle.ToType == TurnoverType.Turnover) { - /*打开周转盘真空吸*/ - logInfo = GetClassName() + $"打开周转盘{curNozzle.ToIndex + 1}号穴位真空吸"; - MessageQueue.Instance.Insert(logInfo); - //Ops.On($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸"); - //Thread.Sleep(GlobalVar.TurnoverTrayOpenVacSuctionDelaytime); - VacManager.TurnoverTrayVacSuction(EVacOperator.Open, curNozzle.ToIndex + 1); /*关闭排料吸嘴真空吸*/ logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空吸"; MessageQueue.Instance.Insert(logInfo); //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空吸电磁阀");//关闭真空 //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); - VacManager.DischargeVacSuction(EVacOperator.Close, curNozzle.NozzleIndex); + VacManager.DischargeVacSuction(EVacOperator.Close, true, curNozzle.NozzleIndex); /*打开排料吸嘴真空破*/ logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; MessageQueue.Instance.Insert(logInfo); @@ -1192,7 +1201,7 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空吸电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); - VacManager.DischargeVacSuction(EVacOperator.Close, curNozzle.NozzleIndex); + VacManager.DischargeVacSuction(EVacOperator.Close,true, curNozzle.NozzleIndex); /*打开排料吸嘴真空破*/ logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; MessageQueue.Instance.Insert(logInfo); @@ -1357,7 +1366,7 @@ namespace Rs.MotionPlat.Flow //排料轴先回到安全位,等待异常处理吸嘴过来处理这颗异常料 DischargeModuleGoSafePosFlow.Instance.GoSafePostion(); WarningSuckerNgFlow.Instance.DealNgProduct(ETrayType.Turnover, curNozzle.ToIndex + 1); - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, curNozzle.ToIndex + 1); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, curNozzle.ToIndex + 1); curNozzle.Reset(); flowStep = EDischargeFlowStep.放料任务完成; exit = true; @@ -1366,7 +1375,7 @@ namespace Rs.MotionPlat.Flow { if (!UpCameraCheckFlow.Instance.CheckTurnoverTrayHasProduct(null, curNozzle.ToIndex + 1)) { - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, curNozzle.ToIndex + 1); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, curNozzle.ToIndex + 1); curNozzle.Reset(); flowStep = EDischargeFlowStep.放料任务完成; exit = true; @@ -1471,8 +1480,18 @@ namespace Rs.MotionPlat.Flow } else { - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex-1, ""); + //如果扫码失败再重扫一次 + UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); + VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); + if(vrsigle.ScanBarCodeOK) + { + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + } + else + { + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + } } } } @@ -1515,8 +1534,18 @@ namespace Rs.MotionPlat.Flow } else { - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex-1, ""); + //如果扫码失败再重扫一次 + UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); + VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); + if (vrsigle.ScanBarCodeOK) + { + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + } + else + { + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + } } } } diff --git a/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs index dd86ae7..c6a07dd 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs @@ -192,7 +192,7 @@ namespace Rs.MotionPlat.Flow step = ETakeTrayFlowStep.等待取料盘完成抬起; break; case ETakeTrayFlowStep.等待取料盘完成抬起: - if (stopwatch.ElapsedMilliseconds < 5000) + if (stopwatch.ElapsedMilliseconds < 10000) { if ((Ops.IsOn("上下气缸原位")) || (GlobalVar.VirtualAxis)) { diff --git a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs index 0d0cbfd..1d334ab 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs @@ -257,7 +257,7 @@ namespace Rs.MotionPlat.Flow { WarningSuckerNgFlow.Instance.DealNgProduct(ETrayType.Turnover, slot.Index); slot.ClearProduct(); - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, slot.Index); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close,true, slot.Index); GlobalTray.TurnoverTray.ChangeStatus(slot.Index, ESlotStatus.NotHave); } exit = true; @@ -271,7 +271,7 @@ namespace Rs.MotionPlat.Flow TestHeightResult heightResult = LaserFlow.Instance.HasProduct(ETrayType.Turnover, slot.Index); if (!heightResult.HasProduct) { - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, slot.Index); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, slot.Index); slot.ClearProduct(); GlobalTray.TurnoverTray.ChangeStatus(slot.Index, ESlotStatus.NotHave); } @@ -350,7 +350,7 @@ namespace Rs.MotionPlat.Flow /*打开周转吸嘴真空吸*/ VacManager.TransitNozzleVacSuction(EVacOperator.Open, undealTasks.Select(t => t.ToIndex + 1).ToArray()); /*关闭周转盘真空吸*/ - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); /*打开周转盘真空破*/ VacManager.TurnoverTrayVacBreak(EVacOperator.Open, undealTasks.Select(t => t.FromIndex + 1).ToArray()); Step = ETurnoverFlowStep.到周转盘取料破真空位; @@ -415,7 +415,7 @@ namespace Rs.MotionPlat.Flow undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); foreach (TurnoverInfo task in undealTasks) { - if (Ops.IsOn($"周转{task.FromIndex + 1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis || GlobalVar.RunSpace) + if (Ops.IsOn($"周转{task.ToIndex + 1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis || GlobalVar.RunSpace) { //如果真空检测OK,带料产品已经吸上了 TransitNozzleManager.Instance.Nozzle(task.ToIndex + 1).AddProduct(task); @@ -971,7 +971,7 @@ namespace Rs.MotionPlat.Flow break; case ETurnoverFlowStep.测试完成抬起安全位: targetPos = SysConfigParam.GetValue("PressSafeZ"); - errCode = AxisControl.PressZ.MovePos(0, GlobalVar.WholeSpeed); + errCode = AxisControl.PressZ.MovePos(targetPos, GlobalVar.WholeSpeed); if(errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) { if (GlobalVar.VirtualAxis) @@ -1476,7 +1476,7 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); /*打开周转盘真空吸*/ - VacManager.TurnoverTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.ToIndex+1).ToArray()); + VacManager.TurnoverTrayVacSuction(EVacOperator.Open, true, hasProductNozzles.Select(n => n.ToIndex+1).ToArray()); /*关闭周转吸头真空吸*/ VacManager.TransitNozzleVacSuction( EVacOperator.Close,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); /*打开周转吸头真空破*/ @@ -1660,7 +1660,7 @@ namespace Rs.MotionPlat.Flow DischargeModuleGoSafePosFlow.Instance.GoSafePostion(); WarningSuckerNgFlow.Instance.DealNgProduct(ETrayType.Turnover, slot.Index); nozzle.Clear(); - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, slot.Index); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, slot.Index); exit = true; } else @@ -1669,7 +1669,7 @@ namespace Rs.MotionPlat.Flow if (!UpCameraCheckFlow.Instance.CheckTurnoverTrayHasProduct(null, slot.Index, true)) { nozzle.Clear(); - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, slot.Index); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, slot.Index); exit = true; } } diff --git a/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs b/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs index 5b184fa..29b539c 100644 --- a/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs +++ b/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs @@ -226,6 +226,7 @@ namespace Rs.MotionPlat.Flow.SubFlow } break; case EUpCameraScanBarCodeFlowStep.拍照结果处理: + vReslutList.Clear(); int slotIndex = 0; foreach (var img in grabImages) { @@ -241,7 +242,7 @@ namespace Rs.MotionPlat.Flow.SubFlow VisionResult vr = new VisionResult(); if (TurnoverTrayManager.Instance.Slot(sIndex).IsHasProduct) { - vr = VisionManager.TurnoverTrayDumpProductOK(img); + vr = VisionManager.TurnoverTrayDumpProductOK(img,GlobalVar.EnableTurnoverTrayRecheck); } vr.SlotIndex = sIndex; vReslutList.Add(vr); @@ -335,6 +336,7 @@ namespace Rs.MotionPlat.Flow.SubFlow break; case EUpCameraFixedScanBarCodeFlowStep.拍照结果处理: singleResult = VisionManager.TurnoverTrayDumpProductOK(imageSingle); + singleResult.SlotIndex = SlotIndex; exit = true; grabFinishedEvent.Set(); break; diff --git a/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs b/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs index 7c960d1..a6d2210 100644 --- a/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs +++ b/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs @@ -182,7 +182,7 @@ namespace Rs.MotionPlat.Flow.NgFlow //打开强力吸嘴真空 VacManager.ForceNozzleVacSuction(EVacOperator.Open); //关闭周转盘真空吸 - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, exceptionSlotIndex); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, exceptionSlotIndex); //打开周转盘这空破 VacManager.TurnoverTrayVacBreak(EVacOperator.Open, exceptionSlotIndex); step = EWarningSuckerNgFlowStep.取料完成到安全位; diff --git a/Rs.SkyLine/SysConfig/ClampConfig.Designer.cs b/Rs.SkyLine/SysConfig/ClampConfig.Designer.cs index d1090dd..24cdceb 100644 --- a/Rs.SkyLine/SysConfig/ClampConfig.Designer.cs +++ b/Rs.SkyLine/SysConfig/ClampConfig.Designer.cs @@ -192,7 +192,7 @@ this.btnMoveEmpty2TakeTrayX.Name = "btnMoveEmpty2TakeTrayX"; this.btnMoveEmpty2TakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveEmpty2TakeTrayX.TabIndex = 45; - this.btnMoveEmpty2TakeTrayX.Tag = "LoadY"; + this.btnMoveEmpty2TakeTrayX.Tag = "LoadX"; this.btnMoveEmpty2TakeTrayX.Text = "运动到此"; this.btnMoveEmpty2TakeTrayX.UseVisualStyleBackColor = false; this.btnMoveEmpty2TakeTrayX.Click += new System.EventHandler(this.Move_Click); @@ -319,7 +319,7 @@ this.btnMoveMultiTakeTrayX.Name = "btnMoveMultiTakeTrayX"; this.btnMoveMultiTakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveMultiTakeTrayX.TabIndex = 45; - this.btnMoveMultiTakeTrayX.Tag = "LoadY"; + this.btnMoveMultiTakeTrayX.Tag = "LoadX"; this.btnMoveMultiTakeTrayX.Text = "运动到此"; this.btnMoveMultiTakeTrayX.UseVisualStyleBackColor = false; this.btnMoveMultiTakeTrayX.Click += new System.EventHandler(this.Move_Click); @@ -446,7 +446,7 @@ this.btnMoveNgTakeTrayX.Name = "btnMoveNgTakeTrayX"; this.btnMoveNgTakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveNgTakeTrayX.TabIndex = 45; - this.btnMoveNgTakeTrayX.Tag = "LoadY"; + this.btnMoveNgTakeTrayX.Tag = "LoadX"; this.btnMoveNgTakeTrayX.Text = "运动到此"; this.btnMoveNgTakeTrayX.UseVisualStyleBackColor = false; this.btnMoveNgTakeTrayX.Click += new System.EventHandler(this.Move_Click); @@ -573,7 +573,7 @@ this.btnMoveOkTakeTrayX.Name = "btnMoveOkTakeTrayX"; this.btnMoveOkTakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveOkTakeTrayX.TabIndex = 45; - this.btnMoveOkTakeTrayX.Tag = "LoadY"; + this.btnMoveOkTakeTrayX.Tag = "LoadX"; this.btnMoveOkTakeTrayX.Text = "运动到此"; this.btnMoveOkTakeTrayX.UseVisualStyleBackColor = false; this.btnMoveOkTakeTrayX.Click += new System.EventHandler(this.Move_Click); @@ -715,7 +715,7 @@ this.btnMoveInputTakeTrayX.Name = "btnMoveInputTakeTrayX"; this.btnMoveInputTakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveInputTakeTrayX.TabIndex = 45; - this.btnMoveInputTakeTrayX.Tag = "LoadY"; + this.btnMoveInputTakeTrayX.Tag = "LoadX"; this.btnMoveInputTakeTrayX.Text = "运动到此"; this.btnMoveInputTakeTrayX.UseVisualStyleBackColor = false; this.btnMoveInputTakeTrayX.Click += new System.EventHandler(this.Move_Click); @@ -890,7 +890,7 @@ this.btnMoveEmpty1TakeTrayX.Name = "btnMoveEmpty1TakeTrayX"; this.btnMoveEmpty1TakeTrayX.Size = new System.Drawing.Size(80, 25); this.btnMoveEmpty1TakeTrayX.TabIndex = 45; - this.btnMoveEmpty1TakeTrayX.Tag = "LoadY"; + this.btnMoveEmpty1TakeTrayX.Tag = "LoadX"; this.btnMoveEmpty1TakeTrayX.Text = "运动到此"; this.btnMoveEmpty1TakeTrayX.UseVisualStyleBackColor = false; this.btnMoveEmpty1TakeTrayX.Click += new System.EventHandler(this.Move_Click);