diff --git a/Rs.SkyLine/Flow/TurnoverFlow.cs b/Rs.SkyLine/Flow/TurnoverFlow.cs index 1b98931..5a02a3e 100644 --- a/Rs.SkyLine/Flow/TurnoverFlow.cs +++ b/Rs.SkyLine/Flow/TurnoverFlow.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Windows.Forms; namespace Rs.MotionPlat.Flow { @@ -20,8 +21,10 @@ namespace Rs.MotionPlat.Flow 等待命令, 到周转盘取料位上方, 等待运动到周转盘取料位上方, - 到周转盘下方取料位, - 等待运动到周转盘下方取料位, + 到周转盘下方取料位1, + 等待运动到周转盘下方取料位1, + 到周转盘下方取料位2, + 等待运动到周转盘下方取料位2, 到周转盘取料破真空位, 等待到周转盘取料破真空位, 周转盘取料完成抬起, @@ -41,13 +44,16 @@ namespace Rs.MotionPlat.Flow 到测试保压位下方2, 等待到测试保压位下方2, - - 测试完成抬起, - 等待测试完成抬起, + 测试完成抬起到高速位, + 等待测试完成抬起到高速位, + 测试完成抬起安全位, + 等待测试完成抬起安全位, 到测试取料位上方, 等待到测试取料位上方, - 到测试取料位下方, - 等待到测试取料位下方, + 到测试取料位下方1, + 等待到测试取料位下方1, + 到测试取料位下方2, + 等待到测试取料位下方2, 到测试破真空位, 等待到测试破真空位, 测试位取料完成抬起, @@ -131,7 +137,7 @@ namespace Rs.MotionPlat.Flow if(pressUnload)//测试位下料 { pressUnload = false; - Step = ETurnoverFlowStep.测试完成抬起; + Step = ETurnoverFlowStep.测试完成抬起到高速位; } break; case ETurnoverFlowStep.到周转盘取料位上方: @@ -155,25 +161,47 @@ namespace Rs.MotionPlat.Flow logInfo = $"已运动到周转盘取料位上方 TurnoverY at:{Ops.GetCurPosition( AxisAlias.TurnoverY)}"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - Step = ETurnoverFlowStep.到周转盘下方取料位; + Step = ETurnoverFlowStep.到周转盘下方取料位1; } break; - case ETurnoverFlowStep.到周转盘下方取料位: - targetPos = SysConfigParam.GetValue("TurnoverTakeZ"); + case ETurnoverFlowStep.到周转盘下方取料位1: + targetPos = SysConfigParam.GetValue("TurnoverTakeZ") + GlobalVar.PressLowSpeedOffset; errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); if(errCode== Motion.ErrorCode.Ok) { logInfo = $"到周转盘下方取料位"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - Step = ETurnoverFlowStep.等待运动到周转盘下方取料位; + Step = ETurnoverFlowStep.等待运动到周转盘下方取料位1; + } + else + { + Msg.ShowError($"轴TurnoverZ运动异常 ret:{errCode}"); + } + break; + case ETurnoverFlowStep.等待运动到周转盘下方取料位1: + if (Ops.IsStop(AxisControl.TurnoverZ)) + { + logInfo = $"已运动到周转盘下方取料位 at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + Step = ETurnoverFlowStep.到周转盘下方取料位2; + } + break; + case ETurnoverFlowStep.到周转盘下方取料位2: + targetPos = SysConfigParam.GetValue("TurnoverTakeZ"); + errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed); + if (errCode == Motion.ErrorCode.Ok) + { + logInfo = $"到周转盘下方取料位"; + MessageQueue.Instance.Insert(logInfo); + LogHelper.Debug(logInfo); + Step = ETurnoverFlowStep.等待运动到周转盘下方取料位2; } else { Msg.ShowError($"轴TurnoverZ运动异常 ret:{errCode}"); } break; - case ETurnoverFlowStep.等待运动到周转盘下方取料位: + case ETurnoverFlowStep.等待运动到周转盘下方取料位2: if (Ops.IsStop(AxisControl.TurnoverZ)) { logInfo = $"已运动到周转盘下方取料位 at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; @@ -470,7 +498,28 @@ namespace Rs.MotionPlat.Flow break; //-----------------------------------------------测试位下料 - case ETurnoverFlowStep.测试完成抬起: + case ETurnoverFlowStep.测试完成抬起到高速位: + targetPos = SysConfigParam.GetValue("PressZ")+GlobalVar.PressLowSpeedOffset; + + errCode = AxisControl.PressZ.MovePos(targetPos, GlobalVar.PressLowSpeed); + if (errCode == Motion.ErrorCode.Ok) + { + logInfo = "测试完成准备抬起"; + MessageQueue.Instance.Insert(logInfo); + LogHelper.Debug(logInfo); + Step = ETurnoverFlowStep.等待测试完成抬起到高速位; + } + break; + case ETurnoverFlowStep.等待测试完成抬起到高速位: + if (Ops.IsStop(AxisControl.PressZ)) + { + logInfo = $"测试完成已抬起 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; + MessageQueue.Instance.Insert(logInfo); + LogHelper.Debug(logInfo); + Step = ETurnoverFlowStep.测试完成抬起安全位; + } + break; + case ETurnoverFlowStep.测试完成抬起安全位: targetPos = SysConfigParam.GetValue("PressSafeZ"); errCode = AxisControl.PressZ.MovePos(targetPos, GlobalVar.WholeSpeed); @@ -479,10 +528,10 @@ namespace Rs.MotionPlat.Flow logInfo = "测试完成准备抬起"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - Step = ETurnoverFlowStep.等待测试完成抬起; + Step = ETurnoverFlowStep.等待测试完成抬起安全位; } break; - case ETurnoverFlowStep.等待测试完成抬起: + case ETurnoverFlowStep.等待测试完成抬起安全位: if (Ops.IsStop(AxisControl.PressZ)) { logInfo = $"测试完成已抬起 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; @@ -509,22 +558,40 @@ namespace Rs.MotionPlat.Flow logInfo = $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - Step = ETurnoverFlowStep.到测试取料位下方; + Step = ETurnoverFlowStep.到测试取料位下方1; } break; - case ETurnoverFlowStep.到测试取料位下方: - targetPos = SysConfigParam.GetValue("PressTakeZ"); + case ETurnoverFlowStep.到测试取料位下方1: + targetPos = SysConfigParam.GetValue("PressTakeZ") + GlobalVar.PressLowSpeedOffset; errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); + if (errCode == Motion.ErrorCode.Ok) + { + logInfo = $"到测试取料位下方"; + MessageQueue.Instance.Insert(logInfo); + LogHelper.Debug(logInfo); + Step = ETurnoverFlowStep.等待到测试取料位下方1; + } + break; + + case ETurnoverFlowStep.等待到测试取料位下方1: + if (Ops.IsStop(AxisControl.TurnoverZ)) + { + Step = ETurnoverFlowStep.到测试取料位下方2; + } + break; + case ETurnoverFlowStep.到测试取料位下方2: + targetPos = SysConfigParam.GetValue("PressTakeZ"); + errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed); if(errCode== Motion.ErrorCode.Ok) { logInfo = $"到测试取料位下方"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - Step = ETurnoverFlowStep.等待到测试取料位下方; + Step = ETurnoverFlowStep.等待到测试取料位下方2; } break; - case ETurnoverFlowStep.等待到测试取料位下方: + case ETurnoverFlowStep.等待到测试取料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ)) { logInfo = $"已运动到测试取料位下方 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; @@ -550,8 +617,8 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); - targetPos = SysConfigParam.GetValue("PressTakeZ")+1; - errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); + targetPos = SysConfigParam.GetValue("PressTakeZ")+GlobalVar.PressLowSpeedOffset; + errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed); if (errCode == Motion.ErrorCode.Ok) { Step = ETurnoverFlowStep.等待到测试破真空位; @@ -600,8 +667,16 @@ namespace Rs.MotionPlat.Flow else { string msg = string.Join(",", ngList.ToArray()); - Msg.ShowError($"吸嘴{msg}真空值未达到,请处理后点击确定"); - Step = ETurnoverFlowStep.到周转盘放料位上方; + DialogResult dr = Msg.ShowError($"吸嘴{msg}真空值未达到,请处理", MessageBoxButtons.RetryCancel); + if(dr== DialogResult.Retry) + { + Step = ETurnoverFlowStep.到测试取料位上方; + } + else + { + Step = ETurnoverFlowStep.到周转盘放料位上方; + } + } break; case ETurnoverFlowStep.到周转盘放料位上方: