Commit 56936893 张东亮

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

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