From d4a2d4b2527af0aa032328f8c6a2fa16b5a3a8f7 Mon Sep 17 00:00:00 2001 From: "SIC1016\\caipeilun" <123456> Date: Thu, 28 Sep 2023 14:38:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9TM=E7=9A=84interlock=20=20DO-?= =?UTF-8?q?47=2048=2017=208=2010=2012=2014=2016=20=E8=A6=81=E6=B1=82?= =?UTF-8?q?=E5=8E=8B=E5=B7=AE=E5=B0=8F=E4=BA=8E50?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Config/PM/PM1/DeviceModelPM1.xml | 3 +++ .../Config/PM/PM2/DeviceModelPM2.xml | 3 +++ Modules/Mainframe/Config/TM/interlock.xml | 18 +++++++++++++++- Modules/Mainframe/TMs/SicTM.cs | 18 ++++++++++++++++ Modules/Mainframe/TMs/TMModule.cs | 21 +++++++++++++++++++ Modules/Mainframe/UnLoads/UnLoadModule.cs | 2 ++ 6 files changed, 64 insertions(+), 1 deletion(-) diff --git a/Modules/Mainframe/Config/PM/PM1/DeviceModelPM1.xml b/Modules/Mainframe/Config/PM/PM1/DeviceModelPM1.xml index 14be2c6a..d0ed7d91 100644 --- a/Modules/Mainframe/Config/PM/PM1/DeviceModelPM1.xml +++ b/Modules/Mainframe/Config/PM/PM1/DeviceModelPM1.xml @@ -148,6 +148,9 @@ + + + + + + - @@ -284,6 +283,7 @@ + @@ -292,16 +292,19 @@ + + + @@ -347,4 +350,17 @@ + + + + + + + + + + + + + diff --git a/Modules/Mainframe/TMs/SicTM.cs b/Modules/Mainframe/TMs/SicTM.cs index 564e24ad..5cc87a9f 100644 --- a/Modules/Mainframe/TMs/SicTM.cs +++ b/Modules/Mainframe/TMs/SicTM.cs @@ -34,6 +34,7 @@ namespace SicModules.TMs //private IoPressureMeter3 _forelineGuage_PS7; private IoPressureMeter3 _chamberGuage_TM; private IoPressureMeter3 _loadLockGuage_PT3; + private IoPressureMeter3 _unLoadGuage_PT3; private IoPressureMeter3 _pm1Pressure2; private IoPressureMeter3 _pm2Pressure2; @@ -62,6 +63,22 @@ namespace SicModules.TMs } } + public double LoadLockPressure + { + get + { + return _loadLockGuage_PT3.Value; + } + } + + public double UnLoadPressure + { + get + { + return _unLoadGuage_PT3.Value; + } + } + public override double PM1Pressure2 { get @@ -145,6 +162,7 @@ namespace SicModules.TMs _chamberGuage_TM = DEVICE.GetDevice("TM.TMPressure"); //_forelineGuage_PS7 = DEVICE.GetDevice("TM.ForelinePressure"); _loadLockGuage_PT3 = DEVICE.GetDevice("TM.LLPressure"); + _unLoadGuage_PT3 = DEVICE.GetDevice("TM.UnLoadPressure"); _pm1Pressure2 = DEVICE.GetDevice("TM.PM1Pressure2"); _pm2Pressure2 = DEVICE.GetDevice("TM.PM2Pressure2"); diff --git a/Modules/Mainframe/TMs/TMModule.cs b/Modules/Mainframe/TMs/TMModule.cs index 228faafe..14c100f0 100644 --- a/Modules/Mainframe/TMs/TMModule.cs +++ b/Modules/Mainframe/TMs/TMModule.cs @@ -87,6 +87,14 @@ namespace SicModules.TMs public bool IsBypassInterlock => SC.GetValue($"TM.BypassInterlock"); public bool IsBypassEnableTable => SC.GetValue($"TM.BypassEnableTable"); + public bool IsPressureAbs_TM_PMA_DValue_In50 => (Math.Abs(TMDevice.ChamberPressure - PM1ChamberGuage.Value) < 50); + + public bool IsPressureAbs_TM_PMB_DValue_In50 => (Math.Abs(TMDevice.ChamberPressure - PM2ChamberGuage.Value) < 50); + + public bool IsPressureAbs_TM_Unload_DValue_In50 => (Math.Abs(TMDevice.ChamberPressure - TMDevice.UnLoadPressure) < 50); + + public bool IsPressureAbs_TM_Load_DValue_In50 => (Math.Abs(TMDevice.ChamberPressure - TMDevice.LoadLockPressure) < 50); + public bool IsAlarm { get @@ -182,6 +190,9 @@ namespace SicModules.TMs public IoPressureMeter3 ForelineGuage { get; set; } public IoPressureMeter3 ChamberGuage { get; set; } + public IoPressureMeter3 PM1ChamberGuage { get; set; } + public IoPressureMeter3 PM2ChamberGuage { get; set; } + public Dictionary SlitValves { get; set; } = new Dictionary(); public Dictionary SlitValveInstalled { get; set; } = new Dictionary(); @@ -244,6 +255,8 @@ namespace SicModules.TMs InitScChangeCallback(); + + return base.Initialize(); } @@ -339,6 +352,9 @@ namespace SicModules.TMs ChamberGuage = DEVICE.GetDevice("TM.TMPressure"); ForelineGuage = DEVICE.GetDevice("TM.ForelinePressure"); + PM1ChamberGuage = DEVICE.GetDevice("PM1.ChamberPressure"); + PM2ChamberGuage = DEVICE.GetDevice("PM2.ChamberPressure"); + //SlitValves[ModuleName.PM1] = DEVICE.GetDevice("TM.PM1Door"); //SlitValves[ModuleName.PM2] = DEVICE.GetDevice("TM.PM2Door"); //SlitValves[ModuleName.UnLoad] = DEVICE.GetDevice("TM.TMUnLoadDoor"); @@ -564,6 +580,11 @@ namespace SicModules.TMs private void InitData() { + DATA.Subscribe($"{Name}.IsPressureAbs_TM_PMA_DValue_In50", () => IsPressureAbs_TM_PMA_DValue_In50); + DATA.Subscribe($"{Name}.IsPressureAbs_TM_PMB_DValue_In50", () => IsPressureAbs_TM_PMB_DValue_In50); + DATA.Subscribe($"{Name}.IsPressureAbs_TM_Unload_DValue_In50", () => IsPressureAbs_TM_Unload_DValue_In50); + DATA.Subscribe($"{Name}.IsPressureAbs_TM_Load_DValue_In50", () => IsPressureAbs_TM_Load_DValue_In50); + DATA.Subscribe($"{Name}.Status", () => StringFsmStatus); DATA.Subscribe($"{Name}.IsOnline", () => IsOnline); DATA.Subscribe($"TMRobot.IsHomed", () => IsTMRobotHomed); diff --git a/Modules/Mainframe/UnLoads/UnLoadModule.cs b/Modules/Mainframe/UnLoads/UnLoadModule.cs index afabacb7..877c16fc 100644 --- a/Modules/Mainframe/UnLoads/UnLoadModule.cs +++ b/Modules/Mainframe/UnLoads/UnLoadModule.cs @@ -329,6 +329,8 @@ namespace SicModules.UnLoads DATA.Subscribe($"{Name}.CurrentRoutineLoopTotal", () => CurrentRoutineLoopTotal, SubscriptionAttribute.FLAG.IgnoreSaveDB); DATA.Subscribe($"{Name}.RemainedCoolingTime", () => _unloadCoolingRoutine.GetRemainedTime(), SubscriptionAttribute.FLAG.IgnoreSaveDB); + DATA.Subscribe($"{Name}.AtATM", () => { return _unLoadDevice.CheckAtm(); }); + DATA.Subscribe($"{Name}.UnderVAC", () => { if (_unLoadDevice.CheckVacuum())