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;