Commit c9ac5b9a 刘韬

优化进出库流程

1 个父辈 694e2c7f
......@@ -26,7 +26,7 @@ namespace DeviceLibrary
public event Action<string, StoreMoveType, bool> InOutEndProcessEvent;
public bool IsComplateOrFree { get => MoveInfo.MoveStep == MoveStep.Wait; }
public bool IsTakedBox { get => MoveInfo.MoveStep >= MoveStep.StoreTS10; }
public bool IsPutOnOut {get=> To.posid== BoxStorePosition.outdoor && MoveInfo.MoveStep < MoveStep.StoreTS10 && MoveInfo.MoveStep >= MoveStep.StoreTS16; }
public bool IsPutOnOut {get=> To.posid== BoxStorePosition.outdoor && MoveInfo.MoveStep >= MoveStep.StoreTS16; }
public BoxTransport(Robot_Config _Config, MainMachine _mainMachine)
{
Config = _Config;
......@@ -72,15 +72,29 @@ namespace DeviceLibrary
//thread = new Thread(new ThreadStart(Run));
//thread.Start();
}
bool isSameSide(int from)
bool isNotSameSide(int x_to, int y_to)
{
var p = XAxis.GetAclPosition();
var rtx = p + Config.XAxis.CanErrorCountMax;
var ltx = p- Config.XAxis.CanErrorCountMax;
if (rtx >= Config.Xaxis_P1 && rtx >= from)
var ltx = p - Config.XAxis.CanErrorCountMax;
var py = YAxis.GetAclPosition();
var uty = py + Config.YAxis.CanErrorCountMax;
var dty = py - Config.YAxis.CanErrorCountMax;
//从外侧到内测,判断目标位置是否小于p1
if (rtx >= Config.Xaxis_P1 && x_to < Config.Xaxis_P1)
{
if (y_to < Config.Yaxis_P1)
return true;
if (ltx <= Config.Xaxis_P1 && ltx <= from)
}
//从内测到外侧判断当前位置是否小于p1
if (ltx <= Config.Xaxis_P1 && x_to > Config.Xaxis_P1)
{
if (uty < Config.Yaxis_P1)
return true;
}
return false;
}
......@@ -118,7 +132,7 @@ namespace DeviceLibrary
break;
case MoveStep.StoreTS03:
MoveInfo.NextMoveStep(MoveStep.StoreTS04);
if (isSameSide(From.Xaxis_P2))
if (isNotSameSide(From.Xaxis_P2,From.Yaxis_PL))
{
YAxis.AbsMove(MoveInfo, Config.Yaxis_P1, Config.Yaxis_P1_speed);
XAxis.AbsMove(MoveInfo, Config.Xaxis_P1, Config.Xaxis_P1_speed);
......@@ -171,7 +185,7 @@ namespace DeviceLibrary
{
IgnoreX09 = false;
MoveInfo.NextMoveStep(MoveStep.StoreTS10);
if (isSameSide(To.Xaxis_P2))
if (isNotSameSide(To.Xaxis_P2, To.Yaxis_PL))
{
YAxis.AbsMove(MoveInfo, Config.Yaxis_P1, Config.Yaxis_P1_speed);
XAxis.AbsMove(MoveInfo, Config.Xaxis_P1, Config.Xaxis_P1_speed);
......
......@@ -107,15 +107,24 @@ namespace DeviceLibrary
}
[Serializable]
class BoxStorePosition {
//行走机构取料点
/// <summary>
/// 行走机构取料点
/// </summary>
public int Xaxis_P2;
//升降轴取料高点
/// <summary>
/// 升降轴取料高点
/// </summary>
public int Yaxis_PH;
//升降轴取料低点
/// <summary>
/// 升降轴取料低点
/// </summary>
public int Yaxis_PL;
//进出轴取料点
/// <summary>
/// 进出轴取料点
/// </summary>
public int Zaxis_P2;
public string posid;
......
......@@ -73,7 +73,7 @@ namespace DeviceLibrary
isOk = false;
WarnMsg = msg;
Alarm(AlarmType.AxisMoveError, WarnMsg);
Msg.add(WarnMsg, MsgLevel.warning);
Msg.add(WarnMsg, MsgLevel.alarm);
break;
}
}
......
......@@ -32,14 +32,20 @@ namespace DeviceLibrary
if (OutSideLift.isAtBOTTOM)
{
OutMoveInfo.NextMoveStep(MoveStep.WaitErr);
return;
}
else if (IOValue(IO_Type.OutEntryMaterialTop_Check).Equals(IO_VALUE.HIGH) && RobotManage.mainMachine.boxTransport.IsPutOnOut)
else if (IOValue(IO_Type.OutEntryMaterialTop_Check).Equals(IO_VALUE.HIGH) && OutMoveInfo.IsTimeOut(20))
{
Msg.add("检测到出料口有周转箱", MsgLevel.warning);
OutMoveInfo.log($"检测到出料口有周转箱,送出");
Msg.add("检测到出料口有周转箱,等待信息超时", MsgLevel.warning);
OutMoveInfo.log($"检测到出料口有周转箱,等待信息超时,送出");
OutMoveInfo.NextMoveStep(MoveStep.OutBoxPutOn);
return;
}
else if (IOValue(IO_Type.OutEntryMaterialTop_Check).Equals(IO_VALUE.HIGH))
return;
OutMoveInfo.NextMoveStep(MoveStep.Wait);
break;
case MoveStep.WaitErr:
OutMoveInfo.NextMoveStep(MoveStep.Wait);
......
......@@ -96,7 +96,7 @@ namespace DeviceLibrary
//}
break;
case MoveStep.StoreOut12:
if (boxTransport.IsComplateOrFree)
if (boxTransport.IsPutOnOut)
{
OutMoveInfo.NextMoveStep(MoveStep.OutBoxPutOn);
OutMoveInfo.MoveParam = StoreMoveInfo.MoveParam.clone();
......
......@@ -289,6 +289,12 @@ namespace DeviceLibrary
ZAxis.HomeMove(ResetMoveInfo, forceHome);
break;
case MoveStep.H02_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H03_HomeReset);
ResetMoveInfo.log("正在回原,料叉P1待机点");
ZAxis.AbsMove(ResetMoveInfo, Config.Zaxis_P1, Config.Zaxis_P1_speed);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
break;
case MoveStep.H03_HomeReset:
if (IOValue(IO_Type.SideA_ForkMaterial_Check).Equals(IO_VALUE.HIGH) ||
IOValue(IO_Type.SideB_ForkMaterial_Check).Equals(IO_VALUE.HIGH))
{
......@@ -296,12 +302,6 @@ namespace DeviceLibrary
RobotManage.UserPause("回源时料叉上有物料");
return;
}
ResetMoveInfo.NextMoveStep(MoveStep.H03_HomeReset);
ResetMoveInfo.log("正在回原,料叉P1待机点");
ZAxis.AbsMove(ResetMoveInfo, Config.Zaxis_P1, Config.Zaxis_P1_speed);
ResetMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
break;
case MoveStep.H03_HomeReset:
ResetMoveInfo.NextMoveStep(MoveStep.H04_HomeReset);
ResetMoveInfo.log("开始回原,行走机构,回原");
XAxis.HomeMove(ResetMoveInfo, forceHome);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!