Commit e9a16f1e LN

hy动作优化

1 个父辈 43e6854f
......@@ -219,8 +219,8 @@ namespace OnlineStore.DeviceLibrary
private void CheckFixture()
{
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
//if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
//{
try
{
if (MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
......@@ -233,29 +233,8 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{
if (CheckStopWatch(trayCheckWait, TrayWaitTime, true))
{
//托盘在工位阻挡处
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
if (DeviceID.Equals(219) || DeviceID.Equals(203))
{
LogInfo("托盘检测," + MoveInfo.SLog + " 检测到托盘 ,阻挡上升");
}
else
{
CheckLog("托盘检测," + MoveInfo.SLog + " 检测到托盘 ,阻挡上升");
}
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));
}
IOMove(IO_Type.HY_StopDown, IO_VALUE.LOW);
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(20000));
{
TrayStart_HY03_FrontStopUp();
}
}
else
......@@ -273,30 +252,8 @@ namespace OnlineStore.DeviceLibrary
{
if (CheckStopWatch(frontTrayCheckWait, TrayWaitTime, false) && check2IsOk)
{
StopDownCount = 0;
preTrayIsC1Line = true;
//托盘在前阻挡处
frontTrayCheckWait.Stop();
trayCheckLowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
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(10000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
TrayStart_HY02_FrontStopDown();
}
}
else if (Config.IsOutLineOut && IOValue(IO_Type.HY_OL_Tray_Check).Equals(IO_VALUE.HIGH))
......@@ -310,32 +267,160 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil.error(Name + " CheckFixture " + " 出错:" + ex.ToString());
}
// finally
// {
// Monitor.Exit(lockObj);
// }
//}
//else
//{
// LogUtil.error(Name + " CheckFixture " + "失败,未得到锁");
//}
}
private void TrayStart_HY02_FrontStopDown()
{
string mName = " TrayStart_HY02_FrontStopDown ";
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
try
{
if (MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{
LogUtil.error(Name + mName + " 不在空闲中,直接返回 ");
return;
}
StopDownCount = 0;
preTrayIsC1Line = true;
//托盘在前阻挡处
frontTrayCheckWait.Stop();
trayCheckLowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
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(10000));
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
}
catch (Exception ex)
{
LogUtil.error(Name + mName + " 出错:" + ex.ToString());
}
finally
{
Monitor.Exit(lockObj);
}
}
else
{
LogUtil.error(Name + " CheckFixture " + "失败,未得到锁");
LogUtil.error(Name + mName + "失败,未得到锁");
}
}
private void TrayStart_HY03_FrontStopUp()
{
string logName = " TrayStart_HY03_FrontStopUp ";
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
try
{
if (MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{
LogUtil.error(Name + logName + " 不在空闲中,直接返回 ");
return;
}
//托盘在工位阻挡处
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
if (DeviceID.Equals(219) || DeviceID.Equals(203))
{
LogInfo("托盘检测," + MoveInfo.SLog + " 检测到托盘 ,阻挡上升");
}
else
{
CheckLog("托盘检测," + MoveInfo.SLog + " 检测到托盘 ,阻挡上升");
}
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));
}
IOMove(IO_Type.HY_StopDown, IO_VALUE.LOW);
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(20000));
}
catch (Exception ex)
{
LogUtil.error(Name + logName + " 出错:" + ex.ToString());
}
finally
{
Monitor.Exit(lockObj);
}
}
else
{
LogUtil.error(Name + logName + "失败,未得到锁");
}
}
private void HY71_OL_Wait()
{
bool check2IsOk = CheckStopWatch(trayCheckLowWait, TrayWaitTime, false) || String.IsNullOrEmpty(RFIDIP);
if (CheckStopWatch(olcheckWatch, TrayWaitTime, false) && check2IsOk)
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
preTrayIsC1Line = false;
//托盘在前阻挡处
olcheckWatch.Stop();
trayCheckLowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY71_OL_Wait);
CheckLog(" 托盘检测:" + MoveInfo.SLog + ",检测到出料线托盘 ");
ClearTrayRFID();
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_OL_Tray_Check, IO_VALUE.HIGH));
try
{
if (MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{
LogUtil.error(Name + " HY71_OL_Wait " + " 不在空闲中,直接返回 ");
return;
}
bool check2IsOk = CheckStopWatch(trayCheckLowWait, TrayWaitTime, false) || String.IsNullOrEmpty(RFIDIP);
if (CheckStopWatch(olcheckWatch, TrayWaitTime, false) && check2IsOk)
{
preTrayIsC1Line = false;
//托盘在前阻挡处
olcheckWatch.Stop();
trayCheckLowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY71_OL_Wait);
CheckLog(" 托盘检测:" + MoveInfo.SLog + ",检测到出料线托盘 ");
ClearTrayRFID();
IOMove(IO_Type.HY_OL_StopDown, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_OL_Tray_Check, IO_VALUE.HIGH));
}
}
catch (Exception ex)
{
LogUtil.error(Name + " HY71_OL_Wait " + " 出错:" + ex.ToString());
}
finally
{
Monitor.Exit(lockObj);
}
}
else
{
LogUtil.error(Name + " HY71_OL_Wait " + "失败,未得到锁");
}
}
internal void HY03_FrontStopUp(int timeout= 20000,bool frontStopUp=true)
......@@ -1417,38 +1502,38 @@ namespace OnlineStore.DeviceLibrary
{
if (DeviceID.Equals(208))
{
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
if (runStatus <= LineRunStatus.Wait)
{
try
return true;
}
else if (MoveInfo.MoveType.Equals(LineMoveType.None))
{
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
if (runStatus <= LineRunStatus.Wait)
{
return true;
}
else if (MoveInfo.MoveType.Equals(LineMoveType.None))
{
try
{
if (runStatus > LineRunStatus.Wait && MoveInfo.MoveType.Equals(LineMoveType.None))
{
LogUtil.debug("进仓05托盘离开," + Name + "开始等待托盘检测信号 HY03_FrontStopUp");
HY03_FrontStopUp(60000);
return true;
}
}
}
catch (Exception ex)
{
LogUtil.error(Name + " Move5Stop2Down " + " 出错:" + ex.ToString());
}
finally
{
Monitor.Exit(lockObj);
}
}
catch (Exception ex)
{
LogUtil.error(Name + " Move5Stop2Down " + " 出错:" + ex.ToString());
}
finally
else
{
Monitor.Exit(lockObj);
LogUtil.error(Name + " Move5Stop2Down 失败,未得到锁");
return false;
}
}
else
{
LogUtil.error(Name + " Move5Stop2Down 失败,未得到锁");
return false;
}
}
else
{
......@@ -1458,6 +1543,10 @@ namespace OnlineStore.DeviceLibrary
}
internal bool HYOut51_WaitFree()
{
if (!CanStartMove())
{
return false;
}
if (Monitor.TryEnter(lockObj, TrayManager.mTimeOut))
{
try
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!