优化当排料到安全位之后才上报中控

develop
lhiven 11 months ago
parent 61d24a12c1
commit f6f19d992c

@ -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:

Loading…
Cancel
Save