Commit 56936893 张东亮

空料串出口会流出两个料串问题优化

1 个父辈 e85583ea
......@@ -265,7 +265,8 @@ namespace OnlineStore.DeviceLibrary
LineAgvTimerProcess();
OutLineTimerProcess();
EmptyOutLineTimerProcess();
InLineTimerProcess();
IOTimeOutProcess();
SleepTimerProcess();
......@@ -288,6 +289,8 @@ namespace OnlineStore.DeviceLibrary
private Stopwatch ol_noshelfWatch1 = new Stopwatch();
private Stopwatch ol_noshelfWatch2 = new Stopwatch();
private DateTime ol_lastSendShelfTime = DateTime.Now;
private DateTime ol_lastSendShelfTime1 = DateTime.Now;
private DateTime ol_lastSendShelfTime2 = DateTime.Now;
private int StopDownMS = 1500;
/// <summary>
/// 出料线体定时处理
......@@ -296,9 +299,6 @@ namespace OnlineStore.DeviceLibrary
{
TimeSpan span = DateTime.Now - ol_lastSendShelfTime;
bool manualSig = IOManager.IOValue(IO_Type.L1_ManualRecSig).Equals(IO_VALUE.HIGH);
bool l1_up_sig = IOManager.IOValue(IO_Type.L1_UpDown_Up_Sig).Equals(IO_VALUE.HIGH);
bool l2_up_sig = IOManager.IOValue(IO_Type.L2_UpDown_Up_Sig).Equals(IO_VALUE.HIGH);
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if (IOManager.IOValue(IO_Type.L2_StopCheck).Equals(IO_VALUE.HIGH) &&
......@@ -312,38 +312,62 @@ namespace OnlineStore.DeviceLibrary
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L2_StopDown, StopDownMS);
}
}
else if (span.TotalMilliseconds > StopDownMS)
{
ol_noshelfWatch.Stop();
IOManager.CIOMove(IO_Type.L2_StopDown, IO_VALUE.LOW);
}
else if (IOManager.IOValue(IO_Type.L1_StopCheck).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.LOW) && !manualSig && !l1_up_sig && span.TotalSeconds > 3)
}
private void EmptyOutLineTimerProcess()
{
TimeSpan span = DateTime.Now - ol_lastSendShelfTime1;
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if (IOManager.IOValue(IO_Type.L3_StopCheck).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.L3_OutCheck).Equals(IO_VALUE.LOW) && span.TotalSeconds > 3)
{
//如果出料线体出口无料架,放一个料架到出口
if (LineManager.checkWatch(ol_noshelfWatch1, 1000))
{
IOManager.CIOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 进料线体出口无料架,下降 [" + IO_Type.L1_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L1_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L1_StopDown, StopDownMS);
LogUtil.info(" 空料串线体出口无料架,下降 [" + IO_Type.L3_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime1 = DateTime.Now;
StopIOMove(IO_Type.L3_StopDown, StopDownMS);
}
}
else if (IOManager.IOValue(IO_Type.L3_StopCheck).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.L3_OutCheck).Equals(IO_VALUE.LOW) && span.TotalSeconds > 3)
else if (span.TotalMilliseconds > StopDownMS)
{
ol_noshelfWatch1.Stop();
IOManager.CIOMove(IO_Type.L3_StopDown, IO_VALUE.LOW);
}
}
private void InLineTimerProcess()
{
TimeSpan span = DateTime.Now - ol_lastSendShelfTime2;
bool manualSig = IOManager.IOValue(IO_Type.L1_ManualRecSig).Equals(IO_VALUE.HIGH);
bool l1_up_sig = IOManager.IOValue(IO_Type.L1_UpDown_Up_Sig).Equals(IO_VALUE.HIGH);
bool l2_up_sig = IOManager.IOValue(IO_Type.L2_UpDown_Up_Sig).Equals(IO_VALUE.HIGH);
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if (IOManager.IOValue(IO_Type.L1_StopCheck).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.LOW) && !manualSig && !l1_up_sig && span.TotalSeconds > 3)
{
//如果出料线体出口无料架,放一个料架到出口
if (LineManager.checkWatch(ol_noshelfWatch1, 1000))
if (LineManager.checkWatch(ol_noshelfWatch2, 1000))
{
IOManager.CIOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 空料串线体出口无料架,下降 [" + IO_Type.L3_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L3_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L3_StopDown, StopDownMS);
LogUtil.info(" 进料线体出口无料架,下降 [" + IO_Type.L1_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime2 = DateTime.Now;
StopIOMove(IO_Type.L1_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L1_StopDown, StopDownMS);
}
}
else if (span.TotalMilliseconds > StopDownMS)
{
ol_noshelfWatch.Stop();
ol_noshelfWatch1.Stop();
IOManager.CIOMove(IO_Type.L2_StopDown, IO_VALUE.LOW);
ol_noshelfWatch2.Stop();
IOManager.CIOMove(IO_Type.L1_StopDown, IO_VALUE.LOW);
}
......
......@@ -131,11 +131,10 @@ namespace OnlineStore.DeviceLibrary
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.HIGH))
{
LineManager.DISTLine.UpdateSleep(false);
LineManager.DISTLine.StopIOMove(IO_Type.L2_OutStopDown, 1500);
//agvClient.MayLeave(id);
SetStatus(id, shefId, ClientAction.MayLeave);
LineManager.DISTLine.StopIOMove(IO_Type.L2_OutStopDown, 2000);
LogUtil.info(logName + "下降 L2_OutStopDown , " + shefId);
Task.Factory.StartNew(delegate
{
//两秒后改为离开状态
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!