修复下相机定位失败提示错误

master
lhiven 1 year ago
parent 84009e0691
commit cc825c66e4

@ -854,9 +854,12 @@ namespace Rs.MotionPlat.Flow
List<int> errCodeList = new List<int>(); List<int> errCodeList = new List<int>();
foreach (MatchResult item in mrs) foreach (MatchResult item in mrs)
{ {
if(item.IsOK&&GlobalVar.EnableScanBarCodeByDownCamera) if(item.IsOK)
{ {
NozzleManager.GetNozzle(ni).SN = item.SN; if(GlobalVar.EnableScanBarCodeByDownCamera)
{
NozzleManager.GetNozzle(ni).SN = item.SN;
}
} }
else else
{ {
@ -1545,180 +1548,191 @@ namespace Rs.MotionPlat.Flow
} }
if(scanNum==1 || !GlobalVar.GRR) if(scanNum==1 || !GlobalVar.GRR)
{ {
//没有需要给周转盘上料的任务后,就开始上相机扫码 if(GlobalVar.EnableVirtuleBarCode)
//判断周转盘第一行有没有产品,如果有产品则拍第一行
if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.One))
{ {
//找拍照起点和终点 List<TurnoverTraySlot> slots = TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.WaitTest, ETurnoverTraySlotStatus.Have);
SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 1); foreach (var slot in slots)
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 8);
UpCameraScanBarCodeFlow.Instance.ScanMulti(1, false);
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
foreach (var vr in result)
{ {
if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) LoadAndUnloadTask.Instance.CopyBarcodeToTask(slot.Index - 1, VirtualBarCode.Code);
}
}
else
{
//没有需要给周转盘上料的任务后,就开始上相机扫码
//判断周转盘第一行有没有产品,如果有产品则拍第一行
if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.One))
{
//找拍照起点和终点
SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 1);
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 8);
UpCameraScanBarCodeFlow.Instance.ScanMulti(1, false);
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
foreach (var vr in result)
{ {
if (vr.SearchModelOK)//定位成功 if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct)
{ {
if (!GlobalVar.EnableScanBarCodeByDownCamera) if (vr.SearchModelOK)//定位成功
{ {
if (GlobalVar.RunSpace) if (!GlobalVar.EnableScanBarCodeByDownCamera)
{
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code);
}
else
{ {
if (vr.ScanBarCodeOK) if (GlobalVar.RunSpace)
{ {
OnShowGrabResult?.Invoke(vr, true); LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code);
//复制二维码
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN);
} }
else else
{ {
int failNum = 1; if (vr.ScanBarCodeOK)
while (true)
{ {
if (failNum < 4) OnShowGrabResult?.Invoke(vr, true);
{ //复制二维码
//如果扫码失败再重扫一次 LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN);
UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); }
VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); else
if (vrsigle.ScanBarCodeOK) {
{ int failNum = 1;
OnShowGrabResult?.Invoke(vrsigle, true); while (true)
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vrsigle.SN);
break;
}
else
{
failNum++;
OnShowGrabResult?.Invoke(vrsigle, true);
//复制二维码
//LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
Thread.Sleep(1000);
}
}
else
{ {
alarmInfo = string.Format(AlarmCollection.GetAlarm(AlarmConstID.), vr.SlotIndex); if (failNum < 4)
box = MsgBox.ShowDialog(AlarmConstID., alarmInfo, ETipButton.Retry | ETipButton.Cancel);
if (box.Button == ETipButton.Retry)
{ {
failNum = 1; //如果扫码失败再重扫一次
UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true);
VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle();
if (vrsigle.ScanBarCodeOK)
{
OnShowGrabResult?.Invoke(vrsigle, true);
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vrsigle.SN);
break;
}
else
{
failNum++;
OnShowGrabResult?.Invoke(vrsigle, true);
//复制二维码
//LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
Thread.Sleep(1000);
}
} }
else else
{ {
//OnShowGrabResult?.Invoke(vrsigle, true); alarmInfo = string.Format(AlarmCollection.GetAlarm(AlarmConstID.), vr.SlotIndex);
//复制二维码 box = MsgBox.ShowDialog(AlarmConstID., alarmInfo, ETipButton.Retry | ETipButton.Cancel);
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); if (box.Button == ETipButton.Retry)
break; {
failNum = 1;
}
else
{
//OnShowGrabResult?.Invoke(vrsigle, true);
//复制二维码
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
break;
}
} }
} }
} }
} }
} }
} }
else
{
//定位失败,或者超出指定范围
}
} }
else else
{ {
//定位失败,或者超出指定范围 OnShowGrabResult?.Invoke(vr, false);
} }
} }
else //OnUpCameraGrabResult?.Invoke(result);
{
OnShowGrabResult?.Invoke(vr, false);
}
} }
//OnUpCameraGrabResult?.Invoke(result); //判断周转盘第三行有没有产品,如果有产品则拍第三行
} if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.Three))
//判断周转盘第三行有没有产品,如果有产品则拍第三行
if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.Three))
{
//找拍照起点和终点
SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 17);
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 24);
UpCameraScanBarCodeFlow.Instance.ScanMulti(24, true);
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
foreach (var vr in result)
{ {
if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) //找拍照起点和终点
SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 17);
SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 24);
UpCameraScanBarCodeFlow.Instance.ScanMulti(24, true);
List<VisionResult> result = UpCameraScanBarCodeFlow.Instance.Wait();
foreach (var vr in result)
{ {
if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct)
if (vr.SearchModelOK)//定位成功
{ {
if (!GlobalVar.EnableScanBarCodeByDownCamera)
if (vr.SearchModelOK)//定位成功
{ {
if (GlobalVar.RunSpace) if (!GlobalVar.EnableScanBarCodeByDownCamera)
{
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code);
}
else
{ {
if (vr.ScanBarCodeOK) if (GlobalVar.RunSpace)
{ {
OnShowGrabResult?.Invoke(vr, true); LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code);
//复制二维码
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN);
} }
else else
{ {
int failNum = 1; if (vr.ScanBarCodeOK)
while (true)
{ {
if (failNum < 4) OnShowGrabResult?.Invoke(vr, true);
//复制二维码
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN);
}
else
{
int failNum = 1;
while (true)
{ {
if (failNum < 4)
//如果扫码失败再重扫一次
UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true);
VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle();
if (vrsigle.ScanBarCodeOK)
{ {
OnShowGrabResult?.Invoke(vrsigle, true);
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vrsigle.SN); //如果扫码失败再重扫一次
break; UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true);
VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle();
if (vrsigle.ScanBarCodeOK)
{
OnShowGrabResult?.Invoke(vrsigle, true);
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vrsigle.SN);
break;
}
else
{
failNum++;
OnShowGrabResult?.Invoke(vrsigle, true);
//复制二维码
//LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
Thread.Sleep(1000);
}
} }
else else
{ {
failNum++; box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Skip);
OnShowGrabResult?.Invoke(vrsigle, true); if (box.Button == ETipButton.Retry)
//复制二维码 {
//LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); failNum = 1;
Thread.Sleep(1000); }
} else if (box.Button == ETipButton.Skip)
} {
else //OnShowGrabResult?.Invoke(vrsigle, true);
{ //复制二维码
box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Skip); LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
if (box.Button == ETipButton.Retry) break;
{ }
failNum = 1;
}
else if (box.Button == ETipButton.Skip)
{
//OnShowGrabResult?.Invoke(vrsigle, true);
//复制二维码
LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, "");
break;
} }
} }
} }
} }
} }
} }
else
{
//定位失败,或者超出指定范围
}
} }
else else
{ {
//定位失败,或者超出指定范围 OnShowGrabResult?.Invoke(vr, false);
} }
} }
else //OnUpCameraGrabResult?.Invoke(result);
{
OnShowGrabResult?.Invoke(vr, false);
}
}
//OnUpCameraGrabResult?.Invoke(result);
}
} }
} }
} }

Loading…
Cancel
Save