|
|
|
@ -632,6 +632,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ScanBarCode();
|
|
|
|
|
flowStep = EDischargeFlowStep.任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1542,6 +1543,89 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
{
|
|
|
|
|
if(curNozzle.ToType== TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
ScanBarCode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LoadAndUnloadTask.Instance.GetUnDealedTask().Count > 0)
|
|
|
|
|
{
|
|
|
|
|
StockTrayToTurnoverTray = !StockTrayToTurnoverTray;
|
|
|
|
|
flowStep = EDischargeFlowStep.到取料位上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EDischargeFlowStep.任务结束到安全位:
|
|
|
|
|
errCode = AxisControl.LoadX.MovePos(SysConfigParam.GetValue<double>("LoadXStartPos"), GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
//AxisControl.NozzleZ1.Home();
|
|
|
|
|
//AxisControl.NozzleZ2.Home();
|
|
|
|
|
//AxisControl.NozzleZ3.Home();
|
|
|
|
|
//AxisControl.NozzleZ4.Home();
|
|
|
|
|
//AxisControl.NozzleZ5.Home();
|
|
|
|
|
//AxisControl.NozzleZ6.Home();
|
|
|
|
|
//AxisControl.NozzleZ7.Home();
|
|
|
|
|
//AxisControl.NozzleZ8.Home();
|
|
|
|
|
|
|
|
|
|
//AxisControl.NozzleR1.Home();
|
|
|
|
|
//AxisControl.NozzleR2.Home();
|
|
|
|
|
//AxisControl.NozzleR3.Home();
|
|
|
|
|
//AxisControl.NozzleR4.Home();
|
|
|
|
|
//AxisControl.NozzleR5.Home();
|
|
|
|
|
//AxisControl.NozzleR6.Home();
|
|
|
|
|
//AxisControl.NozzleR7.Home();
|
|
|
|
|
//AxisControl.NozzleR8.Home();
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(SysConfigParam.GetValue<double>("LoadYStartPos"), GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
ZRHomeFlow.Instance.GoHome();
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo =GetClassName()+ $"排料任务结束到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.等待任务结束到安全位:
|
|
|
|
|
if(Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+ $"任务结束已回到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if (TestCenter.Instance.LoadResult())
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+ $"通知中控任务完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
logInfo = GetClassName()+$"任务完成,清除任务";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
}
|
|
|
|
|
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ScanBarCode()
|
|
|
|
|
{
|
|
|
|
|
SchedulingMessageBox box = new SchedulingMessageBox();
|
|
|
|
|
if (LoadAndUnloadTask.Instance.GetUndealedLoadToTurnoverTask().Count == 0 && !GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.GRR)
|
|
|
|
@ -1740,83 +1824,6 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (LoadAndUnloadTask.Instance.GetUnDealedTask().Count > 0)
|
|
|
|
|
{
|
|
|
|
|
StockTrayToTurnoverTray = !StockTrayToTurnoverTray;
|
|
|
|
|
flowStep = EDischargeFlowStep.到取料位上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EDischargeFlowStep.任务结束到安全位:
|
|
|
|
|
errCode = AxisControl.LoadX.MovePos(SysConfigParam.GetValue<double>("LoadXStartPos"), GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
//AxisControl.NozzleZ1.Home();
|
|
|
|
|
//AxisControl.NozzleZ2.Home();
|
|
|
|
|
//AxisControl.NozzleZ3.Home();
|
|
|
|
|
//AxisControl.NozzleZ4.Home();
|
|
|
|
|
//AxisControl.NozzleZ5.Home();
|
|
|
|
|
//AxisControl.NozzleZ6.Home();
|
|
|
|
|
//AxisControl.NozzleZ7.Home();
|
|
|
|
|
//AxisControl.NozzleZ8.Home();
|
|
|
|
|
|
|
|
|
|
//AxisControl.NozzleR1.Home();
|
|
|
|
|
//AxisControl.NozzleR2.Home();
|
|
|
|
|
//AxisControl.NozzleR3.Home();
|
|
|
|
|
//AxisControl.NozzleR4.Home();
|
|
|
|
|
//AxisControl.NozzleR5.Home();
|
|
|
|
|
//AxisControl.NozzleR6.Home();
|
|
|
|
|
//AxisControl.NozzleR7.Home();
|
|
|
|
|
//AxisControl.NozzleR8.Home();
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(SysConfigParam.GetValue<double>("LoadYStartPos"), GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
ZRHomeFlow.Instance.GoHome();
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo =GetClassName()+ $"排料任务结束到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务结束到安全位;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.等待任务结束到安全位:
|
|
|
|
|
if(Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+ $"任务结束已回到安全位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if (TestCenter.Instance.LoadResult())
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+ $"通知中控任务完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LoadAndUnloadTask.Instance.Clear();
|
|
|
|
|
logInfo = GetClassName()+$"任务完成,清除任务";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
}
|
|
|
|
|
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
|
|
|
|
|
flowStep = EDischargeFlowStep.等待任务;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 取料完成后更新吸嘴状态
|
|
|
|
|
/// </summary>
|
|
|
|
@ -1910,4 +1917,5 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
return $"{trayType}盘{slotIndex+1}穴位";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|