|
|
|
@ -4,6 +4,7 @@ using Rs.Motion;
|
|
|
|
|
using Rs.Motion.Base;
|
|
|
|
|
using Rs.MotionPlat.Commom;
|
|
|
|
|
using Rs.MotionPlat.Flow;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
|
|
|
|
|
namespace Rs.AutoDischarge.V3.Flow
|
|
|
|
@ -97,6 +98,8 @@ namespace Rs.AutoDischarge.V3.Flow
|
|
|
|
|
bool bStop= false;
|
|
|
|
|
IAxis StockFlow = null;
|
|
|
|
|
IAxis StockZ=null;
|
|
|
|
|
Stopwatch timer = new Stopwatch();
|
|
|
|
|
string loginfo = "";
|
|
|
|
|
public override void Run()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
@ -262,48 +265,61 @@ namespace Rs.AutoDischarge.V3.Flow
|
|
|
|
|
case ETrayTestStep.到上料终点位:
|
|
|
|
|
StockFlow.MoveOffset(-1* SysConfigParam.GetValue<double>("LowSpeedDistance"), 3);
|
|
|
|
|
Step = ETrayTestStep.等待到上料终点位;
|
|
|
|
|
timer.Restart();
|
|
|
|
|
break;
|
|
|
|
|
case ETrayTestStep.等待到上料终点位:
|
|
|
|
|
if (IoManager.Instance.ReadIn($"{stockNo}号料仓料盘到位光电检测") == 1)
|
|
|
|
|
if(timer.ElapsedMilliseconds<=1000*30)
|
|
|
|
|
{
|
|
|
|
|
switch (stockNo)
|
|
|
|
|
if (IoManager.Instance.ReadIn($"{stockNo}号料仓料盘到位光电检测") == 1)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
GlobalTray.Empty1Tray.ResetTray();
|
|
|
|
|
GlobalTray.Empty1Tray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
GlobalTray.InputTray.ResetTray();
|
|
|
|
|
GlobalTray.InputTray.Fill();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
GlobalTray.OkTary.ResetTray();
|
|
|
|
|
GlobalTray.OkTary.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
GlobalTray.NgTray.ResetTray();
|
|
|
|
|
GlobalTray.NgTray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
GlobalTray.MultiTray.ResetTray();
|
|
|
|
|
GlobalTray.MultiTray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
GlobalTray.Empty2Tray.ResetTray();
|
|
|
|
|
GlobalTray.Empty2Tray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
switch (stockNo)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
GlobalTray.Empty1Tray.ResetTray();
|
|
|
|
|
GlobalTray.Empty1Tray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
GlobalTray.InputTray.ResetTray();
|
|
|
|
|
GlobalTray.InputTray.Fill();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
GlobalTray.OkTary.ResetTray();
|
|
|
|
|
GlobalTray.OkTary.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
GlobalTray.NgTray.ResetTray();
|
|
|
|
|
GlobalTray.NgTray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
GlobalTray.MultiTray.ResetTray();
|
|
|
|
|
GlobalTray.MultiTray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
GlobalTray.Empty2Tray.ResetTray();
|
|
|
|
|
GlobalTray.Empty2Tray.Clear();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
StockFlow.Stop();
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
IoManager.Instance.WriteOut($"{stockNo}号料仓斜推气缸", 1);
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
finished = true;
|
|
|
|
|
Status = ETrayStatus.Loaded;
|
|
|
|
|
Step = ETrayTestStep.等待命令;
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
StockFlow.Stop();
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
IoManager.Instance.WriteOut($"{stockNo}号料仓斜推气缸", 1);
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
finished = true;
|
|
|
|
|
Status = ETrayStatus.Loaded;
|
|
|
|
|
Step = ETrayTestStep.等待命令;
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
timer.Stop();
|
|
|
|
|
loginfo = $"料仓{stockNo}上料未到位,请手动处理后,点击确定";
|
|
|
|
|
MessageQueue.Instance.Warn(loginfo);
|
|
|
|
|
LogHelper.Debug(loginfo);
|
|
|
|
|
Msg.ShowError(loginfo);
|
|
|
|
|
timer.Restart();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|