|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
using Rs.AutoDischarge.V3.Flow;
|
|
|
|
|
using Rs.Controls;
|
|
|
|
|
using Rs.Framework;
|
|
|
|
|
using Rs.Motion;
|
|
|
|
|
using Rs.MotionPlat.Commom;
|
|
|
|
|
using Rs.MotionPlat.Flow.Space;
|
|
|
|
|
using System;
|
|
|
|
@ -101,42 +102,52 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
switch (step)
|
|
|
|
|
{
|
|
|
|
|
case ETakeTrayFlowStep.到取料盘上方:
|
|
|
|
|
//double centerX = SysConfigParam.GetValue<double>($"Tray{m_fromTray.ToString()}CenterX");
|
|
|
|
|
//double centerY = SysConfigParam.GetValue<double>($"Tray{m_fromTray.ToString()}CenterY");
|
|
|
|
|
double cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
|
|
|
double cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>($"{m_fromTray.ToString()}TakeTrayX");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>($"{m_fromTray.ToString()}TakeTrayY");
|
|
|
|
|
Motion.ErrorCode errCode = AxisControl.LoadX.MovePos(targetX + cameraCenterX, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
if(DischargeFlow.Instance.XYCanMove())
|
|
|
|
|
{
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(targetY+ cameraCenterY, GlobalVar.TakeTraySpeed);
|
|
|
|
|
//double centerX = SysConfigParam.GetValue<double>($"Tray{m_fromTray.ToString()}CenterX");
|
|
|
|
|
//double centerY = SysConfigParam.GetValue<double>($"Tray{m_fromTray.ToString()}CenterY");
|
|
|
|
|
double cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
|
|
|
double cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>($"{m_fromTray.ToString()}TakeTrayX");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>($"{m_fromTray.ToString()}TakeTrayY");
|
|
|
|
|
Motion.ErrorCode errCode = AxisControl.LoadX.MovePos(targetX + cameraCenterX, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(targetY + cameraCenterY, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"准备运动到{m_fromTray}料仓取料盘位上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待到取料盘上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
}
|
|
|
|
|
logInfo =GetClassName()+ $"准备运动到{m_fromTray}料仓取料盘位上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待到取料盘上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
Msg.ShowError("周转Y轴不在安全位,请移动到安全后点击确定");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETakeTrayFlowStep.等待到取料盘上方:
|
|
|
|
|
if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"已运动到{m_fromTray}料仓取料盘位上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待料盘准备就绪;
|
|
|
|
|
if(Ops.IsArrived(AxisControl.LoadX,AxisControl.LoadY))
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"已运动到{m_fromTray}料仓取料盘位上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待料盘准备就绪;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETakeTrayFlowStep.等待料盘准备就绪:
|
|
|
|
@ -254,50 +265,60 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETakeTrayFlowStep.到放料盘上方:
|
|
|
|
|
//if(GlobalVar.RunSpace)
|
|
|
|
|
//{
|
|
|
|
|
// Thread.Sleep(2000);
|
|
|
|
|
//}
|
|
|
|
|
//centerX = SysConfigParam.GetValue<double>($"Tray{m_toTray.ToString()}CenterX");
|
|
|
|
|
//centerY = SysConfigParam.GetValue<double>($"Tray{m_toTray.ToString()}CenterY");
|
|
|
|
|
takeTrayFinishedEvent?.Invoke();
|
|
|
|
|
cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
|
|
|
cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>($"{m_toTray.ToString()}TakeTrayX");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>($"{m_toTray.ToString()}TakeTrayY");
|
|
|
|
|
|
|
|
|
|
errCode = AxisControl.LoadX.MovePos(targetX+ cameraCenterX, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
if (DischargeFlow.Instance.XYCanMove())
|
|
|
|
|
{
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(targetY+ cameraCenterY - 2, GlobalVar.TakeTraySpeed);
|
|
|
|
|
//if(GlobalVar.RunSpace)
|
|
|
|
|
//{
|
|
|
|
|
// Thread.Sleep(2000);
|
|
|
|
|
//}
|
|
|
|
|
//centerX = SysConfigParam.GetValue<double>($"Tray{m_toTray.ToString()}CenterX");
|
|
|
|
|
//centerY = SysConfigParam.GetValue<double>($"Tray{m_toTray.ToString()}CenterY");
|
|
|
|
|
takeTrayFinishedEvent?.Invoke();
|
|
|
|
|
double cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
|
|
|
double cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
|
|
|
targetX = SysConfigParam.GetValue<double>($"{m_toTray.ToString()}TakeTrayX");
|
|
|
|
|
targetY = SysConfigParam.GetValue<double>($"{m_toTray.ToString()}TakeTrayY");
|
|
|
|
|
|
|
|
|
|
ErrorCode errCode = AxisControl.LoadX.MovePos(targetX + cameraCenterX, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
errCode = AxisControl.LoadY.MovePos(targetY + cameraCenterY - 2, GlobalVar.TakeTraySpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"到{toTray}料仓放料盘上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待到放料盘上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName()+$"到{toTray}料仓放料盘上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = ETakeTrayFlowStep.等待到放料盘上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode);
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode);
|
|
|
|
|
|
|
|
|
|
Msg.ShowError("周转Y轴不在安全位,请移动到安全后点击确定");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETakeTrayFlowStep.等待到放料盘上方:
|
|
|
|
|
if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"已运动到{toTray}料仓放料盘上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
arrivedDumpPosEvent?.Invoke();
|
|
|
|
|
step = ETakeTrayFlowStep.等待放料仓准备就绪;
|
|
|
|
|
if (Ops.IsArrived(AxisControl.LoadX, AxisControl.LoadY))
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"已运动到{toTray}料仓放料盘上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
arrivedDumpPosEvent?.Invoke();
|
|
|
|
|
step = ETakeTrayFlowStep.等待放料仓准备就绪;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETakeTrayFlowStep.等待放料仓准备就绪:
|
|
|
|
|