优化测试治具上下料开关真空吸时机

master
lhiven 1 year ago
parent ad8fee2868
commit b8eccd6b6d

@ -760,7 +760,7 @@ namespace Rs.Framework
{ {
get get
{ {
return false; return SysConfigParam.GetValue<bool>(nameof(EnableTwoSpeed));
} }
} }
} }

@ -178,7 +178,10 @@ namespace Rs.MotionPlat.Commom
DischargeFlow.Instance.Stop(); DischargeFlow.Instance.Stop();
TurnoverFlow.Instance.Stop(); TurnoverFlow.Instance.Stop();
MachineManage.Instance.SetCenterMachineStatus(ERunStatus.Stopped); 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; MachineManage.Instance.MachineStatus = EMachineStatus.Stop;
} }
else if(MachineManage.Instance.MachineStatus== EMachineStatus.Homing) else if(MachineManage.Instance.MachineStatus== EMachineStatus.Homing)

@ -1,4 +1,5 @@
using Rs.MotionPlat.Entitys.Trays; using Rs.Framework;
using Rs.MotionPlat.Entitys.Trays;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -139,6 +140,7 @@ namespace Rs.MotionPlat.Commom
Thread.Sleep(waittime); Thread.Sleep(waittime);
} }
Ops.Off($"周转{NozzleIndex}号吸嘴真空吸"); Ops.Off($"周转{NozzleIndex}号吸嘴真空吸");
MessageQueue.Instance.Insert($"关闭周转{NozzleIndex}号吸嘴真空吸");
} }
/// <summary> /// <summary>
/// 打开真空吸 /// 打开真空吸
@ -150,6 +152,7 @@ namespace Rs.MotionPlat.Commom
Thread.Sleep(waittime); Thread.Sleep(waittime);
} }
Ops.On($"周转{NozzleIndex}号吸嘴真空吸"); Ops.On($"周转{NozzleIndex}号吸嘴真空吸");
MessageQueue.Instance.Insert($"打开周转{NozzleIndex}号吸嘴真空吸");
} }
/// <summary> /// <summary>

@ -230,6 +230,12 @@ namespace Rs.MotionPlat.Flow
TestCenterMessageBox.WaitResult(AlarmConstID.UpDownCylinderExceptionAlarm); TestCenterMessageBox.WaitResult(AlarmConstID.UpDownCylinderExceptionAlarm);
stopwatch.Stop(); stopwatch.Stop();
stopwatch.Restart(); stopwatch.Restart();
Ops.On("上下气缸电磁阀动位");
logInfo = GetClassName() + "上下气缸电磁阀动位on";
MessageQueue.Instance.Insert(logInfo);
Ops.Off("上下气缸电磁阀原位");
logInfo = GetClassName() + "上下气缸电磁阀原位 off";
step = ETakeTrayFlowStep.;
} }
break; break;
case ETakeTrayFlowStep.: case ETakeTrayFlowStep.:

@ -215,15 +215,18 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverX,AxisControl.TurnoverY) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverX,AxisControl.TurnoverY) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到周转盘取料位上方"; if(Ops.IsArrived(AxisControl.TurnoverX, AxisControl.TurnoverY))
MessageQueue.Instance.Insert(logInfo);
if(retakeNum<3)
{
Step = ETurnoverFlowStep.1;
}
else
{ {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"已运动到周转盘取料位上方";
MessageQueue.Instance.Insert(logInfo);
if (retakeNum < 3)
{
Step = ETurnoverFlowStep.1;
}
else
{
Step = ETurnoverFlowStep.;
}
} }
} }
break; break;
@ -308,6 +311,7 @@ namespace Rs.MotionPlat.Flow
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed);
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) 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()); VacManager.TransitNozzleVacSuction(EVacOperator.Open, false,undealTasks.Select(t => t.ToIndex + 1).ToArray());
if (GlobalVar.VirtualAxis) if (GlobalVar.VirtualAxis)
@ -353,14 +357,17 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}";
/*关闭周转盘真空吸*/ MessageQueue.Instance.Insert(logInfo);
VacManager.TurnoverTrayVacSuction(EVacOperator.Close, false, undealTasks.Select(t => t.FromIndex + 1).ToArray()); undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal);
/*打开周转盘真空破*/ /*关闭周转盘真空吸*/
VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true,undealTasks.Select(t => t.FromIndex + 1).ToArray()); VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.; /*打开周转盘真空破*/
VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true, undealTasks.Select(t => t.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -420,9 +427,12 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"周转盘取料完成已抬起"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"周转盘取料完成已抬起";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -487,16 +497,19 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverX,AxisControl.TurnoverY) || GlobalVar.VirtualAxis) 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; if (turnoverTakeFinishe == false && TurnoverTrayManager.Instance.GetSlots(ETurnoverTraySlotType.WaitTest, ETurnoverTraySlotStatus.Have).Count() == 0)
string reportStr = LoadAndUnloadTask.Instance.GetTestLoadString(); {
TestCenter.Instance.Send(reportStr); turnoverTakeFinishe = true;
LoadAndUnloadTask.Instance.Clear(1); string reportStr = LoadAndUnloadTask.Instance.GetTestLoadString();
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); TestCenter.Instance.Send(reportStr);
MessageQueue.Instance.Insert("通知中控周转载盘产品已取走,可以继续排料"); LoadAndUnloadTask.Instance.Clear(1);
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
MessageQueue.Instance.Insert("通知中控周转载盘产品已取走,可以继续排料");
}
Step = ETurnoverFlowStep.;
} }
Step = ETurnoverFlowStep.;
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -631,7 +644,6 @@ namespace Rs.MotionPlat.Flow
} }
logInfo =GetClassName()+ $"到测试放料位下方2"; logInfo =GetClassName()+ $"到测试放料位下方2";
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
LogHelper.Debug(logInfo);
Step = ETurnoverFlowStep.2; Step = ETurnoverFlowStep.2;
} }
else else
@ -642,18 +654,21 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
//获取需要放料的吸嘴 if(Ops.IsArrived(AxisControl.TurnoverZ))
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); {
logInfo =GetClassName()+ $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; //获取需要放料的吸嘴
MessageQueue.Instance.Insert(logInfo); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
/*打开测试穴位真空吸*/ logInfo = GetClassName() + $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}";
//VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); MessageQueue.Instance.Insert(logInfo);
/*关闭周转吸头真空吸*/ /*打开测试穴位真空吸*/
VacManager.TransitNozzleVacSuction(EVacOperator.Close, false,hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); //VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
/*打开周转吸头真空破*/ /*关闭周转吸头真空吸*/
VacManager.TransitNozzleVacBreak(EVacOperator.Open,true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); VacManager.TransitNozzleVacSuction(EVacOperator.Close, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
/*打开周转吸头真空破*/
Step = ETurnoverFlowStep.; VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -677,14 +692,17 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
//获取需要放料的吸嘴 if(Ops.IsArrived(AxisControl.TurnoverZ))
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); {
/*关闭周转吸头真空破*/ //获取需要放料的吸嘴
VacManager.TransitNozzleVacBreak(EVacOperator.Close, false, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
/*关闭周转吸头真空破*/
VacManager.TransitNozzleVacBreak(EVacOperator.Close, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
logInfo = GetClassName()+$"测试位放料完成抬起完成"; logInfo = GetClassName() + $"测试位放料完成抬起完成";
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.; Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -697,10 +715,14 @@ namespace Rs.MotionPlat.Flow
//nozzle.OpenVac(); //nozzle.OpenVac();
if (nozzle.HasVacSignal() && !GlobalVar.RunSpace) if (nozzle.HasVacSignal() && !GlobalVar.RunSpace)
{ {
logInfo = $"周转{nozzle.NozzleIndex}号吸嘴粘料";
MessageQueue.Instance.Insert(logInfo);
masticSlots.Add(nozzle.NozzleIndex); masticSlots.Add(nozzle.NozzleIndex);
} }
else else
{ {
logInfo = $"周转{nozzle.NozzleIndex}号吸嘴无粘料";
MessageQueue.Instance.Insert(logInfo);
nozzle.CloseVac(); nozzle.CloseVac();
} }
} }
@ -880,17 +902,20 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) 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() + $"已运动到测试保压位上方"; if (TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Count > 0)
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.1; logInfo = GetClassName() + $"已运动到测试保压位上方";
} MessageQueue.Instance.Insert(logInfo);
else Step = ETurnoverFlowStep.1;
{ }
logInfo = GetClassName() + $"检测到测试治具中无产品需要测试"; else
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"检测到测试治具中无产品需要测试";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
} }
break; break;
@ -946,12 +971,15 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.PressZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName()+$"已到测试保压位下方2 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}"; if(Ops.IsArrived(AxisControl.PressZ))
MessageQueue.Instance.Insert(logInfo); {
/*关闭测试穴位真空吸*/ logInfo = GetClassName() + $"已到测试保压位下方2 PressZ at:{Ops.GetCurPosition(AxisAlias.PressZ)}";
List<TestTraySlot> willTestSlot = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have); MessageQueue.Instance.Insert(logInfo);
VacManager.TestTrayVacSuction(EVacOperator.Close,false, willTestSlot.Select(s => s.Index).ToArray()); /*关闭测试穴位真空吸*/
Step = ETurnoverFlowStep.; List<TestTraySlot> willTestSlot = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have);
VacManager.TestTrayVacSuction(EVacOperator.Close, false, willTestSlot.Select(s => s.Index).ToArray());
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -1079,9 +1107,12 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到治具取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"已运动到治具取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
//-----------------------------------------------测试位下料--------------------------------------------------------------------------------------------------------- //-----------------------------------------------测试位下料---------------------------------------------------------------------------------------------------------
@ -1116,15 +1147,18 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}"; if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY))
MessageQueue.Instance.Insert(logInfo);
if (retakeNum < 3)
{
Step = ETurnoverFlowStep.1;
}
else
{ {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"已运动到测试取料位上方 TurnoverY at:{Ops.GetCurPosition(AxisAlias.TurnoverY)}";
MessageQueue.Instance.Insert(logInfo);
if (retakeNum < 3)
{
Step = ETurnoverFlowStep.1;
}
else
{
Step = ETurnoverFlowStep.;
}
} }
} }
break; break;
@ -1243,17 +1277,20 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName()+$"已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
//int[] indexes = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Select(s=>s.Index).ToArray(); logInfo = GetClassName() + $"已运动到测试取料位下方2 TurnoverZ at:{Ops.GetCurPosition("TurnoverZ")}";
undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); MessageQueue.Instance.Insert(logInfo);
/*打开周转吸头真空吸*/ //int[] indexes = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Select(s=>s.Index).ToArray();
//VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes); undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal);
/*关闭测试穴位真空吸*/ /*打开周转吸头真空吸*/
VacManager.TestTrayVacSuction(EVacOperator.Close,false, undealTasks.Select(t => t.FromIndex + 1).ToArray()); //VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes);
/*打开测试穴位真空破*/ /*关闭测试穴位真空吸*/
VacManager.TestTrayVacBreak(EVacOperator.Open,true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); VacManager.TestTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.; /*打开测试穴位真空破*/
VacManager.TestTrayVacBreak(EVacOperator.Open, true, undealTasks.Select(t => t.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -1313,9 +1350,12 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo =GetClassName()+ $"测试位取料完成已抬起"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"测试位取料完成已抬起";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -1330,6 +1370,8 @@ namespace Rs.MotionPlat.Flow
TestTraySlot testSlot = TestTrayManager.Instance.Slot(task.FromIndex + 1); TestTraySlot testSlot = TestTrayManager.Instance.Slot(task.FromIndex + 1);
if (Ops.IsOn($"周转{task.FromIndex + 1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis || GlobalVar.RunSpace) if (Ops.IsOn($"周转{task.FromIndex + 1}号吸嘴真空吸检测") || GlobalVar.VirtualAxis || GlobalVar.RunSpace)
{ {
logInfo = $"周转{task.FromIndex + 1}号吸嘴真空吸检测OK";
MessageQueue.Instance.Insert(logInfo);
testSlot.ClearProduct(); testSlot.ClearProduct();
task.Dealed = true; task.Dealed = true;
TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(task); TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(task);
@ -1406,11 +1448,14 @@ namespace Rs.MotionPlat.Flow
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if (Ops.IsStop(AxisControl.TurnoverY) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到周转盘放料位上方"; if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"已运动到周转盘放料位上方";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -1547,14 +1592,18 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"已运动到周转盘放料位下方2"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); logInfo = GetClassName() + $"已运动到周转盘放料位下方2";
/*关闭周转吸头真空吸*/ MessageQueue.Instance.Insert(logInfo);
VacManager.TransitNozzleVacSuction( EVacOperator.Close,false,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
/*打开周转吸头真空破*/ /*关闭周转吸头真空吸*/
VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); VacManager.TransitNozzleVacSuction(EVacOperator.Close, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.1; /*打开周转吸头真空破*/
VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray());
Step = ETurnoverFlowStep.1;
}
} }
break; break;
@ -1615,10 +1664,12 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.2: case ETurnoverFlowStep.2:
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName() + $"周转盘放料完成已抬起2"; if(Ops.IsArrived(AxisControl.TurnoverZ))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"周转盘放料完成已抬起2";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
@ -1630,10 +1681,14 @@ namespace Rs.MotionPlat.Flow
//nozzle.OpenVac(); //nozzle.OpenVac();
if (nozzle.HasVacSignal() && !GlobalVar.RunSpace) if (nozzle.HasVacSignal() && !GlobalVar.RunSpace)
{ {
logInfo = $"周转{nozzle.NozzleIndex}号吸嘴粘料";
MessageQueue.Instance.Warn(logInfo);
masticSlots.Add(nozzle.NozzleIndex); masticSlots.Add(nozzle.NozzleIndex);
} }
else else
{ {
logInfo = $"周转{nozzle.NozzleIndex}号吸嘴无粘料";
MessageQueue.Instance.Insert(logInfo);
nozzle.CloseVac(); nozzle.CloseVac();
} }
} }
@ -1849,9 +1904,12 @@ namespace Rs.MotionPlat.Flow
case ETurnoverFlowStep.: case ETurnoverFlowStep.:
if(Ops.IsStop("TurnoverX","TurnoverY") || GlobalVar.VirtualAxis) if(Ops.IsStop("TurnoverX","TurnoverY") || GlobalVar.VirtualAxis)
{ {
logInfo = GetClassName()+$"已运动到安全位,任务结束"; if(Ops.IsArrived(AxisControl.TurnoverX,AxisControl.TurnoverY))
MessageQueue.Instance.Insert(logInfo); {
Step = ETurnoverFlowStep.; logInfo = GetClassName() + $"已运动到安全位,任务结束";
MessageQueue.Instance.Insert(logInfo);
Step = ETurnoverFlowStep.;
}
} }
break; break;
case ETurnoverFlowStep.: case ETurnoverFlowStep.:

Loading…
Cancel
Save