소스 검색

添加Lid Servo CTRL Mode控制lid是否可以开关

lixiang 1 년 전
부모
커밋
1d854ff197

BIN
Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300DeviceModel.xml


+ 4 - 3
Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300Interlock.xml

@@ -188,15 +188,15 @@
   <Action do="DO_Slit_Door_Open" value="true" tip="Slit Door Open" tip.zh-CN="" tip.en-US="DO-24" >
 	<Limit di="DI_Lid_Closed"			value="true" tip="DI PM Lid Closed"				tip.zh-CN="" tip.en-US="DI-0" />
 	<Limit di="DI_CDA_Pressure_Switch"				value="true" tip="DI CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
-  <Limit di="DI_Arm_Not_Extend_to_PM"			value="true" tip="DI Arm Not Extend to PM"	tip.zh-CN="" tip.en-US="DI-76" />
-  <Limit di="DI_EFEM_Door_Colse"				value="true" tip="DI EFEM Door Colse"				tip.zh-CN="" tip.en-US="DI-77" />
+    <Limit di="DI_Arm_Not_Extend_to_PM"			value="true" tip="DI Arm Not Extend to PM"	tip.zh-CN="" tip.en-US="DI-76" />
+    <Limit di="DI_TM_Clear_Lid_Colse"				value="true" tip="DI EFEM Door Colse"				tip.zh-CN="" tip.en-US="DI-77" />
   </Action>
 
   <Action do="DO_Slit_Door_Close" value="true" tip="Slit Door Close" tip.zh-CN="" tip.en-US="DO-25" >
     <Limit di="DI_Lid_Closed"			value="true" tip="DI PM Lid Closed"				tip.zh-CN="" tip.en-US="DI-0" />
     <Limit di="DI_CDA_Pressure_Switch"				value="true" tip="DI CDA Pressure"				tip.zh-CN="" tip.en-US="DI-12" />
     <Limit di="DI_Arm_Not_Extend_to_PM"			value="true" tip="DI Arm Not Extend to PM"	tip.zh-CN="" tip.en-US="DI-76" />
-    <Limit di="DI_EFEM_Door_Colse"				value="true" tip="DI EFEM Door Colse"				tip.zh-CN="" tip.en-US="DI-77" />
+    <Limit di="DI_TM_Clear_Lid_Colse"				value="true" tip="DI EFEM Door Colse"				tip.zh-CN="" tip.en-US="DI-77" />
   </Action>
 
 	
@@ -236,6 +236,7 @@
   
   <Action do="DO_Lid_Up" value="true" tip="Lid UP" tip.zh-CN="" tip.en-US="DO-50" >
     <Limit di="DI_S_Valve_OT_Switch_Alarm" value="false" tip="S_Valve OT Switch Alarm" tip.zh-CN="" tip.en-US="DI-66" />
+	<Limit do="DO_Lid_Servo_CTRL_Mode"     value="true" tip="Lid Servo CTRL Mode"      tip.zh-CN="" tip.en-US="DO-80" />
   </Action>
   
   <Action do="DO_Lid_Down" value="true" tip="Lid Down" tip.zh-CN="" tip.en-US="DO-51" >

+ 4 - 4
Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300IoDefine.xml

@@ -81,7 +81,7 @@
 		<DI_ITEM Index="74" Name="DI_Lid_Up_Limit_Pos_SW" Device="" Addr="w24.10" />
 		<DI_ITEM Index="75" Name="DI_Lid_Down_Limit_Pos_SW" Device="" Addr="w24.11" />
 		<DI_ITEM Index="76" Name="DI_Arm_Not_Extend_to_PM" Device="" Addr="w24.12" />
-		<DI_ITEM Index="77" Name="DI_EFEM_Door_Colse" Device="" Addr="w24.13" />
+		<DI_ITEM Index="77" Name="DI_TM_Clear_Lid_Colse" Device="" Addr="w24.13" />
 		<DI_ITEM Index="78" Name="DI_ESC_Inner_Coolant_Flow_SW" Device="" Addr="w24.14" />
 		<DI_ITEM Index="79" Name="DI_ESC_Outer_Coolant_Flow_SW" Device="" Addr="w24.15" />
 		<DI_ITEM Index="80" Name="DI_Top_Plate_Coolant_Flow_SW" Device="" Addr="w25.00" />
@@ -198,7 +198,7 @@
 		<DO_ITEM Index="77" Name="" />
 		<DO_ITEM Index="78" Name="" />
 		<DO_ITEM Index="79" Name="" />
-		<DO_ITEM Index="80" Name="" />
+		<DO_ITEM Index="80" Name="DO_Lid_Servo_CTRL_Mode" Device="" Addr="w5.00"/>
 		<DO_ITEM Index="81" Name="" />
 		<DO_ITEM Index="82" Name="" />
 		<DO_ITEM Index="83" Name="" />
@@ -272,8 +272,8 @@
 		<AO_ITEM Index="37" Name="" />
 		<AO_ITEM Index="38" Name="" />
 		<AO_ITEM Index="39" Name="" />
-		<!--<AO_ITEM Index="40" Name="AO_Gas_Line_Temp_Limit_Setpoint"      BufferOffset="80" Device="" Addr="d1080" Note="Gas LineTemp Limit" />
-		<AO_ITEM Index="41" Name="AO_Gas_Line_Temp_Limit_Setpoint"      BufferOffset="82" Device="" Addr="d1082" Note="Gas LineTemp Limit" />-->
+		<AO_ITEM Index="40" Name=""/>
+		<AO_ITEM Index="41" Name="AO_TM_Chamber_Pressure"            BufferOffset="82" Device="" Addr="d1082" Note="Gas LineTemp Limit"/>
 		<AO_ITEM Index="42" Name="" />
 		<AO_ITEM Index="43" Name="" />
 		<AO_ITEM Index="44" Name="" />

+ 10 - 3
Venus/Venus_RT/Devices/IODevices/IoPressureControl.cs

@@ -109,7 +109,7 @@ namespace Venus_RT.Devices
         private readonly R_TRIG _trigLoadLockGaugePressureGauge = new R_TRIG();
 
 
-
+        private readonly AOAccessor _aoMFPressureSP;
 
         // Properties
         //
@@ -144,7 +144,7 @@ namespace Venus_RT.Devices
             ProcessHigh                 = ParseDeviceNode<IoPressureMeter>(Module, "processPressureHigh", node);
             ProcessLow                  = ParseDeviceNode<IoPressureMeter>(Module, "processPressureLow", node);
 
-
+            _aoMFPressureSP             = ParseAoNode("tmPressureSetPoint", node, ioModule);
             //DryPump                     = ParseDeviceNode<IoPump>(Module, "drypump", node);
 
         }
@@ -214,7 +214,8 @@ namespace Venus_RT.Devices
             _trigESCHePressureGauge.CLK = ESCHeGauge.GaugeAlarm;
             if (_trigESCHePressureGauge.Q) LOG.Write(eEvent.ERR_DEVICE_INFO, Module, "ESC He Pressure Gauge Alarm");
 
-           
+          
+            //MFPressureWrite();
         }
 
         public void CheckTolerance()
@@ -247,5 +248,11 @@ namespace Venus_RT.Devices
                 _tolerance.Reset(_scAlarmTime.DoubleValue);
             }
         }
+        private void MFPressureWrite()
+        {
+            if (_aoMFPressureSP == null)
+                return;
+            _SetRealFloat(_aoMFPressureSP, 100);
+        }
     }
 }

+ 10 - 1
Venus/Venus_RT/Devices/JetKepler2200APM.cs

@@ -606,7 +606,16 @@ namespace Venus_RT.Devices
 
             SetLiftPin(MovementPosition.Down, out _);
 
-            SetSlitDoor(false, out _);
+            if (_slitDoor.State == CylinderState.Open)
+            {
+                SetSlitDoor(true, out _);
+            }
+            else
+            {
+                SetSlitDoor(false, out _);
+            }
+
+            SetSlitDoor(true, out _);
 
             //2023/03/08添加
             OpenValve(ValveType.PVN22, true);

+ 15 - 1
Venus/Venus_RT/Devices/JetKepler2300PM.cs

@@ -16,6 +16,7 @@ using MECF.Framework.Common.SubstrateTrackings;
 using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
 using System.Threading.Tasks;
 using Aitex.Core.RT.DataCenter;
+using Aitex.Core.Backend;
 
 namespace Venus_RT.Devices
 {
@@ -625,7 +626,10 @@ namespace Venus_RT.Devices
                 LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Process pressure:{ProcessPressure} exceed 100 mtorr, Guage Valve (DO-31) closed automaticlly.");
             }
         }
-
+        private void WriteTMPressure()
+        { 
+        
+        }
         public override void CheckIdleInterlock()
         {
             if (ForelinePressure > _foreline_interlock_pressure)
@@ -657,6 +661,16 @@ namespace Venus_RT.Devices
 
             SetLiftPin(MovementPosition.Down, out _);
 
+
+            if (_slitDoor.State == CylinderState.Open)
+            {
+                SetSlitDoor(true, out _);
+            }
+            else
+            {
+                SetSlitDoor(false, out _);
+            }
+
             SetSlitDoor(false, out _);
 
             //2023/03/08添加

+ 9 - 1
Venus/Venus_RT/Devices/JetVenusPM.cs

@@ -624,8 +624,16 @@ namespace Venus_RT.Devices
 
             SetLiftPin(MovementPosition.Down, out _);
 
-            SetSlitDoor(false, out _);
+            if (_slitDoor.State == CylinderState.Open)
+            {
+                SetSlitDoor(true, out _);
+            }
+            else
+            { 
+                SetSlitDoor(false, out _);
+            }
 
+            SetSlitDoor(true, out _);
             //2023/03/08添加
             OpenValve(ValveType.PVN22, true);
             //2023/04/25临时添加

+ 38 - 0
Venus/Venus_RT/Devices/TM/JetTM.cs

@@ -23,6 +23,7 @@ using MECF.Framework.Common.SubstrateTrackings;
 using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;
 using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadLocks;
 using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
+using System.Windows.Media;
 
 namespace Venus_RT.Devices
 {
@@ -860,7 +861,44 @@ namespace Venus_RT.Devices
             if ((Module == ModuleName.LLA && _llPumpingState == LLPumpState.LLAUsing) || (Module == ModuleName.LLB && _llPumpingState == LLPumpState.LLBUsing))
                 _llPumpingState = LLPumpState.Idle;
         }
+        public void HomeSlitDoor()
+        {
+            if (IsLLASlitDoorClosed == true)
+            {
+                _LLATSlitDoor.SetCylinder(false, out _);
+            }
+            else if(IsLLASlitDoorOpen == true)
+            { 
+                _LLATSlitDoor.SetCylinder(true, out _);
+            }
+
+            if (IsLLBSlitDoorClosed == true)
+            {
+                _LLBTSlitDoor.SetCylinder(false, out _);
+            }
+            else if (IsLLBSlitDoorOpen == true)
+            {
+                _LLBTSlitDoor.SetCylinder(true, out _);
+            }
 
+            if (IsLLAESlitDoorClosed == true)
+            {
+                _LLAESlitDoor.SetCylinder(false, out _);
+            }
+            else if (IsLLAESlitDoorOpen == true)
+            {
+                _LLAESlitDoor.SetCylinder(true, out _);
+            }
+
+            if (IsLLBESlitDoorClosed == true)
+            {
+                _LLBESlitDoor.SetCylinder(false, out _);
+            }
+            else if (IsLLBESlitDoorOpen == true)
+            {
+                _LLBESlitDoor.SetCylinder(true, out _);
+            }
+        }
 
     }
 }

+ 1 - 0
Venus/Venus_RT/Modules/TM/MFHomeRoutine.cs

@@ -89,6 +89,7 @@ namespace Venus_RT.Modules.TM
         }
         private bool HomeSlitDoor()
         {
+            _JetTM.HomeSlitDoor();
             currentStepNo = 2;
           return  _JetTM.CloseAllSlitDoor();
         }