fromindex and toindex和中控保持一致

master
lhiven 2 years ago
parent fd901f4685
commit 6bdb8552eb

@ -44,14 +44,14 @@ namespace Rs.MotionPlat.Commom
public int FromFloor { get; set; }
/// <summary>
/// 周转信息
/// 周转信息(和中控保持一致)
/// </summary>
public int FromIndex { get; set; }
public TurnoverType ToType { get; set; }
public int ToFloor { get; set; }
/// <summary>
/// 周转信息
/// 周转信息(和中控保持一致)
/// </summary>
public int ToIndex { get; set; }

@ -149,7 +149,11 @@ namespace Rs.MotionPlat.Commom
DischargeFlow.Instance.Start();
TurnoverFlow.Instance.Start();
MachineManage.Instance.SetCenterMachineStatus(ERunStatus.Started);
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
var status = MachineManage.Instance.GetLoadUnloadStatus();
if(status!= ERunState.Busying && status!= ERunState.Unloading)
{
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
}
MachineManage.Instance.SetLocalMachineStatus(EMachineStatus.Working);
}
});

@ -59,18 +59,18 @@ namespace Rs.MotionPlat.Flow
,
,
,
,
,
,
,
Input,
Input,
Ok,
Ok,
Ng,
Ng,
Multi,
Multi,
//测试工位上料,
//等待测试工位上料完成,
//测试工位下料,
//等待测试工位下料完成,
//等待Input料盘搬运完成,
//等待Input料仓上料完成,
//等待Ok料仓收料完成,
//等待Ok料盘搬运完成,
//等待Ng料仓收料完成,
//等待Ng料盘搬运完成,
//等待Multi料仓收料完成,
//等待Multi料盘搬运完成,
IDLE
}
@ -190,11 +190,12 @@ namespace Rs.MotionPlat.Flow
if (XYCanMove() || GlobalVar.VirtualAxis)
{
curSlotPoint = null;
curNozzle.FromType=curTask.FromType;
if (curTask.FromType == TurnoverType.Turnover)
{
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Turnover, curTask.FromIndex + 1);
curNozzle.FromIndex = curTask.FromIndex + 1;
logInfo = GetClassName()+ $"{curNozzle.NozzleIndex}号排料吸嘴到周转盘{curTask.FromIndex + 1}号穴位取料";
curNozzle.FromIndex = curTask.FromIndex;
logInfo = GetClassName()+ $"排料吸嘴{curNozzle.NozzleIndex}号到周转盘{curNozzle.FromIndex + 1}号穴位取料";
MessageQueue.Instance.Insert(logInfo);
}
else if (curTask.FromType == TurnoverType.ToBeTested)
@ -203,13 +204,13 @@ namespace Rs.MotionPlat.Flow
if (slot != null)
{
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Input, slot.Index);
curNozzle.FromIndex= slot.Index;
logInfo =GetClassName()+ $"{curNozzle.NozzleIndex}号吸排料嘴去Input盘{slot.Index}号穴位取料";
curNozzle.FromIndex= slot.Index-1;
logInfo =GetClassName()+ $"排料吸嘴{curNozzle.NozzleIndex}号到Input盘{curNozzle.FromIndex+1}号穴位取料";
MessageQueue.Instance.Insert(logInfo);
}
else
{
logInfo = GetClassName()+ $"检测到Input料盘无料,准备切盘";
logInfo = GetClassName()+ $"检测到Input料盘无料,准备切换料盘";
MessageQueue.Instance.Insert(logInfo);
TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty1,
() =>
@ -286,7 +287,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop("LoadX", "LoadY", $"NozzleR{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+$"已运动到取料位上方";
logInfo = GetClassName()+$"已运动到{WitchTrayWitchSlot(curNozzle.FromType,curNozzle.FromIndex)}取料位上方";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -306,7 +307,7 @@ namespace Rs.MotionPlat.Flow
errCode = AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").MovePos(targetPos, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
{
logInfo = GetClassName() + $"到取料位下方";
logInfo = GetClassName() + $"到{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位取料位下方";
MessageQueue.Instance.Insert(logInfo);
if (GlobalVar.VirtualAxis)
{
@ -331,7 +332,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop($"NozzleZ{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+ $"已运动到取料位下方";
logInfo = GetClassName()+ $"已运动到{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位取料位下方";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -376,7 +377,7 @@ namespace Rs.MotionPlat.Flow
{
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
}
logInfo = GetClassName()+ $"取完成准备抬起";
logInfo = GetClassName()+ $"取{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位产品完成准备抬起";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -388,7 +389,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop($"NozzleZ{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+$"取完成已抬起";
logInfo = GetClassName()+$"取{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位产品完成已抬起";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -397,7 +398,7 @@ namespace Rs.MotionPlat.Flow
if (Ops.IsOn($"{curNozzle.NozzleIndex}号吸嘴真空吸检测") || GlobalVar.RunSpace || GlobalVar.VirtualAxis)
{
reFetchNum = 0;
logInfo = GetClassName()+$"{curNozzle.NozzleIndex}号排料吸嘴真空检测OK";
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号真空检测OK";
MessageQueue.Instance.Insert(logInfo);
UpdateNozzleStatus(curNozzle, curTask);
undoTaskNum = LoadAndUnloadTask.Instance.GetTaskNum(curTask.taskMode);
@ -789,7 +790,7 @@ namespace Rs.MotionPlat.Flow
{
if (curNozzle.ToType == TurnoverType.Turnover)
{
logInfo = GetClassName() + $"号排料吸嘴到周转盘{curNozzle.ToIndex + 1}号穴位上方";
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex + 1}号穴位上方";
MessageQueue.Instance.Insert(logInfo);
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Turnover, curNozzle.ToIndex + 1);
turnoverOffsetPoint = TurnoverSlotOffset.GetOffsetPoint(curNozzle.ToIndex + 1);
@ -811,10 +812,12 @@ namespace Rs.MotionPlat.Flow
else if (curNozzle.ToType == TurnoverType.Passed)
{
downSlot = GlobalTray.OkTary.GetSlot(ESlotStatus.NotHave);
if (downSlot != null)
{
curNozzle.ToIndex = downSlot.Index - 1;
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Ok, downSlot.Index);
logInfo = $"{nameof(DischargeFlow)}-{curNozzle.NozzleIndex}号排料吸嘴到OK盘{downSlot.Index}号穴位上方";
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex+1}号穴位上方";
MessageQueue.Instance.Insert(logInfo);
}
else
@ -824,8 +827,8 @@ namespace Rs.MotionPlat.Flow
() => { StockManager.Instance.GetStock(ETrayType.Empty2).Load(EStockTrayLoadMode.Whole, null); },
null,
() => { StockManager.Instance.GetStock(ETrayType.Ok).Load(EStockTrayLoadMode.AfterTakeTray, null);});
restoreFlowStep = EDischargeFlowStep.;
flowStep = EDischargeFlowStep.Ok;
//restoreFlowStep = EDischargeFlowStep.到放料位上方;
//flowStep = EDischargeFlowStep.等待Ok料盘搬运完成;
}
}
else if (curNozzle.ToType == TurnoverType.Failed)
@ -833,8 +836,9 @@ namespace Rs.MotionPlat.Flow
downSlot = GlobalTray.NgTray.GetSlot(ESlotStatus.NotHave);
if (downSlot != null)
{
curNozzle.ToIndex = downSlot.Index - 1;
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Ng, downSlot.Index);
logInfo = $"{nameof(DischargeFlow)}-{curNozzle.NozzleIndex}号排料吸嘴到NG盘{downSlot.Index}号穴位上方";
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex+1}号穴位上方";
MessageQueue.Instance.Insert(logInfo);
}
else
@ -844,8 +848,8 @@ namespace Rs.MotionPlat.Flow
() => { StockManager.Instance.GetStock(ETrayType.Empty2).Load(EStockTrayLoadMode.Whole, null); },
null,
() => { StockManager.Instance.GetStock(ETrayType.Ng).Load(EStockTrayLoadMode.AfterTakeTray, null); });
restoreFlowStep = EDischargeFlowStep.;
flowStep = EDischargeFlowStep.Ng;
//restoreFlowStep = EDischargeFlowStep.到放料位上方;
//flowStep = EDischargeFlowStep.等待Ng料盘搬运完成;
}
}
else if (curNozzle.ToType == TurnoverType.Multifunction)
@ -853,8 +857,9 @@ namespace Rs.MotionPlat.Flow
downSlot = GlobalTray.MultiTray.GetSlot(ESlotStatus.NotHave);
if (downSlot != null)
{
curNozzle.ToIndex = downSlot.Index - 1;
curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Multi, downSlot.Index);
logInfo = $"{nameof(DischargeFlow)}-{curNozzle.NozzleIndex}号排料吸嘴到Multi盘{downSlot.Index}号穴位上方";
logInfo =GetClassName()+ $"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex+1}号穴位上方";
MessageQueue.Instance.Insert(logInfo);
}
else
@ -864,8 +869,8 @@ namespace Rs.MotionPlat.Flow
() => { StockManager.Instance.GetStock(ETrayType.Empty2).Load(EStockTrayLoadMode.Whole, null); },
null,
() => { StockManager.Instance.GetStock(ETrayType.Multi).Load(EStockTrayLoadMode.AfterTakeTray, null); });
restoreFlowStep = EDischargeFlowStep.;
flowStep = EDischargeFlowStep.Multi;
//restoreFlowStep = EDischargeFlowStep.到放料位上方;
//flowStep = EDischargeFlowStep.等待Multi料盘搬运完成;
}
}
}
@ -924,7 +929,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop("LoadX", "LoadY",$"NozzleR{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+$"{curNozzle.NozzleIndex}号排料吸嘴已运动到放料位上方";
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号已运动到{WitchTrayWitchSlot(curNozzle.ToType,curNozzle.ToIndex)}放料位上方";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -974,7 +979,14 @@ namespace Rs.MotionPlat.Flow
}
else
{
flowStep = EDischargeFlowStep.;
if (curNozzle.Status == ENozzleStatus.ToUnload)
{
flowStep = EDischargeFlowStep.;
}
else
{
flowStep = EDischargeFlowStep.;
}
}
}
else
@ -1002,7 +1014,7 @@ namespace Rs.MotionPlat.Flow
errCode = AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").MovePos(targetPos, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
{
logInfo = GetClassName() + $"{curNozzle.NozzleIndex}号排料吸嘴到放料位下方";
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号到{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料位下方";
MessageQueue.Instance.Insert(logInfo);
VirtualAxisSleep();
flowStep = EDischargeFlowStep.;
@ -1015,7 +1027,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop($"NozzleZ{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+ $"{curNozzle.NozzleIndex}号排料吸嘴已运动到放料位下方";
logInfo = GetClassName()+ $"排料吸嘴{curNozzle.NozzleIndex}号已运动到{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料位下方";
MessageQueue.Instance.Insert(logInfo);
if (curNozzle.ToType == TurnoverType.Turnover)
{
@ -1062,7 +1074,7 @@ namespace Rs.MotionPlat.Flow
errCode = AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").MovePos(targetPos, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
{
logInfo = GetClassName() + $"{curNozzle.NozzleIndex}号排料吸嘴周转盘放料完成,准备抬起{GlobalVar.DischargeNozzleDumpTurnoverTrayOffset}mm后关闭破真空";
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号周转盘放料完成,准备抬起{GlobalVar.DischargeNozzleDumpTurnoverTrayOffset}mm后关闭破真空";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -1077,7 +1089,7 @@ namespace Rs.MotionPlat.Flow
/*关闭排料吸嘴真空破*/
Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime);
logInfo = GetClassName() + $"{curNozzle.NozzleIndex}号排料吸嘴抬起{GlobalVar.DischargeNozzleDumpTurnoverTrayOffset}mm后关闭破真空";
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号抬起{GlobalVar.DischargeNozzleDumpTurnoverTrayOffset}mm后关闭破真空";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -1086,7 +1098,7 @@ namespace Rs.MotionPlat.Flow
errCode = AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").MovePos(0, GlobalVar.WholeSpeed);
if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis)
{
logInfo = GetClassName() + $"{curNozzle.NozzleIndex}号排料吸嘴放料完成抬起";
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料完成抬起";
MessageQueue.Instance.Insert(logInfo);
if (GlobalVar.VirtualAxis)
{
@ -1102,7 +1114,7 @@ namespace Rs.MotionPlat.Flow
case EDischargeFlowStep.:
if (Ops.IsStop($"NozzleZ{curNozzle.NozzleIndex}") || GlobalVar.VirtualAxis)
{
logInfo = GetClassName()+$"{curNozzle.NozzleIndex}号排料吸嘴放料完成已起位,准备真空检测";
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料完成已起位,准备真空检测";
MessageQueue.Instance.Insert(logInfo);
flowStep = EDischargeFlowStep.;
}
@ -1116,7 +1128,7 @@ namespace Rs.MotionPlat.Flow
while(!skip)
{
//粘料报警,提示用户粘料,移动到安全位,或者点击跳过
alarmInfo = $"{curNozzle.NozzleIndex}号吸嘴可能粘料,请查看吸嘴状态后处理";
alarmInfo = $"排料吸嘴{curNozzle.NozzleIndex}号可能粘料,请查看吸嘴状态后处理";
TestCenterMessageBox.Show(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());
msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzleTackinessAlarm);
switch (msgBox.Button)
@ -1224,13 +1236,14 @@ namespace Rs.MotionPlat.Flow
// break;
#endregion
case EDischargeFlowStep.:
logInfo = GetClassName()+ $"{curNozzle.ToType}盘放料任务完成";
MessageQueue.Instance.Insert(logInfo);
//AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();
//MessageQueue.Instance.Insert($"{curNozzle.NozzleIndex}号排料吸嘴回原");
//Ops.HomeAndGoStartPos($"NozzleR{NozzleIndex}");
if (curNozzle.Status == ENozzleStatus.ToUnload)
{
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料任务完成";
MessageQueue.Instance.Insert(logInfo);
if (curNozzle.ToType == TurnoverType.Turnover)
{
GlobalTray.TurnoverTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
@ -1239,27 +1252,27 @@ namespace Rs.MotionPlat.Flow
}
else if (curNozzle.ToType == TurnoverType.ToBeTested)
{
curNozzle.ToIndex = downSlot.Index - 1;
//curNozzle.ToIndex = downSlot.Index - 1;
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Input).GetFloor();
GlobalTray.InputTray.ChangeStatus(downSlot.Index, ESlotStatus.Have);
GlobalTray.InputTray.ChangeStatus(curNozzle.ToIndex+1, ESlotStatus.Have);
}
else if (curNozzle.ToType == TurnoverType.Passed)
{
curNozzle.ToIndex = downSlot.Index - 1;
//curNozzle.ToIndex = downSlot.Index - 1;
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ok).GetFloor();
GlobalTray.OkTary.ChangeStatus(downSlot.Index, ESlotStatus.Ok);
GlobalTray.OkTary.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Ok);
}
else if (curNozzle.ToType == TurnoverType.Failed)
{
curNozzle.ToIndex = downSlot.Index - 1;
//curNozzle.ToIndex = downSlot.Index - 1;
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ng).GetFloor();
GlobalTray.NgTray.ChangeStatus(downSlot.Index, ESlotStatus.Ng);
GlobalTray.NgTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Ng);
}
else if (curNozzle.ToType == TurnoverType.Multifunction)
{
curNozzle.ToIndex = downSlot.Index - 1;
//curNozzle.ToIndex = downSlot.Index - 1;
curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Multi).GetFloor();
GlobalTray.MultiTray.ChangeStatus(downSlot.Index, ESlotStatus.Have);
GlobalTray.MultiTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have);
}
LoadAndUnloadTask.Instance.AddTurnoverResult(curNozzle);
}
@ -1355,36 +1368,36 @@ namespace Rs.MotionPlat.Flow
flowStep = EDischargeFlowStep.;
}
break;
case EDischargeFlowStep.:
testLoadList = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks();
TurnoverFlow.Instance.PressLoad(testLoadList);
flowStep = EDischargeFlowStep.;
break;
case EDischargeFlowStep.:
if (TurnoverFlow.Instance.LoadFinished())
{
TestCenter.Instance.LoadTestLoadResult();
//切换穴位状态
foreach (TurnoverInfo turnoverInfo in testLoadList)
{
GlobalTray.TurnoverTray.ChangeStatus(turnoverInfo.FromIndex+1, ESlotStatus.NotHave);
}
LoadAndUnloadTask.Instance.Clear();
MachineManage.Instance.SetTesterState(ETesterState.Ready);
MessageQueue.Instance.Insert("通知中控测试位就绪,可以开始测试");
//MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
//case EDischargeFlowStep.测试工位上料:
// testLoadList = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks();
// TurnoverFlow.Instance.PressLoad(testLoadList);
// flowStep = EDischargeFlowStep.等待测试工位上料完成;
// break;
//case EDischargeFlowStep.等待测试工位上料完成:
// if (TurnoverFlow.Instance.LoadFinished())
// {
// TestCenter.Instance.LoadTestLoadResult();
// //切换穴位状态
// foreach (TurnoverInfo turnoverInfo in testLoadList)
// {
// GlobalTray.TurnoverTray.ChangeStatus(turnoverInfo.FromIndex+1, ESlotStatus.NotHave);
// }
// LoadAndUnloadTask.Instance.Clear();
// MachineManage.Instance.SetTesterState(ETesterState.Ready);
// MessageQueue.Instance.Insert("通知中控测试位就绪,可以开始测试");
// //MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
//for (int i = 1; i < 9; i++)
//{
// GlobalTray.TurnoverTray.ChangeStatus(i, ESlotStatus.NotHave);
//}
//for (int i = 17; i < 25; i++)
//{
// GlobalTray.TurnoverTray.ChangeStatus(i, ESlotStatus.NotHave);
//}
flowStep = EDischargeFlowStep.;
}
break;
// //for (int i = 1; i < 9; i++)
// //{
// // GlobalTray.TurnoverTray.ChangeStatus(i, ESlotStatus.NotHave);
// //}
// //for (int i = 17; i < 25; i++)
// //{
// // GlobalTray.TurnoverTray.ChangeStatus(i, ESlotStatus.NotHave);
// //}
// flowStep = EDischargeFlowStep.等待任务;
// }
// break;
//case EDischargeFlowStep.等待Input料盘搬运完成:
// if(TakeTrayFlow.Instance.TakeStatus== ETakeStatus.TakeOK)
// {
@ -1453,7 +1466,7 @@ namespace Rs.MotionPlat.Flow
private void UpdateNozzleStatus(Nozzle nozzle,TurnoverInfo turnoverInfo)
{
nozzle.Status = ENozzleStatus.ToUnload;
nozzle.FromType = turnoverInfo.FromType;
//nozzle.FromType = turnoverInfo.FromType;
nozzle.ToType = turnoverInfo.ToType;
nozzle.ToIndex = turnoverInfo.ToIndex;
turnoverInfo.SuckerNo = nozzle.NozzleIndex;
@ -1462,15 +1475,15 @@ namespace Rs.MotionPlat.Flow
{
nozzle.FromFloor = turnoverInfo.FromFloor;
nozzle.SN = turnoverInfo.SN;
nozzle.FromIndex = turnoverInfo.FromIndex;
GlobalTray.TurnoverTray.ChangeStatus(turnoverInfo.FromIndex + 1, ESlotStatus.NotHave);
//nozzle.FromIndex = turnoverInfo.FromIndex;
GlobalTray.TurnoverTray.ChangeStatus(nozzle.FromIndex + 1, ESlotStatus.NotHave);
}
else if (turnoverInfo.FromType == TurnoverType.ToBeTested)
{
nozzle.FromFloor = StockManager.Instance.GetStock(ETrayType.Input).GetFloor();
nozzle.SN = "";
nozzle.FromIndex = GlobalTray.InputTray.GetSlot(ESlotStatus.Have).Index - 1;
GlobalTray.InputTray.ChangeStatus(GlobalTray.InputTray.GetSlot(ESlotStatus.Have).Index, ESlotStatus.NotHave);
//nozzle.FromIndex = GlobalTray.InputTray.GetSlot(ESlotStatus.Have).Index - 1;
GlobalTray.InputTray.ChangeStatus(nozzle.FromIndex+1, ESlotStatus.NotHave);
}
nozzle.Update();
turnoverInfo.Dealed = true;
@ -1543,5 +1556,16 @@ namespace Rs.MotionPlat.Flow
return flowStep.ToString();
}
/// <summary>
/// 到哪个盘哪个穴位
/// </summary>
/// <param name="trayType"></param>
/// <param name="slotIndex"></param>
/// <returns></returns>
public string WitchTrayWitchSlot(TurnoverType trayType,int slotIndex)
{
return $"{trayType}盘{slotIndex}穴位";
}
}
}

Loading…
Cancel
Save