收到中控的停止命令后,等待所有的料仓收料完成后再停止设备

master
lhiven 1 year ago
parent 8207ce2d56
commit a02999f0d0

@ -51,7 +51,31 @@ namespace Rs.MotionPlat.Flow
else if(ssi.Info== "Stopped")
{
MessageQueue.Instance.Insert("收到中控停止命令");
Ops.Stop();
Task.Run(() => {
while(true)
{
bool bInput = (StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Loaded
|| StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Unloaded);
bool bOk = (StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Loaded
|| StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Unloaded);
bool bNg = (StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Loaded
|| StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Unloaded);
bool bMulti = (StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Loaded
|| StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Unloaded);
bool bEmpty2 = (StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Loaded
|| StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Unloaded);
if (bInput && bOk && bNg && bMulti && bEmpty2)
{
Ops.Stop();
break;
}
Thread.Sleep(10);
}
});
}
//WorkEnvironment.Instance.Ready();
//Task.Run(() => {
@ -174,7 +198,7 @@ namespace Rs.MotionPlat.Flow
break;
case EInstruction.GetCurrentRecipe:
SchedulingResult srcur = JsonConvert.DeserializeObject<SchedulingResult>(msg);
srcur.Message = "Default";
srcur.Message = GlobalVar.CurRecipe;
client.Send(srcur.ToString());
ReplayTaskEvent?.Invoke(srcur.ToString());
break;
@ -239,7 +263,7 @@ namespace Rs.MotionPlat.Flow
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Busying);
SiloRearrange info = JsonConvert.DeserializeObject<SiloRearrange>(json);
ReportToTestCenter(info);
Thread.Sleep(1000);
Thread.Sleep(200);
//if(info.SiloType== SchedulingSiloBase.ESiloType.Multifunction)
{
TurnoverInfos tis = new TurnoverInfos();
@ -361,28 +385,42 @@ namespace Rs.MotionPlat.Flow
switch (inquireSilo.SiloType)
{
case SchedulingSiloBase.ESiloType.ToBeTested:
MessageQueue.Instance.Insert($"{ETrayType.Input}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Input).Unload(EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Input}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Input).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
case SchedulingSiloBase.ESiloType.Passed:
MessageQueue.Instance.Insert($"{ETrayType.Ok}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Ok).Unload( EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Ok}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Ok).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
case SchedulingSiloBase.ESiloType.Failed:
MessageQueue.Instance.Insert($"{ETrayType.Ng}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Ng).Unload( EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Ng}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Ng).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
case SchedulingSiloBase.ESiloType.Multifunction:
MessageQueue.Instance.Insert($"{ETrayType.Multi}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Multi).Unload(EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Multi}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Multi).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
case SchedulingSiloBase.ESiloType.EmptyInput:
MessageQueue.Instance.Insert($"{ETrayType.Empty1}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Empty1).Unload( EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Empty1}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Empty1).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
case SchedulingSiloBase.ESiloType.EmptyOutput:
MessageQueue.Instance.Insert($"{ETrayType.Empty2}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Empty2).Unload(EStockTrayUnLoadMode.Whole,null);
Task.Run(() => {
MessageQueue.Instance.Insert($"{ETrayType.Empty2}料仓收到切盘命令");
StockManager.Instance.GetStock(ETrayType.Empty2).Unload(EStockTrayUnLoadMode.Whole, null);
});
break;
}
ReportToTestCenter(inquireSilo);

Loading…
Cancel
Save