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,16 +307,36 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(LineMoveStep.HY02_FrontStopDown))
{
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 托盘检测到信号,前阻挡上升");
CheckAndMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
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))
{
MoveInfo.NextMoveStep(LineMoveStep.HY04_WaitTime);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 再次等待托盘信号");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
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))
{
......
......@@ -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,21 +162,41 @@ namespace OnlineStore.DeviceLibrary
#region 托盘检测
if (T3C1_MoveInfo.IsStep(LineMoveStep.MIO_00_Stop1Down))
{
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_01_TrayCheck);
T3C1_Log("托盘阻挡" + T3C1_MoveInfo.SLog + " 前阻挡上升,等待 阻挡托盘检测=1");
IOMove(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW);
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
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))
{
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));
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);
T3C1_Log("托盘阻挡" + T3C1_MoveInfo.SLog + " ,等待编码信号稳定 HY_TrayCheck=1");
T3C1_Log("托盘阻挡" + T3C1_MoveInfo.SLog + " ,等待编码信号稳定 HY_TrayCheck=1");
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
}
else if (T3C1_MoveInfo.IsStep(LineMoveStep.MIO_04_Wait))
......@@ -215,10 +238,10 @@ namespace OnlineStore.DeviceLibrary
//判断盘是空盘,空盘并且编号正确才需要放料盘过去
if (TrayNeedT3C1(T3C1_TrayNum))
{
T3C1_MoveInfo.MoveParam = new InOutParam(T3C1_TrayNum);
T3C1_MoveInfo.MoveParam = new InOutParam(T3C1_TrayNum);
LogInfo(T3C1_MoveInfo.MoveNum + "*************** 空托盘【" + T3C1_TrayNum + "】,正在入库中,移栽料盘");
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MO_11_CodeRember);
}
}
else
{
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MO_14_TopDown);
......
......@@ -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))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_TrayCheck);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)");
if (DeviceID.Equals(5))
if (IOValue(IO_Type.StopCheck1).Equals(IO_VALUE.LOW) || IOValue(IO_Type.StopCheck2).Equals(IO_VALUE.HIGH))
{
SecondMoveInfo.TimeOutSeconds = 20;
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_TrayCheck);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)");
SecondMoveInfo.OneWaitCanEndStep = true;
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCheck2, IO_VALUE.HIGH));
//最多等待30秒
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
else
{
//未检测到信号或阻挡下降失败,结束处理
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))
{
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));
if (IOValue(IO_Type.StopCheck2).Equals(IO_VALUE.HIGH))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopUp);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 再次等待托盘信号");
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))
......@@ -771,7 +787,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager.UpdateTrayNumError(-1, "");
}
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
}
}
......@@ -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!