|
|
|
@ -1285,7 +1285,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
else if (curNozzle.ToType == TurnoverType.Multifunction)
|
|
|
|
|
{
|
|
|
|
|
//如果吸嘴是1,并且最后一列
|
|
|
|
|
downSlot = GlobalTray.MultiTray.GetSlot(ESlotStatus.NotHave,true);
|
|
|
|
|
downSlot = GlobalTray.MultiTray.GetSlot(ESlotStatus.NotHave);
|
|
|
|
|
#region 为了解决第一个吸嘴到不了最后一列的问题
|
|
|
|
|
if (curNozzle.NozzleIndex == 1 && downSlot != null && (downSlot.Column == 7))
|
|
|
|
|
{
|
|
|
|
@ -2067,24 +2067,22 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
//检测一下是否需要换盘
|
|
|
|
|
{
|
|
|
|
|
#region 通知中控排料任务结束
|
|
|
|
|
if (curNozzle.ToType != TurnoverType.Turnover && !GlobalVar.CleanOut)
|
|
|
|
|
{
|
|
|
|
|
if (TestCenter.Instance.LoadResult())
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"通知中控任务完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
logInfo = GetClassName() + $"任务完成,清除任务";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//if (curNozzle.ToType != TurnoverType.Turnover && !GlobalVar.CleanOut)
|
|
|
|
|
//{
|
|
|
|
|
// if (TestCenter.Instance.LoadResult())
|
|
|
|
|
// {
|
|
|
|
|
// logInfo = GetClassName() + $"通知中控任务完成";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
// logInfo = GetClassName() + $"任务完成,清除任务";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
//先运动到安全位,再处理料盘有无
|
|
|
|
|
|
|
|
|
|
TraySlot slot = GlobalTray.InputTray.GetSlot(ESlotStatus.Have);
|
|
|
|
|
if (slot != null)
|
|
|
|
|
{
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>("LoadXStartPos");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>("LoadYStartPos");
|
|
|
|
|
errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed);
|
|
|
|
@ -2104,6 +2102,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
//AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString());
|
|
|
|
|
alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString());
|
|
|
|
|
AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
}
|
|
|
|
@ -2111,11 +2110,37 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
//AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString());
|
|
|
|
|
alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString());
|
|
|
|
|
AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.等待任务结束到安全位:
|
|
|
|
|
if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
PrintXYCurrentPos("轴XY已停止运动,");
|
|
|
|
|
//if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
if(!GlobalVar.CleanOut)
|
|
|
|
|
{
|
|
|
|
|
if (TestCenter.Instance.LoadResult())
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"通知中控任务完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
logInfo = GetClassName() + $"任务完成,清除任务";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
TurnoverFlow.Instance.CanMoveFromTestTrayToTurnoverTray();
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"任务结束已回到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
TraySlot slot = GlobalTray.InputTray.GetSlot(ESlotStatus.Have);
|
|
|
|
|
if (slot == null)
|
|
|
|
|
{
|
|
|
|
|
if (Ops.IsOn("2号料仓缺盘光电检测"))
|
|
|
|
|
{
|
|
|
|
@ -2138,65 +2163,73 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
});
|
|
|
|
|
StockManager.Instance.GetStock(ETrayType.Input).WaitFinished();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>("LoadXStartPos");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>("LoadYStartPos");
|
|
|
|
|
errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
//AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString());
|
|
|
|
|
alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString());
|
|
|
|
|
AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
//AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString());
|
|
|
|
|
alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString());
|
|
|
|
|
AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.等待任务结束到安全位:
|
|
|
|
|
if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
PrintXYCurrentPos("轴XY已停止运动,");
|
|
|
|
|
if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
if (TestCenter.Instance.LoadResult())
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"通知中控任务完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
logInfo = GetClassName() + $"任务完成,清除任务";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
}
|
|
|
|
|
TurnoverFlow.Instance.CanMoveFromTestTrayToTurnoverTray();
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"任务结束已回到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务;
|
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// if (Ops.IsOn("2号料仓缺盘光电检测"))
|
|
|
|
|
// {
|
|
|
|
|
// logInfo = GetClassName() + $"{curTask.FromType.ToString()}盘无料,准备切换料盘";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty1,
|
|
|
|
|
// () =>
|
|
|
|
|
// {
|
|
|
|
|
// Task.Run(() =>
|
|
|
|
|
// {
|
|
|
|
|
// StockManager.Instance.GetStock(ETrayType.Input).Load(EStockTrayLoadMode.Whole, null);
|
|
|
|
|
// });
|
|
|
|
|
// }, null,
|
|
|
|
|
// () =>
|
|
|
|
|
// {
|
|
|
|
|
// Task.Run(() =>
|
|
|
|
|
// {
|
|
|
|
|
// StockManager.Instance.GetStock(ETrayType.Empty1).Unload(EStockTrayUnLoadMode.Whole, null);
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
// StockManager.Instance.GetStock(ETrayType.Input).WaitFinished();
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// targetX = SysConfigParam.GetValue<double>("LoadXStartPos");
|
|
|
|
|
// targetY = SysConfigParam.GetValue<double>("LoadYStartPos");
|
|
|
|
|
// errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed);
|
|
|
|
|
// if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
// {
|
|
|
|
|
// errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed);
|
|
|
|
|
// if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
// {
|
|
|
|
|
// if (GlobalVar.VirtualAxis)
|
|
|
|
|
// {
|
|
|
|
|
// Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
// }
|
|
|
|
|
// logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}";
|
|
|
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
// flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
// //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString());
|
|
|
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString());
|
|
|
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
// //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString());
|
|
|
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString());
|
|
|
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|