Browse Source

1.添加Revtech Match
2.修复kepler2200A无法连接plc bug
3.漏气检测从腔体压力变为工艺压力

lixiang 1 year ago
parent
commit
c457973fa2

+ 1 - 1
Venus/Venus_MainPages/ViewModels/RecipeViewModel.cs

@@ -1368,7 +1368,7 @@ namespace Venus_MainPages.ViewModels
                 Grid deChuckGrid = new Grid();
                 deChuckGrid.IsEnabled = false;
                 deChuckGrid.Margin = new Thickness(15);
-                string path = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName,typeFolder, $"{CurrentRecipeName}.rcp");
+                string path = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName,"DeChuck", $"{CurrentRecipe.Header.DechuckRecipe}.rcp");
                 string DechuckRecipeData = m_uiRecipeManager.LoadRecipeByPath(path);
                 //index = 0;
                 var dechuckRecipe = Recipe.Load(DechuckRecipeData);

+ 2 - 2
Venus/Venus_MainPages/Views/OverKepler2200AView.xaml

@@ -1080,8 +1080,8 @@
 
             <TextBlock Grid.Row="6" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <TextBlock Grid.Row="7" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFData.ReflectPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" Grid.ColumnSpan="2"/>
-            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <!--<TextBlock Grid.Row="10" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
 
         </Grid>

+ 4 - 4
Venus/Venus_MainPages/Views/OverKepler2300View.xaml

@@ -1089,8 +1089,8 @@
 
             <TextBlock Grid.Row="1" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding SRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <!--<TextBlock Grid.Row="2" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
-            <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='F1'}" Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='N0'}" Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
 
             <TextBlock  Text="Bias RF" Grid.Row="5" FontSize="15" Grid.ColumnSpan="3" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
 
@@ -1109,8 +1109,8 @@
 
             <TextBlock Grid.Row="6" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <TextBlock Grid.Row="7" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFData.ReflectPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" Grid.ColumnSpan="2"/>
-            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <!--<TextBlock Grid.Row="10" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
 
         </Grid>

+ 4 - 4
Venus/Venus_MainPages/Views/OverVenusView.xaml

@@ -1111,8 +1111,8 @@
 
             <TextBlock Grid.Row="1" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding SRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <!--<TextBlock Grid.Row="2" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
-            <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='F1'}" Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='N0'}" Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
 
             <TextBlock  Text="Bias RF" Grid.Row="5" FontSize="15" Grid.ColumnSpan="3" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
 
@@ -1131,8 +1131,8 @@
 
             <TextBlock Grid.Row="6" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <TextBlock Grid.Row="7" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFData.ReflectPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" Grid.ColumnSpan="2"/>
-            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+            <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
             <!--<TextBlock Grid.Row="10" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
 
         </Grid>

+ 1 - 1
Venus/Venus_RT/Devices/AIRSYSChiller.cs

@@ -244,7 +244,7 @@ namespace Venus_RT.Devices
 
         private void OnErrorOccurred(string obj)
         {
-           // LOG.Write(eEvent.ERR_DEVICE_CHILLER, Module, $"[{Module}] AIRSYS chiller error: [{obj}]");
+            LOG.Write(eEvent.ERR_DEVICE_CHILLER, Module, $"[{Module}] AIRSYS chiller error: [{obj}]");
         }
 
         public override void SetChillerTemp(float value, float offset)

+ 1 - 1
Venus/Venus_RT/Devices/FinsPlc.cs

@@ -887,7 +887,7 @@ namespace Venus_RT.Devices
             Handshake[16] = 0;
             Handshake[17] = 0;
             Handshake[18] = 0;
-            Handshake[19] = 0x1F;//ask for client and server node number, the client node will allocated automatically
+            Handshake[19] = 0;//ask for client and server node number, the client node will allocated automatically
 
             return Handshake;
         }

+ 2 - 2
Venus/Venus_RT/Devices/JetKepler2200APM.cs

@@ -579,10 +579,10 @@ namespace Venus_RT.Devices
 
         protected override void CheckPermanentInterlock()
         {
-            if (ProcessPressure > 100 && _GuageValve.SetPoint)
+            if (ProcessPressure > 2000 && _GuageValve.SetPoint)
             {
                 _GuageValve.TurnValve(false, out _);
-                LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Process pressure:{ProcessPressure} exceed 100 mtorr, Guage Valve (DO-31) closed automaticlly.");
+                LOG.Write(eEvent.WARN_DEVICE_INFO, Module, $"Process pressure:{ProcessPressure} exceed 2000 mtorr, Guage Valve (DO-31) closed automaticlly.");
             }
         }
 

+ 56 - 0
Venus/Venus_RT/Devices/RevtechMatch.cs

@@ -0,0 +1,56 @@
+using Aitex.Core.RT.Log;
+using Aitex.Core.RT.SCCore;
+using MECF.Framework.Common.Communications;
+using MECF.Framework.Common.Device.Bases;
+using MECF.Framework.Common.Equipment;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using Venus_Core;
+
+namespace Venus_RT.Devices
+{
+    static class RevtechMatchMessage
+    {
+        public const string EOF                     = "\n";
+        public const string QUERY_STATE_INFORMATION = "MATCH:FETCH?";
+        public const string SET_C1_POS              = "MATCH:POS:C1";
+        public const string SET_C2_POS              = "MATCH:POS:C2";
+        public const string SET_WORK_MODE           = "MATCH:MODE";
+    }
+
+    public class RevtechMatch : RfMatchBase
+    {
+        private AsyncSocketDevice _socket;
+        public RevtechMatch(ModuleName mod, string address) : base(mod.ToString(), VenusDevice.Match.ToString())
+        {
+            _socket = new AsyncSocketDevice(address);
+            _socket.OnDataChanged += new AsyncSocketDevice.MessageHandler(OnDataChanged);
+            SerachCommandList = new List<string>()
+            {
+            SkyPumpMessage.READ_DATA
+            };
+            sendDataChangedEvent += RevtechMatch_sendDataChangedEvent;
+            baseStopwatch.Start();
+            baseTimer.Enabled = true;
+        }
+        private void RevtechMatch_sendDataChangedEvent(string obj)
+        {
+            //var newstr = obj + "\r";
+            //_serial?.Write(newstr);
+        }
+        public void OnDataChanged(byte[] rawMessage)
+        {
+            string data = System.Text.Encoding.Default.GetString(rawMessage);
+        }
+        public override void SetMatchPosition(float c1, float c2, out string reason)
+        {          
+
+            reason = "";
+        }
+    }
+}

+ 21 - 10
Venus/Venus_RT/Modules/PMs/GasBoxLeakCheckRoutine.cs

@@ -101,7 +101,7 @@ namespace Venus_RT.Modules.PMs
 
         public RState Monitor()
         {
-            Runner.Wait(LeakCheckStep.kPumpToBasePressure, ()=> { return _chamber.ChamberPressure <= _basePressure; })
+            Runner.Wait(LeakCheckStep.kPumpToBasePressure,                                                     ()=> { return _chamber.ProcessPressure <= _basePressure; })
                 .Run(LeakCheckStep.kPumpingDelay,          LeakCheckPumping,                                   PumpingDelay)
                 .Run(LeakCheckStep.kLeakCheckDelay,        StartLeakCheck,                                     _leakcheckHoldTime * 1000)
                 .End(LeakCheckStep.kEnd,                   CalcLeakCheckResult,                                _delay_50ms);
@@ -125,11 +125,22 @@ namespace Venus_RT.Modules.PMs
                 _chamber.FlowGas(num-1, _GasFlow);
                 gasLines.Append($"Gas{num},");
             }
-            _chamber.OpenValve(ValveType.PV11, true);
-            _chamber.OpenValve(ValveType.PV21, true);
-            _chamber.OpenValve(ValveType.PV31, true);
-            _chamber.OpenValve(ValveType.PV41, true);
-
+            if (_gasLineNums.Contains(1))
+            {
+                _chamber.OpenValve(ValveType.PV11, true);
+            }
+            if (_gasLineNums.Contains(2))
+            {
+                _chamber.OpenValve(ValveType.PV21, true);
+            }
+            if (_gasLineNums.Contains(3))
+            {
+                _chamber.OpenValve(ValveType.PV31, true);
+            }
+            if (_gasLineNums.Contains(4))
+            {
+                _chamber.OpenValve(ValveType.PV41, true);
+            }
             //2023/04/25添加vent line漏气检测
             if (isCheckVentLine == true)
             {
@@ -146,11 +157,11 @@ namespace Venus_RT.Modules.PMs
         {
             if (_leakCheckTimer.ElapsedMilliseconds >= _leakcheckPumpTime * 1000)
             {
-                if (_chamber.ChamberPressure <= _leakCheckBasePressure)
+                if (_chamber.ProcessPressure <= _leakCheckBasePressure)
                     return true;
                 else
                 {
-                    Runner.Stop($"GasBox Leakcheck失败, 腔体压力 [{_chamber.ChamberPressure}]mTor, 高于LeakCheck Base Pressure: [{_leakCheckBasePressure}] mTor");
+                    Runner.Stop($"GasBox Leakcheck失败, 工艺压力 [{_chamber.ProcessPressure}]mTor, 高于LeakCheck Base Pressure: [{_leakCheckBasePressure}] mTor");
                 }
             }
 
@@ -160,7 +171,7 @@ namespace Venus_RT.Modules.PMs
         private bool StartLeakCheck()
         {
             CurrentStep = "Leak Check";
-            _startPressure = _chamber.ChamberPressure;
+            _startPressure = _chamber.ProcessPressure;
             pMLeakCheckResult.StartPressure = _startPressure;
             Notify($"PM 压力开始值 {_startPressure} mt");
 
@@ -170,7 +181,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool CalcLeakCheckResult()
         {
-            _endPressure = _chamber.ChamberPressure;
+            _endPressure = _chamber.ProcessPressure;
             pMLeakCheckResult.EndPressure = _endPressure;
             LeakRate = (_endPressure - _startPressure) * 60.0 / _leakcheckHoldTime;
             pMLeakCheckResult.LeakRate = LeakRate;

+ 8 - 0
Venus/Venus_RT/Modules/PMs/PMGasVerificationRoutine.cs

@@ -64,6 +64,7 @@ namespace Venus_RT.Modules.PMs
         private readonly PumpDownRoutine _pumpDownRoutine;
         public ObservableCollection<MFCCalibrationData> _MFCCalibrationDatas = new ObservableCollection<MFCCalibrationData>();
 
+        private bool _flag;//判断3分钟是否大于9torr
         public PMGasVerificationRoutine(JetPMBase chamber,PumpDownRoutine pdRoutine) : base(chamber)
         {
             Name = "Gas Verification";
@@ -287,7 +288,14 @@ namespace Venus_RT.Modules.PMs
             _elapsedTime = _verificationDeviceTimer.GetElapseTime() / (1000 * 60); //unit minutes
 
             float flow = _paramMode == VerifyMode.TenPoint ? _paramFlowSet[Runner.LoopCounter] : _mfcFlow;
+            if (_flag)
+            {
+
+            }
+            else
+            { 
             _mfcActualFlow = 273.15 * _chamberVolume / ((273.15 + _gasTemperature) * 760000) * ((_endPressure - _beginPressure) / _elapsedTime - _leakRate);
+            }
             Notify($"Calculate flow: calculate flow={_mfcActualFlow}, setpoint={flow}, begin pressure(mtorr)={_beginPressure:f3}, end pressure(mtorr)={_endPressure:f3}," +
                 $"elapsed time(minute)={_elapsedTime:f3}");
             _MFCCalibrationDatas.Add(new MFCCalibrationData(flow,_mfcActualFlow));

+ 5 - 5
Venus/Venus_RT/Modules/PMs/PMLeakCheckRoutine.cs

@@ -87,7 +87,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool PumpingToBasePressure()
         {
-            if (_chamber.ChamberPressure <= _basePressure)
+            if (_chamber.ProcessPressure <= _basePressure)
             {
                 _leakCheckTimer.Restart();
                 return true;
@@ -100,11 +100,11 @@ namespace Venus_RT.Modules.PMs
         {
             if (_leakCheckTimer.ElapsedMilliseconds >= _leakcheckPumpTime * 1000)
             {
-                if (_chamber.ChamberPressure <= _leakCheckBasePressure)
+                if (_chamber.ProcessPressure <= _leakCheckBasePressure)
                     return true;
                 else
                 {
-                    Runner.Stop($"PM Leakcheck失败, 腔体压力 [{_chamber.ChamberPressure}]mTor, 高于LeakCheck Base Pressure: [{_leakCheckBasePressure}] mTor");
+                    Runner.Stop($"PM Leakcheck失败, 工艺压力 [{_chamber.ProcessPressure}]mTor, 高于LeakCheck Base Pressure: [{_leakCheckBasePressure}] mTor");
                 }
             }
 
@@ -119,7 +119,7 @@ namespace Venus_RT.Modules.PMs
         private bool StartLeakCheck()
         {
             CurrentStep = "Leak Check";
-            _startPressure = _chamber.ChamberPressure;
+            _startPressure = _chamber.ProcessPressure;
             pMLeakCheckResult.StartPressure = _startPressure;
 
             Notify($"PM 压力开始值 {_startPressure} mt");
@@ -130,7 +130,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool CalcLeakCheckResult()
         {
-            _endPressure = _chamber.ChamberPressure;
+            _endPressure = _chamber.ProcessPressure;
             pMLeakCheckResult.EndPressure = _endPressure;
             LeakRate = (_endPressure - _startPressure) * 60.0 / _leakcheckHoldTime;
             pMLeakCheckResult.LeakRate = LeakRate;

+ 8 - 3
Venus/Venus_RT/Modules/PMs/PMProcessRoutine.cs

@@ -11,6 +11,7 @@ using Venus_Core;
 using System.Diagnostics;
 using MECF.Framework.Common.DBCore;
 using Venus_RT.FAs;
+using Venus_Unity;
 
 namespace Venus_RT.Modules.PMs
 {
@@ -61,7 +62,7 @@ namespace Venus_RT.Modules.PMs
         private RecipeFACallback _faCallback;
         private JetChamber _jetChamber;
         private RecipeType _recipeType;
-
+        private Recipe processRecipe;
         private double ChillerTemp
         {
             get
@@ -468,7 +469,11 @@ namespace Venus_RT.Modules.PMs
                     Notify($"Recipe:{CurrentRunningRecipe} finished");
                     FaEvent.FaPostInfo(Module.ToString(), $"Recipe:{CurrentRunningRecipe} finished");
                     UpdateWaferStatus();
-
+                    if (_currentRecipe.Header.Type == RecipeType.Process)
+                    {
+                        
+                        processRecipe = (Recipe)SerializeHelper.Instance.Clone(_currentRecipe);
+                    }
                     _chamber.EPDRecipeStop();
                     return !StartNewRecipe();
                 }
@@ -481,7 +486,7 @@ namespace Venus_RT.Modules.PMs
         {
             _currentRecipe.Steps[_currentStep].End();
 
-            //RecipeFileManager.Instance.SaveAsRecipe(Module.ToString(), CurrentRunningRecipe, RecipeUnity.RecipeToString(_currentRecipe));
+            RecipeFileManager.Instance.SaveAsRecipe2(Module.ToString(),_recipeType.ToString(), _currentRecipe.Header.Name, RecipeUnity.RecipeToString(_currentRecipe));
             _stepTime.Stop();
             WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.Idle);
             CloseAllValves();

+ 1 - 0
Venus/Venus_RT/Venus_RT.csproj

@@ -161,6 +161,7 @@
     <Compile Include="Devices\PlasmaController.cs" />
     <Compile Include="Devices\PreAligner\HongHuVPA.cs" />
     <Compile Include="Devices\PreAligner\IPreAlign.cs" />
+    <Compile Include="Devices\RevtechMatch.cs" />
     <Compile Include="Devices\SkyPump.cs" />
     <Compile Include="Devices\SMCChiller.cs" />
     <Compile Include="Devices\TM\HongHuTM.cs" />