diff --git a/Rs.SkyLine/Commom/GlobalVar.cs b/Rs.SkyLine/Commom/GlobalVar.cs index e0140b0..39de177 100644 --- a/Rs.SkyLine/Commom/GlobalVar.cs +++ b/Rs.SkyLine/Commom/GlobalVar.cs @@ -760,7 +760,7 @@ namespace Rs.Framework { get { - return false; + return SysConfigParam.GetValue(nameof(EnableTwoSpeed)); } } } diff --git a/Rs.SkyLine/Commom/Ops.cs b/Rs.SkyLine/Commom/Ops.cs index 9b74cf1..82adf7f 100644 --- a/Rs.SkyLine/Commom/Ops.cs +++ b/Rs.SkyLine/Commom/Ops.cs @@ -178,7 +178,10 @@ namespace Rs.MotionPlat.Commom DischargeFlow.Instance.Stop(); TurnoverFlow.Instance.Stop(); MachineManage.Instance.SetCenterMachineStatus(ERunStatus.Stopped); - //MachineManage.Instance.SetLoadUnloadStatus(ERunState.Interrupt); + if(MachineManage.Instance.GetLoadUnloadStatus()== ERunState.Waiting) + { + MachineManage.Instance.SetLoadUnloadStatus(ERunState.Interrupt); + } MachineManage.Instance.MachineStatus = EMachineStatus.Stop; } else if(MachineManage.Instance.MachineStatus== EMachineStatus.Homing) diff --git a/Rs.SkyLine/Entitys/TransitNozzleManager.cs b/Rs.SkyLine/Entitys/TransitNozzleManager.cs index 0072859..9bf24fb 100644 --- a/Rs.SkyLine/Entitys/TransitNozzleManager.cs +++ b/Rs.SkyLine/Entitys/TransitNozzleManager.cs @@ -1,4 +1,5 @@ -using Rs.MotionPlat.Entitys.Trays; +using Rs.Framework; +using Rs.MotionPlat.Entitys.Trays; using System; using System.Collections.Generic; using System.Linq; @@ -139,6 +140,7 @@ namespace Rs.MotionPlat.Commom Thread.Sleep(waittime); } Ops.Off($"周转{NozzleIndex}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"关闭周转{NozzleIndex}号吸嘴真空吸"); } /// /// 打开真空吸 @@ -150,6 +152,7 @@ namespace Rs.MotionPlat.Commom Thread.Sleep(waittime); } Ops.On($"周转{NozzleIndex}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"打开周转{NozzleIndex}号吸嘴真空吸"); } /// diff --git a/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs index c6a07dd..7db141a 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TakeTrayFlow.cs @@ -230,6 +230,12 @@ namespace Rs.MotionPlat.Flow TestCenterMessageBox.WaitResult(AlarmConstID.UpDownCylinderExceptionAlarm); stopwatch.Stop(); stopwatch.Restart(); + Ops.On("上下气缸电磁阀动位"); + logInfo = GetClassName() + "上下气缸电磁阀动位on"; + MessageQueue.Instance.Insert(logInfo); + Ops.Off("上下气缸电磁阀原位"); + logInfo = GetClassName() + "上下气缸电磁阀原位 off"; + step = ETakeTrayFlowStep.等待运动到取料位下方; } break; case ETakeTrayFlowStep.到放料盘上方: diff --git a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs index bab53f2..39f197e 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs @@ -215,15 +215,18 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到周转盘取料位上方: if (Ops.IsStop(AxisControl.TurnoverX,AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到周转盘取料位上方"; - MessageQueue.Instance.Insert(logInfo); - if(retakeNum<3) - { - Step = ETurnoverFlowStep.到周转盘下方取料位1; - } - else + if(Ops.IsArrived(AxisControl.TurnoverX, AxisControl.TurnoverY)) { - Step = ETurnoverFlowStep.取料异常报警; + logInfo = GetClassName() + $"已运动到周转盘取料位上方"; + MessageQueue.Instance.Insert(logInfo); + if (retakeNum < 3) + { + Step = ETurnoverFlowStep.到周转盘下方取料位1; + } + else + { + Step = ETurnoverFlowStep.取料异常报警; + } } } break; @@ -308,6 +311,7 @@ namespace Rs.MotionPlat.Flow errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) { + undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); /*提前打开周转吸嘴真空吸*/ VacManager.TransitNozzleVacSuction(EVacOperator.Open, false,undealTasks.Select(t => t.ToIndex + 1).ToArray()); if (GlobalVar.VirtualAxis) @@ -353,14 +357,17 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到周转盘下方取料位2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; - MessageQueue.Instance.Insert(logInfo); - undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); - /*关闭周转盘真空吸*/ - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, false, undealTasks.Select(t => t.FromIndex + 1).ToArray()); - /*打开周转盘真空破*/ - VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true,undealTasks.Select(t => t.FromIndex + 1).ToArray()); - Step = ETurnoverFlowStep.到周转盘取料破真空位; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + MessageQueue.Instance.Insert(logInfo); + undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); + /*关闭周转盘真空吸*/ + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + /*打开周转盘真空破*/ + VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + Step = ETurnoverFlowStep.到周转盘取料破真空位; + } } break; case ETurnoverFlowStep.到周转盘取料破真空位: @@ -420,9 +427,12 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待周转盘取料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"周转盘取料完成已抬起"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.周转盘取料完成真空检测; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"周转盘取料完成已抬起"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.周转盘取料完成真空检测; + } } break; case ETurnoverFlowStep.周转盘取料完成真空检测: @@ -487,16 +497,19 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到测试放料位上方: if (Ops.IsStop(AxisControl.TurnoverX,AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - if (turnoverTakeFinishe==false && TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.WaitTest, ETurnoverTraySlotStatus.Have).Count() == 0) + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) { - turnoverTakeFinishe = true; - string reportStr = LoadAndUnloadTask.Instance.GetTestLoadString(); - TestCenter.Instance.Send(reportStr); - LoadAndUnloadTask.Instance.Clear(1); - MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); - MessageQueue.Instance.Insert("通知中控周转载盘产品已取走,可以继续排料"); + if (turnoverTakeFinishe == false && TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.WaitTest, ETurnoverTraySlotStatus.Have).Count() == 0) + { + turnoverTakeFinishe = true; + string reportStr = LoadAndUnloadTask.Instance.GetTestLoadString(); + TestCenter.Instance.Send(reportStr); + LoadAndUnloadTask.Instance.Clear(1); + MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); + MessageQueue.Instance.Insert("通知中控周转载盘产品已取走,可以继续排料"); + } + Step = ETurnoverFlowStep.测试位上料丢料检测; } - Step = ETurnoverFlowStep.测试位上料丢料检测; } break; case ETurnoverFlowStep.测试位上料丢料检测: @@ -631,7 +644,6 @@ namespace Rs.MotionPlat.Flow } logInfo =GetClassName()+ $"到测试放料位下方2"; MessageQueue.Instance.Insert(logInfo); - LogHelper.Debug(logInfo); Step = ETurnoverFlowStep.等待运动到到测试放料位下方2; } else @@ -642,18 +654,21 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待运动到到测试放料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - //获取需要放料的吸嘴 - hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - logInfo =GetClassName()+ $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; - MessageQueue.Instance.Insert(logInfo); - /*打开测试穴位真空吸*/ - //VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); - /*关闭周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction(EVacOperator.Close, false,hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); - /*打开周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Open,true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); - - Step = ETurnoverFlowStep.测试位放料完成抬起; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + //获取需要放料的吸嘴 + hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); + logInfo = GetClassName() + $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; + MessageQueue.Instance.Insert(logInfo); + /*打开测试穴位真空吸*/ + //VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + /*关闭周转吸头真空吸*/ + VacManager.TransitNozzleVacSuction(EVacOperator.Close, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + /*打开周转吸头真空破*/ + VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + + Step = ETurnoverFlowStep.测试位放料完成抬起; + } } break; case ETurnoverFlowStep.测试位放料完成抬起: @@ -677,14 +692,17 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试位放料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - //获取需要放料的吸嘴 - hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - /*关闭周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Close, false, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + //获取需要放料的吸嘴 + hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); + /*关闭周转吸头真空破*/ + VacManager.TransitNozzleVacBreak(EVacOperator.Close, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); - logInfo = GetClassName()+$"测试位放料完成抬起完成"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.测试位放料完成粘料检测; + logInfo = GetClassName() + $"测试位放料完成抬起完成"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.测试位放料完成粘料检测; + } } break; case ETurnoverFlowStep.测试位放料完成粘料检测: @@ -697,10 +715,14 @@ namespace Rs.MotionPlat.Flow //nozzle.OpenVac(); if (nozzle.HasVacSignal() && !GlobalVar.RunSpace) { + logInfo = $"周转{nozzle.NozzleIndex}号吸嘴粘料"; + MessageQueue.Instance.Insert(logInfo); masticSlots.Add(nozzle.NozzleIndex); } else { + logInfo = $"周转{nozzle.NozzleIndex}号吸嘴无粘料"; + MessageQueue.Instance.Insert(logInfo); nozzle.CloseVac(); } } @@ -880,17 +902,20 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试保压位上方: if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - if(TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Count>0) + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) { - logInfo = GetClassName() + $"已运动到测试保压位上方"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.到测试保压位下方1; - } - else - { - logInfo = GetClassName() + $"检测到测试治具中无产品需要测试"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.通知中控开始测试; + if (TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Count > 0) + { + logInfo = GetClassName() + $"已运动到测试保压位上方"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.到测试保压位下方1; + } + else + { + logInfo = GetClassName() + $"检测到测试治具中无产品需要测试"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.通知中控开始测试; + } } } break; @@ -946,12 +971,15 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试保压位下方2: if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName()+$"已到测试保压位下方2 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; - MessageQueue.Instance.Insert(logInfo); - /*关闭测试穴位真空吸*/ - List willTestSlot = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have); - VacManager.TestTrayVacSuction(EVacOperator.Close,false, willTestSlot.Select(s => s.Index).ToArray()); - Step = ETurnoverFlowStep.通知中控开始测试; + if(Ops.IsArrived(AxisControl.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, false, willTestSlot.Select(s => s.Index).ToArray()); + Step = ETurnoverFlowStep.通知中控开始测试; + } } break; case ETurnoverFlowStep.通知中控开始测试: @@ -1079,9 +1107,12 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试完成到治具取料位上方: if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到治具取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.等待任务; + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) + { + logInfo = GetClassName() + $"已运动到治具取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.等待任务; + } } break; //-----------------------------------------------测试位下料--------------------------------------------------------------------------------------------------------- @@ -1116,15 +1147,18 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试取料位上方: if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; - MessageQueue.Instance.Insert(logInfo); - if (retakeNum < 3) - { - Step = ETurnoverFlowStep.到测试取料位下方1; - } - else + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) { - Step = ETurnoverFlowStep.测试治具取料失败报警; + logInfo = GetClassName() + $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; + MessageQueue.Instance.Insert(logInfo); + if (retakeNum < 3) + { + Step = ETurnoverFlowStep.到测试取料位下方1; + } + else + { + Step = ETurnoverFlowStep.测试治具取料失败报警; + } } } break; @@ -1243,17 +1277,20 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到测试取料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName()+$"已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; - MessageQueue.Instance.Insert(logInfo); - //int[] indexes = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Select(s=>s.Index).ToArray(); - undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); - /*打开周转吸头真空吸*/ - //VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes); - /*关闭测试穴位真空吸*/ - VacManager.TestTrayVacSuction(EVacOperator.Close,false, undealTasks.Select(t => t.FromIndex + 1).ToArray()); - /*打开测试穴位真空破*/ - VacManager.TestTrayVacBreak(EVacOperator.Open,true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); - Step = ETurnoverFlowStep.到测试破关真空位; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; + MessageQueue.Instance.Insert(logInfo); + //int[] indexes = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Select(s=>s.Index).ToArray(); + undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); + /*打开周转吸头真空吸*/ + //VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes); + /*关闭测试穴位真空吸*/ + VacManager.TestTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + /*打开测试穴位真空破*/ + VacManager.TestTrayVacBreak(EVacOperator.Open, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + Step = ETurnoverFlowStep.到测试破关真空位; + } } break; case ETurnoverFlowStep.到测试破关真空位: @@ -1313,9 +1350,12 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试位取料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo =GetClassName()+ $"测试位取料完成已抬起"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.测试位取料完成后真空检测; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"测试位取料完成已抬起"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.测试位取料完成后真空检测; + } } break; case ETurnoverFlowStep.测试位取料完成后真空检测: @@ -1330,6 +1370,8 @@ namespace Rs.MotionPlat.Flow TestTraySlot testSlot = TestTrayManager.Instance.Slot(task.FromIndex + 1); if (Ops.IsOn($"周转{task.FromIndex + 1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis || GlobalVar.RunSpace) { + logInfo = $"周转{task.FromIndex + 1}号吸嘴真空吸检测OK"; + MessageQueue.Instance.Insert(logInfo); testSlot.ClearProduct(); task.Dealed = true; TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(task); @@ -1406,11 +1448,14 @@ namespace Rs.MotionPlat.Flow } break; case ETurnoverFlowStep.等待到周转盘放料位上方: - if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) + if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到周转盘放料位上方"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.周转盘放料前丢料检测; + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) + { + logInfo = GetClassName() + $"已运动到周转盘放料位上方"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.周转盘放料前丢料检测; + } } break; case ETurnoverFlowStep.周转盘放料前丢料检测: @@ -1547,14 +1592,18 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到周转盘放料位下方2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"已运动到周转盘放料位下方2"; - MessageQueue.Instance.Insert(logInfo); - hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - /*关闭周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction( EVacOperator.Close,false,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); - /*打开周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); - Step = ETurnoverFlowStep.周转盘放料完成抬起1; + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"已运动到周转盘放料位下方2"; + MessageQueue.Instance.Insert(logInfo); + hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); + /*关闭周转吸头真空吸*/ + VacManager.TransitNozzleVacSuction(EVacOperator.Close, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); + /*打开周转吸头真空破*/ + VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); + Step = ETurnoverFlowStep.周转盘放料完成抬起1; + } + } break; @@ -1615,10 +1664,12 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待周转盘放料完成抬起2: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { - logInfo = GetClassName() + $"周转盘放料完成已抬起2"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.周转盘放料完成粘料检测; - + if(Ops.IsArrived(AxisControl.TurnoverZ)) + { + logInfo = GetClassName() + $"周转盘放料完成已抬起2"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.周转盘放料完成粘料检测; + } } break; case ETurnoverFlowStep.周转盘放料完成粘料检测: @@ -1630,10 +1681,14 @@ namespace Rs.MotionPlat.Flow //nozzle.OpenVac(); if (nozzle.HasVacSignal() && !GlobalVar.RunSpace) { + logInfo = $"周转{nozzle.NozzleIndex}号吸嘴粘料"; + MessageQueue.Instance.Warn(logInfo); masticSlots.Add(nozzle.NozzleIndex); } else { + logInfo = $"周转{nozzle.NozzleIndex}号吸嘴无粘料"; + MessageQueue.Instance.Insert(logInfo); nozzle.CloseVac(); } } @@ -1849,9 +1904,12 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待到安全位: if(Ops.IsStop("TurnoverX","TurnoverY") || GlobalVar.VirtualAxis) { - logInfo = GetClassName()+$"已运动到安全位,任务结束"; - MessageQueue.Instance.Insert(logInfo); - Step = ETurnoverFlowStep.上报中控任务完成; + if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY)) + { + logInfo = GetClassName() + $"已运动到安全位,任务结束"; + MessageQueue.Instance.Insert(logInfo); + Step = ETurnoverFlowStep.上报中控任务完成; + } } break; case ETurnoverFlowStep.上报中控任务完成: