|
|
|
@ -598,7 +598,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
//获取需要放料的吸嘴
|
|
|
|
|
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
|
|
|
|
|
/*打开测试穴位真空吸*/
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open,false, hasProductNozzles.Select(n => n.NozzleIndex).ToArray());
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
@ -767,7 +767,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Retry:
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open, nozzle.NozzleIndex);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open,true, nozzle.NozzleIndex);
|
|
|
|
|
if (Ops.IsOn($"测试{nozzle.NozzleIndex}号穴位光纤检测") || GlobalVar.RunSpace)
|
|
|
|
|
{
|
|
|
|
|
exit = true;
|
|
|
|
@ -778,13 +778,13 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
TestHeightResult heightReulst = LaserFlow.Instance.HasProduct(ETrayType.Test, nozzle.NozzleIndex);
|
|
|
|
|
if (!heightReulst.HasProduct)
|
|
|
|
|
{
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close, nozzle.NozzleIndex);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close,true, nozzle.NozzleIndex);
|
|
|
|
|
nozzle.Clear();
|
|
|
|
|
exit = true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes://移动到安全位
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close, nozzle.NozzleIndex);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close,true, nozzle.NozzleIndex);
|
|
|
|
|
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -812,7 +812,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Retry:
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open, nozzle.NozzleIndex);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open,true, nozzle.NozzleIndex);
|
|
|
|
|
if (Ops.IsOn($"测试{nozzle.NozzleIndex}号穴位真空吸检测"))
|
|
|
|
|
{
|
|
|
|
|
GlobalTray.TestTray.ChangeStatus(nozzle.NozzleIndex, ESlotStatus.Have);
|
|
|
|
@ -831,7 +831,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes://移动到安全位
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close, nozzle.NozzleIndex);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close,true, nozzle.NozzleIndex);
|
|
|
|
|
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -896,7 +896,10 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
break;
|
|
|
|
|
case ETurnoverFlowStep.到测试保压位下方1:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressZ");
|
|
|
|
|
if (GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = targetPos + SysConfigParam.GetValue<double>("PressLowSpeedOffset");
|
|
|
|
|
}
|
|
|
|
|
errCode = AxisControl.PressZ.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis )
|
|
|
|
|
{
|
|
|
|
@ -947,7 +950,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
/*关闭测试穴位真空吸*/
|
|
|
|
|
List<TestTraySlot> willTestSlot = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close, willTestSlot.Select(s => s.Index).ToArray());
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close,false, willTestSlot.Select(s => s.Index).ToArray());
|
|
|
|
|
Step = ETurnoverFlowStep.通知中控开始测试;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -965,14 +968,23 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
//if(MachineManage.Instance.tes)
|
|
|
|
|
if(MachineManage.Instance.TestStatus== ETestStatus.Finished)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
//测试完成后,重新打开真空吸
|
|
|
|
|
List<TestTraySlot> tested = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Open,true,tested.Select(s => s.Index).ToArray());
|
|
|
|
|
Step = ETurnoverFlowStep.测试完成抬起到高速位;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ETurnoverFlowStep.测试完成抬起到高速位:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressZ")+GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
if(GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressSafeZ");
|
|
|
|
|
}
|
|
|
|
|
double curPos = Ops.GetCurPosition(AxisAlias.PressZ);
|
|
|
|
|
if(Math.Abs(curPos-targetPos)<0.1)
|
|
|
|
|
{
|
|
|
|
@ -1177,10 +1189,17 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETurnoverFlowStep.到测试取料位下方1:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressTakeZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressTakeZ");
|
|
|
|
|
if (GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = targetPos + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
}
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal);
|
|
|
|
|
/*提前打开周转吸头真空吸*/
|
|
|
|
|
VacManager.TransitNozzleVacSuction(EVacOperator.Open, false, undealTasks.Select(t => t.FromIndex + 1).ToArray());
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
@ -1228,19 +1247,24 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
//int[] indexes = TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Select(s=>s.Index).ToArray();
|
|
|
|
|
undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal);
|
|
|
|
|
int[] indexes = undealTasks.Select(t => t.FromIndex + 1).ToArray();
|
|
|
|
|
/*打开周转吸头真空吸*/
|
|
|
|
|
VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes);
|
|
|
|
|
//VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes);
|
|
|
|
|
/*关闭测试穴位真空吸*/
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close, indexes);
|
|
|
|
|
VacManager.TestTrayVacSuction(EVacOperator.Close,false, undealTasks.Select(t => t.FromIndex + 1).ToArray());
|
|
|
|
|
/*打开测试穴位真空破*/
|
|
|
|
|
VacManager.TestTrayVacBreak(EVacOperator.Open, indexes);
|
|
|
|
|
VacManager.TestTrayVacBreak(EVacOperator.Open,true, undealTasks.Select(t => t.FromIndex + 1).ToArray());
|
|
|
|
|
Step = ETurnoverFlowStep.到测试破关真空位;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETurnoverFlowStep.到测试破关真空位:
|
|
|
|
|
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressTakeZ")+GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
if(GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressTakeZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressSafeZ");
|
|
|
|
|
}
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
@ -1264,7 +1288,7 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal);
|
|
|
|
|
/*关闭测试穴位真空破*/
|
|
|
|
|
VacManager.TestTrayVacBreak(EVacOperator.Close, undealTasks.Select(t => t.FromIndex + 1).ToArray());
|
|
|
|
|
VacManager.TestTrayVacBreak(EVacOperator.Close,false, undealTasks.Select(t => t.FromIndex + 1).ToArray());
|
|
|
|
|
Step = ETurnoverFlowStep.测试位取料完成抬起;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -1311,6 +1335,11 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
TransitNozzleManager.Instance.Nozzle(task.FromIndex + 1).AddProduct(task);
|
|
|
|
|
GlobalTray.TestTray.ChangeStatus(task.FromIndex + 1, ESlotStatus.NotHave);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logInfo = $"周转{task.FromIndex + 1}号吸嘴真空吸检测异常";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (TestTrayManager.Instance.GetSlots(ETestTraySlotStatus.Have).Count == 0)
|
|
|
|
@ -1461,10 +1490,20 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETurnoverFlowStep.到周转盘放料位下方1:
|
|
|
|
|
if(GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("TurnoverTakeZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("TurnoverTakeZ");
|
|
|
|
|
}
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos+1, GlobalVar.WholeSpeed);
|
|
|
|
|
if(errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
|
|
|
|
|
/*提前打开周转盘真空吸*/
|
|
|
|
|
VacManager.TurnoverTrayVacSuction(EVacOperator.Open, false, hasProductNozzles.Select(n => n.ToIndex + 1).ToArray());
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
@ -1511,10 +1550,8 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
logInfo = GetClassName() + $"已运动到周转盘放料位下方2";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles();
|
|
|
|
|
/*打开周转盘真空吸*/
|
|
|
|
|
VacManager.TurnoverTrayVacSuction(EVacOperator.Open, true, hasProductNozzles.Select(n => n.ToIndex+1).ToArray());
|
|
|
|
|
/*关闭周转吸头真空吸*/
|
|
|
|
|
VacManager.TransitNozzleVacSuction( EVacOperator.Close,true,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray());
|
|
|
|
|
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;
|
|
|
|
@ -1522,7 +1559,14 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case ETurnoverFlowStep.周转盘放料完成抬起1:
|
|
|
|
|
if(GlobalVar.EnableTwoSpeed)
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("TurnoverTakeZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("TurnoverSafeZ");
|
|
|
|
|
}
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed);
|
|
|
|
|
if(errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|