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);