|
|
|
@ -943,61 +943,97 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//获取所有需要放料的吸嘴,检测真空是否还在,如果真空异常则报警
|
|
|
|
|
List<Nozzle> lostNozzles = new List<Nozzle>();
|
|
|
|
|
List<Nozzle> toUnloadNozzles = NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload);
|
|
|
|
|
if (toUnloadNozzles.Count > 0)
|
|
|
|
|
if(!curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (var nozzle in toUnloadNozzles)
|
|
|
|
|
bool exit = false;
|
|
|
|
|
while(!exit)
|
|
|
|
|
{
|
|
|
|
|
if (!nozzle.HasProduct())
|
|
|
|
|
//弹框报警
|
|
|
|
|
alarmInfo = $"检测到{curNozzle.NozzleIndex}吸嘴真空吸异常,可能丢料,请检查吸嘴的状态";
|
|
|
|
|
TestCenterMessageBox.Show(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());
|
|
|
|
|
msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.DischargeNozzleLostProductAlarm);
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
lostNozzles.Add(nozzle);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (lostNozzles.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
bool bSkip = false;
|
|
|
|
|
while (!bSkip)
|
|
|
|
|
{
|
|
|
|
|
//弹框报警
|
|
|
|
|
alarmInfo = $"检测到{lostNozzles.Select(ln => ln.NozzleIndex).ToJoinString()}吸嘴真空吸异常,可能丢料,请检查吸嘴的状态";
|
|
|
|
|
TestCenterMessageBox.Show(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());
|
|
|
|
|
msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.DischargeNozzleLostProductAlarm);
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Skip:
|
|
|
|
|
bSkip = true;
|
|
|
|
|
lostNozzles.ForEach(ln => ln.Reset());
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes:
|
|
|
|
|
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (curNozzle.Status == ENozzleStatus.ToUnload)
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.到放料位下方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
case ETipButton.Skip:
|
|
|
|
|
if (!curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
exit= true;
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes:
|
|
|
|
|
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
flowStep = EDischargeFlowStep.到放料位下方;
|
|
|
|
|
}
|
|
|
|
|
#region 临时屏蔽
|
|
|
|
|
// //获取所有需要放料的吸嘴,检测真空是否还在,如果真空异常则报警
|
|
|
|
|
// List<Nozzle> lostNozzles = new List<Nozzle>();
|
|
|
|
|
// List<Nozzle> toUnloadNozzles = NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload);
|
|
|
|
|
// if (toUnloadNozzles.Count > 0)
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// foreach (var nozzle in toUnloadNozzles)
|
|
|
|
|
// {
|
|
|
|
|
// if (!nozzle.HasProduct())
|
|
|
|
|
// {
|
|
|
|
|
// //lostNozzles.Add(nozzle);
|
|
|
|
|
// while (!bSkip)
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if (lostNozzles.Count > 0)
|
|
|
|
|
// {
|
|
|
|
|
// bool bSkip = false;
|
|
|
|
|
// while (!bSkip)
|
|
|
|
|
// {
|
|
|
|
|
// //弹框报警
|
|
|
|
|
// alarmInfo = $"检测到{lostNozzles.Select(ln => ln.NozzleIndex).ToJoinString()}吸嘴真空吸异常,可能丢料,请检查吸嘴的状态";
|
|
|
|
|
// TestCenterMessageBox.Show(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());
|
|
|
|
|
// msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.DischargeNozzleLostProductAlarm);
|
|
|
|
|
// switch (msgBox.Button)
|
|
|
|
|
// {
|
|
|
|
|
// case ETipButton.Skip:
|
|
|
|
|
// bSkip = true;
|
|
|
|
|
// lostNozzles.ForEach(ln => ln.Reset());
|
|
|
|
|
// break;
|
|
|
|
|
// case ETipButton.Yes:
|
|
|
|
|
// DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// if (curNozzle.Status == ENozzleStatus.ToUnload)
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.到放料位下方;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
//case EDischargeFlowStep.到放料位下方:
|
|
|
|
|
// DischargeDumpFlow.Instance.Start(curNozzle.ToType, curNozzle.NozzleIndex, curNozzle.ToIndex);
|
|
|
|
@ -1136,10 +1172,14 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Skip:
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
skip = true;
|
|
|
|
|
logInfo = GetClassName() + "选择了跳过按钮";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if (!curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
skip = true;
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes:
|
|
|
|
|
logInfo = GetClassName() + "选择了移动到安全位按钮";
|
|
|
|
@ -1153,90 +1193,99 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料真空检测;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.放料真空检测:
|
|
|
|
|
if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
if (Ops.IsOn($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测") || GlobalVar.RunSpace)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+$"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测OK";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
bool exit = false;
|
|
|
|
|
Dictionary<ETipButton, string> buttons = new Dictionary<ETipButton, string>() {
|
|
|
|
|
{ ETipButton.Retry,"重拍|Regrab" },
|
|
|
|
|
{ETipButton.Skip,"跳过|Skip" },
|
|
|
|
|
{ETipButton.Yes,"移动到安全位|MoveToSafePos" }
|
|
|
|
|
};
|
|
|
|
|
while (!exit)
|
|
|
|
|
{
|
|
|
|
|
TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Skip | ETipButton.Yes, buttons);
|
|
|
|
|
msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm);
|
|
|
|
|
if (msgBox != null)
|
|
|
|
|
{
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Retry://重拍
|
|
|
|
|
logInfo = GetClassName()+$"选择了重拍";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if (UpCameraCheckFlow.Instance.CheckTurnoverTrayDumpOK(curNozzle.ToIndex))
|
|
|
|
|
{
|
|
|
|
|
exit=true;
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Skip://跳过
|
|
|
|
|
logInfo = GetClassName()+$"选择了跳过";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
//logInfo = $"{nameof(DischargeFlow)}-通知强力吸头到{curNozzle.ToType}盘{curNozzle.ToIndex}穴位处理异常料";
|
|
|
|
|
//MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
//WarningSuckerNgFlow.Instance.Start(ETrayType.Turnover, curNozzle.ToIndex);
|
|
|
|
|
//WarningSuckerNgFlow.Instance.Wait();
|
|
|
|
|
if (!UpCameraCheckFlow.Instance.CheckTurnoverTrayHasProduct(null,curNozzle.ToIndex))
|
|
|
|
|
{
|
|
|
|
|
exit=true;
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes://移动到安全位
|
|
|
|
|
logInfo = GetClassName() + $"选择了移动到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//logInfo = $"{nameof(DischargeFlow)}-周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常";
|
|
|
|
|
//MessageQueue.Instance.Warn(logInfo);
|
|
|
|
|
//if (UpCameraCheckFlow.Instance.CheckStockTrayHasProduct(null, EStockType.Turnover, curNozzle.ToIndex))
|
|
|
|
|
//{
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
//}
|
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// flowStep = EDischargeFlowStep.周转盘放料真空报警;
|
|
|
|
|
//}
|
|
|
|
|
//DialogResult dr = Msg.ShowError($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常,点击确定后跳过");
|
|
|
|
|
//alarmInfo = $"周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常";
|
|
|
|
|
//TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Ok);
|
|
|
|
|
//box = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm);
|
|
|
|
|
//if (box.Button== ETipButton.Ok)
|
|
|
|
|
//{
|
|
|
|
|
//flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
#region 临时屏蔽,排料头放料到周转盘时,不进行周转盘的真空检测,只要没有粘料就继续执行
|
|
|
|
|
//case EDischargeFlowStep.放料真空检测:
|
|
|
|
|
// if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
// {
|
|
|
|
|
// if (Ops.IsOn($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测") || GlobalVar.RunSpace)
|
|
|
|
|
// {
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测OK";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常";
|
|
|
|
|
// MessageQueue.Instance.Warn(logInfo);
|
|
|
|
|
// if(UpCameraCheckFlow.Instance.CheckStockTrayHasProduct(null,EStockType.Turnover, curNozzle.ToIndex))
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.周转盘放料真空报警;
|
|
|
|
|
// }
|
|
|
|
|
// //DialogResult dr = Msg.ShowError($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常,点击确定后跳过");
|
|
|
|
|
// //alarmInfo = $"周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常";
|
|
|
|
|
// //TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Ok);
|
|
|
|
|
// //box = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm);
|
|
|
|
|
// //if (box.Button== ETipButton.Ok)
|
|
|
|
|
// //{
|
|
|
|
|
// //flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// //}
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
//case EDischargeFlowStep.周转盘放料真空报警:
|
|
|
|
|
// Dictionary<ETipButton, string> buttons = new Dictionary<ETipButton, string>() {
|
|
|
|
|
// { ETipButton.Retry,"重拍|Regrab" },
|
|
|
|
|
// {ETipButton.Skip,"跳过|Skip" },
|
|
|
|
|
// {ETipButton.Yes,"移动到安全位|MoveToSafePos" }
|
|
|
|
|
// };
|
|
|
|
|
// TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Retry| ETipButton.Skip| ETipButton.Yes,buttons);
|
|
|
|
|
// msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm);
|
|
|
|
|
// if(msgBox!=null)
|
|
|
|
|
// {
|
|
|
|
|
// switch (msgBox.Button)
|
|
|
|
|
// {
|
|
|
|
|
// case ETipButton.Retry://重拍
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-选择了重拍";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// if(UpCameraCheckFlow.Instance.CheckTurnoverTrayDumpOK(curNozzle.ToIndex))
|
|
|
|
|
// {
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// case ETipButton.Skip://跳过
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-选择了跳过";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-通知强力吸头到{curNozzle.ToType}盘{curNozzle.ToIndex}穴位处理异常料";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// WarningSuckerNgFlow.Instance.Start( ETrayType.Turnover, curNozzle.ToIndex);
|
|
|
|
|
// WarningSuckerNgFlow.Instance.Wait();
|
|
|
|
|
// flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
// break;
|
|
|
|
|
// case ETipButton.Yes://移动到安全位
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-选择了移动到安全位";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-通知排料头回安全位";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
// logInfo = $"{nameof(DischargeFlow)}-排料头已回到安全位";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
#endregion
|
|
|
|
|
case EDischargeFlowStep.放料任务完成:
|
|
|
|
|
|
|
|
|
|
//AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();
|
|
|
|
@ -1277,6 +1326,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
GlobalTray.MultiTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
|
|
|
|
|
}
|
|
|
|
|
LoadAndUnloadTask.Instance.AddTurnoverResult(curNozzle);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
if (NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count > 0)
|
|
|
|
@ -1298,6 +1348,21 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 8);
|
|
|
|
|
UpCameraScanBarCodeFlow.Instance.Scan(1, false);
|
|
|
|
|
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
|
|
|
|
|
foreach (var vr in result)
|
|
|
|
|
{
|
|
|
|
|
if(TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct)
|
|
|
|
|
{
|
|
|
|
|
if (vr.SearchModelOK && vr.OffsetX < 0.5 && vr.OffsetY < 0.5 && vr.OffsetR < 5)//定位成功
|
|
|
|
|
{
|
|
|
|
|
if(vr.ScanBarCodeOK)
|
|
|
|
|
{
|
|
|
|
|
//复制二维码
|
|
|
|
|
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex, vr.SN);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
OnUpCameraGrabResult?.Invoke(result);
|
|
|
|
|
}
|
|
|
|
|
//判断周转盘第三行有没有产品,如果有产品则拍第三行
|
|
|
|
@ -1308,6 +1373,20 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 24);
|
|
|
|
|
UpCameraScanBarCodeFlow.Instance.Scan(24, true);
|
|
|
|
|
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
|
|
|
|
|
foreach (var vr in result)
|
|
|
|
|
{
|
|
|
|
|
if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct)
|
|
|
|
|
{
|
|
|
|
|
if (vr.SearchModelOK && vr.OffsetX < 0.5 && vr.OffsetY < 0.5 && vr.OffsetR < 5)//定位成功
|
|
|
|
|
{
|
|
|
|
|
if (vr.ScanBarCodeOK)
|
|
|
|
|
{
|
|
|
|
|
//复制二维码
|
|
|
|
|
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex, vr.SN);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
OnUpCameraGrabResult?.Invoke(result);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -1346,7 +1425,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = $"{nameof(DischargeFlow)}-排料任务结束到安全位";
|
|
|
|
|
logInfo =GetClassName()+ $"排料任务结束到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|