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())