Commit 5f01dd7d LN

托盘处理修改

1 个父辈 24693584
......@@ -178,7 +178,9 @@ namespace OnlineStore.DeviceLibrary
private Stopwatch trayCheckWait = new Stopwatch();//检测到托盘的时间
private Stopwatch frontTrayCheckWait = new Stopwatch();
private Stopwatch trayCheck2LowWait = new Stopwatch();//上一个托盘离开的时间
private Stopwatch olcheckWatch = new Stopwatch();
private object lockObj = "";
private bool preTrayIsC1Line = false;
......@@ -188,6 +190,33 @@ namespace OnlineStore.DeviceLibrary
{
try
{
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
trayCheck2LowWait.Stop();
CheckStopWatch(trayCheckWait, 30000, false);
}
else
{
trayCheckWait.Stop();
CheckStopWatch(trayCheck2LowWait, 30000, false);
}
if (Config.DIList.ContainsKey(IO_Type.HY_FrontStopCheck) && IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.HIGH))
{
CheckStopWatch(frontTrayCheckWait, 30000, false);
}
else
{
frontTrayCheckWait.Stop();
}
if (Config.DIList.ContainsKey(IO_Type.HY_OL_Tray_Check) && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
CheckStopWatch(olcheckWatch, 30000, false);
}
else
{
olcheckWatch.Stop();
}
if (MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{
LogUtil.error(Name + " CheckFixture " + " 不在空闲中,直接返回 ");
......@@ -197,7 +226,6 @@ namespace OnlineStore.DeviceLibrary
{
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
trayCheck2LowWait.Stop();
if (CheckStopWatch(trayCheckWait, TrayWaitTime, true))
{
//托盘在工位阻挡处
......@@ -217,44 +245,41 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
}
else if (preTrayIsC1Line && Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
//C1线和出料线交替处理
HY71_OL_Wait();
}
else if (Config.DIList.ContainsKey(IO_Type.HY_FrontStopCheck) && IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.HIGH))
else
{
bool check2IsOk = CheckStopWatch(trayCheck2LowWait, TrayWaitTime, false);
if (CheckStopWatch(trayCheckWait, TrayWaitTime, false) && check2IsOk)
if (preTrayIsC1Line && Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
preTrayIsC1Line = true;
//托盘在前阻挡处
trayCheckWait.Stop();
trayCheck2LowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY02_FrontStopDown);
CheckLog(" 托盘检测:" + MoveInfo.SLog + ",检测到前阻挡托盘,前阻挡下降");
ClearTrayRFID();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
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(30000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
//C1线和出料线交替处理
HY71_OL_Wait();
}
else if (Config.DIList.ContainsKey(IO_Type.HY_FrontStopCheck) && IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.HIGH))
{
if (CheckStopWatch(frontTrayCheckWait, TrayWaitTime, false) && check2IsOk)
{
preTrayIsC1Line = true;
//托盘在前阻挡处
frontTrayCheckWait.Stop();
trayCheck2LowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY02_FrontStopDown);
CheckLog(" 托盘检测:" + MoveInfo.SLog + ",检测到前阻挡托盘,前阻挡下降");
ClearTrayRFID();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
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(30000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
}
}
else if (Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
HY71_OL_Wait();
}
}
else if (Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
{
HY71_OL_Wait();
}
else
{
bool check2IsOk = CheckStopWatch(trayCheck2LowWait, TrayWaitTime, false);
trayCheckWait.Stop();
}
}
}
catch (Exception ex)
......@@ -274,11 +299,11 @@ namespace OnlineStore.DeviceLibrary
private void HY71_OL_Wait()
{
bool check2IsOk = CheckStopWatch(trayCheck2LowWait, TrayWaitTime, false);
if (CheckStopWatch(trayCheckWait, TrayWaitTime, false) && check2IsOk)
if (CheckStopWatch(olcheckWatch, TrayWaitTime, false) && check2IsOk)
{
preTrayIsC1Line = false;
//托盘在前阻挡处
trayCheckWait.Stop();
olcheckWatch.Stop();
trayCheck2LowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!