diff --git a/Rs.SkyLine/Flow/TestCenter.cs b/Rs.SkyLine/Flow/TestCenter.cs index 98f896e..4909390 100644 --- a/Rs.SkyLine/Flow/TestCenter.cs +++ b/Rs.SkyLine/Flow/TestCenter.cs @@ -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(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(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);