Pārlūkot izejas kodu

update for disable difference pressure checking under atm mode according electrical team request.

sangwq 2 gadi atpakaļ
vecāks
revīzija
e1226fdd9e

+ 21 - 0
Venus/Venus_Core/VenusDevice.cs

@@ -90,6 +90,27 @@
         PendulumValve,
         TurboPump,
         EndPoint,
+
+        TMLid,
+        LLALid,
+        LLBLid,
+        LLATSlitDoor,
+        LLBTSlitDoor,
+        LLAESlitDoor,
+        LLBESlitDoor,
+        ValvePurge,
+        ValveVent,
+        ValveWaterRelay,
+        TMPowerOn,
+        TMInSafty,
+        WaferLeakSensor,
+        EFEMSideDoorClosed,
+        TMPCWFlowSwitch,
+        TMLidClosed,
+        CDAPressureSwitch,
+        VaccumPressureSwitch,
+        N2PressureSwitch,
+        TMPressureCtrl,
     }
 
     public enum StateData

BIN
Venus/Venus_RT/Config/DeviceModelVenus_MF.xml


+ 2 - 0
Venus/Venus_RT/Devices/DeviceManager.cs

@@ -123,6 +123,8 @@ namespace Venus_RT.Instances
         private void InitTM(ModuleName mod)
         {
             Initialize(device_model_file_MF, RtInstance.SystemName, mod, mod.ToString());
+
+            AddCustomDevice(new JetTM());
         }
 
         private WaferSize MapWaferSize(int value)

+ 2 - 2
Venus/Venus_RT/Devices/IODevices/IoLid.cs

@@ -53,7 +53,7 @@ namespace Venus_RT.Devices.IODevices
         {
             get
             {
-                return _doON.Value;
+                return _doON != null ? _doON.Value : false;
             }
             set
             {
@@ -65,7 +65,7 @@ namespace Venus_RT.Devices.IODevices
         {
             get
             {
-                return _doOFF.Value;
+                return _doOFF != null ? _doON.Value : true;
             }
             set
             {

+ 38 - 5
Venus/Venus_RT/Devices/JetPM.cs

@@ -815,13 +815,34 @@ namespace Venus_RT.Devices
 
             if(open)
             {
-                double maxPressureDifference = SC.GetValue<double>("System.PMLLMaxPressureDifference");
-                if(Math.Abs(LoadlockPressure - ChamberPressure) > maxPressureDifference)
+                bool _isATMMode = SC.GetValue<bool>("System.IsATMMode");
+                if(_isATMMode)
                 {
-                    reason = $"{Module} and Loadlock pressure difference exceeds the max limit {maxPressureDifference}";
-                    LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
-                    return;
+                    if(!IsATM)
+                    {
+                        reason = $"{Module} is not ATM, can not open slit door";
+                        LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                        return;
+                    }
+
+                    if(!IsATMLoadlock)
+                    {
+                        reason = $"LoadLock is not ATM, can not open slit door";
+                        LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                        return;
+                    }
                 }
+                else
+                {
+                    double maxPressureDifference = SC.GetValue<double>("System.PMLLMaxPressureDifference");
+                    if (Math.Abs(LoadlockPressure - ChamberPressure) > maxPressureDifference)
+                    {
+                        reason = $"{Module} and Loadlock pressure difference exceeds the max limit {maxPressureDifference}";
+                        LOG.Write(eEvent.ERR_DEVICE_INFO, Module, reason);
+                        return;
+                    }
+                }
+                
             }
 
             _slitDoor.SetCylinder(open, out reason);
@@ -854,6 +875,18 @@ namespace Venus_RT.Devices
             return true;
         }
 
+        public bool FlowN2(double val)
+        {
+            _gasLineN2.Flow(val);
+            return true;
+        }
+
+        public bool StopN2()
+        {
+            _gasLineN2.Stop();
+            return true;
+        }
+
         public void StopAllGases()
         {
             foreach (var line in _gasLines)

+ 1 - 1
Venus/Venus_RT/Devices/TM/ITransferRobot.cs

@@ -2,7 +2,7 @@
 using MECF.Framework.Common.Equipment;
 using Venus_Core;
 
-namespace Venus_RT.Devices.TM
+namespace Venus_RT.Devices
 {
     public interface ITransferRobot
     {

+ 49 - 4
Venus/Venus_RT/Devices/TM/JetTM.cs

@@ -7,7 +7,7 @@ using Aitex.Core.RT.Log;
 using Aitex.Sorter.Common;
 using MECF.Framework.Common.Device.Bases;
 using MECF.Framework.Common.Equipment;
-using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
+
 using System;
 using System.Collections.Generic;
 using Venus_Core;
@@ -20,11 +20,15 @@ using Aitex.Core.RT.OperationCenter;
 
 using MECF.Framework.Common.SubstrateTrackings;
 
-namespace Venus_RT.Devices.TM
+using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;
+
+namespace Venus_RT.Devices
 {
-    class JetTM
+    class JetTM : TM
     {
         private readonly IoLid _TMLid;
+        private readonly IoLid _LLALid;
+        private readonly IoLid _LLBLid;
 
         private readonly IoCylinder _LLASlitDoor;
         private readonly IoCylinder _LLBSlitDoor;
@@ -47,6 +51,47 @@ namespace Venus_RT.Devices.TM
         private readonly IoSensor _VaccumPressureSwitch;
         private readonly IoSensor _N2PressureSwitch;
 
-	 
+        private readonly IoTMPressureCtrl _presureCtrl;
+
+        public bool TMLidClosed => _TMLid.OFFFeedback;
+        public bool LLALidClosed => _LLALid.OFFFeedback;
+        public bool LLBLidClosed => _LLBLid.OFFFeedback;
+
+        public JetTM() : base("TM")
+        {
+            _TMLid = DEVICE.GetDevice<IoLid>($"TM.{VenusDevice.TMLid}");
+            _LLALid = DEVICE.GetDevice<IoLid>($"TM.{VenusDevice.LLALid}");
+            _LLBLid = DEVICE.GetDevice<IoLid>($"TM.{VenusDevice.LLBLid}");
+
+            _LLASlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.LLATSlitDoor}");
+            _LLBSlitDoor = DEVICE.GetDevice<IoCylinder>($"TM.{VenusDevice.LLBTSlitDoor}");
+
+            _N2Valve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValveN2}");
+            _SoftPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValveSoftPump}");
+            _FastPumpValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValveFastPump}");
+            _PurgeValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValvePurge}");
+            _VentValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValveVent}");
+            _WaferRelayValve = DEVICE.GetDevice<IoValve>($"TM.{VenusDevice.ValveWaterRelay}");
+
+            _TMPowerOn = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMPowerOn}");
+            _TMInSafty = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMInSafty}");
+            _WaferLeakSensor = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.WaferLeakSensor}");
+            _EFEMSideDoorClosed = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.EFEMSideDoorClosed}");
+            _TMPCWFlowSwitch = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMPCWFlowSwitch}");
+            _TMLidClosed = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.TMLidClosed}");
+
+            _CDAPressureSwitch = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.CDAPressureSwitch}");
+            _VaccumPressureSwitch = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.VaccumPressureSwitch}");
+            _N2PressureSwitch = DEVICE.GetDevice<IoSensor>($"TM.{VenusDevice.N2PressureSwitch}");
+
+            _presureCtrl = DEVICE.GetDevice<IoTMPressureCtrl>($"TM.{VenusDevice.TMPressureCtrl}");
+
+        }
+
+        public override void Monitor()
+        {
+        }
+
+
     }
 }

+ 1 - 1
Venus/Venus_RT/Devices/TM/SIASUNRobot.cs

@@ -14,7 +14,7 @@ using System.Threading.Tasks;
 using System.Collections.Concurrent;
 using System.Runtime.CompilerServices;
 
-namespace Venus_RT.Devices.TM
+namespace Venus_RT.Devices
 {
     class SIASUNRobot : ITransferRobot
     {

+ 1 - 1
Venus/Venus_RT/Modules/TM/TMEntity.cs

@@ -4,7 +4,7 @@ using Aitex.Core.RT.Log;
 
 using Aitex.Sorter.Common;
 using MECF.Framework.Common.Equipment;
-using Venus_RT.Devices.TM;
+using Venus_RT.Devices;
 
 namespace Venus_RT.Modules
 {

+ 1 - 0
Venus/Venus_RT/Venus_RT.csproj

@@ -139,6 +139,7 @@
     <Compile Include="Devices\IODevices\IoPressureMeter.cs" />
     <Compile Include="Devices\IODevices\IoSignalLight.cs" />
     <Compile Include="Devices\IODevices\IoSignalTower.cs" />
+    <Compile Include="Devices\IODevices\IoTMPressureCtl.cs" />
     <Compile Include="Devices\JetPM.cs" />
     <Compile Include="Devices\PendulumValve.cs" />
     <Compile Include="Devices\PlasmaController.cs" />