Browse Source

修复手动流气bug

lixiang 1 year ago
parent
commit
feed6f1c8e

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

@@ -1139,7 +1139,7 @@ namespace Venus_MainPages.ViewModels
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
 
-                await Task.Delay(200);
+                await Task.Delay(1000);
                 object[] mfc = new object[8];
                 string[] mfcSetPoint = new string[8];
 

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

@@ -1140,7 +1140,7 @@ namespace Venus_MainPages.ViewModels
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
 
-                await Task.Delay(200);
+                await Task.Delay(1000);
                 object[] mfc = new object[8];
                 string[] mfcSetPoint = new string[8];
 

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

@@ -1134,7 +1134,7 @@ namespace Venus_MainPages.ViewModels
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint);
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
-                await Task.Delay(200);
+                await Task.Delay(1000);
                 object[] mfc = new object[8];
                 string[] mfcSetPoint = new string[8];
                 mfc[0] = MFC1Data.SetPoint;

+ 20 - 33
Venus/Venus_MainPages/ViewModels/OverVenusViewModel.cs

@@ -22,7 +22,7 @@ using Path = System.IO.Path;
 using Aitex.Core.RT.Log;
 using RecipeStep = Venus_Core.RecipeStep;
 
-namespace Venus_MainPages.ViewModels 
+namespace Venus_MainPages.ViewModels
 {
     internal class OverVenusViewModel : BindableBase
     {
@@ -1089,37 +1089,24 @@ namespace Venus_MainPages.ViewModels
         {
             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Home");
         }
-        private async void OnGas()
+        private void OnGas()
         {
-            await Task.Run(async () =>
-            {
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas1.SetPoint", MFC1SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas2.SetPoint", MFC2SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas3.SetPoint", MFC3SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas4.SetPoint", MFC4SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas5.SetPoint", MFC5SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
 
-                await Task.Delay(200);
-                object[] mfc = new object[8];
-                string[] mfcSetPoint = new string[8];
+            object[] mfc = new object[8];
 
-                mfc[0] = MFC1Data.SetPoint;
-                mfc[1] = MFC2Data.SetPoint;
-                mfc[2] = MFC3Data.SetPoint;
-                mfc[3] = MFC4Data.SetPoint;
-                mfc[4] = MFC5Data.SetPoint;
-                mfc[5] = MFC6Data.SetPoint;
-                mfc[6] = MFC7Data.SetPoint;
-                mfc[7] = MFC8Data.SetPoint;
+            mfc[0] = MFC1SetPoint;
+            mfc[1] = MFC2SetPoint;
+            mfc[2] = MFC3SetPoint;
+            mfc[3] = MFC4SetPoint;
+            mfc[4] = MFC5SetPoint;
+            mfc[5] = MFC6SetPoint;
+            mfc[6] = MFC7SetPoint;
+            mfc[7] = MFC8SetPoint;
 
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
-                string operation = GasIsFlowing ? "关闭" : "打开";
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
+            string operation = GasIsFlowing ? "关闭" : "打开";
 
-                LOG.Info($"{ModuleName},{operation}GasFlow({mfc[0]},{mfc[1]},{mfc[2]},{mfc[3]},{mfc[4]},{mfc[5]},{mfc[6]},{mfc[7]})");
-            });
+            LOG.Info($"{ModuleName},{operation}GasFlow({mfc[0]},{mfc[1]},{mfc[2]},{mfc[3]},{mfc[4]},{mfc[5]},{mfc[6]},{mfc[7]})");
 
 
         }
@@ -1312,7 +1299,7 @@ namespace Venus_MainPages.ViewModels
             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetLiftPin", Convert.ToBoolean(upDown));
         }
 
-        private  void OnSetSRf()
+        private void OnSetSRf()
         {
 
             if (SRFData.IsRfOn == true)
@@ -1324,7 +1311,7 @@ namespace Venus_MainPages.ViewModels
                 if (GasIsFlowing == true)
                 {
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match}.{AITRfOperation.SetMatchPosition}", SRFMatchC1, SRFMatchC2);
-                    
+
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSRf", SRFFwdPowerSetpoint, true);
 
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match}.{AITRfOperation.SetMatchProcessMode}", "Auto");
@@ -1332,7 +1319,7 @@ namespace Venus_MainPages.ViewModels
                 }
             }
         }
-        private  void OnSetBRf()
+        private void OnSetBRf()
         {
 
             if (BRFData.IsRfOn == true)
@@ -1344,7 +1331,7 @@ namespace Venus_MainPages.ViewModels
                 if (GasIsFlowing == true)
                 {
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch}.{AITRfOperation.SetMatchPosition}", BRFMatchC1, BRFMatchC2);
-                    
+
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBRf", BRFFwdPowerSetpoint, true);
 
                     InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch}.{AITRfOperation.SetMatchProcessMode}", "Auto");
@@ -1446,7 +1433,7 @@ namespace Venus_MainPages.ViewModels
                 heaterView.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                 heaterView.Owner = _mainWindow;
                 heaterView.Show();
-            }         
+            }
         }
 
         private void OnEndStep()
@@ -1661,7 +1648,7 @@ namespace Venus_MainPages.ViewModels
                 BiasMatchC2 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.BiasMatch}.C2");
 
                 BiasMatchWorkMode = CommonFunction.GetValue<string>(RtDataValues, $"{ModuleName}.{VenusDevice.BiasMatch}.WorkMode");
-              
+
 
                 TurboPumpWaterFlowSwitch = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.TurboPumpWaterFlowSwitch.Value");
                 IsTurboPumpAtSpeed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpAtSpeed");

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

@@ -739,7 +739,7 @@ namespace Venus_RT.Devices
             AdTecMatchMessage.READ_POS,
             AdTecMatchMessage.START_QUERY
             };
-            intervalTime = 300;
+            intervalTime = 100;
             sendDataChangedEvent += AdTecMatch_sendDataChangedEvent;
             baseStopwatch.Start();
             baseTimer.Enabled = true;

+ 3 - 2
Venus/Venus_RT/Devices/RevtechMatch.cs

@@ -64,6 +64,7 @@ namespace Venus_RT.Devices
             {
             RevtechMatchMessage.QUERY_STATE_INFORMATION
             };
+            intervalTime = 100;
             sendDataChangedEvent += RevtechMatch_sendDataChangedEvent;
             baseStopwatch.Start();
             baseTimer.Enabled = true;
@@ -219,11 +220,11 @@ namespace Venus_RT.Devices
 
         private void SetWorkMode(EnumRfMatchTuneMode mode)
         {
-            if (mode == EnumRfMatchTuneMode.Auto)
+            if (mode == EnumRfMatchTuneMode.Auto && WorkMode.Contains("MANUAL"))
             {
                 SetPointCommandQueue.Add("MATCH:MODE HAUTO\n");
             }
-            else if (mode == EnumRfMatchTuneMode.Manual)
+            else if (mode == EnumRfMatchTuneMode.Manual && WorkMode.Contains("AUTO"))
             {
                 SetPointCommandQueue.Add("MATCH:MODE MANUAL\n");
             }

+ 78 - 65
Venus/Venus_RT/Modules/PMs/ProcessDefine.cs

@@ -41,10 +41,13 @@ namespace Venus_RT.Modules.PMs
         private RecipeToleranceChecker _RFToleranceChecker;
         private RecipeToleranceChecker _BiasRFToleranceChecker;
 
+
         private bool _isEnableMatchC1C2Offset;
         private int _matchC1C2OffsetValue;
         private bool _isEnableBiasMatchC1C2Offset;
         private int _biasMatchC1C2OffsetValue;
+
+
         public ProcessHelper(JetPMBase pm)
         {
             Chamber = pm;
@@ -203,7 +206,6 @@ namespace Venus_RT.Modules.PMs
 
         private RState TCPUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
-
             _isEnableMatchC1C2Offset = SC.GetValue<bool>($"{Module}.Match.EnableC1C2StepOffset");
             _matchC1C2OffsetValue = SC.GetValue<int>($"{Module}.Match.C1C2StepOffsetValue");
 
@@ -335,6 +337,7 @@ namespace Venus_RT.Modules.PMs
             _isEnableBiasMatchC1C2Offset = SC.GetValue<bool>($"{Module}.BiasMatch.EnableC1C2StepOffset");
             _biasMatchC1C2OffsetValue = SC.GetValue<int>($"{Module}.BiasMatch.C1C2StepOffsetValue");
 
+
             var ProcessUnit = unit as BiasUnit;
 
             int p1;
@@ -355,14 +358,11 @@ namespace Venus_RT.Modules.PMs
             {
                 p2 = ProcessUnit.AutoBiasC2;
             }
-
             if (_isEnableBiasMatchC1C2Offset == false || Math.Abs(Chamber.BiasRFMatchC1 - p1) > _biasMatchC1C2OffsetValue || Math.Abs(Chamber.BiasRFMatchC2 - p2) > _biasMatchC1C2OffsetValue)
             {
                 Chamber.SetBiasMatchPosition(p1, p2);
             }
 
-
-
             if (ProcessUnit.BiasRFPower > 5)
             {
                 Chamber.GeneratorBiasPowerOn(true);
@@ -371,6 +371,11 @@ namespace Venus_RT.Modules.PMs
                     Chamber.GeneratorBiasSetpower(ProcessUnit.BiasRFPower);
                 }
             }
+            else
+            {
+                Chamber.GeneratorBiasPowerOn(false);
+                Chamber.GeneratorBiasSetpower(0);
+            }
 
 
             if (ProcessUnit.BiasMatchWorkMode == MatchWorkMode.Auto)
@@ -454,8 +459,8 @@ namespace Venus_RT.Modules.PMs
         private void BiasUnit_End(ProcessUnitBase unit, RecipeStep step)
         {
             var ProcessUnit = unit as BiasUnit;
-            Chamber.GeneratorBiasSetpower(0);
-            Chamber.GeneratorBiasPowerOn(false);
+            //Chamber.GeneratorBiasSetpower(0);
+            //Chamber.GeneratorBiasPowerOn(false);
             if (biasRfMatchC1.Count >= 6)
             {
                 float allValue = 0;
@@ -493,60 +498,75 @@ namespace Venus_RT.Modules.PMs
             if (ProcessUnit.Gas1 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV11, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
+                //if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+                //{
+                //    toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                //}
             }
             Chamber.FlowGas(1, ProcessUnit.Gas2);
             if (ProcessUnit.Gas2 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV21, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
+                //if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+                //{
+                //    toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                //}
             }
             Chamber.FlowGas(2, ProcessUnit.Gas3);
             if (ProcessUnit.Gas3 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV31, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
+                //if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+                //{
+                //    toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                //}
             }
             Chamber.FlowGas(3, ProcessUnit.Gas4);
             if (ProcessUnit.Gas4 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV41, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
+                //if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+                //{
+                //    toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                //}
             }
             Chamber.FlowGas(4, ProcessUnit.Gas5);
             Chamber.FlowGas(5, ProcessUnit.Gas6);
             Chamber.FlowGas(6, ProcessUnit.Gas7);
             Chamber.FlowGas(7, ProcessUnit.Gas8);
-            if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+
+
+            //if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+            //{
+            //    toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+            //}
+            //if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+            //{
+            //    toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+
+            //}
+            //if (ProcessUnit.Gas7 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+            //{
+            //    toleranceObjects.Add(new ToleranceObject("Gas7", ProcessUnit.Gas7, ProcessUnit.Gas7WarningRange, ProcessUnit.Gas7AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+
+            //}
+            //if (ProcessUnit.Gas8 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+            //{
+            //    toleranceObjects.Add(new ToleranceObject("Gas8", ProcessUnit.Gas8, ProcessUnit.Gas8WarningRange, ProcessUnit.Gas8AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+            //}
+
+            if (ProcessUnit.ToleranceMode != ToleranceMode.None)
             {
+                toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
                 toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-            }
-            if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-            {
                 toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-
-            }
-            if (ProcessUnit.Gas7 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-            {
                 toleranceObjects.Add(new ToleranceObject("Gas7", ProcessUnit.Gas7, ProcessUnit.Gas7WarningRange, ProcessUnit.Gas7AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-
-            }
-            if (ProcessUnit.Gas8 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-            {
                 toleranceObjects.Add(new ToleranceObject("Gas8", ProcessUnit.Gas8, ProcessUnit.Gas8WarningRange, ProcessUnit.Gas8AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
             }
+
             if (ProcessUnit.ToleranceMode != ToleranceMode.None)
             {
                 _GasFlowToleranceChecker.Start(toleranceObjects);
@@ -601,48 +621,40 @@ namespace Venus_RT.Modules.PMs
             if (ProcessUnit.Gas1 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV11, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
             }
             Chamber.FlowGas(1, ProcessUnit.Gas2);
             if (ProcessUnit.Gas2 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV21, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
             }
             Chamber.FlowGas(2, ProcessUnit.Gas3);
             if (ProcessUnit.Gas3 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV31, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
             }
             Chamber.FlowGas(3, ProcessUnit.Gas4);
             if (ProcessUnit.Gas4 >= 1)
             {
                 Chamber.OpenValve(ValveType.PV41, true);
-                if (ProcessUnit.ToleranceMode != ToleranceMode.None)
-                {
-                    toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                }
             }
+
             Chamber.FlowGas(4, ProcessUnit.Gas5);
             Chamber.FlowGas(5, ProcessUnit.Gas6);
-            if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
+
+            if (ProcessUnit.ToleranceMode != ToleranceMode.None)
             {
+                toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
                 toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-            }
-            if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
-            {
                 toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+            }
+
 
+            if (ProcessUnit.ToleranceMode != ToleranceMode.None)
+            {
+                _GasFlowToleranceChecker.Start(toleranceObjects);
             }
             return RState.Running;
         }
@@ -816,36 +828,37 @@ namespace Venus_RT.Modules.PMs
 
 
 
-        private RState HeaterUnit_Start(ProcessUnitBase unit, RecipeStep step)
+        private RState RFBoxUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
-            var ProcessUnit = unit as HeaterUnit;
-            var position = (HighTemperatureHeaterPosition)Enum.Parse(typeof(HighTemperatureHeaterPosition), ProcessUnit.SuspectPosition.ToString());
-            Chamber.HighTemperatureHeaterGotoPosition(position);
-            Chamber.SetHighTemperatureHeaterTemperature(ProcessUnit.HeaterTemp);
-            Chamber.SetHighTemperatureHeaterRatio(ProcessUnit.HeaterRatio);
             return RState.Running;
         }
 
-        private RState HeaterUnit_Check(ProcessUnitBase unit, RecipeStep step)
+        private RState RFBoxUnit_Check(ProcessUnitBase unit, RecipeStep step)
         {
             return RState.Running;
         }
 
-        private void HeaterUnit_End(ProcessUnitBase unit, RecipeStep step)
+        private void RFBoxUnit_End(ProcessUnitBase unit, RecipeStep step)
         {
 
         }
-        private RState RFBoxUnit_Start(ProcessUnitBase unit, RecipeStep step)
+
+        private RState HeaterUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
+            var ProcessUnit = unit as HeaterUnit;
+            var position = (HighTemperatureHeaterPosition)Enum.Parse(typeof(HighTemperatureHeaterPosition), ProcessUnit.SuspectPosition.ToString());
+            Chamber.HighTemperatureHeaterGotoPosition(position);
+            Chamber.SetHighTemperatureHeaterTemperature(ProcessUnit.HeaterTemp);
+            Chamber.SetHighTemperatureHeaterRatio(ProcessUnit.HeaterRatio);
             return RState.Running;
         }
 
-        private RState RFBoxUnit_Check(ProcessUnitBase unit, RecipeStep step)
+        private RState HeaterUnit_Check(ProcessUnitBase unit, RecipeStep step)
         {
             return RState.Running;
         }
 
-        private void RFBoxUnit_End(ProcessUnitBase unit, RecipeStep step)
+        private void HeaterUnit_End(ProcessUnitBase unit, RecipeStep step)
         {
 
         }