Commit 2cb2f677 LN

托盘横移修改,若30秒未等到托盘信号,结束处理

1 个父辈 fd7bf740
......@@ -212,11 +212,13 @@ namespace OnlineStore.DeviceLibrary
if (Config.DOList.ContainsKey(IO_Type.HY_FrontStopDown))
{
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopDown, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopDown, IO_VALUE.LOW));
}
IOMove(IO_Type.HY_StopDown, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
}
else if (preTrayIsC1Line && Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
......@@ -242,7 +244,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
CylinderMove(MoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
CylinderMove(null, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
}
}
......@@ -304,17 +307,37 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(LineMoveStep.HY02_FrontStopDown))
{
if (IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 托盘检测到信号,前阻挡上升");
CheckAndMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_FrontStopCheck=LOW 或 HY_TrayCheck=LOW 结束处理 ");
MoveInfo.EndMove();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY03_FrontStopUp))
{
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(LineMoveStep.HY04_WaitTime);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 再次等待托盘信号");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=LOW 结束处理 ");
MoveInfo.EndMove();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY04_WaitTime))
{
//判断是否需要横移托盘,或者取放料
......@@ -787,6 +810,12 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//如果横移20和横移21都有托盘,需要横移
if (IOManager.IOValue(IO_Type.HY_TrayCheck, 220).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.HY_TrayCheck, 221).Equals(IO_VALUE.HIGH))
{
return true;
}
FeedingEquip feed5 = LineManager.Line.FeedingEquipMap[102];
if (!feed5.MoveInfo.MoveType.Equals(LineMoveType.InStore))
{
......
......@@ -207,8 +207,9 @@ namespace OnlineStore.DeviceLibrary
LogInfo("检测托盘," + MoveInfo.SLog + " ,阻挡上升");
UpdateTrayNum();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopDown, IO_VALUE.LOW));
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
......@@ -238,8 +239,9 @@ namespace OnlineStore.DeviceLibrary
ClearTrayRFID();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
MoveInfo.OneWaitCanEndStep = true;
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopDown, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
}
else
......@@ -278,17 +280,37 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(LineMoveStep.HY02_FrontStopDown))
{
if (IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.LOW)|| IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 托盘检测到信号,前阻挡上升");
CheckAndMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_FrontStopCheck=HIGH 或 HY_TrayCheck=LOW 结束处理 ");
MoveInfo.EndMove();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY03_FrontStopUp))
{
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(LineMoveStep.HY04_WaitTime);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 再次等待托盘信号");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=LOW 结束处理 ");
MoveInfo.EndMove();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY04_WaitTime))
{
//更新托盘号
......
......@@ -122,6 +122,9 @@ namespace OnlineStore.DeviceLibrary
T3C1_MoveInfo.OneWaitCanEndStep = true;
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW));
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
//最多等待30秒
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
}
else
......@@ -159,17 +162,37 @@ namespace OnlineStore.DeviceLibrary
#region 托盘检测
if (T3C1_MoveInfo.IsStep(LineMoveStep.MIO_00_Stop1Down))
{
if (IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_01_TrayCheck);
T3C1_Log("托盘阻挡" + T3C1_MoveInfo.SLog + " 前阻挡上升,等待 阻挡托盘检测=1");
IOMove(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW);
T3C1_MoveInfo.OneWaitCanEndStep = true;
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
//最多等待30秒
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
T3C1_Log(T3C1_MoveInfo.SLog + "未等到信号 HY_FrontStopCheck=LOW,或 HY_TrayCheck=HIGH,结束处理 ");
T3C1_MoveInfo.EndMove();
}
}
else if (T3C1_MoveInfo.IsStep(LineMoveStep.MIO_01_TrayCheck))
{
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopUp);
T3C1_Log("托盘阻挡" + T3C1_MoveInfo.SLog + " 再次等待托盘信号");
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
}
else
{
T3C1_Log(T3C1_MoveInfo.SLog + "未等到信号 HY_TrayCheck=HIGH,结束处理 ");
T3C1_MoveInfo.EndMove();
}
}
else if (T3C1_MoveInfo.IsStep(LineMoveStep.MIO_03_StopUp))
{
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
......
......@@ -673,6 +673,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.OneWaitCanEndStep = true;
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck1, IO_VALUE.LOW));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
//最多等待30秒
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
}
else
......@@ -714,28 +716,42 @@ namespace OnlineStore.DeviceLibrary
#region 托盘检测
if (SecondMoveInfo.IsStep(LineMoveStep.MIO_00_Stop1Down))
{
if (IOValue(IO_Type.StopCheck1).Equals(IO_VALUE.LOW) || IOValue(IO_Type.StopCheck2).Equals(IO_VALUE.HIGH))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_TrayCheck);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)");
if (DeviceID.Equals(5))
SecondMoveInfo.OneWaitCanEndStep = true;
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
//最多等待30秒
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
SecondMoveInfo.TimeOutSeconds = 20;
//未检测到信号或阻挡下降失败,结束处理
LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck1=LOW,或 StopCheck2=HIGH,结束处理 ");
SecondMoveInfo.EndMove();
}
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
}
else if (SecondMoveInfo.IsStep(LineMoveStep.MIO_01_TrayCheck))
{
if (IOValue(IO_Type.StopCheck2).Equals(IO_VALUE.HIGH))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopUp);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 再次等待托盘信号");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck2=HIGH,结束处理 ");
SecondMoveInfo.EndMove();
}
}
else if (SecondMoveInfo.IsStep(LineMoveStep.MIO_03_StopUp))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定StopCylinder_Check2=1");
CheckAndMove(IO_Type.StopDown1, IO_VALUE.LOW);
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
}
else if (SecondMoveInfo.IsStep(LineMoveStep.MIO_04_Wait))
......@@ -891,7 +907,6 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.IsStep(LineMoveStep.MO_19_StopUp))
{
CheckLog("托盘放行 SecondMove:(托盘放行结束) ");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo.EndMove();
}
#endregion
......
......@@ -251,6 +251,10 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error("UpdateBoxDebug【" + id + "】【" + isDebug + "】失败");
}
}
else
{
LogUtil.error("UpdateBoxDebug【" + id + "】【" + isDebug + "】失败:料仓不在线");
}
return false;
}
public static bool StartInStore(int id, InOutParam param)
......@@ -265,7 +269,7 @@ namespace OnlineStore.DeviceLibrary
paramList.Add(S_PlateW, param.PlateW);
paramList.Add(S_WareCode, param.WareCode);
paramList.Add(S_RFID, param.rfid);
// string msg = cmd_startIn+cmd_spilt+param.PosId+cmd_spilt+param.PlateH+cmd_spilt+param.PlateW+cmd_spilt+"\r";
string msg = ToParamStr(paramList);
TcpClientBean client = ClientMap[id];
bool result = SendStrToClient(client, msg);
......@@ -274,6 +278,10 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error("StartInStore【" + id + "】【" + msg + "】失败");
}
}
else
{
LogUtil.error("StartInStore【" + id + "】【" + param.ToStr() + "】失败:料仓不在线");
}
return false;
}
///// <summary>
......@@ -320,6 +328,10 @@ namespace OnlineStore.DeviceLibrary
// LogUtil.info("CheckInStorePos【" + id + "】【" + msg + "】发送成功");
}
}
else
{
LogUtil.error("CheckInStorePos【" + id + "】【" + param.ToStr() + "】失败:料仓不在线");
}
}
catch (Exception ex)
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!