|
|
|
@ -22,7 +22,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
|
|
|
|
|
等待放料完成抬起
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 排料头放料子流程
|
|
|
|
|
/// 排料头取料失败后把产品重新放回穴位流程
|
|
|
|
|
/// </summary>
|
|
|
|
|
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<double>($"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<double>($"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<double>($"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;
|
|
|
|
|