From 52ce6ca2adf28bed71e4c49b19c38fb9ac7ef336 Mon Sep 17 00:00:00 2001 From: lhiven <2366881222@qq.com> Date: Tue, 5 Dec 2023 08:07:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=8E=E5=91=A8=E8=BD=AC?= =?UTF-8?q?=E7=9B=98=E5=88=B0=E6=B5=8B=E8=AF=95=E6=B2=BB=E5=85=B7=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Commom/VacManager.cs | 12 +- Rs.SkyLine/Entitys/TransitNozzleManager.cs | 18 +- Rs.SkyLine/Entitys/Trays/BaseTraySlot.cs | 9 - Rs.SkyLine/Entitys/Trays/TestTrayManager.cs | 12 +- .../Entitys/Trays/TurnoverTrayManager.cs | 9 + Rs.SkyLine/Flow/LoadAndUnloadTask.cs | 54 ++++- Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 6 +- Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs | 193 ++++++++++-------- 8 files changed, 192 insertions(+), 121 deletions(-) diff --git a/Rs.SkyLine/Commom/VacManager.cs b/Rs.SkyLine/Commom/VacManager.cs index d4728df..5119f41 100644 --- a/Rs.SkyLine/Commom/VacManager.cs +++ b/Rs.SkyLine/Commom/VacManager.cs @@ -96,23 +96,23 @@ namespace Rs.MotionPlat.Commom { if (eOperator == EVacOperator.Open) { - Ops.On($"周转{index}号吸嘴真空破"); + Ops.On($"周转盘{index}号吸嘴真空破"); } else { - Ops.Off($"周转{index}号吸嘴真空破"); + Ops.Off($"周转盘{index}号吸嘴真空破"); } } if (eOperator == EVacOperator.Open) { Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); - MessageQueue.Instance.Insert($"打开周转{string.Join(",", indexes)}号吸嘴真空破"); + MessageQueue.Instance.Insert($"打开周转盘{indexes.ToJoinString()}号真空破"); } else { Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); - MessageQueue.Instance.Insert($"关闭周转{string.Join(",", indexes)}号吸嘴真空破"); + MessageQueue.Instance.Insert($"关闭周转盘{indexes.ToJoinString()}号真空破"); } } } @@ -141,12 +141,12 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacSuctionDelaytime); - MessageQueue.Instance.Insert($"打开周转{string.Join(",", indexes)}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"打开周转吸嘴{string.Join(",", indexes)}号真空吸"); } else { Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacSuctionDelaytime); - MessageQueue.Instance.Insert($"关闭周转{string.Join(",", indexes)}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"关闭周转吸嘴{string.Join(",", indexes)}号真空吸"); } } } diff --git a/Rs.SkyLine/Entitys/TransitNozzleManager.cs b/Rs.SkyLine/Entitys/TransitNozzleManager.cs index 025d764..c4dc778 100644 --- a/Rs.SkyLine/Entitys/TransitNozzleManager.cs +++ b/Rs.SkyLine/Entitys/TransitNozzleManager.cs @@ -68,16 +68,30 @@ namespace Rs.MotionPlat.Commom { IsHasProduct = true; SN = testTraySlot.SN; - FromIndex = testTraySlot.Index; + FromIndex = testTraySlot.Index-1; FromType = TurnoverType.Tester; } public void AddProduct(TurnoverTraySlot turnoverTraySlot) { IsHasProduct = true; SN=turnoverTraySlot.SN; - FromIndex = turnoverTraySlot.Index; + FromIndex = turnoverTraySlot.Index-1; FromType = TurnoverType.Turnover; } + + + public void AddProduct(TurnoverInfo task) + { + IsHasProduct = true; + SN = task.SN; + FromIndex = task.FromIndex; + FromType = task.FromType; + ToIndex= task.ToIndex; + ToType= task.ToType; + ToFloor= task.ToFloor; + } + + public void Clear(bool closeVac=false) { IsHasProduct = false; diff --git a/Rs.SkyLine/Entitys/Trays/BaseTraySlot.cs b/Rs.SkyLine/Entitys/Trays/BaseTraySlot.cs index 716df51..0735134 100644 --- a/Rs.SkyLine/Entitys/Trays/BaseTraySlot.cs +++ b/Rs.SkyLine/Entitys/Trays/BaseTraySlot.cs @@ -39,15 +39,6 @@ namespace Rs.MotionPlat.Entitys.Trays /// public int SuckerNo { get; set; } - public void AddProduct(string sn, int fromIndex, TurnoverType fromType, int suckerNo) - { - IsHasProduct = true; - SN = sn; - FromIndex = fromIndex; - FromType = fromType; - SuckerNo = suckerNo; - } - public void ClearProduct() { IsHasProduct = false; diff --git a/Rs.SkyLine/Entitys/Trays/TestTrayManager.cs b/Rs.SkyLine/Entitys/Trays/TestTrayManager.cs index e26d615..ed00eab 100644 --- a/Rs.SkyLine/Entitys/Trays/TestTrayManager.cs +++ b/Rs.SkyLine/Entitys/Trays/TestTrayManager.cs @@ -121,7 +121,7 @@ namespace Rs.MotionPlat.Entitys.Trays ti.GUID = GuidHelper.Create(); ti.FromType = slot.FromType; ti.FromFloor = 1; - ti.FromIndex = slot.FromIndex-1; + ti.FromIndex = slot.FromIndex; ti.SN = slot.SN; ti.ToType = TurnoverType.Tester; ti.ToFloor = Floor++; @@ -137,6 +137,7 @@ namespace Rs.MotionPlat.Entitys.Trays string content = JsonConvert.SerializeObject(infos, new StringEnumConverter()); return content; } + } public class TestTraySlot:BaseTraySlot @@ -150,5 +151,14 @@ namespace Rs.MotionPlat.Entitys.Trays /// public bool IsFiberException { get; set; } = false; + public void AddProduct(TransitNozzle nozzle) + { + IsHasProduct = true; + SN = nozzle.SN; + FromIndex = nozzle.FromIndex; + FromType = nozzle.FromType; + SuckerNo = nozzle.NozzleIndex; + } + } } diff --git a/Rs.SkyLine/Entitys/Trays/TurnoverTrayManager.cs b/Rs.SkyLine/Entitys/Trays/TurnoverTrayManager.cs index 15da153..b514f66 100644 --- a/Rs.SkyLine/Entitys/Trays/TurnoverTrayManager.cs +++ b/Rs.SkyLine/Entitys/Trays/TurnoverTrayManager.cs @@ -145,6 +145,15 @@ namespace Rs.MotionPlat.Entitys.Trays SuckerNo = nozzle.NozzleIndex; } + public void AddProduct(TransitNozzle nozzle) + { + IsHasProduct = true; + SN = nozzle.SN; + FromIndex = nozzle.FromIndex; + FromType = nozzle.FromType; + SuckerNo = nozzle.NozzleIndex; + } + public bool HasVac() { if (Ops.IsOn("")) diff --git a/Rs.SkyLine/Flow/LoadAndUnloadTask.cs b/Rs.SkyLine/Flow/LoadAndUnloadTask.cs index 0a551bd..40dc5f0 100644 --- a/Rs.SkyLine/Flow/LoadAndUnloadTask.cs +++ b/Rs.SkyLine/Flow/LoadAndUnloadTask.cs @@ -180,7 +180,7 @@ namespace Rs.MotionPlat.Flow } /// - /// 发送上下料结果给中控 + /// 获取测试治具上料的任务信息 /// /// /// @@ -204,15 +204,16 @@ namespace Rs.MotionPlat.Flow TurnoverInfo ti = new TurnoverInfo(); ti.GUID = GuidHelper.Create(); ti.FromType = nozzle.FromType; - ti.FromFloor = 1; + ti.FromFloor = nozzle.FromFloor; ti.FromIndex = nozzle.FromIndex; ti.SN = nozzle.SN; - ti.ToType = TurnoverType.Tester; - ti.ToFloor = TestTrayManager.Instance.Floor; - ti.ToIndex = nozzle.NozzleIndex - 1; + ti.ToType = nozzle.ToType; + ti.ToFloor =nozzle.ToFloor; + ti.ToIndex = nozzle.ToIndex; + ti.SuckerNo = nozzle.NozzleIndex; turnoverInfos.Add(ti); } - //2、先获取测试盘中有产品的穴位 + //2、获取测试盘中有产品的穴位 List testSlots = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have); foreach (TestTraySlot slot in testSlots) { @@ -220,11 +221,11 @@ namespace Rs.MotionPlat.Flow ti.GUID = GuidHelper.Create(); ti.FromType = slot.FromType; ti.FromFloor = 1; - ti.FromIndex = slot.FromIndex - 1; + ti.FromIndex = slot.FromIndex; ti.SN = slot.SN; ti.ToType = TurnoverType.Tester; - ti.ToFloor = TestTrayManager.Instance.Floor++; - ti.ToIndex = slot.Index - 1; + ti.ToFloor = 1; + ti.ToIndex = slot.Index; turnoverInfos.Add(ti); } @@ -236,15 +237,46 @@ namespace Rs.MotionPlat.Flow string content = JsonConvert.SerializeObject(infos, new StringEnumConverter()); return content; } + + /// + /// 获取测试治具下料的任务信息 + /// + /// public string GetTestUnLoadString() { + //TurnoverInfos infos = new TurnoverInfos(); + //infos.Instruction = EInstruction.LoadAndUnloadResult; + //infos.GroupID = m_schedulingMaterial.GroupID; + //infos.TurnoverID = m_schedulingMaterial.TurnoverID; + //infos.Infos = testUnloadTaskList; + //string content = JsonConvert.SerializeObject(infos, new StringEnumConverter()); + //LogHelper.Debug("发送:" + content); + //return content; + + List turnoverInfos = new List(); + //1、获取有产品的吸嘴 + List transitNozzles = TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.Tested, ETurnoverTraySlotStatus.Have); + foreach (TurnoverTraySlot slot in transitNozzles) + { + TurnoverInfo ti = new TurnoverInfo(); + ti.GUID = GuidHelper.Create(); + ti.FromType = slot.FromType; + ti.FromFloor = 1; + ti.FromIndex = slot.FromIndex; + ti.SN = slot.SN; + ti.ToType = TurnoverType.Turnover; + ti.ToFloor = 1; + ti.ToIndex = slot.Index - 1; + ti.SuckerNo = slot.SuckerNo; + turnoverInfos.Add(ti); + } + TurnoverInfos infos = new TurnoverInfos(); infos.Instruction = EInstruction.LoadAndUnloadResult; infos.GroupID = m_schedulingMaterial.GroupID; infos.TurnoverID = m_schedulingMaterial.TurnoverID; - infos.Infos = testUnloadTaskList; + infos.Infos = turnoverInfos; string content = JsonConvert.SerializeObject(infos, new StringEnumConverter()); - LogHelper.Debug("发送:" + content); return content; } /// diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 4b5558e..9cc7b38 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -1260,13 +1260,13 @@ namespace Rs.MotionPlat.Flow { //curNozzle.ToIndex = downSlot.Index - 1; curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ok).GetFloor(); - GlobalTray.OkTary.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Ok); + GlobalTray.OkTary.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have); } else if (curNozzle.ToType == TurnoverType.Failed) { //curNozzle.ToIndex = downSlot.Index - 1; curNozzle.ToFloor = StockManager.Instance.GetStock(ETrayType.Ng).GetFloor(); - GlobalTray.NgTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Ng); + GlobalTray.NgTray.ChangeStatus(curNozzle.ToIndex + 1, ESlotStatus.Have); } else if (curNozzle.ToType == TurnoverType.Multifunction) { @@ -1564,7 +1564,7 @@ namespace Rs.MotionPlat.Flow /// public string WitchTrayWitchSlot(TurnoverType trayType,int slotIndex) { - return $"{trayType}盘{slotIndex}穴位"; + return $"{trayType}盘{slotIndex+1}穴位"; } } diff --git a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs index 634a618..369dadf 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs @@ -154,7 +154,7 @@ namespace Rs.MotionPlat.Flow // slots.Add(slot.FromIndex + 1); //} retakeNum = 0; - logInfo = $"{nameof(TurnoverFlow)}-接收到测试工位上料任务"; + logInfo = GetClassName()+$"接收到测试工位上料任务"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到周转盘取料位上方; } @@ -166,7 +166,7 @@ namespace Rs.MotionPlat.Flow // slots.Add(slot.FromIndex + 1); //} retakeNum = 0; - logInfo = $"{nameof(TurnoverFlow)}-接收到测试工位下料任务"; + logInfo = GetClassName() + $"接收到测试工位下料任务"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.测试完成抬起到高速位; } @@ -190,7 +190,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到周转盘取料位上方"; + logInfo = GetClassName()+$"到周转盘取料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待运动到周转盘取料位上方; } @@ -202,7 +202,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到周转盘取料位上方: if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到周转盘取料位上方 TurnoverY at:{Ops.GetCurPosition( AxisAlias.TurnoverY)}"; + logInfo = GetClassName() + $"已运动到周转盘取料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到周转盘下方取料位1; } @@ -218,7 +218,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到周转盘下方取料位1"; + logInfo = GetClassName()+$"到周转盘下方取料位1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待运动到周转盘下方取料位1; } @@ -234,7 +234,7 @@ namespace Rs.MotionPlat.Flow break; case ETurnoverFlowStep.取料异常报警: List untestSlots = TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.WaitTest, ETurnoverTraySlotStatus.Have); - alarmInfo = $"{nameof(TurnoverFlow)}周转盘{string.Join(",", untestSlots.Select(s => s.Index))}号穴位异常"; + alarmInfo = GetClassName()+$"周转盘{string.Join(",", untestSlots.Select(s => s.Index))}号穴位异常"; TestCenterMessageBox.Show(AlarmConstID.TurnoverTakeFailAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText()); msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverTakeFailAlarm); @@ -276,7 +276,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到周转盘下方取料位1: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到周转盘下方取料位1 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + logInfo = GetClassName()+ $"已运动到周转盘下方取料位1 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到周转盘下方取料位2; } @@ -290,7 +290,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到周转盘下方取料位2"; + logInfo = GetClassName() + $"到周转盘下方取料位2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待运动到周转盘下方取料位2; } @@ -302,11 +302,11 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到周转盘下方取料位2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); - /*打开周转吸头真空吸*/ + /*打开周转吸嘴真空吸*/ VacManager.TransitNozzleVacSuction(EVacOperator.Open, undealTasks.Select(t => t.ToIndex + 1).ToArray()); /*关闭周转盘真空吸*/ VacManager.TurnoverTrayVacSuction(EVacOperator.Close, undealTasks.Select(t => t.FromIndex + 1).ToArray()); @@ -324,7 +324,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到周转盘取料破真空位"; + logInfo = GetClassName() + $"到周转盘取料破真空位"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到周转盘取料破真空位; } @@ -353,7 +353,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-周转盘取料完成抬起"; + logInfo = GetClassName() + $"周转盘取料完成抬起"; MessageQueue.Instance.Insert (logInfo); Step = ETurnoverFlowStep.等待周转盘取料完成抬起; } @@ -365,7 +365,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待周转盘取料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到周转盘取料完成抬起位"; + logInfo = GetClassName() + $"周转盘取料完成已抬起"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.周转盘取料完成真空检测; } @@ -377,16 +377,16 @@ namespace Rs.MotionPlat.Flow if (Ops.IsOn($"周转{task.FromIndex+1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis) { //如果真空检测OK,带料产品已经吸上了 - task.Dealed = true; - TurnoverTraySlot slot = TurnoverTrayManager.Instance.Slot(task.FromIndex + 1); - TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(slot); - slot.ClearProduct(); + TransitNozzleManager.Instance.Nozzle(task.ToIndex + 1).AddProduct(task); + TurnoverTrayManager.Instance.Slot(task.FromIndex + 1).ClearProduct(); + //slot.ClearProduct(); GlobalTray.TurnoverTray.ChangeStatus(task.FromIndex + 1, ESlotStatus.NotHave); + task.Dealed = true; } } if (TransitNozzleManager.Instance.GetHasProductNozzleNum() > 0||GlobalVar.RunSpace || GlobalVar.VirtualAxis) { - logInfo = $"周转吸头{string.Join(",", TransitNozzleManager.Instance.GetHasProductNozzles().Select(n=>n.NozzleIndex).ToArray())}真空检测OK"; + logInfo = GetClassName()+ $"周转吸头{string.Join(",", TransitNozzleManager.Instance.GetHasProductNozzles().Select(n=>n.NozzleIndex).ToArray())}真空检测OK"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试放料位上方; } @@ -405,7 +405,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试放料位上方"; + logInfo = GetClassName()+$"到测试放料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待运动到测试放料位上方; } @@ -470,16 +470,17 @@ namespace Rs.MotionPlat.Flow } if (loseSlots.Count > 0) { - alarmInfo = $"周转{string.Join(",", loseSlots)}号吸嘴真空异常丢料,请处理"; + alarmInfo = $"周转{loseSlots.ToJoinString()}号吸嘴真空异常丢料,请处理"; TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); switch (msgBox.Button) { case ETipButton.Skip: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了跳过按钮"); + MessageQueue.Instance.Insert(GetClassName()+$"点击了跳过按钮"); + TransitNozzleManager.Instance.GetHasProductNozzles().ForEach((n) => { n.IsHasProduct = false;n.SN = ""; }); break; case ETipButton.Yes: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了移动到安全位按钮"); + MessageQueue.Instance.Insert(GetClassName()+$"点击了移动到安全位按钮"); TransitModuleSafePosFlow.Instance.GoSafePostion(); break; default: @@ -488,7 +489,7 @@ namespace Rs.MotionPlat.Flow } else { - logInfo = $"已运动到测试放料位上方"; + logInfo = GetClassName() + $"已运动到测试放料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试放料位下方1; } @@ -504,7 +505,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试放料位下方1"; + logInfo = GetClassName()+$"到测试放料位下方1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待运动到到测试放料位下方1; } @@ -516,7 +517,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到到测试放料位下方1: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"已运动到到测试放料位下方1 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + logInfo =GetClassName()+ $"已运动到到测试放料位下方1 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试放料位下方2; } @@ -530,7 +531,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试放料位下方2"; + logInfo =GetClassName()+ $"到测试放料位下方2"; MessageQueue.Instance.Insert(logInfo); LogHelper.Debug(logInfo); Step = ETurnoverFlowStep.等待运动到到测试放料位下方2; @@ -545,7 +546,7 @@ namespace Rs.MotionPlat.Flow { //获取需要放料的吸嘴 List hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - logInfo = $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + logInfo =GetClassName()+ $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); /*打开测试穴位真空吸*/ VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); @@ -567,7 +568,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"测试位放料完成抬起"; + logInfo = GetClassName()+$"测试位放料完成抬起"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待测试位放料完成抬起; } @@ -579,7 +580,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试位放料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"测试位放料完成抬起完成"; + logInfo = GetClassName()+$"测试位放料完成抬起完成"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.测试位放料完成粘料检测; } @@ -605,13 +606,13 @@ namespace Rs.MotionPlat.Flow if(masticSlots.Count > 0) { //粘料报警 - alarmInfo = $"周转{string.Join(",", loseSlots)}号吸嘴真空异常粘料,请手工处理"; + alarmInfo = $"周转{loseSlots.ToJoinString()}号吸嘴真空异常粘料,请手工处理"; TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); switch (msgBox.Button) { case ETipButton.Skip: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了跳过按钮"); + MessageQueue.Instance.Insert(GetClassName() + $"点击了跳过按钮"); foreach (int nozzleIndex in masticSlots) { TransitNozzle nozzle = TransitNozzleManager.Instance.Nozzle(nozzleIndex); @@ -623,7 +624,7 @@ namespace Rs.MotionPlat.Flow } break; case ETipButton.Yes: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了移动到安全位按钮"); + MessageQueue.Instance.Insert(GetClassName() + $"点击了移动到安全位按钮"); TransitModuleSafePosFlow.Instance.GoSafePostion(); break; default: @@ -649,7 +650,8 @@ namespace Rs.MotionPlat.Flow foreach (var nozzle in TransitNozzleManager.Instance.GetHasProductNozzles()) { GlobalTray.TestTray.ChangeStatus(nozzle.NozzleIndex, ESlotStatus.Have); - TestTrayManager.Instance.Slot(nozzle.NozzleIndex).AddProduct(nozzle.SN, nozzle.FromIndex, TurnoverType.Turnover, nozzle.NozzleIndex); + //TestTrayManager.Instance.Slot(nozzle.NozzleIndex).AddProduct(nozzle.SN, nozzle.FromIndex, TurnoverType.Turnover, nozzle.NozzleIndex); + TestTrayManager.Instance.Slot(nozzle.NozzleIndex).AddProduct(nozzle); nozzle.Clear(); } @@ -688,7 +690,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试保压位上方"; + logInfo = GetClassName() + $"到测试保压位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试保压位上方; } @@ -700,7 +702,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试保压位上方: if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = $"已运动到测试保压位上方"; + logInfo = GetClassName() + $"已运动到测试保压位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试保压位下方1; } @@ -715,7 +717,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试保压位下方1"; + logInfo = GetClassName() + $"到测试保压位下方1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试保压位下方1; } @@ -727,7 +729,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试保压位下方1: if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) { - logInfo = $"已到测试保压位下方1 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; + logInfo = GetClassName() + $"已到测试保压位下方1 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试保压位下方2; } @@ -742,7 +744,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到测试保压位下方2"; + logInfo = GetClassName() + $"到测试保压位下方2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试保压位下方2; } @@ -754,15 +756,16 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试保压位下方2: if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) { - logInfo = $"已到测试保压位下方2 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; + logInfo = GetClassName()+$"已到测试保压位下方2 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; MessageQueue.Instance.Insert(logInfo); /*关闭测试穴位真空吸*/ List willTestSlot = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have); VacManager.TestTrayVacSuction(EVacOperator.Close, willTestSlot.Select(s => s.Index).ToArray()); loadOk = true; MachineManage.Instance.SetTesterState(ETesterState.Ready); - MessageQueue.Instance.Insert("通知中控测试位就绪,可以开始测试"); - Thread.Sleep(1000 * 30); + logInfo = GetClassName() + "通知中控测试位就绪,可以开始测试"; + MessageQueue.Instance.Insert(logInfo); + //Thread.Sleep(1000 * 30); Step = ETurnoverFlowStep.等待任务; } break; @@ -784,7 +787,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-测试完成准备抬起"; + logInfo = GetClassName()+$"测试完成准备抬起"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待测试完成抬起到高速位; } @@ -793,7 +796,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试完成抬起到高速位: if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-测试完成已抬起 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; + logInfo = GetClassName()+$"测试完成已抬起 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.测试完成抬起安全位; } @@ -807,7 +810,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-测试完成抬起安全位"; + logInfo = GetClassName() + $"测试完成抬起安全位"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待测试完成抬起安全位; } @@ -815,7 +818,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试完成抬起安全位: if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-测试完成已抬起到安全位 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; + logInfo = GetClassName() + $"测试完成已抬起到安全位 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试取料位上方; } @@ -829,7 +832,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到测试取料位上方"; + logInfo = GetClassName() + $"到测试取料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试取料位上方; } @@ -837,7 +840,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试取料位上方: if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; + logInfo = GetClassName() + $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到测试取料位下方1; } @@ -853,7 +856,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到测试取料位下方1"; + logInfo = GetClassName() + $"到测试取料位下方1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试取料位下方1; } @@ -933,7 +936,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"{nameof(TurnoverFlow)}-到测试取料位下方2"; + logInfo = GetClassName() + $"到测试取料位下方2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到测试取料位下方2; } @@ -942,16 +945,16 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试取料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; + logInfo = GetClassName()+$"已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; MessageQueue.Instance.Insert(logInfo); undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); - + int[] indexes = undealTasks.Select(t => t.FromIndex + 1).ToArray(); /*打开周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction(EVacOperator.Open, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TransitNozzleVacSuction(EVacOperator.Open, indexes); /*关闭测试穴位真空吸*/ - VacManager.TestTrayVacSuction(EVacOperator.Close, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TestTrayVacSuction(EVacOperator.Close, indexes); /*打开测试穴位真空破*/ - VacManager.TestTrayVacBreak(EVacOperator.Open, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TestTrayVacBreak(EVacOperator.Open, indexes); Step = ETurnoverFlowStep.到测试破关真空位; } break; @@ -961,7 +964,7 @@ namespace Rs.MotionPlat.Flow errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed); if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) { - logInfo = $"到测试破关真空位"; + logInfo = GetClassName()+ $"到测试破关真空位"; MessageQueue.Instance.Insert(logInfo); if (GlobalVar.VirtualAxis) { @@ -973,7 +976,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试关破真空位: if(Ops.IsStop(AxisAlias.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"{nameof(TurnoverFlow)}-已运动到测试关破真空位"; + logInfo = GetClassName()+$"已运动到测试关破真空位"; MessageQueue.Instance.Insert(logInfo); undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); /*关闭测试穴位真空破*/ @@ -990,7 +993,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"测试位取料完成准备抬起"; + logInfo =GetClassName()+ $"测试位取料完成抬起"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待测试位取料完成抬起; } @@ -998,7 +1001,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试位取料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"测试位取料完成已抬起"; + logInfo =GetClassName()+ $"测试位取料完成已抬起"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.测试位取料完成后真空检测; } @@ -1010,15 +1013,23 @@ namespace Rs.MotionPlat.Flow TestTraySlot testSlot = TestTrayManager.Instance.Slot(task.FromIndex + 1); if (Ops.IsOn($"周转{task.FromIndex+1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis) { + testSlot.ClearProduct(); task.Dealed= true; - TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(testSlot); + TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(task); + GlobalTray.TestTray.ChangeStatus(task.FromIndex + 1, ESlotStatus.NotHave); } } if (TransitNozzleManager.Instance.GetHasProductNozzleNum()>0 || GlobalVar.RunSpace|| GlobalVar.VirtualAxis) { - MachineManage.Instance.SetTesterState( ETesterState.NotReady ); - MessageQueue.Instance.Insert("通知中控产品已取走"); Step = ETurnoverFlowStep.到周转盘放料位上方; + if(TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Count==0) + { + MachineManage.Instance.SetTesterState(ETesterState.NotReady); + logInfo = GetClassName() + "通知中控产品全部已从治具中取出,状态变成NotReady"; + } + + MessageQueue.Instance.Insert(logInfo); + } else { @@ -1056,7 +1067,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到周转盘放料位上方"; + logInfo =GetClassName()+ $"到周转盘放料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到周转盘放料位上方; } @@ -1064,7 +1075,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到周转盘放料位上方: if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = $"已运动到周转盘放料位上方"; + logInfo = GetClassName() + $"已运动到周转盘放料位上方"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.周转盘放料前丢料检测; } @@ -1126,7 +1137,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到周转盘放料位下方1"; + logInfo = GetClassName() + $"到周转盘放料位下方1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到周转盘放料位下方1; } @@ -1134,7 +1145,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到周转盘放料位下方1: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"已运动到周转盘放料位下方1"; + logInfo = GetClassName() + $"已运动到周转盘放料位下方1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.到周转盘放料位下方2; } @@ -1149,7 +1160,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"到周转盘放料位下方2"; + logInfo = GetClassName() + $"到周转盘放料位下方2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到周转盘放料位下方2; } @@ -1157,15 +1168,15 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到周转盘放料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"已运动到周转盘放料位下方2"; + logInfo = GetClassName() + $"已运动到周转盘放料位下方2"; MessageQueue.Instance.Insert(logInfo); - /*打开周转盘真空吸*/ List hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - VacManager.TurnoverTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.ToIndex).ToArray()); + /*打开周转盘真空吸*/ + VacManager.TurnoverTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.ToIndex+1).ToArray()); /*关闭周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction( EVacOperator.Close,hasProductNozzles.Select(n=>n.FromIndex).ToArray()); + VacManager.TransitNozzleVacSuction( EVacOperator.Close,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); /*打开周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Open, hasProductNozzles.Select(n => n.FromIndex).ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Open, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); Step = ETurnoverFlowStep.周转盘放料完成抬起1; } break; @@ -1179,7 +1190,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"周转盘放料完成准备抬起1"; + logInfo = GetClassName() + $"周转盘放料完成准备抬起1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待周转盘放料完成抬起1; } @@ -1187,7 +1198,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待周转盘放料完成抬起1: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"周转盘放料完成已抬起1"; + logInfo = GetClassName() + $"周转盘放料完成已抬起1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.周转盘放料完成抬起2; @@ -1202,7 +1213,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = $"周转盘放料完成准备抬起2"; + logInfo = GetClassName() + $"周转盘放料完成准备抬起2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待周转盘放料完成抬起2; } @@ -1210,7 +1221,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待周转盘放料完成抬起2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = $"周转盘放料完成已抬起2"; + logInfo = GetClassName() + $"周转盘放料完成已抬起2"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.周转盘放料完成粘料检测; @@ -1242,7 +1253,8 @@ namespace Rs.MotionPlat.Flow switch (msgBox.Button) { case ETipButton.Skip: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了跳过按钮"); + logInfo = GetClassName() + "点击了跳过按钮"; + MessageQueue.Instance.Insert(logInfo); foreach (int nozzleIndex in masticSlots) { TransitNozzle nozzle = TransitNozzleManager.Instance.Nozzle(nozzleIndex); @@ -1254,7 +1266,8 @@ namespace Rs.MotionPlat.Flow } break; case ETipButton.Yes: - MessageQueue.Instance.Insert($"{nameof(TurnoverFlow)}-点击了移动到安全位按钮"); + logInfo = GetClassName() + "点击了移动到安全位按钮"; + MessageQueue.Instance.Insert(logInfo); TransitModuleSafePosFlow.Instance.GoSafePostion(); break; default: @@ -1270,12 +1283,14 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.周转盘放料完成后真空检测: foreach (var nozzle in TransitNozzleManager.Instance.GetHasProductNozzles()) { - TurnoverTraySlot slot = TurnoverTrayManager.Instance.Slot(nozzle.ToIndex); - GlobalTray.TurnoverTray.ChangeStatus(nozzle.ToIndex, ESlotStatus.Have); - TurnoverTrayManager.Instance.Slot(nozzle.ToIndex).AddProduct(nozzle.SN, nozzle.NozzleIndex, TurnoverType.Turnover, nozzle.NozzleIndex); + TurnoverTraySlot slot = TurnoverTrayManager.Instance.Slot(nozzle.ToIndex+1); + //GlobalTray.TurnoverTray.ChangeStatus(nozzle.ToIndex, ESlotStatus.Have); + slot.AddProduct(nozzle); + //TurnoverTrayManager.Instance.Slot(nozzle.ToIndex).AddProduct(nozzle.SN, nozzle.NozzleIndex, TurnoverType.Turnover, nozzle.NozzleIndex); nozzle.Clear(); if (slot.HasVac() || GlobalVar.VirtualAxis|| GlobalVar.RunSpace) { + GlobalTray.TurnoverTray.ChangeStatus(slot.Index, ESlotStatus.Have); slot.VacException = false; } else @@ -1366,7 +1381,7 @@ namespace Rs.MotionPlat.Flow errCode = AxisControl.TurnoverY.MovePos(SysConfigParam.GetValue("PressY"), GlobalVar.WholeSpeed); if ((errCode == Motion.ErrorCode.Ok) || GlobalVar.VirtualAxis) { - logInfo = $"周转吸头下料完成到安全位"; + logInfo = GetClassName() + $"周转吸头下料完成到安全位"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.等待到安全位; } @@ -1378,21 +1393,21 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到安全位: if(Ops.IsStop("TurnoverY") || GlobalVar.VirtualAxis) { - logInfo = $"已运动到安全位,任务结束"; + logInfo = GetClassName()+$"已运动到安全位,任务结束"; MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.等待任务; + Step = ETurnoverFlowStep.上报中控任务完成; } break; case ETurnoverFlowStep.上报中控任务完成: unloadOk = true; TestCenter.Instance.LoadTestUnLoadResult(); - List testUnLoadList = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(); - //切换穴位状态 - foreach (TurnoverInfo turnoverInfo in testUnLoadList) - { - GlobalTray.TurnoverTray.ChangeStatus(turnoverInfo.ToIndex + 1, ESlotStatus.Have); - } + //List testUnLoadList = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(); + ////切换穴位状态 + //foreach (TurnoverInfo turnoverInfo in testUnLoadList) + //{ + // GlobalTray.TurnoverTray.ChangeStatus(turnoverInfo.ToIndex + 1, ESlotStatus.Have); + //} LoadAndUnloadTask.Instance.Clear(1); MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); Step = ETurnoverFlowStep.等待任务;