Commit e24b6592 LN

托盘处理优化

1 个父辈 efbfdf1d
......@@ -263,6 +263,7 @@ namespace OnlineStore.DeviceLibrary
bool check2IsOk = CheckStopWatch(trayCheckLowWait, TrayWaitTime, false)||String.IsNullOrEmpty(RFIDIP);
if (preTrayIsC1Line && Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
StopDownCount = 0;
//C1线和出料线交替处理
HY71_OL_Wait();
}
......@@ -270,6 +271,7 @@ namespace OnlineStore.DeviceLibrary
{
if (CheckStopWatch(frontTrayCheckWait, TrayWaitTime, false) && check2IsOk)
{
StopDownCount = 0;
preTrayIsC1Line = true;
//托盘在前阻挡处
frontTrayCheckWait.Stop();
......@@ -347,6 +349,39 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
private int StopDownCount = 0;
private void EndOrReStopDown(string msg )
{
if (StopDownCount == 0)
{
LogInfo(SecondMoveInfo.SLog + msg + ",暂不结束,重新下降一次前阻挡");
//阻挡重新下降一次
StopDownCount++;
MoveInfo.NextMoveStep(LineMoveStep.HY02_FrontStopDown);
if (DeviceID.Equals(219))
{
LogInfo(" 托盘检测:" + MoveInfo.SLog + ",检测到前阻挡托盘,前阻挡下降");
}
else
{
CheckLog(" 托盘检测:" + MoveInfo.SLog + ",检测到前阻挡托盘,前阻挡下降");
}
ClearTrayRFID();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, TrayManager.StopDTime);
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(null, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(20000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
}
else
{
LogInfo(MoveInfo.SLog + msg);
MoveEndS();
}
}
protected override void FixtureProcess()
{
if (MoveInfo.IsInWait)
......@@ -367,9 +402,10 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_FrontStopCheck=LOW 或 HY_TrayCheck=HIGH 结束处理 ");
MoveEndS();
EndOrReStopDown("未等到信号 HY_FrontStopCheck=LOW 或 HY_TrayCheck=HIGH 结束处理 ");
////未检测到信号或阻挡下降失败,结束处理
//LogInfo(MoveInfo.SLog + "未等到信号 HY_FrontStopCheck=LOW 或 HY_TrayCheck=HIGH 结束处理 ");
//MoveEndS();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY03_FrontStopUp))
......@@ -384,9 +420,10 @@ namespace OnlineStore.DeviceLibrary
}
else
{
EndOrReStopDown("未等到信号 HY_TrayCheck=HIGH 结束处理 ");
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=HIGH 结束处理 ");
MoveEndS();
//LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=HIGH 结束处理 ");
//MoveEndS();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY04_WaitTime))
......@@ -401,9 +438,10 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=HIGH 结束处理 ");
MoveEndS();
EndOrReStopDown("未等到信号 HY_TrayCheck=HIGH 结束处理 ");
////未检测到信号或阻挡下降失败,结束处理
//LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=HIGH 结束处理 ");
//MoveEndS();
}
}
else if (MoveInfo.IsStep(LineMoveStep.HY05_TrayCheck))
......@@ -436,9 +474,10 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=LOW 结束处理 ");
MoveEndS();
EndOrReStopDown("未等到信号 HY_TrayCheck=HIGH 结束处理 ");
////未检测到信号或阻挡下降失败,结束处理
//LogInfo(MoveInfo.SLog + "未等到信号 HY_TrayCheck=LOW 结束处理 ");
//MoveEndS();
}
}
#endregion
......
......@@ -537,9 +537,16 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Busy;
MoveInfo.NewMove(LineMoveType.OutStore);
MoveInfo.MoveParam = param;
//判断是否已在p1
if (UpdownAxis.IsInPosition(Config.UpDownAxisP1))
{
JM_02_CylinderTake();
}
else {
MoveInfo.NextMoveStep(LineMoveStep.JM_01_UpdownToP1);
OutLog("托盘移栽 升降气缸上升 ");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
return true;
}
else
......
......@@ -821,6 +821,7 @@ namespace OnlineStore.DeviceLibrary
{
if (CheckStopWatch(trayCheckWait, TrayWaitTime, false) && check2IsOk && canpro)
{
StopDownCount = 0;
trayCheckWait.Stop();
trayCheck2LowWait.Stop();
//托盘在第一个阻挡处
......@@ -858,6 +859,8 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " CheckFixture " + "失败,未得到锁");
}
}
private int StopDownCount = 0;
protected override void FixtureProcess()
{
if (!LineManager.Line.CanProcessLine())
......@@ -901,9 +904,11 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck2=HIGH,结束处理 ");
SecondMoveInfo.EndMove();
////未检测到信号或阻挡下降失败,结束处理
//LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck2=HIGH,结束处理 ");
//SecondMoveInfo.EndMove();
EndOrReStopDown("未等到信号 StopCheck2=HIGH,结束处理");
}
}
else if (SecondMoveInfo.IsStep(LineMoveStep.MIO_03_StopUp))
......@@ -1091,8 +1096,34 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//未检测到信号或阻挡下降失败,结束处理
LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck1=LOW,或 StopCheck2=HIGH,结束处理 ");
EndOrReStopDown("未等到信号 StopCheck1=LOW,或 StopCheck2=HIGH,结束处理");
////未检测到信号或阻挡下降失败,结束处理
//LogInfo(SecondMoveInfo.SLog + "未等到信号 StopCheck1=LOW,或 StopCheck2=HIGH,结束处理 ");
//SecondMoveInfo.EndMove();
}
}
private void EndOrReStopDown(string msg= "未等到信号 StopCheck2=HIGH,结束处理")
{
if (StopDownCount == 0)
{
LogInfo(SecondMoveInfo.SLog + msg+",暂不结束,重新下降一次前阻挡");
//阻挡重新下降一次
StopDownCount ++;
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_00_Stop1Down);
CheckLog(" 托盘检测:料盘检测StopCylinder_Check1 " + SecondMoveInfo.SLog + "阻挡气缸1-1下降 , 等待 StopCylinder_Check1=0,清理托盘RFID");
ClearTrayRFID();
IOMove(IO_Type.StopDown2, IO_VALUE.LOW);
IOMove(IO_Type.StopDown1, IO_VALUE.HIGH, TrayManager.StopDTime);
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
{
LogInfo(SecondMoveInfo.SLog + msg);
SecondMoveInfo.EndMove();
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!