From 227098ad624a59b3fa22cc3d1d0603be89141f8f Mon Sep 17 00:00:00 2001 From: lhiven <236881222@qq.com> Date: Wed, 21 Feb 2024 15:34:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BD=93=E6=8E=92=E6=96=99?= =?UTF-8?q?=E5=8F=96=E6=96=99=E5=A4=B1=E8=B4=A5=E5=90=8E=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=94=BE=E5=9B=9E=E7=A9=B4=E4=BD=8D=E6=97=B6=EF=BC=8C=E5=85=88?= =?UTF-8?q?=E6=89=93=E5=BC=80=E5=91=A8=E8=BD=AC=E7=9B=98=E7=9C=9F=E7=A9=BA?= =?UTF-8?q?=E5=90=B8=EF=BC=8C=E5=90=8C=E6=97=B6=E6=94=BE=E5=9B=9E=E7=A9=B4?= =?UTF-8?q?=E4=BD=8D=E5=90=8E=E6=89=93=E5=8D=B0=E5=91=A8=E8=BD=AC=E7=9B=98?= =?UTF-8?q?=E7=9C=9F=E7=A9=BA=E5=90=B8=E6=98=AF=E5=90=A6=E6=9C=89=E6=95=88?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Flow/SubFlow/DischargeDumpFlow.cs | 132 +++++++++++-------- 1 file changed, 76 insertions(+), 56 deletions(-) diff --git a/Rs.SkyLine/Flow/SubFlow/DischargeDumpFlow.cs b/Rs.SkyLine/Flow/SubFlow/DischargeDumpFlow.cs index 679b70d..d0cffcc 100644 --- a/Rs.SkyLine/Flow/SubFlow/DischargeDumpFlow.cs +++ b/Rs.SkyLine/Flow/SubFlow/DischargeDumpFlow.cs @@ -22,7 +22,7 @@ namespace Rs.MotionPlat.Flow.SubFlow 等待放料完成抬起 } /// - /// 排料头放料子流程 + /// 排料头取料失败后把产品重新放回穴位流程 /// public class DischargeDumpFlow { @@ -37,13 +37,10 @@ namespace Rs.MotionPlat.Flow.SubFlow } } - //private int NozzleIndex = 0; private string logInfo = string.Empty; - //private TurnoverType trayType; private EDischargeDumpFlowStep step = EDischargeDumpFlowStep.到放料位下方; private double targetPos = 0.0; ErrorCode errCode = ErrorCode.Ok; - //int toIndex = 0; bool finished = true; public void Start(TurnoverType trayType, int nozzleIndex,int toIndex) @@ -58,7 +55,7 @@ namespace Rs.MotionPlat.Flow.SubFlow } targetPos = 0.0; step = EDischargeDumpFlowStep.到放料位下方; - while (true && !finished) + while (!finished) { if (MachineManage.Instance.MachineStatus== EMachineStatus.Stop) { @@ -72,6 +69,8 @@ namespace Rs.MotionPlat.Flow.SubFlow MessageQueue.Instance.Insert(logInfo); if (trayType == TurnoverType.Turnover) { + ///*打开周转盘真空吸*/ + VacManager.TurnoverTrayVacSuction(EVacOperator.Open, false, toIndex + 1); targetPos = SysConfigParam.GetValue($"TurnoverNozzle{nozzleIndex}TakeHeight"); } else @@ -96,69 +95,78 @@ namespace Rs.MotionPlat.Flow.SubFlow MessageQueue.Instance.Insert(logInfo); if (trayType == TurnoverType.Turnover) { - /*打开周转盘真空吸*/ - logInfo = GetClassName() + $"打开周转盘{toIndex + 1}号穴位真空吸"; - MessageQueue.Instance.Insert(logInfo); - Ops.On($"周转盘{toIndex + 1}号穴位真空吸"); - Thread.Sleep(GlobalVar.TurnoverTrayOpenVacSuctionDelaytime); + ///*打开周转盘真空吸*/ + //logInfo = GetClassName() + $"打开周转盘{toIndex + 1}号穴位真空吸"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.On($"周转盘{toIndex + 1}号穴位真空吸"); + //Thread.Sleep(GlobalVar.TurnoverTrayOpenVacSuctionDelaytime); /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; - MessageQueue.Instance.Insert(logInfo); - Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀");//关闭真空 - Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀");//关闭真空 + //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + VacManager.DischargeVacSuction(EVacOperator.Close, true, nozzleIndex); + /*打开排料吸嘴真空破*/ - logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); - Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); - Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); - step = EDischargeDumpFlowStep.到放料关破真空位; + //logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); + //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); + VacManager.DischargeVacBreak(EVacOperator.Open, true, nozzleIndex); + /*关闭排料吸嘴真空破*/ + VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex); + step = EDischargeDumpFlowStep.放料完成抬起; } else { /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; - MessageQueue.Instance.Insert(logInfo); - Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀"); - Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀"); + //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + VacManager.DischargeVacSuction(EVacOperator.Close, true, nozzleIndex); /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); - Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); - Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); + //logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); + //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); + VacManager.DischargeVacBreak(EVacOperator.Open, true, nozzleIndex); /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); - Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); - Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); + //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); + //Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); + //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); + VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex); step = EDischargeDumpFlowStep.放料完成抬起; } } break; - case EDischargeDumpFlowStep.到放料关破真空位: - targetPos = SysConfigParam.GetValue($"TurnoverNozzle{nozzleIndex}TakeHeight"); - errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(targetPos + 1, GlobalVar.WholeSpeed); - if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) - { - logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴周转盘放料完成,准备微微抬起"; - MessageQueue.Instance.Insert(logInfo); - step = EDischargeDumpFlowStep.等待到放料关破真空位; - } - else - { - MsgBox.ShowAxisAlarmDialog($"NozzleZ{nozzleIndex}", errCode); - } - break; - case EDischargeDumpFlowStep.等待到放料关破真空位: - if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis) - { - /*关闭排料吸嘴真空破*/ - Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); - Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); - logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴微微抬起后关闭破真空"; - MessageQueue.Instance.Insert(logInfo); - step = EDischargeDumpFlowStep.放料完成抬起; - } - break; + //case EDischargeDumpFlowStep.到放料关破真空位: + // targetPos = SysConfigParam.GetValue($"TurnoverNozzle{nozzleIndex}TakeHeight"); + // errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(targetPos + 1, GlobalVar.WholeSpeed); + // if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) + // { + // logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴周转盘放料完成,准备微微抬起"; + // MessageQueue.Instance.Insert(logInfo); + // step = EDischargeDumpFlowStep.等待到放料关破真空位; + // } + // else + // { + // MsgBox.ShowAxisAlarmDialog($"NozzleZ{nozzleIndex}", errCode); + // } + // break; + //case EDischargeDumpFlowStep.等待到放料关破真空位: + // if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis) + // { + // /*关闭排料吸嘴真空破*/ + // //Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); + // //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); + // //logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴微微抬起后关闭破真空"; + // //MessageQueue.Instance.Insert(logInfo); + // VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex); + // step = EDischargeDumpFlowStep.放料完成抬起; + // } + // break; case EDischargeDumpFlowStep.放料完成抬起: errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(0, GlobalVar.WholeSpeed); if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) @@ -179,6 +187,18 @@ namespace Rs.MotionPlat.Flow.SubFlow case EDischargeDumpFlowStep.等待放料完成抬起: if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis) { + if(trayType== TurnoverType.Turnover) + { + //在这里检测一下周转盘的真空 + if(Ops.IsOn($"周转盘{toIndex + 1}号穴位真空吸检测")) + { + LogHelper.Debug($"周转盘{toIndex + 1}号穴位真空吸检测 OK"); + } + else + { + LogHelper.Debug($"周转盘{toIndex + 1}号穴位真空吸检测 NG"); + } + } logInfo = GetClassName()+ $"{nozzleIndex}号排料吸嘴放料完成已抬起"; MessageQueue.Instance.Insert(logInfo); finished = true;