浏览代码

1.添加 Process 切换step Match/BiasMatch设置值 offset功能,c1/c2小于offset不设置
2.优化数据分析工具
3.去除流气ramp功能,直接写值

lixiang 1 年之前
父节点
当前提交
7ff42d4eca
共有 25 个文件被更改,包括 236 次插入175 次删除
  1. 1 0
      Venus/Framework/RTEquipmentLibrary/HardwareUnits/TMs/TM.cs
  2. 2 2
      Venus/Venus_MainPages/ViewModels/DataHistoryViewModel.cs
  3. 1 1
      Venus/Venus_MainPages/ViewModels/OverKepler2200AViewModel.cs
  4. 1 1
      Venus/Venus_MainPages/ViewModels/OverKepler2200BViewModel.cs
  5. 1 1
      Venus/Venus_MainPages/ViewModels/OverKepler2300ViewModel.cs
  6. 1 1
      Venus/Venus_MainPages/ViewModels/OverVenusViewModel.cs
  7. 10 2
      Venus/Venus_MainPages/ViewModels/ProcessHistoryViewModel.cs
  8. 0 4
      Venus/Venus_MainPages/Views/DataHistoryView.xaml.cs
  9. 4 2
      Venus/Venus_MainPages/Views/ProcessHistoryView.xaml.cs
  10. 1 1
      Venus/Venus_RT/App.config
  11. 二进制
      Venus/Venus_RT/Config/PM/Kepler2200B/Kepler2200BDeviceModel.xml
  12. 二进制
      Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300DeviceModel.xml
  13. 二进制
      Venus/Venus_RT/Config/PM/Venus/VenusDeviceModel.xml
  14. 69 35
      Venus/Venus_RT/Config/System.sccfg
  15. 8 8
      Venus/Venus_RT/Config/System_Kepler2200.sccfg
  16. 2 1
      Venus/Venus_RT/Devices/IODevices/IoGasStick.cs
  17. 2 2
      Venus/Venus_RT/Devices/IODevices/IoMfc.cs
  18. 5 1
      Venus/Venus_RT/Devices/JetPMBase.cs
  19. 4 3
      Venus/Venus_RT/Devices/JetVenusPM.cs
  20. 4 1
      Venus/Venus_RT/Devices/TM/JetTM.cs
  21. 1 1
      Venus/Venus_RT/Devices/TruPlasmaRF_Ethercat.cs
  22. 2 0
      Venus/Venus_RT/Modules/AutoCycle.cs
  23. 92 88
      Venus/Venus_RT/Modules/PMs/ProcessDefine.cs
  24. 2 0
      Venus/Venus_RT/Modules/Schedulers/SchedulerEfemRobot.cs
  25. 23 20
      Venus/Venus_Themes/UserControls/DrawGraphicsControl.xaml.cs

+ 1 - 0
Venus/Framework/RTEquipmentLibrary/HardwareUnits/TMs/TM.cs

@@ -29,6 +29,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs
             DATA.Subscribe($"{Name}.ChamberPressure", () => ChamberPressure);
             DATA.Subscribe($"{Name}.ForelinePressure", () => ForelinePressure);
 
+
             return true;
         }
 

+ 2 - 2
Venus/Venus_MainPages/ViewModels/DataHistoryViewModel.cs

@@ -255,7 +255,7 @@ namespace Venus_MainPages.ViewModels
                 {
                     item.ForEach(x =>
                     {
-                        this.DataHistoryView.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information = $"{x.RecipeId}\n{x.StepNo}" });
+                        this.DataHistoryView.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information = $"{x.RecipeId}\n{x.StepNo}\n{x.StartTime.ToString("HH:mm:ss:fff")}" });
                     });
                 }
             }      
@@ -476,7 +476,7 @@ namespace Venus_MainPages.ViewModels
                 {
                     item.ForEach(x =>
                     {
-                        this.DataHistoryView.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information =$"{x.RecipeId}\n{x.StepNo}" });
+                        this.DataHistoryView.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information =$"{x.RecipeId}\n{x.StepNo}\n{x.StartTime.ToString("HH:mm:ss:fff")}" });
                     });
                 }
             }

+ 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(1000);
+                await Task.Delay(200);
                 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(1000);
+                await Task.Delay(200);
                 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(1000);
+                await Task.Delay(200);
                 object[] mfc = new object[8];
                 string[] mfcSetPoint = new string[8];
                 mfc[0] = MFC1Data.SetPoint;

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

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

+ 10 - 2
Venus/Venus_MainPages/ViewModels/ProcessHistoryViewModel.cs

@@ -261,7 +261,7 @@ namespace Venus_MainPages.ViewModels
                 {
                     sql += string.Format(" and lower(\"recipe_name\") like '%{0}%'", RecipeName.ToLower());
                 }
-                sql += " order by \"process_begin_time\" ASC;";
+                sql += " order by \"process_begin_time\" DESC;";
 
                 DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);
 
@@ -605,7 +605,7 @@ namespace Venus_MainPages.ViewModels
                 {
                     item2.ForEach(x =>
                     {
-                        this.view.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information = $"{x.RecipeId}\n{x.StepNo}" });
+                        this.view.MyDrawGraphicsControl.YPoints.Add(new Venus_Core.StepItem() { StartValue = x.StartTime.ToOADate(), Information = $"{x.RecipeId}\n{x.StepNo}\n{x.StartTime.ToString("HH:mm:ss:fff")}" });
                     });
                 }
             }
@@ -632,6 +632,14 @@ namespace Venus_MainPages.ViewModels
             CloseAll(ParameterNodes);
            
         }
+        public void ColorChanged()
+        {
+            for (int i = 0; i < PdKeyDataCollection.Count(); i++)
+            {
+                var _color = PdKeyDataCollection[i].Color.Color;
+                this.view.MyDrawGraphicsControl.m_PenCollencteions[i] = new System.Drawing.Pen(System.Drawing.Color.FromArgb(_color.A, _color.R, _color.G, _color.B), 2);
+            }
+        }
     }
         #endregion
 

+ 0 - 4
Venus/Venus_MainPages/Views/DataHistoryView.xaml.cs

@@ -42,10 +42,6 @@ namespace Venus_MainPages.Views
                     var item = _viewModel.KeyDataObservableCollection.ToList().Find(t => t.UniqueId == dataId);
                     item.Color = new SolidColorBrush(newColor);
                     _viewModel.ColorChanged();
-                    //if (TimeDataCheckBox.IsChecked == false)
-                    //{
-                    //    //_viewModel.OnStart();
-                    //}
                     
                 }
             }

+ 4 - 2
Venus/Venus_MainPages/Views/ProcessHistoryView.xaml.cs

@@ -117,8 +117,10 @@ namespace Venus_MainPages.Views
                     System.Drawing.Color _newColor = System.Drawing.Color.FromArgb(newColor.A, newColor.R, newColor.G, newColor.B);
                     _viewModel = (ProcessHistoryViewModel)DataContext;
                     var item = _viewModel.PdKeyDataCollection.ToList().Find(t => t.UniqueId == dataId);
-                    item.Color = new SolidColorBrush(newColor); 
-                    _viewModel.OnSearchData();
+                    item.Color = new SolidColorBrush(newColor);
+                    //_viewModel.OnSearchData();
+                    _viewModel.ColorChanged();
+
                 }
             }
         }

+ 1 - 1
Venus/Venus_RT/App.config

@@ -28,7 +28,7 @@
 	<connectionStrings>
 		<add name="PostgreSQL"   connectionString="Server=localhost;Port=5432;User Id=postgres;Password=123456;Database=postgres;Enlist=true;Preload Reader=true;" />
 		<!--0是mTorr,1是Pa-->
-		<add name="PressureType" connectionString="1"/>
+		<add name="PressureType" connectionString="0"/>
 	</connectionStrings>
 	<system.serviceModel>
 		<!--<diagnostics>

二进制
Venus/Venus_RT/Config/PM/Kepler2200B/Kepler2200BDeviceModel.xml


二进制
Venus/Venus_RT/Config/PM/Kepler2300/Kepler2300DeviceModel.xml


二进制
Venus/Venus_RT/Config/PM/Venus/VenusDeviceModel.xml


文件差异内容过多而无法显示
+ 69 - 35
Venus/Venus_RT/Config/System.sccfg


+ 8 - 8
Venus/Venus_RT/Config/System_Kepler2200.sccfg

@@ -448,8 +448,8 @@
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="Match IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1" name="MatchMode" nameView="Match Mode" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="false" name="EnableC1C2Position" nameView="Enable Source C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
-			<!--<config default="10" name="MatchPositionC1" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />
-      <config default="10" name="MatchPositionC2" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />-->
+			<config default="false" name="EnableC1C2StepOffset" nameView="Enable Bias C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="1"     name="C1C2StepOffsetValue"  nameView="Bias C1 C2 Step Offset Value" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		</configs>
 		<configs name="RFBox" nameView="RF Box" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />
@@ -817,8 +817,8 @@
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="Match IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1" name="MatchMode" nameView="Match Mode" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="false" name="EnableC1C2Position" nameView="Enable Source C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
-			<!--<config default="10" name="MatchPositionC1" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />
-      <config default="10" name="MatchPositionC2" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />-->
+			<config default="false" name="EnableC1C2StepOffset" nameView="Enable Bias C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="1"     name="C1C2StepOffsetValue"  nameView="Bias C1 C2 Step Offset Value" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		</configs>
 		<configs name="RFBox" nameView="RF Box" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />
@@ -1187,8 +1187,8 @@
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="Match IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1" name="MatchMode" nameView="Match Mode" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="false" name="EnableC1C2Position" nameView="Enable Source C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
-			<!--<config default="10" name="MatchPositionC1" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />
-      <config default="10" name="MatchPositionC2" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />-->
+			<config default="false" name="EnableC1C2StepOffset" nameView="Enable Bias C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="1"     name="C1C2StepOffsetValue"  nameView="Bias C1 C2 Step Offset Value" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		</configs>
 		<configs name="RFBox" nameView="RF Box" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />
@@ -1557,8 +1557,8 @@
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="Match IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1" name="MatchMode" nameView="Match Mode" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="false" name="EnableC1C2Position" nameView="Enable Source C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
-			<!--<config default="10" name="MatchPositionC1" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />
-      <config default="10" name="MatchPositionC2" nameView="CycleCount" description="" max="100" min="0" paramter="" tag="" unit="" type="Double" />-->
+			<config default="false" name="EnableC1C2StepOffset" nameView="Enable Bias C1 C2 Position" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="1"     name="C1C2StepOffsetValue"  nameView="Bias C1 C2 Step Offset Value" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		</configs>
 		<configs name="RFBox" nameView="RF Box" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />

+ 2 - 1
Venus/Venus_RT/Devices/IODevices/IoGasStick.cs

@@ -63,7 +63,8 @@ namespace Venus_RT.Devices
                 _UpValve?.TurnValve(false, out _);
 
             }
-            _mfc.Ramp(setpoint, 1000);
+            _mfc.SetPoint = setpoint;
+            //_mfc.Ramp(setpoint, 1000);
         }
 
         public void Monitor()

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

@@ -605,7 +605,7 @@ namespace Venus_RT.Devices.IODevices
             if (Enable)
             {
                 Ramping();
-                //CheckTolerance();
+                CheckTolerance();
 
                 if (_aoRange != null)
                     _aoRange.Value = (short)Scale;
@@ -691,7 +691,7 @@ namespace Venus_RT.Devices.IODevices
 
             if (_toleranceChecker.Trig)
             {
-                LOG.Write(eEvent.ERR_DEVICE_INFO, Module, Display + $" 越界 in {AlarmTime:0} seconds");
+                LOG.Write(eEvent.ERR_DEVICE_INFO, Module, Display + $"FeedBack {FeedBack} out of Range[{(int)(SetPoint - Math.Abs(AlarmRange))},{(int)(SetPoint + Math.Abs(AlarmRange))}] in {AlarmTime:0} seconds");
 
                 EV.Notify(GasFlowOutOfTolerance);
             }

+ 5 - 1
Venus/Venus_RT/Devices/JetPMBase.cs

@@ -501,7 +501,11 @@ namespace Venus_RT.Devices
         {
             return false;
         }
-
+        public virtual async Task<bool> SetBiasMatchWorkMode2(MatchWorkMode matchWorkMode)
+        {
+            await Task.Delay(1200);
+            return false;
+        }
         public virtual bool SetBiasPulseMode(bool on)
         { return false; }
         public virtual bool SetBiasPulseRateFreq(int nFreq)

+ 4 - 3
Venus/Venus_RT/Devices/JetVenusPM.cs

@@ -512,7 +512,7 @@ namespace Venus_RT.Devices
             }
             _GasFinalValve.TurnValve(false, out _);
 
-           
+
         }
 
         public override void TurnDryPump(bool on)
@@ -890,7 +890,7 @@ namespace Venus_RT.Devices
 
             if (on == _GeneratorBias.IsPowerOn)
             {
-                string operation=on ? "Open" : "Close";
+                string operation = on ? "Open" : "Close";
                 LOG.Write(eEvent.WARN_RF, Module, $"Bias RF 已经 {operation},不可重复{operation}");
                 return true;
             }
@@ -960,11 +960,12 @@ namespace Venus_RT.Devices
             }
         }
 
-        public override bool SetBiasMatchWorkMode(MatchWorkMode matchWorkMode)
+        public  override async Task<bool> SetBiasMatchWorkMode2(MatchWorkMode matchWorkMode)
         {
             if (_BiasMatch == null) return false;
             if (matchWorkMode == MatchWorkMode.Auto)
             {
+                await Task.Delay(1200);
                 return _BiasMatch.SetMatchMode(EnumRfMatchTuneMode.Auto, out _);
             }
             else

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

@@ -359,13 +359,16 @@ namespace Venus_RT.Devices
             DATA.Subscribe("TM.TMLidClosed", () => TMLidClosed, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe("TM.LLALidClosed", () => LLALidClosed, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe("TM.LLBLidClosed", () => LLBLidClosed, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe("LL.PumpIsRunning", () => LLPumpIsRunning, SubscriptionAttribute.FLAG.IgnoreSaveDB);
+
+            DATA.Subscribe($"{Name}.LLAPressure", () => LLAPressure);
+            DATA.Subscribe($"{Name}.LLBPressure", () => LLBPressure);
 
             OP.Subscribe("TM.ControlPump", (cmd, args) =>
             {
                 _TMPump.SetPumpOnOff((bool)args[0]);
                 return true;
             });
-            DATA.Subscribe("LL.PumpIsRunning", () => LLPumpIsRunning, SubscriptionAttribute.FLAG.IgnoreSaveDB);
             OP.Subscribe("LL.ControlPump", (cmd, args) =>
             {
                 _LLPump.SetPumpOnOff((bool)args[0]);

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

@@ -68,7 +68,7 @@ namespace Venus_RT.Devices
         }
         public override void Monitor()
         {
-            if (_stopWatch.ElapsedMilliseconds > 500)
+            if (_stopWatch.ElapsedMilliseconds > 50)
             {
                 IsPowerOn = GetPowerOnOff();
                 ForwardPower = GetPower();

+ 2 - 0
Venus/Venus_RT/Modules/AutoCycle.cs

@@ -177,6 +177,7 @@ namespace Venus_RT.Modules
 
         public RState Start(params object[] objs)
         {
+            Clear();
             _isCycleMode = SC.GetValue<bool>("System.IsCycleMode");
             _cycleSetPoint = _isCycleMode ? SC.GetValue<int>("System.CycleCount") : 0;
             _cycledWafer = 0;
@@ -185,6 +186,7 @@ namespace Venus_RT.Modules
             _cycleWatch.Stop();
             _lpCycleWafer.Clear();
             _lpCycleCount.Clear();
+            _cycleWatch.Start();  
 
             return RState.Running;
         }

+ 92 - 88
Venus/Venus_RT/Modules/PMs/ProcessDefine.cs

@@ -41,8 +41,10 @@ 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;
@@ -50,7 +52,7 @@ namespace Venus_RT.Modules.PMs
             Init();
             _GasFlowToleranceChecker = new RecipeToleranceChecker(Module);
             _RFToleranceChecker = new RecipeToleranceChecker(Module);
-            _BiasRFToleranceChecker= new RecipeToleranceChecker(Module);
+            _BiasRFToleranceChecker = new RecipeToleranceChecker(Module);
         }
 
         private void Init()
@@ -201,7 +203,10 @@ 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");
+
             var ProcessUnit = unit as TCPUnit;
 
             List<ToleranceObject> toleranceObjects = new List<ToleranceObject>();
@@ -230,7 +235,10 @@ namespace Venus_RT.Modules.PMs
                 p2 = ProcessUnit.AutoC2;
             }
 
-            Chamber.SetMatchPosition(p1, p2);
+            if (_isEnableMatchC1C2Offset = false || Math.Abs(Chamber.RFMatchC1 - p1) > _matchC1C2OffsetValue || Math.Abs(Chamber.RFMatchC2 - p2) > _matchC1C2OffsetValue)
+            {
+                Chamber.SetMatchPosition(p1, p2);
+            }
 
 
             if (ProcessUnit.RFPower > 5)
@@ -324,6 +332,9 @@ namespace Venus_RT.Modules.PMs
 
         private RState BiasUnit_Start(ProcessUnitBase unit, RecipeStep step)
         {
+            _isEnableBiasMatchC1C2Offset = SC.GetValue<bool>($"{Module}.BiasMatch.EnableC1C2StepOffset");
+            _biasMatchC1C2OffsetValue = SC.GetValue<int>($"{Module}.BiasMatch.C1C2StepOffsetValue");
+
             var ProcessUnit = unit as BiasUnit;
 
             int p1;
@@ -344,7 +355,13 @@ namespace Venus_RT.Modules.PMs
             {
                 p2 = ProcessUnit.AutoBiasC2;
             }
-            Chamber.SetBiasMatchPosition(p1, p2);
+
+            if (_isEnableBiasMatchC1C2Offset == false || Math.Abs(Chamber.BiasRFMatchC1 - p1) > _biasMatchC1C2OffsetValue || Math.Abs(Chamber.BiasRFMatchC2 - p2) > _biasMatchC1C2OffsetValue)
+            {
+                Chamber.SetBiasMatchPosition(p1, p2);
+            }
+
+
 
             if (ProcessUnit.BiasRFPower > 5)
             {
@@ -354,11 +371,6 @@ namespace Venus_RT.Modules.PMs
                     Chamber.GeneratorBiasSetpower(ProcessUnit.BiasRFPower);
                 }
             }
-            else
-            {
-                Chamber.GeneratorBiasPowerOn(false);
-                Chamber.GeneratorBiasSetpower(0);
-            }
 
 
             if (ProcessUnit.BiasMatchWorkMode == MatchWorkMode.Auto)
@@ -442,8 +454,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;
@@ -478,78 +490,63 @@ namespace Venus_RT.Modules.PMs
             var ProcessUnit = unit as GasControlUnit;
 
             Chamber.FlowGas(0, ProcessUnit.Gas1);
-            if (ProcessUnit.Gas1 >= 1 )
+            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 )
+            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 )
+            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)
-            //{
-            //    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)
+            if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
             {
-                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);
@@ -573,7 +570,7 @@ namespace Venus_RT.Modules.PMs
                 Chamber.FlowGas(7, ProcessUnit.Gas8 + (ProcessUnit.Gas8Target - ProcessUnit.Gas8) * rampFactor);
             }
             if (ProcessUnit.ToleranceMode != ToleranceMode.None)
-            {               
+            {
                 _GasFlowToleranceChecker.Monitor(Chamber.MFC1FeedBack, Chamber.MFC2FeedBack, Chamber.MFC3FeedBack, Chamber.MFC4FeedBack, Chamber.MFC5FeedBack, Chamber.MFC6FeedBack, Chamber.MFC7FeedBack, Chamber.MFC8FeedBack);
             }
             return RState.Running;
@@ -603,41 +600,49 @@ namespace Venus_RT.Modules.PMs
             Chamber.FlowGas(0, ProcessUnit.Gas1);
             if (ProcessUnit.Gas1 >= 1)
             {
-                Chamber.OpenValve(ValveType.PV11, true);              
+                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);             
+                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);            
+                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);              
+                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.ToleranceMode != ToleranceMode.None)
+            if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
             {
-                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));
-                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
             }
-
-
-            if (ProcessUnit.ToleranceMode != ToleranceMode.None)
+            if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
             {
-                _GasFlowToleranceChecker.Start(toleranceObjects);
+                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+
             }
             return RState.Running;
         }
@@ -811,37 +816,36 @@ namespace Venus_RT.Modules.PMs
 
 
 
-        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)
         {
 
         }
-
-        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)
         {
 
         }

+ 2 - 0
Venus/Venus_RT/Modules/Schedulers/SchedulerEfemRobot.cs

@@ -219,6 +219,8 @@ namespace Venus_RT.Scheduler
             _entityTaskToken = (int)FSM_MSG.NONE;
             if(_currentScheduler != null)
             {
+                _alignAngle = SC.GetValue<int>($"EFEM.Aligner.AlignAngle");
+                _increasingAngle = SC.GetValue<int>($"EFEM.Aligner.IncreasingAngle");
                 _currentScheduler.moveList.Clear();
                 _currentScheduler.Status = RState.End;
             }

+ 23 - 20
Venus/Venus_Themes/UserControls/DrawGraphicsControl.xaml.cs

@@ -180,7 +180,7 @@ namespace Venus_Themes.UserControls
             InitializeComponent();
 
             m_PenLine = new System.Drawing.Pen(System.Drawing.Brushes.Black, 1);
-            m_PenLightGray = new System.Drawing.Pen(System.Drawing.Brushes.DarkGray, 1);
+            m_PenLightGray = new System.Drawing.Pen(System.Drawing.Brushes.LightGray, 0.1F);
             m_PenBlue = new System.Drawing.Pen(System.Drawing.Brushes.DarkBlue, 1);
             m_PenData = new System.Drawing.Pen(System.Drawing.Brushes.Green, 1);
             m_PenSData = new System.Drawing.Pen(System.Drawing.Brushes.Blue, 1);
@@ -526,7 +526,8 @@ namespace Venus_Themes.UserControls
                         double X = m_StartDrawLineX + ((Canvas_Main.ActualWidth - m_StartDrawLineX) / m_WavePlotWidth) * (i * IntervalTextX * Math.Pow(10, ExpCountX) - m_WavePlotX);
                         if (X < m_StartDrawLineX) X = m_StartDrawLineX;
                         if (X > Canvas_Main.ActualWidth) X = Canvas_Main.ActualWidth;
-                        graphics.DrawLine(m_PenLightGray, new PointF((float)X, 0), new PointF((float)X, (float)Canvas_Main.ActualHeight - 50));
+                        
+                        //graphics.DrawLine(m_PenLightGray, new PointF((float)X, 0), new PointF((float)X, (float)Canvas_Main.ActualHeight - 50));//画X轴横线
                         graphics.DrawLine(m_PenLine, new PointF((float)X, (float)Canvas_Main.ActualHeight - 30), new PointF((float)X, (float)Canvas_Main.ActualHeight - 50));
                         if (IsHorizontalDateTimeAxis)
                         {
@@ -613,6 +614,25 @@ namespace Venus_Themes.UserControls
                     }
                     if (points.Count > 1 && points.Where(_ => float.IsNaN(_.X) || float.IsNaN(_.Y)).ToList<PointF>().Count == 0) graphics.DrawLines(m_PenASData, points.ToArray());
                 }
+
+                if (YPoints.Count > 0)
+                {
+                    YPoints.ForEach(p =>
+                    {
+                        double StartX = m_StartDrawLineX + (Canvas_Main.ActualWidth - m_StartDrawLineX) / m_WavePlotWidth * (p.StartValue - m_WavePlotX);
+                        if (StartX < m_StartDrawLineX || p.StartValue < m_WavePlotX)
+                        {
+                            StartX = m_StartDrawLineX;
+                        }
+                        if (StartX > Canvas_Main.ActualWidth || p.StartValue > m_WavePlotX + m_WavePlotWidth)
+                        {
+                            StartX = Canvas_Main.ActualWidth;
+                        }
+
+                        graphics.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Silver, 3), (float)StartX, (float)Canvas_Main.ActualHeight - 50, (float)StartX, 0);
+                        graphics.DrawString(p.Information, new System.Drawing.Font("Arial", 12), System.Drawing.Brushes.Black, (float)StartX, (float)Canvas_Main.ActualHeight / 15);
+                    });
+                }
                 if (this.Points != null && this.Points.Count > 0)
                 {
                     List<PointF> points = new List<PointF>();
@@ -663,24 +683,7 @@ namespace Venus_Themes.UserControls
                         }
                     }
                 }
-                if (YPoints.Count > 0)
-                { 
-                    YPoints.ForEach(p => 
-                    {
-                        double StartX = m_StartDrawLineX + (Canvas_Main.ActualWidth - m_StartDrawLineX) / m_WavePlotWidth * (p.StartValue - m_WavePlotX);
-                        if (StartX < m_StartDrawLineX || p.StartValue < m_WavePlotX)
-                        {
-                            StartX = m_StartDrawLineX;
-                        }
-                        if (StartX > Canvas_Main.ActualWidth || p.StartValue > m_WavePlotX + m_WavePlotWidth)
-                        {
-                            StartX = Canvas_Main.ActualWidth;
-                        }
-                       
-                        graphics.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Red, 2), (float)StartX, (float)Canvas_Main.ActualHeight-50, (float)StartX,0);
-                        graphics.DrawString(p.Information, new System.Drawing.Font("Arial",15), System.Drawing.Brushes.Black, (float)StartX, (float)Canvas_Main.ActualHeight/6);
-                    });
-                }
+                
 
                 //框选
                 if (m_StartMouseMove && m_MouseMove)