diff --git a/App/Modules/SicModules/PMs/RecipeExecutions/PostProcess.cs b/App/Modules/SicModules/PMs/RecipeExecutions/PostProcess.cs index 114b7f7..5d0f630 100644 --- a/App/Modules/SicModules/PMs/RecipeExecutions/PostProcess.cs +++ b/App/Modules/SicModules/PMs/RecipeExecutions/PostProcess.cs @@ -137,6 +137,8 @@ namespace SicModules.PMs.RecipeExecutions } _swTimer.Restart(); + + AKunTriggerTempStop(); Notify("Start"); return Result.RUN; } diff --git a/App/Modules/SicModules/PMs/RecipeExecutions/PreProcess.cs b/App/Modules/SicModules/PMs/RecipeExecutions/PreProcess.cs index 71453ff..66b2aba 100644 --- a/App/Modules/SicModules/PMs/RecipeExecutions/PreProcess.cs +++ b/App/Modules/SicModules/PMs/RecipeExecutions/PreProcess.cs @@ -124,7 +124,7 @@ namespace SicModules.PMs.RecipeExecutions public override Result Start(params object[] objs) { Reset(); - + AKunTriggerTempStop();//每次开始工艺都触发一次停止,确保之前的T状态被清除掉,宕机的时候不会停止 if (!RecipeParser.Parse(_recipeName, Module, out var recipeHead, out var recipeSteps, out string reason)) { Stop($"Load recipe {_recipeName} failed, {reason}"); @@ -203,6 +203,9 @@ namespace SicModules.PMs.RecipeExecutions return Result.FAIL; } + //AKunTriggerTempRunId(_lotID); + AKunTriggerTempStart(); + _rotationSpeed = SC.GetValue($"PM.{Module}.ProcessIdle.RotationSpeed"); _isDryRun = SC.GetValue($"PM.{Module}.DryRun.IsDryRun"); diff --git a/App/Modules/SicModules/PMs/Routines/Base/PMBaseRoutine.cs b/App/Modules/SicModules/PMs/Routines/Base/PMBaseRoutine.cs index 379673e..5a5b423 100644 --- a/App/Modules/SicModules/PMs/Routines/Base/PMBaseRoutine.cs +++ b/App/Modules/SicModules/PMs/Routines/Base/PMBaseRoutine.cs @@ -1,12 +1,14 @@ -using System; -using System.Collections.Generic; -using Aitex.Core.Common.DeviceData; +using Aitex.Core.Common.DeviceData; using Aitex.Core.RT.Device.Devices; using Aitex.Core.RT.Device.PmDevices; using Aitex.Core.RT.Event; +using Aitex.Core.RT.OperationCenter; using Aitex.Core.RT.Routine; +using Aitex.Core.RT.SCCore; using MECF.Framework.Common.Equipment; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs; +using System; +using System.Collections.Generic; using static Aitex.Core.RT.Device.PmDevices.DicMode; namespace SicModules.PMs.Routines.Base @@ -21,6 +23,7 @@ namespace SicModules.PMs.Routines.Base protected bool _checkChamberLowThan20 = false; protected bool _checkChamberHighThan20 = false; protected bool _v72IsOpen = false; + protected bool isSimulator; protected bool _finalOpen = false; protected bool _isTvOpen = false; @@ -106,6 +109,7 @@ namespace SicModules.PMs.Routines.Base { Module = module.ToString(); _pm = pm1; + isSimulator = SC.GetValue("System.IsSimulatorMode"); } @@ -2288,5 +2292,37 @@ namespace SicModules.PMs.Routines.Base return fixedMode; } + + protected void AKunTriggerTempRunId(string runId) + { + if (isSimulator) + return; + + OP.DoOperation($"{Module}.AKunTriggerTemp.RunID", runId); + } + + protected void AKunTriggerTempStepCode(string stepCode) + { + if (isSimulator) + return; + + OP.DoOperation($"{Module}.AKunTriggerTemp.StepCode", stepCode); + } + + protected void AKunTriggerTempStart() + { + if (isSimulator) + return; + + OP.DoOperation($"{Module}.AKunTriggerTemp.MarkerActive", 1); + } + + protected void AKunTriggerTempStop() + { + if (isSimulator) + return; + + OP.DoOperation($"{Module}.AKunTriggerTemp.MarkerActive", 0); + } } } diff --git a/App/SicSimulator/Instances/SimulatorSystem.cs b/App/SicSimulator/Instances/SimulatorSystem.cs index 30da2f2..35cd337 100644 --- a/App/SicSimulator/Instances/SimulatorSystem.cs +++ b/App/SicSimulator/Instances/SimulatorSystem.cs @@ -1018,6 +1018,12 @@ namespace SicSimulator.Instances IO.DI[$"{pm}.DI_SCR2Status"].Value = IO.DO[$"{pm}.DO_SCR2Enable"].Value; IO.DI[$"{pm}.DI_SCR3Status"].Value = IO.DO[$"{pm}.DO_SCR3Enable"].Value; + IO.DI[$"{pm}.DI_PSUEnableFB"].Value = IO.DO[$"{pm}.DO_HeaterEnable"].Value; + + IO.DI[$"{pm}.DI_InnerHeaterEnableFB"].Value = IO.DO[$"{pm}.DO_PSU1Enable"].Value; + IO.DI[$"{pm}.DI_MiddleHeaterEnableFB"].Value = IO.DO[$"{pm}.DO_PSU2Enable"].Value; + IO.DI[$"{pm}.DI_OuterHeaterEnableFB"].Value = IO.DO[$"{pm}.DO_PSU3Enable"].Value; + //IO.AI[$"{pm}.AI_PresentLoop1Temp"].Value = IO.AO[$"{pm}.AO_SetpointLoop1Temp"].Value; //IO.AI[$"{pm}.AI_Loop1ControlMode"].Value = IO.AO[$"{pm}.AO_Loop1ControlMode"].Value; //IO.AI[$"{pm}.AI_Loop1ActualPower"].Value = IO.AO[$"{pm}.AO_Loop1ManualOP"].Value; diff --git a/App/SicUI/Models/PMs/PMMotionViewModel.cs b/App/SicUI/Models/PMs/PMMotionViewModel.cs index 2a9ca66..c764bb4 100644 --- a/App/SicUI/Models/PMs/PMMotionViewModel.cs +++ b/App/SicUI/Models/PMs/PMMotionViewModel.cs @@ -566,26 +566,26 @@ namespace SicUI.Models.PMs public Visibility HeatEnableTips { get; set; } private bool CheckHeatConditionOK(out double minuts) { - //minuts = 0; - //int lidopenAfterHeatDisbaleMinuts = (int)QueryDataClient.Instance.Service.GetConfig("PM.LidEnableOpenAfterHeatDisbaleTime"); - //string dateTimeStr = QueryDataClient.Instance.Service.GetConfig($"PM.{SystemName}.OpenLidCountDownTime").ToString(); - //DateTime dtStartTime =DateTime.Now; - //if (DateTime.TryParse(dateTimeStr, out dtStartTime)) - //{ - // minuts = lidopenAfterHeatDisbaleMinuts - (DateTime.Now - dtStartTime).TotalMinutes; - // if (dtStartTime.AddMinutes(lidopenAfterHeatDisbaleMinuts) < DateTime.Now) - // { - // HeatEnableTips = Visibility.Collapsed; - // return true; - // } - //} - //HeatEnableTips = Visibility.Visible; - //return false; - - - minuts = 0; - return true; + int lidopenAfterHeatDisbaleMinuts = (int)QueryDataClient.Instance.Service.GetConfig("PM.LidEnableOpenAfterHeatDisbaleTime"); + string dateTimeStr = QueryDataClient.Instance.Service.GetConfig($"PM.{SystemName}.OpenLidCountDownTime").ToString(); + DateTime dtStartTime = DateTime.Now; + if (DateTime.TryParse(dateTimeStr, out dtStartTime)) + { + minuts = lidopenAfterHeatDisbaleMinuts - (DateTime.Now - dtStartTime).TotalMinutes; + if (dtStartTime.AddMinutes(lidopenAfterHeatDisbaleMinuts) < DateTime.Now) + { + HeatEnableTips = Visibility.Collapsed; + return true; + } + } + HeatEnableTips = Visibility.Visible; + return false; + + + + //minuts = 0; + //return true; } } }