Commit 1ae565cc LN

料架处理bug修改

1 个父辈 1758d6f4
......@@ -101,7 +101,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(Name + "读取料架号:" + CurrShelf.ToStr());
return CurrShelf.RealShelf;
}
public void Reset()
{
......@@ -113,18 +113,26 @@ namespace OnlineStore.DeviceLibrary
return;
}
if (CurrShelf.IsBusy)
{
{
LogUtil.error(Name + "复位失败,料架忙碌中");
return ;
return;
}
alarmType = StoreAlarmType.None;
WarnMsg = "";
MoveInfo.EndMove();
MoveInfo.NewMove(StoreMoveType.StoreReset);
MoveInfo.NextMoveStep(MoveStep.SR_01_LocationDown);
LogUtil.info(Name + " 开始复位:顶升下降");
LocationDown(MoveInfo);
if (ProcessShelfEnter || ProcessShelfOut)
{
LogUtil.info(Name + " 开始复位:顶升下降");
}
else
{
LogUtil.info(Name + " 开始复位:顶升下降,设置状态为None");
AgvClient.SetToNone(AgvName);
}
LocationDown(MoveInfo);
}
private void ResetProcess()
{
......@@ -260,24 +268,31 @@ namespace OnlineStore.DeviceLibrary
}
else
{
if (CheckShelf(IO_VALUE.HIGH) && (CurrShelf.RealShelf.Equals("")))
{
LogUtil.info(Name + "检测到料架信号,但是没有料架号,自动复位");
Reset();
}
else if (CheckShelf(IO_VALUE.LOW) && (!CurrShelf.RealShelf.Equals("")))
if (ProcessShelfEnter || ProcessShelfOut)
{
LogUtil.info(Name + "未检测到料架信号,但是有料架号,自动复位");
Reset();
}
if (IOManager.IOValue(DI_InCheck).Equals(IO_VALUE.HIGH) && (CurrShelf.RealShelf.Equals("")))
{
LogUtil.info(Name + "检测到入口料架信号,但是没有料架号,自动复位");
Reset();
}
else
{
AgvStatusPro();
if (CheckShelf(IO_VALUE.HIGH) && (CurrShelf.RealShelf.Equals("")))
{
LogUtil.info(Name + "检测到料架信号,但是没有料架号,自动复位");
Reset();
}
else if (CheckShelf(IO_VALUE.LOW) && (!CurrShelf.RealShelf.Equals("")))
{
LogUtil.info(Name + "未检测到料架信号,但是有料架号,自动复位");
Reset();
}
else if (IOManager.IOValue(DI_InCheck).Equals(IO_VALUE.HIGH) && (CurrShelf.RealShelf.Equals("")))
{
LogUtil.info(Name + "检测到入口料架信号,但是没有料架号,自动复位");
Reset();
}
else
{
AgvStatusPro();
}
}
}
}
......@@ -446,19 +461,7 @@ namespace OnlineStore.DeviceLibrary
private void AgvStatusPro()
{
////判断是否在放料中,如果是,直接返回
//if (EquipManager.Equip.MoveInfo.MoveType.Equals(StoreMoveType.InStore))
//{
// InOutParam inoup = EquipManager.Equip.MoveInfo.MoveParam;
// if (inoup.PosInfo.IsNg.Equals(false) && inoup.PosInfo.ShelfPosId.StartsWith(Name))
// {
// AgvClient.SetToNone(AgvName);
// return;
// }
//}
{
if (IsReady())
{
if (CheckNeedLeave( ))
......@@ -599,6 +602,7 @@ namespace OnlineStore.DeviceLibrary
}
finally
{
AgvClient.SetStatus(AgvName, "", ClientAction.None, ClientLevel.High);
LineStop();
ProcessShelfOut = false;
}
......@@ -617,14 +621,16 @@ namespace OnlineStore.DeviceLibrary
ProcessShelfEnter = true;
LineRun();
bool result = false;
//等待进料检测信号
bool result = WaitIo(DI_InCheck, IO_VALUE.HIGH, 600000);
result = WaitIo(DI_InCheck, IO_VALUE.HIGH, 600000, logName + "等待" + DI_InCheck + "信号");
LogUtil.info(logName + " 等待 " + DI_InCheck + "=High " + result + ", 等待 " + DI_FrontCheck + " 信号");
result = WaitIo(DI_FrontCheck, IO_VALUE.HIGH, 600000);
LogUtil.info(logName + " 等待 " + DI_InCheck + "=High 结果: " + result + ", 开始等待 " + DI_FrontCheck + " 信号");
LogUtil.info(logName + " 等待 " + DI_FrontCheck + "=High " + result + ",开始等待CloseDoor 超时10分钟");
result = WaitIo(DI_FrontCheck, IO_VALUE.HIGH, 600000, logName + "等待" + DI_FrontCheck + "信号");
LogUtil.info(logName + " 等待 " + DI_FrontCheck + "=High 结果: " + result + ",开始等待CloseDoor 超时10分钟");
try
{
result = WaitUtil.Wait(600000, delegate ()
......@@ -636,11 +642,11 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil.error(logName + " 超时:" + te);
}
LogUtil.info(logName + "完成");
LineStop();
Thread.Sleep(2000);
AgvClient.SetStatus(AgvName, "", ClientAction.None, ClientLevel.High, true);
ProcessShelfEnter = false;
ProcessShelfEnter = false;
Reset();
}
......@@ -654,6 +660,7 @@ namespace OnlineStore.DeviceLibrary
}
finally
{
AgvClient.SetStatus(AgvName, "", ClientAction.None, ClientLevel.High, true);
LineStop();
ProcessShelfEnter = false;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!