From 5554eb493531e78f19a68b5c40b32d143a5c6c5a Mon Sep 17 00:00:00 2001 From: HCL <1625932291@qq.com> Date: Thu, 20 Aug 2026 14:55:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E7=83=AD?= =?UTF-8?q?=E4=BB=BF=E7=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/SicSimulator/Instances/SimulatorSystem.cs | 6 +++ App/SicUI/Models/PMs/PMMotionViewModel.cs | 38 +++++++++---------- 2 files changed, 25 insertions(+), 19 deletions(-) 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; } } } From f58ac6eebb9188b8dc21edc77b9b7010d3680a45 Mon Sep 17 00:00:00 2001 From: hanqiangqiang <1364346467@qq.com> Date: Thu, 20 Aug 2026 17:35:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E5=89=8D=E5=90=8E?= =?UTF-8?q?=E7=BB=99=E6=98=82=E5=9D=A4=E5=8F=91=E9=80=81=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PMs/RecipeExecutions/PostProcess.cs | 2 + .../PMs/RecipeExecutions/PreProcess.cs | 5 ++- .../PMs/Routines/Base/PMBaseRoutine.cs | 42 +++++++++++++++++-- 3 files changed, 45 insertions(+), 4 deletions(-) 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 d70cc14..dcef9c2 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); + } } }