Przeglądaj źródła

1.Recipe UI 界面Name优化
2.楼下出现rt内存溢出,原因数据库崩溃,rt数据语句不执行,溢出,代码加上实时插入工艺数据,数据库断开重连功能,保证数据库保持连接

lixiang 1 rok temu
rodzic
commit
87f1121180

+ 37 - 22
Venus/Framework/Common/DataCollection/DataCollectionManager.cs

@@ -28,16 +28,16 @@ namespace Aitex.Core.RT.DataCollection
 
         NpgsqlConnection _conn;
 
-         bool _bAlive = true;
-         Dictionary<string, Func<object>> _preSubscribedRecordedData; //for other thread to subscribe data
-         Dictionary<string, Func<object>> _subscribedRecordedData; //internal use 
-         object _lock = new object();
+        bool _bAlive = true;
+        Dictionary<string, Func<object>> _preSubscribedRecordedData; //for other thread to subscribe data
+        Dictionary<string, Func<object>> _subscribedRecordedData; //internal use 
+        object _lock = new object();
         F_TRIG _connFailTrig = new F_TRIG();
         private int dataCollectionInterval;
 
-         IDataCollectionCallback _callback;
+        IDataCollectionCallback _callback;
 
-        private string[] _modules = new string[] {"Data"};
+        private string[] _modules = new string[] { "Data" };
 
         public DataCollectionManager()
         {
@@ -46,7 +46,7 @@ namespace Aitex.Core.RT.DataCollection
             dataCollectionInterval = SC.GetValue<int>("System.DataCollectionInterval");
         }
 
-        public  void Initialize(IDataCollectionCallback callback)
+        public void Initialize(IDataCollectionCallback callback)
         {
             _callback = callback == null ? new DefaultDataCollectionCallback() : callback;
 
@@ -59,7 +59,7 @@ namespace Aitex.Core.RT.DataCollection
         {
             _callback = new DefaultDataCollectionCallback(dbName);
 
-            if (modules!=null && modules.Length>0 && !string.IsNullOrEmpty(modules[0]))
+            if (modules != null && modules.Length > 0 && !string.IsNullOrEmpty(modules[0]))
                 _modules = modules;
 
             Connect();
@@ -69,13 +69,13 @@ namespace Aitex.Core.RT.DataCollection
 
         public void Initialize(string dbName)
         {
-            _callback =  new DefaultDataCollectionCallback(dbName)  ;
+            _callback = new DefaultDataCollectionCallback(dbName);
 
             Connect();
 
             System.Threading.Tasks.Task.Factory.StartNew(DataRecorderThread);
         }
- 
+
         public void Terminate()
         {
             _bAlive = false;
@@ -84,7 +84,7 @@ namespace Aitex.Core.RT.DataCollection
         /// <summary>
         /// initialization
         /// </summary>
-        public  void SubscribeData(string dataName, string alias, Func<object> dataValue)
+        public void SubscribeData(string dataName, string alias, Func<object> dataValue)
         {
             lock (_lock)
             {
@@ -179,11 +179,11 @@ namespace Aitex.Core.RT.DataCollection
             return true;
         }
 
- 
+
         /// <summary>
         /// 重置数据库连接出错事件
         /// </summary>
-        public  void Reset()
+        public void Reset()
         {
             _connFailTrig.CLK = false;
         }
@@ -191,7 +191,7 @@ namespace Aitex.Core.RT.DataCollection
         /// <summary>
         /// data recorder thread
         /// </summary>
-         void DataRecorderThread()
+        void DataRecorderThread()
         {
             while (_bAlive)
             {
@@ -207,7 +207,7 @@ namespace Aitex.Core.RT.DataCollection
 
                     if (!_connFailTrig.M)
                         continue;
- 
+
                     MonitorDataCenter();
 
                     var moduleDataItem = new Dictionary<string, Dictionary<string, Func<object>>>();
@@ -229,7 +229,7 @@ namespace Aitex.Core.RT.DataCollection
                                 foundModule = false;
                                 foreach (var module in _modules)
                                 {
-                                    if (dataName.StartsWith(module+"."))
+                                    if (dataName.StartsWith(module + "."))
                                     {
                                         moduleDataItem[module][dataName] = _subscribedRecordedData[dataName];
                                         foundModule = true;
@@ -298,16 +298,31 @@ namespace Aitex.Core.RT.DataCollection
                             }
 
                             sb.Append(");");
-                            NpgsqlCommand cmd = new NpgsqlCommand(moduleInsertSql[module] + sb.ToString(), _conn);
 
                             try
                             {
-                                cmd.ExecuteNonQuery();
+                                if (_conn.State == System.Data.ConnectionState.Open)
+                                {
+                                    NpgsqlCommand cmd = new NpgsqlCommand(moduleInsertSql[module] + sb.ToString(), _conn);
+                                    cmd.ExecuteNonQuery();
+                                }
+                                else
+                                {
+                                    Connect();
+                                }
                             }
-                            catch (Exception ex)
+                            catch
                             {
-                                LOG.WriteExeption("数据记录发生异常" + moduleInsertSql[module], ex);
+                                Connect();
                             }
+
+                            //try
+                            //{
+                            //}
+                            //catch (Exception ex)
+                            //{
+                            //    LOG.WriteExeption("数据记录发生异常" + moduleInsertSql[module], ex);
+                            //}
                         }
 
                         //if alert to another day, create a new table 
@@ -351,14 +366,14 @@ namespace Aitex.Core.RT.DataCollection
                 //table exist
                 foreach (var dataName in dataItem.Keys)
                 {
-                    if (!colNameList.Contains(dataName) )
+                    if (!colNameList.Contains(dataName))
                     {
                         var dataType = dataItem[dataName].Invoke().GetType();
                         if (dataType == typeof(Boolean))
                         {
                             tblAlertString += string.Format("ALTER TABLE \"{0}\" ADD COLUMN \"{1}\" {2};", tblName, dataName, "Boolean");
                         }
-                        else if (dataType == typeof(double) || dataType == typeof(float) || dataType == typeof(int) || dataType == typeof(ushort) || dataType==typeof(short))
+                        else if (dataType == typeof(double) || dataType == typeof(float) || dataType == typeof(int) || dataType == typeof(ushort) || dataType == typeof(short))
                         {
                             tblAlertString += string.Format("ALTER TABLE \"{0}\" ADD COLUMN \"{1}\" {2};", tblName, dataName, "Real");
                         }

+ 9 - 0
Venus/Venus_Core/Attributes/IsOnlyReadAttribute.cs

@@ -17,4 +17,13 @@ namespace Venus_Core.Attributes
     {
 
     }
+    public class CustomName : Attribute
+    {
+        public string Name { get; set; }
+        public CustomName(string name)
+        {
+            Name = name;
+        }
+    }
+
 }

+ 26 - 6
Venus/Venus_Core/ProcessUnitDefine.cs

@@ -1,6 +1,7 @@
 using Newtonsoft.Json;
 using Newtonsoft.Json.Converters;
 using System.ComponentModel;
+using System.Runtime.Serialization;
 using Venus_Core.Attributes;
 
 namespace Venus_Core
@@ -110,7 +111,9 @@ namespace Venus_Core
     public class HeaterUnit : ProcessUnitBase
     {
         public string UnitName { get; set; } = "HeaterUnit";
+        [CustomName("Heater Temperature(℃)")]
         public int HeaterTemp { get; set; }
+        [CustomName("Heater Ratio")]
         public int HeaterRatio { get; set; }
         public Suspect SuspectPosition { get; set; }
         public int PositionOffset { get; set; }
@@ -127,18 +130,27 @@ namespace Venus_Core
         [IsTolerance]
         public ToleranceMode ToleranceMode { get; set; }
         [IsTolerance]
-        public int ToleranceDelayTime_ms { get; set; }
+        [CustomName("ToleranceDelayTime(ms)")]
+        public int ToleranceDelayTime { get; set; }
+        [CustomName("RF Power(W)")]
         public int RFPower { get; set; }
         [IsTolerance]
         public int RFPowerWarningRange { get; set; }
         [IsTolerance]
         public int RFPowerAlarmRange { get; set; }
+        //[JsonProperty(PropertyName = "C1(%)")]
+        //[DataMember(Name = "C1(%)")]
+        [CustomName("C1(%)")]
         public float C1 { get; set; }
+        [CustomName("C2(%)")]
         public float C2 { get; set; }
         [IsOnlyRead]
+        [CustomName("AutoC1(%)")]
         public float AutoC1 { get; set; }
         [IsOnlyRead]
+        [CustomName("AutoC2(%)")]
         public float AutoC2 { get; set; }
+        [CustomName("Max Reflected Power (W)")]
         public int MaxReflectedPower { get; set; }
         [JsonConverter(typeof(StringEnumConverter))]
         public MatchWorkMode MatchWorkMode { get; set; }
@@ -162,7 +174,8 @@ namespace Venus_Core
         [IsTolerance]
         public ToleranceMode ToleranceMode { get; set; }
         [IsTolerance]
-        public int ToleranceDelayTime_ms { get; set; }
+        [CustomName("ToleranceDelayTime(ms)")]
+        public int ToleranceDelayTime { get; set; }
         //public int RFPower { get; set; }
         [IsTolerance]
         public int RFPowerWarningRange { get; set; }
@@ -194,6 +207,8 @@ namespace Venus_Core
     public class RFBoxUnit : ProcessUnitBase
     {
         public string UnitName { get; set; } = "RFBoxUnit";
+        [CustomName("C1(%)")]
+
         public float C1 { get; set; }
     }
 
@@ -205,7 +220,9 @@ namespace Venus_Core
         [IsTolerance]
         public ToleranceMode ToleranceMode { get; set; }
         [IsTolerance]
-        public int ToleranceDelayTime_ms { get; set; }
+        [CustomName("ToleranceDelayTime(ms)")]
+
+        public int ToleranceDelayTime { get; set; }
         public int Gas1 { get; set; }
         [IsTolerance]
         public int Gas1WarningRange { get; set; }
@@ -267,7 +284,9 @@ namespace Venus_Core
         [IsTolerance]
         public ToleranceMode ToleranceMode { get; set; }
         [IsTolerance]
-        public int ToleranceDelayTime_ms { get; set; }
+        [CustomName("ToleranceDelayTime(ms)")]
+
+        public int ToleranceDelayTime { get; set; }
         public int Gas1 { get; set; }
         [IsTolerance]
         public int Gas1WarningRange { get; set; }
@@ -322,8 +341,9 @@ namespace Venus_Core
         public string UnitName { get; set; } = "ESCHVUnit";
         public int BacksideHelum { get; set; } 
         public int MinHeFlow { get; set; } 
-        public int MaxHeFlow { get; set; } 
-        public int CheckDelay_ms { get; set; }
+        public int MaxHeFlow { get; set; }
+        [CustomName("CheckDelay(ms)")]
+        public int CheckDelay { get; set; }
         public int ESCClampValtage { get; set; }
         public int Temperature { get; set; }
     }

+ 5 - 1
Venus/Venus_Core/Recipe.cs

@@ -164,12 +164,15 @@ namespace Venus_Core
             set { m_Temperature = value; InvokePropertyChanged("Temperature"); }
         }
         private int m_RFHoldTime = 1000;
+        [CustomName("RF HoldTime(s)")]
         public int RFHoldTime
         {
             get { return m_RFHoldTime; }
             set { m_RFHoldTime = value; InvokePropertyChanged("RFHoldTime"); }
         }
         private int m_BiasRFHoldTime = 1000;
+        [CustomName("BiasRF HoldTime(s)")]
+
         public int BiasRFHoldTime
         {
             get { return m_BiasRFHoldTime; }
@@ -253,8 +256,9 @@ namespace Venus_Core
             get { return m_StepType; }
             set { m_StepType = value; InvokePropertyChanged("Type"); }
         }
-
         private int m_Time;
+        [CustomName("Time(s)")]
+
         public int Time
         {
             get { return m_Time; }

+ 52 - 14
Venus/Venus_MainPages/ViewModels/RecipeViewModel.cs

@@ -668,7 +668,17 @@ namespace Venus_MainPages.ViewModels
                         textBlock.Text = "DeChuck:";
                         break;
                     default:
-                        textBlock.Text = propertyInfo.Name + ":";
+                        object[] NameAttrs = propertyInfo.GetCustomAttributes(typeof(CustomName), true);
+                        string name;
+                        if (NameAttrs.Length > 0)
+                        {
+                            name = (NameAttrs[0] as CustomName).Name;
+                        }
+                        else
+                        {
+                            name = propertyInfo.Name;
+                        }
+                        textBlock.Text = name + ":";
                         break;
                 }
                 textBlock.Margin = new Thickness(15, 0, 0, 0);
@@ -1004,7 +1014,17 @@ namespace Venus_MainPages.ViewModels
                         {
                             TextBox textBlock = new TextBox();
                             textBlock.IsReadOnly = true;
-                            textBlock.Text = propertyInfoName;
+                            object[] NameAttrs = propertyInfo.GetCustomAttributes(typeof(CustomName), true);
+                            string name;
+                            if (NameAttrs.Length > 0)
+                            {
+                                name = (NameAttrs[0] as CustomName).Name;
+                            }
+                            else
+                            {
+                                name = propertyInfo.Name;
+                            }
+                            textBlock.Text = name;
                             grid.Children.Add(textBlock);
                             textBlock.Background = new SolidColorBrush(Colors.BurlyWood);
                             Grid.SetRow(textBlock, i);
@@ -1200,20 +1220,31 @@ namespace Venus_MainPages.ViewModels
                                     var data8 = (AITMfcData)QueryDataClient.Instance.Service.GetData($"{ModuleName}.MfcGas8");
                                     textBlock.Text = $"{propertyInfo.Name}({data8.DisplayName},{data8.Scale})";
                                     break;
-                                case "HeaterPressure":
-                                    textBlock.Text = "Pressure(Pa)";
+                                //case "HeaterPressure":
+                                //    textBlock.Text = "Pressure(Pa)";
 
-                                    break;
-                                case "HeaterTemp":
-                                    textBlock.Text = "Heater Temp(℃)";
+                                //    break;
+                                //case "HeaterTemp":
+                                //    textBlock.Text = "Heater Temp(℃)";
 
-                                    break;
-                                case "HeaterRatio":
-                                    textBlock.Text = "Heater Ratio";
+                                //    break;
+                                //case "HeaterRatio":
+                                //    textBlock.Text = "Heater Ratio";
+
+                                //    break;
 
-                                    break;
                                 default:
-                                    textBlock.Text = propertyInfo.Name;
+                                    object[] NameAttrs = propertyInfo.GetCustomAttributes(typeof(CustomName), true);
+                                    string name;
+                                    if (NameAttrs.Length > 0)
+                                    {
+                                        name = (NameAttrs[0] as CustomName).Name;
+                                    }
+                                    else
+                                    {
+                                        name = propertyInfo.Name;
+                                    }
+                                    textBlock.Text = name;
                                     break;
 
                             }
@@ -1504,8 +1535,15 @@ namespace Venus_MainPages.ViewModels
             }
         }
         private void OnUnload()
-        { 
-        
+        {
+            //if (CurrentRecipeName == null || CurrentRecipeName == "")
+            //{
+            //    return;
+            //}
+            //if (WPFMessageBox.ShowQuestion($"Is Save Recipe {CurrentRecipeName}", "", false) == MessageBoxResult.Yes)
+            //{
+            //    OnSaveRecipe();
+            //}
         }
         private void ExpandAllItems(ItemsControl control)
         {

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

@@ -975,7 +975,7 @@
             <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"  unity:GridOptions.LineThickness="1" >
                 <Grid.Resources>
                     <Style TargetType="TextBlock">
-                        <Setter Property="FontSize" Value="15"/>
+                        <Setter Property="FontSize" Value="14"/>
                     </Style>
                 </Grid.Resources>
                 <Grid.RowDefinitions>
@@ -1068,7 +1068,7 @@
                     </TextBlock.Text>
                 </TextBlock>
                 <TextBlock Grid.Row="13"   Text="Heater Position"                   Background="#F5F7FA"    Padding="10,5,0,0"/>
-                <TextBlock Grid.Row="14"   Text="Heater Temp"                 Background="#FFFFFF"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="14"   Text="Heater Temp"                        Background="#FFFFFF"    Padding="10,5,0,0" />
                 <TextBlock Grid.Row="15"   Text="Heater Ratio"                       Background="#F5F7FA"    Padding="10,5,0,0" />
 
 
@@ -1078,8 +1078,8 @@
                 <TextBlock Grid.Row="3"  Grid.Column="1" Text="{Binding MatchData.C1,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="4"  Grid.Column="1" Text="{Binding MatchData.C2,StringFormat='F1'}"           Background="#FFFFFF"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
 
-                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding ChamberPressureFeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding PendulumValveData.Position}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding PendulumValveData.Pressure,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding PendulumValveData.Position,StringFormat='F1'}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="7"  Grid.Column="1" Text="{Binding MFC1Data.FeedBack,StringFormat='F1'}"      Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="8"  Grid.Column="1" Text="{Binding MFC2Data.FeedBack,StringFormat='F1'}"      Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="9"  Grid.Column="1" Text="{Binding MFC3Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
@@ -1087,8 +1087,8 @@
                 <TextBlock Grid.Row="11"  Grid.Column="1" Text="{Binding MFC5Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="12"  Grid.Column="1" Text="{Binding MFC6Data.FeedBack,StringFormat='F1'}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="13" Grid.Column="1"  Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterPositionFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,5,0,0"/>
-                <TextBlock Grid.Row="14"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterTemperatureFeedBack}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="15"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="14"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterTemperatureFeedBack,StringFormat='F1'}"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="15"  Grid.Column="1" Text="{Binding HighTemperatureHeaterData.HighTemperatureHeaterRatioFeedBack,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
 
                 <TextBlock Grid.Row="1"   Grid.Column="2"  Text="{Binding SRFData.PowerSetPoint}"          Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="2"   Grid.Column="2"  Text="N/A"           Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>

+ 3 - 3
Venus/Venus_MainPages/Views/OverKepler2200BView.xaml

@@ -998,7 +998,7 @@
             <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E0E4E7"  unity:GridOptions.LineThickness="1">
                 <Grid.Resources>
                     <Style TargetType="TextBlock">
-                        <Setter Property="FontSize" Value="15"/>
+                        <Setter Property="FontSize" Value="14"/>
                     </Style>
                 </Grid.Resources>
                 <Grid.RowDefinitions>
@@ -1101,8 +1101,8 @@
                 <TextBlock Grid.Row="3"  Grid.Column="1" Text="{Binding MatchData.C1,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="4"  Grid.Column="1" Text="{Binding MatchData.C2,StringFormat='F1'}"           Background="#FFFFFF"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
 
-                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding ChamberPressureFeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding PendulumValveData.Position}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding PendulumValveData.Pressure,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding PendulumValveData.Position,StringFormat='F1'}"       Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="7"  Grid.Column="1" Text="{Binding MFC1Data.FeedBack,StringFormat='F1'}"      Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="8"  Grid.Column="1" Text="{Binding MFC2Data.FeedBack,StringFormat='F1'}"      Background="#FFFFFF"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="9"  Grid.Column="1" Text="{Binding MFC3Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>

+ 1 - 1
Venus/Venus_MainPages/Views/RecipeView.xaml

@@ -77,7 +77,7 @@
             <i:InvokeCommandAction Command="{Binding LoadedCommand}" CommandParameter="{Binding ElementName=recipeView}"/>
         </i:EventTrigger>
         <i:EventTrigger EventName="Unloaded">
-            <i:InvokeCommandAction Command="{Binding UnloadedCommand}"/>
+            <i:InvokeCommandAction Command="{Binding UnloadCommand}"/>
         </i:EventTrigger>
     </i:Interaction.Triggers>
     <Grid>

+ 6 - 2
Venus/Venus_RT/App.config

@@ -8,9 +8,13 @@
 			<param name="Encoding" value="utf-8" />
 			<param name="File" value="Logs/log" />
 			<param name="AppendToFile" value="true" />
-			<param name="RollingStyle" value="Date" />
+			<!--<param name="RollingStyle" value="Date" />-->
+			<param name= "MaxSizeRollBackups" value= "-1"/>
+			<param name= "MaximumFileSize" value= "500M"/>
 			<param name="StaticLogFileName" value="false" />
-			<datePattern value="yyyyMMdd'.txt'" />
+			<!--<datePattern value="yyyyMMdd'.txt'" />-->
+			<param name= "DatePattern" value= "&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;"/>
+			<param name= " RollingStyle " value= "Composite" />
 			<layout type="log4net.Layout.PatternLayout,log4net">
 				<param name="ConversionPattern" value="%d%8p %m%n" />
 				<param name="Header" value="&#xA;----------------------开启RT--------------------------&#xA;" />

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

@@ -12,9 +12,9 @@
 		<config default="1" name="MaxTemperatureToleranceToTarget" nameView="Max Temperature Tolerance To Target" description="工艺最大温度差" max="100" min="1" paramter="" tag="" unit="℃" type="Double" />
 		<!--<config default="30" name="DefaultCoolingTime" nameView="Default Cooling Time" description="晶圆默认冷却时间" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />-->
 		<config default="true" name="DisplayPopDialogWhenJobComplete" nameView="Pop Dialog When Job Complete" description="是否弹出Job结束对话框" max="" min="" paramter="" tag="" unit="" type="Bool" />
-		<config default="100" name="PMLLMaxPressureDifference" nameView="Max PM/LL Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
-		<config default="100" name="TMLLMaxPressureDifference" nameView="Max TM/LL Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
-		<config default="100" name="PMTMMaxPressureDifference" nameView="Max PM/TM Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="15" name="PMLLMaxPressureDifference" nameView="Max PM/LL Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="15" name="TMLLMaxPressureDifference" nameView="Max TM/LL Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="15" name="PMTMMaxPressureDifference" nameView="Max PM/TM Pressure difference for open slit valve" description="" max="70" min="3" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="LLA,PMA,EfemRobot" name="InstalledModules" description="安装的模块" max="" min="" paramter="" tag="" unit="" visible="false" type="String" />
 		<config default="2" name="MaxInternalWaferCount" nameView="Max Internal wafer count" description="系统可允许进入的wafer数" max="8" min="1" paramter="" tag="" unit="" visible="true" type="Integer" />
 		<config default="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000" name="COMLogFlag" description="Flag for print COM data log" max="" min="" paramter="" tag="" unit="" visible="false" type="String" />
@@ -308,7 +308,7 @@
 		<config default="120" name="CheckSubstrateTempTimeout" nameView="Check Substrate Temp Timeout" description="" max="3600" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="90" name="CheckATMTimeout" nameView="Check ATM Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="2000" name="OverVentTime" nameView="Over Vent Time Delay" description="" max="60000" min="0" paramter="" tag="" unit="ms" type="Integer" />
-		<config default="780000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="104000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="120" name="ChamberBaseTemperatureThreshold" nameView="Chamber Base Temperature Threshold" description="" max="1000" min="0" paramter="" tag="" unit="°C" type="Double" />
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="14" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
@@ -623,8 +623,8 @@
 		<configs name="PendulumValve" nameView="Pendulum Valve">
 			<config default="COM66" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="13000" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="750"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="600"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="100"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="80"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
 			<config default="100"  name="TurboPumpSpeedLimit"  nameView="Turbo PumpSpeed Limit" description="" max="3000" min="0" paramter="" tag="" unit="" type="Integer" />
 
 		</configs>
@@ -681,7 +681,7 @@
 		<config default="120" name="CheckSubstrateTempTimeout" nameView="Check Substrate Temp Timeout" description="" max="3600" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="90" name="CheckATMTimeout" nameView="Check ATM Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="2000" name="OverVentTime" nameView="Over Vent Time Delay" description="" max="60000" min="0" paramter="" tag="" unit="ms" type="Integer" />
-		<config default="780000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="104000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="120" name="ChamberBaseTemperatureThreshold" nameView="Chamber Base Temperature Threshold" description="" max="1000" min="0" paramter="" tag="" unit="°C" type="Double" />
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="14" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
@@ -997,8 +997,8 @@
 		<configs name="PendulumValve" nameView="Pendulum Valve">
 			<config default="COM66" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="13000" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="750"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="600"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="100"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="80"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
 			<config default="100"  name="TurboPumpSpeedLimit"  nameView="Turbo PumpSpeed Limit" description="" max="3000" min="0" paramter="" tag="" unit="" type="Integer" />
 
 		</configs>
@@ -1054,7 +1054,7 @@
 		<config default="120" name="CheckSubstrateTempTimeout" nameView="Check Substrate Temp Timeout" description="" max="3600" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="90" name="CheckATMTimeout" nameView="Check ATM Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="2000" name="OverVentTime" nameView="Over Vent Time Delay" description="" max="60000" min="0" paramter="" tag="" unit="ms" type="Integer" />
-		<config default="780000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="104000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="120" name="ChamberBaseTemperatureThreshold" nameView="Chamber Base Temperature Threshold" description="" max="1000" min="0" paramter="" tag="" unit="°C" type="Double" />
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="14" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
@@ -1370,8 +1370,8 @@
 		<configs name="PendulumValve" nameView="Pendulum Valve">
 			<config default="COM66" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="13000" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="750"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="600"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="100"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="80"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
 			<config default="100"  name="TurboPumpSpeedLimit"  nameView="Turbo PumpSpeed Limit" description="" max="3000" min="0" paramter="" tag="" unit="" type="Integer" />
 
 		</configs>
@@ -1427,7 +1427,7 @@
 		<config default="120" name="CheckSubstrateTempTimeout" nameView="Check Substrate Temp Timeout" description="" max="3600" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="90" name="CheckATMTimeout" nameView="Check ATM Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="2000" name="OverVentTime" nameView="Over Vent Time Delay" description="" max="60000" min="0" paramter="" tag="" unit="ms" type="Integer" />
-		<config default="780000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
+		<config default="104000" name="ChamberBasePressureThreshold" nameView="Chamber Base Pressure Threshold" description="" max="140000" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="120" name="ChamberBaseTemperatureThreshold" nameView="Chamber Base Temperature Threshold" description="" max="1000" min="0" paramter="" tag="" unit="°C" type="Double" />
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="14" min="0" paramter="" tag="" unit="Pa" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
@@ -1743,8 +1743,8 @@
 		<configs name="PendulumValve" nameView="Pendulum Valve">
 			<config default="COM66" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="13000" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="750"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
-			<config default="600"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="100"  name="ForelinePressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
+			<config default="80"  name="ChamberPressureLimit" nameView="ForelinePressureLimit" description="" max="250" min="0" paramter="" tag="" unit="Pa" type="Integer" />
 			<config default="100"  name="TurboPumpSpeedLimit"  nameView="Turbo PumpSpeed Limit" description="" max="3000" min="0" paramter="" tag="" unit="" type="Integer" />
 
 		</configs>

+ 16 - 16
Venus/Venus_RT/Modules/PMs/ProcessDefine.cs

@@ -187,7 +187,7 @@ namespace Venus_RT.Modules.PMs
             List<ToleranceObject> toleranceObjects = new List<ToleranceObject>();
             if (ProcessUnit.ToleranceMode != ToleranceMode.None)
             {
-                toleranceObjects.Add(new ToleranceObject("RF", ProcessUnit.RFPower, ProcessUnit.RFPowerWarningRange, ProcessUnit.RFPowerAlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("RF", ProcessUnit.RFPower, ProcessUnit.RFPowerWarningRange, ProcessUnit.RFPowerAlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
                 _RFToleranceChecker.Start(toleranceObjects);
             }
 
@@ -541,14 +541,14 @@ namespace Venus_RT.Modules.PMs
 
             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));
-                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                toleranceObjects.Add(new ToleranceObject("Gas7", ProcessUnit.Gas7, ProcessUnit.Gas7WarningRange, ProcessUnit.Gas7AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
-                toleranceObjects.Add(new ToleranceObject("Gas8", ProcessUnit.Gas8, ProcessUnit.Gas8WarningRange, ProcessUnit.Gas8AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas7", ProcessUnit.Gas7, ProcessUnit.Gas7WarningRange, ProcessUnit.Gas7AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas8", ProcessUnit.Gas8, ProcessUnit.Gas8WarningRange, ProcessUnit.Gas8AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
             }
 
             if (ProcessUnit.ToleranceMode != ToleranceMode.None)
@@ -649,12 +649,12 @@ namespace Venus_RT.Modules.PMs
 
             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));
-                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
+                toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime, ProcessUnit.ToleranceMode));
             }
 
 
@@ -786,7 +786,7 @@ namespace Venus_RT.Modules.PMs
         private RState ESCHVUnit_Check(ProcessUnitBase unit, RecipeStep step)
         {
             var ProcessUnit = unit as ESCHVUnit;
-            if (Chamber.BackSideHeOutOfRange && step.ElapsedTime() > ProcessUnit.CheckDelay_ms)
+            if (Chamber.BackSideHeOutOfRange && step.ElapsedTime() > ProcessUnit.CheckDelay)
             {
                 LOG.Write(eEvent.ERR_PROCESS, Chamber.Module, $"Step:{step.StepNo} failed, Backside Helium out of range.");
                 return RState.Failed;

+ 3 - 3
Venus/Venus_Themes/UserControls/WPFMessageBox.xaml.cs

@@ -111,7 +111,7 @@ namespace WPF.Themes.UserControls
             var cancelButton = new Button
             {
                 Name = "cancelButton",
-                Content = ((string)Application.Current.Resources["Cancel"]),
+                Content = "Cancel",
                 IsDefault = defaultResult == MessageBoxResult.Cancel,
                 IsCancel = true,
                 Tag = MessageBoxResult.Cancel,
@@ -132,7 +132,7 @@ namespace WPF.Themes.UserControls
             var yesButton = new Button
             {
                 Name = "yesButton",
-                Content = ((string)Application.Current.Resources["Yes"]),
+                Content = "Yes",
                 IsDefault = defaultResult == MessageBoxResult.Yes,
                 Tag = MessageBoxResult.Yes,
             };
@@ -152,7 +152,7 @@ namespace WPF.Themes.UserControls
             var noButton = new Button
             {
                 Name = "noButton",
-                Content = ((string)Application.Current.Resources["No"]),
+                Content = "No",
                 IsDefault = defaultResult == MessageBoxResult.No,
                 Tag = MessageBoxResult.No,
             };