增加料盘搬运功能

master
lhiven 2 years ago
parent 93839d6ded
commit 60ce2829ef

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

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

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

Loading…
Cancel
Save