Commit f3e3d7b1 LN

扫码逻辑修改

1 个父辈 9c47c981
......@@ -884,9 +884,10 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
IB07_AxisUpMove,
/// <summary>
/// 料串入料:判断是否有料盘
/// 料串入料:等待是否可以开始扫码
/// </summary>
IB08_CheckHasTray,
IB08_WaitCanScan,
/// <summary>
/// 料串入料:扫码
/// </summary>
......
......@@ -589,6 +589,13 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil.info(Name + " [" + MoveInfo.MoveStep + "]" + msg);
}
protected void ClearWarnMsg(string msg)
{
if (WarnMsg.Contains(msg))
{
WarnMsg="";
}
}
}
public class BatchMoveConfig
......
......@@ -162,13 +162,13 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove();
LogUtil.info(" 未检测到料串,入料结束");
}
}
}
else if (MoveInfo.IsStep(StepEnum.IB05_StopUp))
{
LineStop();
if ( Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
if (Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
{
if (CurrShelf!=null&& CurrShelf.ShelfState.Equals(2))
if (CurrShelf != null && CurrShelf.ShelfState.Equals(2))
{
SendInShelfLeave(" 料串【" + CurrShelf.ToStr() + "】为出库中料串,不需要入库 ");
}
......@@ -202,10 +202,20 @@ namespace OnlineStore.DeviceLibrary
{
CheckHasTray();
}
else if (MoveInfo.IsStep(StepEnum.IB08_WaitCanScan))
{
if (!Robot.AxisIsInShelfUp(ShelfType))
{
IB09_ScanCode();
}
else if (MoveInfo.IsTimeOut(10))
{
WarnMsg = Name + "[" + MoveInfo.MoveStep + "] " + "等待旋转轴离开料串超时" + "[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
}
}
else if (MoveInfo.IsStep(StepEnum.IB09_ScanCode))
{
WorkLog("IB09_ScanCode");
//WorkLog("IB09_ScanCode");
MoveInfo.MoveParam = new InOutParam(new InOutPosInfo("", ""));
string code = CodeManager.ProcessCode(LastCodeList);
MoveInfo.MoveParam.PosInfo.barcode = code;
......@@ -235,7 +245,7 @@ namespace OnlineStore.DeviceLibrary
LastHeight = GetHeight();
}
else if (MoveInfo.IsStep(StepEnum.IB14_WaitReelLeave))
{
{
CheckHasTray();
}
......@@ -283,6 +293,7 @@ namespace OnlineStore.DeviceLibrary
}
private void IB09_ScanCode()
{
ClearWarnMsg("等待旋转轴离开料串超时");
MoveInfo.NextMoveStep(StepEnum.IB09_ScanCode);
bool isScan = ConfigAppSettings.GetIntValue(Setting_Init.NeedScanCode).Equals(1);
......@@ -336,7 +347,16 @@ namespace OnlineStore.DeviceLibrary
WarnMsg = "";
if (Robot.IOValue(Config.IO_ReelCheck).Equals(IO_VALUE.HIGH) && MoveInfo.ShelfNoTray.Equals(false))
{
IB09_ScanCode();
if (Robot.AxisIsInShelfUp(ShelfType))
{
MoveInfo.NextMoveStep(StepEnum.IB08_WaitCanScan);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
WorkLog("旋转轴在料串上方,暂不能扫码,等待旋转轴离开");
}
else
{
IB09_ScanCode();
}
}
else
{
......@@ -810,7 +830,8 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + "当前状态:" + MoveInfo.MoveType + ",GetTrayOK暂不处理");
}
}
public void GetTrayLeave()
public void GetTrayStartLeave()
{
if (MoveInfo.MoveType.Equals(MoveType.InStore))
{
......
......@@ -642,6 +642,32 @@ namespace OnlineStore.DeviceLibrary
return false;
}
/// <summary>
/// 判断旋转轴是否在料串上方
/// </summary>
/// <param name="shelfType">1=A侧料串,2=B侧料串</param>
/// <returns></returns>
public bool AxisIsInShelfUp(int shelfType)
{
int middleP = MiddleAxis.GetAclPosition();
int middleWucha = 20000;
//旋转轴在A暂存区
if (MiddleAxis.IsInPosition(Config.Middle_P2_ATake, middleWucha) )
{
if (shelfType.Equals(1))
{
return true;
}
}
else if (MiddleAxis.IsInPosition(Config.Middle_P3_BTake, middleWucha) )
{
if (shelfType.Equals(2))
{
return true;
}
}
return false;
}
}
}
......@@ -513,20 +513,15 @@ namespace OnlineStore.DeviceLibrary
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P8_NGH, Config.Updown_P8_Speed);
}
else if (lastPosInfo.GetPosSide().Equals("A"))
{
//MoveInfo.NextMoveStep(StepEnum.II40_UpdownToP4);
//MoveLog($" 入料->A侧 {MoveInfo.SLog}: A侧入库料{lastPosInfo.ToStr()}, 升降轴 到P4(A上暂存区放料高点){Config.Updown_P4_AUpperH}");
//UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
{
II41_MiddleTWaitP4();
}
else
{
//MoveInfo.NextMoveStep(StepEnum.II60_UpdownToP10);
//MoveLog($" 入料->B侧 {MoveInfo.SLog}: B侧入库料{lastPosInfo.ToStr()} ,升降轴 到P10(B上暂存区放料高点){Config.Updown_P10_BUpperH}");
//UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
{
II61_MiddleToWaitP5();
}
TrayStartLeave();
}
private void II61_MiddleToWaitP5()
......@@ -716,17 +711,20 @@ namespace OnlineStore.DeviceLibrary
}
return false;
}
private void TrayHasLeave()
{
}
private void TrayStartLeave()
{
int shelf = MoveInfo.MoveParam.ShelfType;
if (shelf.Equals(1))
{
BatchMove_A.GetTrayLeave();
BatchMove_A.GetTrayStartLeave();
}
else if (shelf.Equals(2))
{
BatchMove_B.GetTrayLeave();
BatchMove_B.GetTrayStartLeave();
}
}
protected override void OutstoreProcess()
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!