diff --git a/Rs.SkyLine/Flow/AlarmConstID.cs b/Rs.SkyLine/Flow/AlarmConstID.cs index 79c91b8..a62c6e7 100644 --- a/Rs.SkyLine/Flow/AlarmConstID.cs +++ b/Rs.SkyLine/Flow/AlarmConstID.cs @@ -282,5 +282,10 @@ namespace Rs.MotionPlat.Flow /// 测试治具光前异常报警 /// public const int TextFixtureFiberAlarm = 57; + + /// + /// 扫码失败报警 + /// + public const int ScanBarCodeFailAlarm = 58; } } diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index caadc6f..2004993 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -1491,19 +1491,44 @@ namespace Rs.MotionPlat.Flow } else { - //如果扫码失败再重扫一次 - UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); - VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); - if(vrsigle.ScanBarCodeOK) + int failNum = 1; + while(true) { - OnShowGrabResult?.Invoke(vrsigle, true); - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); - } - else - { - OnShowGrabResult?.Invoke(vrsigle, true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + 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, vr.SN); + break; + } + else + { + failNum++; + OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + Thread.Sleep(1000); + } + } + else + { + box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Cancel); + if(box.Button== ETipButton.Retry) + { + failNum = 1; + } + else + { + //OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + break; + } + } } } } @@ -1552,19 +1577,44 @@ namespace Rs.MotionPlat.Flow } else { - //如果扫码失败再重扫一次 - UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); - VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); - if (vrsigle.ScanBarCodeOK) + int failNum = 1; + while (true) { - OnShowGrabResult?.Invoke(vrsigle,true); - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); - } - else - { - OnShowGrabResult?.Invoke(vrsigle,true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + 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, vr.SN); + break; + } + else + { + OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + Thread.Sleep(1000); + } + } + else + { + box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Skip); + if (box.Button == ETipButton.Retry) + { + failNum = 1; + } + else if(box.Button== ETipButton.Skip) + { + //OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + break; + } + } } } }