增加料盘搬运功能

master
lhiven 2 years ago
parent 93839d6ded
commit 60ce2829ef

@ -118,6 +118,7 @@ namespace Rs.AutoDischarge.V3.Flow
else if (NeedLoad)
{
//上料
Status= ETrayStatus.Loading;
finished = false;
NeedLoad = false;
if (m_bWholeLoad)

@ -1,4 +1,5 @@
using Rs.Controls;
using Rs.AutoDischarge.V3.Flow;
using Rs.Controls;
using Rs.Framework;
using Rs.MotionPlat.Commom;
using Rs.MotionPlat.Flow.Space;
@ -18,6 +19,7 @@ namespace Rs.MotionPlat.Flow
,
,
,
,
,
,
,
@ -103,6 +105,12 @@ namespace Rs.MotionPlat.Flow
Ops.Off($"{(int)m_fromTray}号料仓斜推气缸");
Ops.Off($"{(int)m_toTray}号料仓斜推气缸");
Thread.Sleep(500);
step = ETakeTrayFlowStep.;
}
break;
case ETakeTrayFlowStep.:
if(StockManager.Instance.GetStockStatus(m_fromTray)==ETrayStatus.Loaded)
{
step = ETakeTrayFlowStep.;
}
break;
@ -126,16 +134,19 @@ namespace Rs.MotionPlat.Flow
{
Msg.ShowError("上下气缸动位异常,请处理后点击确定");
stopwatch.Restart();
Ops.On("夹爪真空吸");
Thread.Sleep(150);
step = ETakeTrayFlowStep.;
}
break;
case ETakeTrayFlowStep.:
Ops.Off("上下气缸电磁阀动位");
Ops.On("上下气缸电磁阀原位");
Thread.Sleep(150);
Thread.Sleep(1000);
step = ETakeTrayFlowStep.;
break;
case ETakeTrayFlowStep.:
if (Ops.IsOn("上下气缸原位"))
if (Ops.IsOn("上下气缸原位") && Ops.IsOn("夹爪真空吸检测"))
{
step = ETakeTrayFlowStep.;
if(m_fromTray== EStockType.Empty2)
@ -143,6 +154,11 @@ namespace Rs.MotionPlat.Flow
StockManager.Instance.Load(m_fromTray);
}
}
else
{
Msg.ShowError("取料盘失败,点击确定后重取");
step = ETakeTrayFlowStep.;
}
break;
case ETakeTrayFlowStep.:
centerX = SysConfigParam.GetValue<double>($"Tray{m_toTray.ToString()}CenterX");

@ -53,6 +53,12 @@ namespace Rs.MotionPlat.Flow
,
Input,
Input,
Ok,
Ok,
Ng,
Ng,
Multi,
Multi,
IDLE
}
@ -173,12 +179,12 @@ namespace Rs.MotionPlat.Flow
}
else
{
Msg.ShowInfo("tray has take over,please change tray");
GlobalTray.InputTray.ResetTray();
GlobalTray.InputTray.Fill();
//TakeTrayFlow.Instance.Take(EStockType.Input, EStockType.Empty1, ELoadUnloadType.Unload);
//restoreFlowStep = EWorkFlowStep.到取料位上方;
//flowStep = EWorkFlowStep.等待Input料盘搬运完成;
//Msg.ShowInfo("tray has take over,please change tray");
//GlobalTray.InputTray.ResetTray();
//GlobalTray.InputTray.Fill();
TakeTrayFlow.Instance.Take(EStockType.Input, EStockType.Empty1, ELoadUnloadType.Unload);
restoreFlowStep = EWorkFlowStep.;
flowStep = EWorkFlowStep.Input;
}
}
if (curSlotPoint != null)
@ -554,6 +560,7 @@ namespace Rs.MotionPlat.Flow
}
else if (curNozzle.ToType == TurnoverType.Passed)
{
//OK料仓切盘
downSlot = GlobalTray.OkTary.GetSlot(ESlotStatus.NotHave);
if (downSlot != null)
{
@ -561,10 +568,13 @@ namespace Rs.MotionPlat.Flow
}
else
{
Msg.ShowInfo("tray has take over,please change tray");
GlobalTray.OkTary.ResetTray();
GlobalTray.OkTary.Clear();
//Msg.ShowError("last slot");
//Msg.ShowInfo("tray has take over,please change tray");
//GlobalTray.OkTary.ResetTray();
//GlobalTray.OkTary.Clear();
//TakeTrayFlow.Instance.Take(EStockType.Input, EStockType.Empty1, ELoadUnloadType.Unload);
StockManager.Instance.UnLoad(EStockType.Ok);
restoreFlowStep = EWorkFlowStep.;
flowStep = EWorkFlowStep.Ok;
}
}
else if (curNozzle.ToType == TurnoverType.Failed)
@ -576,8 +586,11 @@ namespace Rs.MotionPlat.Flow
}
else
{
GlobalTray.NgTray.ResetTray();
GlobalTray.NgTray.Clear();
//GlobalTray.NgTray.ResetTray();
//GlobalTray.NgTray.Clear();
StockManager.Instance.UnLoad(EStockType.Ng);
restoreFlowStep = EWorkFlowStep.;
flowStep = EWorkFlowStep.Ng;
}
}
else if (curNozzle.ToType == TurnoverType.Multifunction)
@ -589,8 +602,11 @@ namespace Rs.MotionPlat.Flow
}
else
{
GlobalTray.MultiTray.ResetTray();
GlobalTray.MultiTray.Clear();
//GlobalTray.MultiTray.ResetTray();
//GlobalTray.MultiTray.Clear();
StockManager.Instance.UnLoad(EStockType.Multi);
restoreFlowStep = EWorkFlowStep.;
flowStep = EWorkFlowStep.Multi;
}
}
}
@ -866,6 +882,48 @@ namespace Rs.MotionPlat.Flow
restoreFlowStep = EWorkFlowStep.IDLE;
}
break;
case EWorkFlowStep.Ok:
if(StockManager.Instance.GetStockStatus( EStockType.Ok)== AutoDischarge.V3.Flow.ETrayStatus.Unloaded)
{
flowStep = EWorkFlowStep.Ok;
TakeTrayFlow.Instance.Take(EStockType.Empty2, EStockType.Ok);
}
break;
case EWorkFlowStep.Ok:
if(TakeTrayFlow.Instance.TakeStatus== ETakeStatus.TakeOK && StockManager.Instance.GetStockStatus( EStockType.Ok)== AutoDischarge.V3.Flow.ETrayStatus.Loaded)
{
flowStep = restoreFlowStep;
restoreFlowStep = EWorkFlowStep.IDLE;
}
break;
case EWorkFlowStep.Ng:
if (StockManager.Instance.GetStockStatus(EStockType.Ng) == AutoDischarge.V3.Flow.ETrayStatus.Unloaded)
{
flowStep = EWorkFlowStep.Ng;
TakeTrayFlow.Instance.Take(EStockType.Empty2, EStockType.Ng);
}
break;
case EWorkFlowStep.Ng:
if (TakeTrayFlow.Instance.TakeStatus == ETakeStatus.TakeOK && StockManager.Instance.GetStockStatus(EStockType.Ng) == AutoDischarge.V3.Flow.ETrayStatus.Loaded)
{
flowStep = restoreFlowStep;
restoreFlowStep = EWorkFlowStep.IDLE;
}
break;
case EWorkFlowStep.Multi:
if (StockManager.Instance.GetStockStatus(EStockType.Multi) == AutoDischarge.V3.Flow.ETrayStatus.Unloaded)
{
flowStep = EWorkFlowStep.Multi;
TakeTrayFlow.Instance.Take(EStockType.Empty2, EStockType.Multi);
}
break;
case EWorkFlowStep.Multi:
if (TakeTrayFlow.Instance.TakeStatus == ETakeStatus.TakeOK && StockManager.Instance.GetStockStatus(EStockType.Multi) == AutoDischarge.V3.Flow.ETrayStatus.Loaded)
{
flowStep = restoreFlowStep;
restoreFlowStep = EWorkFlowStep.IDLE;
}
break;
default:
break;
}

Loading…
Cancel
Save