diff --git a/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs b/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs index 2dd070b..d7e55e8 100644 --- a/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs +++ b/Rs.SkyLine/Flow/SubFlow/UpCameraScanBarCodeFlow.cs @@ -266,7 +266,6 @@ namespace Rs.MotionPlat.Flow.SubFlow { VisionResult singleResult = null; if (exit == false) return null; - //grabFinishedEvent.Reset(); HObject imageSingle = new HObject(); exit = false; if(!needGo) @@ -282,79 +281,81 @@ namespace Rs.MotionPlat.Flow.SubFlow { fixedStep = EUpCameraFixedScanBarCodeFlowStep.到扫码位上方; } - //Task.Run(() => { - while (!exit) + while (!exit) + { + if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop) { - if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop) - { - Thread.Sleep(10); - continue; - } - switch (fixedStep) - { - case EUpCameraFixedScanBarCodeFlowStep.到扫码位上方: - SlotPoint targetPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, SlotIndex); - errCode = AxisControl.LoadX.MovePos(targetPoint.X, GlobalVar.FlyCameraSpeed); + Thread.Sleep(10); + continue; + } + switch (fixedStep) + { + case EUpCameraFixedScanBarCodeFlowStep.到扫码位上方: + SlotPoint targetPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, SlotIndex); + errCode = AxisControl.LoadX.MovePos(targetPoint.X, GlobalVar.FlyCameraSpeed); + if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) + { + errCode = AxisControl.LoadY.MovePos(targetPoint.Y, GlobalVar.FlyCameraSpeed); if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) { - errCode = AxisControl.LoadY.MovePos(targetPoint.Y, GlobalVar.FlyCameraSpeed); - if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) - { - logInfo = GetClassName() + $"到扫码起始位"; - MessageQueue.Instance.Insert(logInfo); - fixedStep = EUpCameraFixedScanBarCodeFlowStep.等待运动到扫码位上方; - } - else - { - MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); - } + logInfo = GetClassName() + $"到{SlotIndex}号穴位拍照位上方"; + MessageQueue.Instance.Insert(logInfo); + fixedStep = EUpCameraFixedScanBarCodeFlowStep.等待运动到扫码位上方; } else { - MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); + MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); } - break; - case EUpCameraFixedScanBarCodeFlowStep.等待运动到扫码位上方: - if (Ops.IsStop(AxisAlias.LoadX, AxisAlias.LoadY) || GlobalVar.VirtualAxis) - { - Thread.Sleep(200); - ImageProcess.ClearManualTrigger(); - HikCamera.Instance.SetTrigger("upCamera", ETriggerMode.Manual); - HikCamera.Instance.SetExposure("upCamera", GlobalVar.UpCameraExposureTime); - HikCamera.Instance.SetGain("upCamera", GlobalVar.UpCameraGain); - AxisControl.LoadX.ComparePulse(2, false); - logInfo = GetClassName() + $"已运动到扫码起始位"; - MessageQueue.Instance.Insert(logInfo); + } + else + { + MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); + } + break; + case EUpCameraFixedScanBarCodeFlowStep.等待运动到扫码位上方: + if (Ops.IsStop(AxisAlias.LoadX, AxisAlias.LoadY) || GlobalVar.VirtualAxis) + { + Thread.Sleep(200); + + logInfo = GetClassName() + $"已运动到{SlotIndex}号穴位拍照位上方"; + MessageQueue.Instance.Insert(logInfo); + ImageProcess.ClearManualTrigger(); + HikCamera.Instance.SetTrigger("upCamera", ETriggerMode.Manual); + HikCamera.Instance.SetExposure("upCamera", GlobalVar.UpCameraExposureTime); + HikCamera.Instance.SetGain("upCamera", GlobalVar.UpCameraGain); + AxisControl.LoadX.ComparePulse(2, false); scanBarCodeWait.Restart(); - fixedStep = EUpCameraFixedScanBarCodeFlowStep.等待扫码结束; - } - break; - case EUpCameraFixedScanBarCodeFlowStep.等待扫码结束: - if(scanBarCodeWait.ElapsedMilliseconds<3000) + fixedStep = EUpCameraFixedScanBarCodeFlowStep.等待扫码结束; + } + break; + case EUpCameraFixedScanBarCodeFlowStep.等待扫码结束: + if (scanBarCodeWait.ElapsedMilliseconds < 3000) { HObject image = ImageProcess.GetManualImage(); if (image != null) { + logInfo = GetClassName() + "拍照完成"; + MessageQueue.Instance.Insert(logInfo); imageSingle = ImageRotate.Rotate(image, "upCamera"); fixedStep = EUpCameraFixedScanBarCodeFlowStep.拍照结果处理; } } else { + logInfo = GetClassName() + "拍照超时,重新拍照"; + MessageQueue.Instance.Warn(logInfo); fixedStep = EUpCameraFixedScanBarCodeFlowStep.到扫码位上方; } - - break; - case EUpCameraFixedScanBarCodeFlowStep.拍照结果处理: - singleResult = VisionManager.TurnoverTrayDumpProductOK(imageSingle, bNeedLocate, bNeedScanBarcode, SlotIndex); - singleResult.SlotIndex = SlotIndex; - exit = true; - //grabFinishedEvent.Set(); - break; - } + break; + case EUpCameraFixedScanBarCodeFlowStep.拍照结果处理: + singleResult = VisionManager.TurnoverTrayDumpProductOK(imageSingle, bNeedLocate, bNeedScanBarcode, SlotIndex); + singleResult.SlotIndex = SlotIndex; + exit = true; + logInfo = GetClassName() + "拍照处理完成"; + MessageQueue.Instance.Warn(logInfo); + break; } - //}); - + } return singleResult; }