From 6bdb8552eb5f279856d783c267adc0565cb4de2a Mon Sep 17 00:00:00 2001 From: lhiven <2366881222@qq.com> Date: Sun, 3 Dec 2023 13:05:21 +0800 Subject: [PATCH] =?UTF-8?q?fromindex=20and=20toindex=E5=92=8C=E4=B8=AD?= =?UTF-8?q?=E6=8E=A7=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Commom/NozzleCollection.cs | 4 +- Rs.SkyLine/Commom/Ops.cs | 6 +- Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 196 +++++++++++--------- 3 files changed, 117 insertions(+), 89 deletions(-) diff --git a/Rs.SkyLine/Commom/NozzleCollection.cs b/Rs.SkyLine/Commom/NozzleCollection.cs index 1224702..0b7a7c1 100644 --- a/Rs.SkyLine/Commom/NozzleCollection.cs +++ b/Rs.SkyLine/Commom/NozzleCollection.cs @@ -44,14 +44,14 @@ namespace Rs.MotionPlat.Commom public int FromFloor { get; set; } /// - /// 周转信息 + /// 周转信息(和中控保持一致) /// public int FromIndex { get; set; } public TurnoverType ToType { get; set; } public int ToFloor { get; set; } /// - /// 周转信息 + /// 周转信息(和中控保持一致) /// public int ToIndex { get; set; } diff --git a/Rs.SkyLine/Commom/Ops.cs b/Rs.SkyLine/Commom/Ops.cs index 8ebc49f..0da5752 100644 --- a/Rs.SkyLine/Commom/Ops.cs +++ b/Rs.SkyLine/Commom/Ops.cs @@ -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); } }); diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index d3e4bac..4b5558e 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -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(); } + /// + /// 到哪个盘哪个穴位 + /// + /// + /// + /// + public string WitchTrayWitchSlot(TurnoverType trayType,int slotIndex) + { + return $"{trayType}盘{slotIndex}穴位"; + } + } }