From a02999f0d07ba4b3bf04a3930dbce684d622738f Mon Sep 17 00:00:00 2001 From: lhiven Date: Tue, 19 Dec 2023 17:39:13 +0900 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E5=88=B0=E4=B8=AD=E6=8E=A7=E7=9A=84?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E5=91=BD=E4=BB=A4=E5=90=8E=EF=BC=8C=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E6=89=80=E6=9C=89=E7=9A=84=E6=96=99=E4=BB=93=E6=94=B6?= =?UTF-8?q?=E6=96=99=E5=AE=8C=E6=88=90=E5=90=8E=E5=86=8D=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Flow/TestCenter.cs | 68 +++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 15 deletions(-) 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);