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

develop
lhiven 11 months ago
parent 61d24a12c1
commit f6f19d992c

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

Loading…
Cancel
Save