Commit 3a0334d4 张东亮

出入库料盘检测、行走机构运行前后料盘检测

1 个父辈 d8e01861
......@@ -83,7 +83,7 @@ namespace OnlineStore.DeviceLibrary
//有一个到位就算到位
moveInfo.OneWaitCanEndStep = true;
}
moveInfo.TimeOutSeconds = 5;
moveInfo.TimeOutSeconds = 15;
}
}
......
......@@ -310,6 +310,7 @@ namespace OnlineStore.DeviceLibrary
/// 料仓出库:取料完成,准备去出料口
/// </summary>
SO_14_GetReels_Ready,
SO_14_GetReels_Ready1,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
......@@ -351,6 +352,8 @@ namespace OnlineStore.DeviceLibrary
/// 料仓出库:取料完成,准备去出料口
/// </summary>
SOB_14_GetReels_Ready,
SOB_14_GetReels_Ready1,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
......@@ -450,6 +453,7 @@ namespace OnlineStore.DeviceLibrary
/// 3. 料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_08_ToPosition,
SI_08_ToPosition1,
/// <summary>
/// 料仓入库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
......@@ -466,7 +470,7 @@ namespace OnlineStore.DeviceLibrary
/// 料仓入库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SI_12_DropTrayToPos,
SI_12_MiddleToP3,
/// <summary>
/// 料仓入库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
......
......@@ -751,13 +751,13 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.MoveParam.PosInfoBack.IsNG = true;
}
MoveInfo.NextMoveStep(StepEnum.SO_14_GetReels_Ready);
MoveAxisToP1();
//MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
if (MoveInfo.MoveParam.PosInfoBack == null)
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]准备送往出料口,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
else
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}],准备送往出料口。行走机构到待机点P1,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}],准备送往出料口,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
}
else if (IOValue(IO_Type.ForkB_Tray_Check).Equals(IO_VALUE.HIGH))
{
......@@ -766,14 +766,14 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.MoveParam.PosInfo.IsNG = true;
MoveInfo.MoveParam.MoveP = new LineMoveP(Config, MoveInfo.MoveParam.PosInfo.PosId);
MoveInfo.NextMoveStep(StepEnum.SO_14_GetReels_Ready);
MoveAxisToP1();
// MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
//BuffAreaOutstoreDoor(true);
if (MoveInfo.MoveParam.PosInfoBack == null)
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}],准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}],准备送往出料口,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
else
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}],准备送往出料口。行走机构到待机点P1,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"复位完成 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}],准备送往出料口,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
}
else
{
......
......@@ -234,8 +234,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveParam.PosInfoBack != null)//料叉有料,忽略当前入料口,直接入库
{
MoveInfo.NextMoveStep(StepEnum.SI_07_MiddleToP3);
LogInfo($"入库 {MoveInfo.SLog}:入口料盘无入库信息,另一面料叉有料。先将当前移栽旋转轴到抽屉库位垂直取放料点P3,然后对另一面入库[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MiddleAxis_To_P3();
LogInfo($"入库 {MoveInfo.SLog}:入口料盘无入库信息,另一面料叉有料,然后对另一面入库[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
MoveInfo.MoveParam.PosInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy();
MoveInfo.MoveParam.MoveP = new LineMoveP(Config, MoveInfo.MoveParam.PosInfo.PosId);
......@@ -324,12 +323,10 @@ namespace OnlineStore.DeviceLibrary
//去库位点
case StepEnum.SI_07_MiddleToP3:
MoveInfo.NextMoveStep(StepEnum.SI_08_ToPosition);
LogInfo($"入库 {MoveInfo.SLog}:运行到库位,移栽升降轴到料斗上方过渡点P6/P12,行走机构到存储库位取放点位P3," +
$"料斗拉取升降轴到抽屉提取低点P4,料斗拉取进出轴到拍照点,移栽旋转轴到料斗库位垂直取放料点P3,移栽X轴到抽屉库位取放料点P3[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
LogInfo($"入库 {MoveInfo.SLog}:运行到库位,移栽升降轴到料斗上方过渡点P6/P12," +
$"料斗拉取升降轴到抽屉提取低点P4,料斗拉取进出轴到拍照点,移栽X轴到抽屉库位取放料点P3[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P3();
PullAxis_Inout_To_Cam();
MiddleAxis_To_P3();
MoveAxisToP3();
PullAxis_UpdownToLowP4();
UpdownAxisTo_P6_P12();
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
......@@ -341,6 +338,19 @@ namespace OnlineStore.DeviceLibrary
return;
}
ignoreCurFork = false;
MoveInfo.NextMoveStep(StepEnum.SI_08_ToPosition1);
LogInfo($"入库 {MoveInfo.SLog}:运行到库位,行走机构到存储库位取放点位P3," +
$"[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveAxisToP3();
break;
case StepEnum.SI_08_ToPosition1:
if (!CheckReel(true))
{
WarnMsg = $"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查";
return;
}
ignoreCurFork = false;
MoveInfo.NextMoveStep(StepEnum.SI_09_ToTray);
LogInfo($"入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到抽屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
PullAxis_Inout_To_P2_P4();
......@@ -373,6 +383,17 @@ namespace OnlineStore.DeviceLibrary
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(trayRows[GetPosRow()], IO_VALUE.HIGH));
break;
case StepEnum.SI_12_DropTrayToPos:
MoveInfo.NextMoveStep(StepEnum.SI_12_MiddleToP3);
LogInfo($"入库 {MoveInfo.SLog}:移栽旋转轴到抽屉库位垂直取放料点P3[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MiddleAxis_To_P3();
break;
case StepEnum.SI_12_MiddleToP3:
if (!CheckReel(true))
{
WarnMsg = $"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查";
return;
}
ignoreCurFork = false;
MoveInfo.NextMoveStep(StepEnum.SI_13_GetReel);
LogInfo($"入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到抽屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
UpdownAxisToP7_P13();
......
......@@ -232,16 +232,33 @@ namespace OnlineStore.DeviceLibrary
}
//直接出库,执行该步骤的情况:1.另一个料叉有料;2.另一面有出库任务但出料口有料;3.另一面没有出库任务;
MoveInfo.NextMoveStep(StepEnum.SO_14_GetReels_Ready);
MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
//BuffAreaOutstoreDoor(true);
if (MoveInfo.MoveParam.PosInfoBack == null)
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
else
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}]取料完成,准备送往出料口。行走机构到待机点P1,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}]取料完成,准备送往出料口,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
break;
case StepEnum.SO_14_GetReels_Ready:
if (!CheckReel(true))
{
WarnMsg = $"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查";
return;
}
ignoreCurFork = false;
MoveInfo.NextMoveStep(StepEnum.SO_14_GetReels_Ready1);
MoveAxisToP1();
LogInfo($"出库 {MoveInfo.SLog}:准备送往出料口。行走机构到待机点P1");
break;
case StepEnum.SO_14_GetReels_Ready1:
if (!CheckReel(true))
{
WarnMsg = $"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查";
return;
}
ignoreCurFork = false;
//已出一边的料,切换到另一边
MoveInfo.NextMoveStep(StepEnum.SO_15_ToBufferArea);
//LogInfo($"出库 {MoveInfo.SLog}:到暂存区出料口," +
......@@ -304,12 +321,12 @@ namespace OnlineStore.DeviceLibrary
else
{
MoveInfo.NextMoveStep(StepEnum.SO_14_GetReels_Ready);
LogInfo($"出库 {MoveInfo.SLog}:另一面料叉有料,开始出库,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区放料高点P4/P10[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
LogInfo($"出库 {MoveInfo.SLog}:另一面料叉有料,开始出库,准备送往出料口,料屉升降轴到P1点,移栽升降轴到下暂存区放料高点P4/P10[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
MoveInfo.MoveParam.PosInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy();
MoveInfo.MoveParam.MoveP = new LineMoveP(Config, MoveInfo.MoveParam.PosInfoBack.PosId);
MoveInfo.MoveParam.PosInfoBack = null;
MoveAxisToP1();
// MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
}
......
......@@ -22,11 +22,27 @@ namespace OnlineStore.DeviceLibrary
{
case StepEnum.SOB_14_GetReels_Ready:
//两侧已有同尺寸的料
MoveInfo.NextMoveStep(StepEnum.SOB_15_ToBufferArea);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
MoveAxisToP1();
MoveInfo.NextMoveStep(StepEnum.SOB_14_GetReels_Ready1);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
//MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
// BuffAreaOutstoreDoor(true);
break;
case StepEnum.SOB_14_GetReels_Ready1:
if (!CheckBothReel(true))
{
WarnMsg = $"两面料叉上存在未检测到料盘,请检查";
return;
}
ignoreCurFork = false;
//两侧已有同尺寸的料
MoveInfo.NextMoveStep(StepEnum.SOB_15_ToBufferArea);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1");
MoveAxisToP1();
//PullAxis_UpdownToP1();
// UpdownAxisTo_P4_P10();
BuffAreaOutstoreDoor(true);
break;
case StepEnum.SOB_15_ToBufferArea:
......@@ -74,6 +90,12 @@ namespace OnlineStore.DeviceLibrary
MoveAxisToP1();
break;
case StepEnum.SOB_19_InOutBackFromBuff:
if (!CheckBothReel(false))
{
WarnMsg = $"两面料叉上还能检测到料盘,请检查";
return;
}
ignoreCurFork = false;
//出库料盘放置成功,将料盘信息写入对应出料口
if (CheckASide())
{
......
......@@ -595,6 +595,19 @@ namespace OnlineStore.DeviceLibrary
return IOValue(IO_Type.ForkB_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW);
}
}
bool CheckBothReel(bool hasReel)
{
if (ignoreFork)
{
return true;//暂时屏蔽
}
if (ignoreCurFork)
{
return true;
}
return IOValue(IO_Type.ForkA_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW) && IOValue(IO_Type.ForkB_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW);
}
/// <summary>
/// 抽屉水平点,料斗拉取升降轴到料屉水平点P2
/// </summary>
......
......@@ -1115,7 +1115,7 @@ namespace OnlineStore.DeviceLibrary
if (MiddleToShelf())
{
}
else if (MoveInfo.IsTimeOut(60))
else if (MoveInfo.IsTimeOut(30))
{
MoveTimeOut(MoveInfo, "等待料串可放料");
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!