优化当排料取料失败后重新放回穴位时,先打开周转盘真空吸,同时放回穴位后打印周转盘真空吸是否有效日志

master
lhiven 1 year ago
parent dbabf67eda
commit 227098ad62

@ -22,7 +22,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
} }
/// <summary> /// <summary>
/// 排料头放料子流程 /// 排料头取料失败后把产品重新放回穴位流程
/// </summary> /// </summary>
public class DischargeDumpFlow public class DischargeDumpFlow
{ {
@ -37,13 +37,10 @@ namespace Rs.MotionPlat.Flow.SubFlow
} }
} }
//private int NozzleIndex = 0;
private string logInfo = string.Empty; private string logInfo = string.Empty;
//private TurnoverType trayType;
private EDischargeDumpFlowStep step = EDischargeDumpFlowStep.; private EDischargeDumpFlowStep step = EDischargeDumpFlowStep.;
private double targetPos = 0.0; private double targetPos = 0.0;
ErrorCode errCode = ErrorCode.Ok; ErrorCode errCode = ErrorCode.Ok;
//int toIndex = 0;
bool finished = true; bool finished = true;
public void Start(TurnoverType trayType, int nozzleIndex,int toIndex) public void Start(TurnoverType trayType, int nozzleIndex,int toIndex)
@ -58,7 +55,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
} }
targetPos = 0.0; targetPos = 0.0;
step = EDischargeDumpFlowStep.; step = EDischargeDumpFlowStep.;
while (true && !finished) while (!finished)
{ {
if (MachineManage.Instance.MachineStatus== EMachineStatus.Stop) if (MachineManage.Instance.MachineStatus== EMachineStatus.Stop)
{ {
@ -72,6 +69,8 @@ namespace Rs.MotionPlat.Flow.SubFlow
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
if (trayType == TurnoverType.Turnover) if (trayType == TurnoverType.Turnover)
{ {
///*打开周转盘真空吸*/
VacManager.TurnoverTrayVacSuction(EVacOperator.Open, false, toIndex + 1);
targetPos = SysConfigParam.GetValue<double>($"TurnoverNozzle{nozzleIndex}TakeHeight"); targetPos = SysConfigParam.GetValue<double>($"TurnoverNozzle{nozzleIndex}TakeHeight");
} }
else else
@ -96,69 +95,78 @@ namespace Rs.MotionPlat.Flow.SubFlow
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
if (trayType == TurnoverType.Turnover) if (trayType == TurnoverType.Turnover)
{ {
/*打开周转盘真空吸*/ ///*打开周转盘真空吸*/
logInfo = GetClassName() + $"打开周转盘{toIndex + 1}号穴位真空吸"; //logInfo = GetClassName() + $"打开周转盘{toIndex + 1}号穴位真空吸";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.On($"周转盘{toIndex + 1}号穴位真空吸"); //Ops.On($"周转盘{toIndex + 1}号穴位真空吸");
Thread.Sleep(GlobalVar.TurnoverTrayOpenVacSuctionDelaytime); //Thread.Sleep(GlobalVar.TurnoverTrayOpenVacSuctionDelaytime);
/*关闭排料吸嘴真空吸*/ /*关闭排料吸嘴真空吸*/
logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀");//关闭真空 //Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀");//关闭真空
Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime);
VacManager.DischargeVacSuction(EVacOperator.Close, true, nozzleIndex);
/*打开排料吸嘴真空破*/ /*打开排料吸嘴真空破*/
logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; //logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); //Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime);
step = EDischargeDumpFlowStep.; VacManager.DischargeVacBreak(EVacOperator.Open, true, nozzleIndex);
/*关闭排料吸嘴真空破*/
VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex);
step = EDischargeDumpFlowStep.;
} }
else else
{ {
/*关闭排料吸嘴真空吸*/ /*关闭排料吸嘴真空吸*/
logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸"; //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空吸";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀"); //Ops.Off($"{nozzleIndex}号吸嘴真空吸电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime);
VacManager.DischargeVacSuction(EVacOperator.Close, true, nozzleIndex);
/*关闭排料吸嘴真空吸*/ /*关闭排料吸嘴真空吸*/
logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破"; //logInfo = GetClassName() + $"打开{nozzleIndex}号排料吸嘴真空破";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀"); //Ops.On($"{nozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime);
VacManager.DischargeVacBreak(EVacOperator.Open, true, nozzleIndex);
/*关闭排料吸嘴真空吸*/ /*关闭排料吸嘴真空吸*/
logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空破"; //logInfo = GetClassName() + $"关闭{nozzleIndex}号排料吸嘴真空破";
MessageQueue.Instance.Insert(logInfo); //MessageQueue.Instance.Insert(logInfo);
Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); //Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime);
VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex);
step = EDischargeDumpFlowStep.; step = EDischargeDumpFlowStep.;
} }
} }
break; break;
case EDischargeDumpFlowStep.: //case EDischargeDumpFlowStep.到放料关破真空位:
targetPos = SysConfigParam.GetValue<double>($"TurnoverNozzle{nozzleIndex}TakeHeight"); // targetPos = SysConfigParam.GetValue<double>($"TurnoverNozzle{nozzleIndex}TakeHeight");
errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(targetPos + 1, GlobalVar.WholeSpeed); // errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(targetPos + 1, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) // if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
{ // {
logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴周转盘放料完成,准备微微抬起"; // logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴周转盘放料完成,准备微微抬起";
MessageQueue.Instance.Insert(logInfo); // MessageQueue.Instance.Insert(logInfo);
step = EDischargeDumpFlowStep.; // step = EDischargeDumpFlowStep.等待到放料关破真空位;
} // }
else // else
{ // {
MsgBox.ShowAxisAlarmDialog($"NozzleZ{nozzleIndex}", errCode); // MsgBox.ShowAxisAlarmDialog($"NozzleZ{nozzleIndex}", errCode);
} // }
break; // break;
case EDischargeDumpFlowStep.: //case EDischargeDumpFlowStep.等待到放料关破真空位:
if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis) // if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis)
{ // {
/*关闭排料吸嘴真空破*/ // /*关闭排料吸嘴真空破*/
Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀"); // //Ops.Off($"{nozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); // //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime);
logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴微微抬起后关闭破真空"; // //logInfo = GetClassName() + $"{nozzleIndex}号排料吸嘴微微抬起后关闭破真空";
MessageQueue.Instance.Insert(logInfo); // //MessageQueue.Instance.Insert(logInfo);
step = EDischargeDumpFlowStep.; // VacManager.DischargeVacBreak(EVacOperator.Close, false, nozzleIndex);
} // step = EDischargeDumpFlowStep.放料完成抬起;
break; // }
// break;
case EDischargeDumpFlowStep.: case EDischargeDumpFlowStep.:
errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(0, GlobalVar.WholeSpeed); errCode = AxisControl.GetAxis($"NozzleZ{nozzleIndex}").MovePos(0, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
@ -179,6 +187,18 @@ namespace Rs.MotionPlat.Flow.SubFlow
case EDischargeDumpFlowStep.: case EDischargeDumpFlowStep.:
if (Ops.IsStop($"NozzleZ{nozzleIndex}") || GlobalVar.VirtualAxis) 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}号排料吸嘴放料完成已抬起"; logInfo = GetClassName()+ $"{nozzleIndex}号排料吸嘴放料完成已抬起";
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
finished = true; finished = true;

Loading…
Cancel
Save