Commit 5f01dd7d LN

托盘处理修改

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