Browse Source

1.把系统配置中文改成英语
2.修改禁用LP
3.修改禁用手臂,return wafer 报错

JET-YDB\JET-YANGDB 2 weeks ago
parent
commit
5b5945bffa

+ 6 - 6
RecipeEditorControl/ViewModel/RecipeEditorControlViewModel.cs

@@ -948,12 +948,12 @@ namespace Aitex.UI.RecipeEditor
 
                 if (selectedColumns.Count < RecipeRows[0].RecipeItems.Count)
                 {
-                    mi = new MenuItem() { Header = "    剪切", FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns.ToList() };
+                    mi = new MenuItem() { Header = "    Cut", FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns.ToList() };
                     mi.Click += (s, e) =>
                     {
                         try
                         {
-                            AddUndoHistory("剪切", CloneRecipeRowData(RecipeRows));
+                            AddUndoHistory("Cut", CloneRecipeRowData(RecipeRows));
 
                             var list = (s as MenuItem).Tag as List<int>;
                             _copiedColumnDatas.Clear();
@@ -988,12 +988,12 @@ namespace Aitex.UI.RecipeEditor
                     };
                     cms.Items.Add(mi);
 
-                    mi = new MenuItem() { Header = "    删除", FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns.ToList() };
+                    mi = new MenuItem() { Header = "    Delete", FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns.ToList() };
                     mi.Click += (s, e) =>
                     {
                         try
                         {
-                            AddUndoHistory("删除", CloneRecipeRowData(RecipeRows));
+                            AddUndoHistory("Delete", CloneRecipeRowData(RecipeRows));
 
                             var list = (s as MenuItem).Tag as List<int>;
                             foreach (var item in RecipeRows)
@@ -1020,12 +1020,12 @@ namespace Aitex.UI.RecipeEditor
 
                 if (selectedColumns.Count == 1 && _copiedColumnDatas.Count > 0)
                 {
-                    mi = new MenuItem() { Header = string.Format("    插入第{0}步后", selectedColumns[0]/*, _copiedColumnDatas.Count*/), FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns[0] };
+                    mi = new MenuItem() { Header = string.Format("    After inserting step {0}", selectedColumns[0]/*, _copiedColumnDatas.Count*/), FontFamily = new FontFamily("Arial,SimSun"), Tag = selectedColumns[0] };
                     mi.Click += (s, e) =>
                     {
                         try
                         {
-                            AddUndoHistory("插入", CloneRecipeRowData(RecipeRows));
+                            AddUndoHistory("Insert", CloneRecipeRowData(RecipeRows));
 
                             int insertColId = (int)(s as MenuItem).Tag;
                             for (int rowIndex = 0; rowIndex < RecipeRows.Count; rowIndex++)

+ 233 - 234
VirgoRT/Config/System.sccfg

@@ -1,29 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root system="Virgo">
 	<configs name="System" nameView="System">
-		<config default="true" name="IsSimulatorMode" nameView="Simulator Mode" description="仿真模式" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
-		<config default="true" name="IsOpenIOEdit" nameView="Simulator Mode" description="仿真模式" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
-		<config default="false" name="IsATMMode" nameView="ATM Mode" description="大气压传送测试模式" max="" min="" paramter="" tag="" unit="" type="Bool" />
-		<config default="false" name="IsCycleMode" nameView="Cycle Mode" description="循环跑片模式" max="" min="" paramter="" tag="" unit="" type="Bool" />
-		<config default="3" name="CycleCount" nameView="Cycle Count" description="循环次数" max="999999" min="1" paramter="" tag="" unit="" type="Integer" />
-		<config default="5" name="ATMCyclePMDelayTime" nameView="ATM Cycle PM Delay Time" description="ATM循环测试取片延时时间" max="9999" min="1" paramter="" tag="" unit="s" type="Integer" visible="false"/>
-		<config default="25" name="MaxTemperatureToleranceTransferWafer" nameView="Max Temperature Tolerance Transfer Wafer" description="传片最大温度差" max="100" min="1" paramter="" tag="" unit="℃" type="Double" />
-		<config default="1" name="MaxTemperatureToleranceToTarget" nameView="Max Temperature Tolerance To Target" description="工艺最大温度差" max="100" min="1" paramter="" tag="" unit="℃" type="Double" />
-		<config default="3" name="SmallWafer" nameView="Small Wafer" description="小晶圆尺寸" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
-		<config default="4" name="MidWafer" nameView="Mid Wafer" description="中晶圆尺寸" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
-		<config default="6" name="BigWafer" nameView="Big Wafer" description="大晶圆尺寸" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
-		<config default="LP1,LP2,EfemRobot,EFEM,Aligner1,Buffer,PMA,PMB,Flipper" 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="25" min="1" paramter="" tag="" unit="" visible="true" type="Integer" />
-		<!--<config default="30" name="DefaultCoolingTime" nameView="Default Cooling Time" description="晶圆默认冷却时间" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />-->
+		<config default="true" name="IsSimulatorMode" nameView="Simulator Mode" description="Simulator Mode" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="true" name="IsOpenIOEdit" nameView="Is open IO edit" description="Is open IO edit" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsATMMode" nameView="ATM Mode" description="ATM Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="false" name="IsCycleMode" nameView="Cycle Mode" description="Cycle Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="3" name="CycleCount" nameView="Cycle Count" description="Cycle Count" max="999999" min="1" paramter="" tag="" unit="" type="Integer" />
+		<config default="5" name="ATMCyclePMDelayTime" nameView="ATM Cycle PM Delay Time" description="ATM Cycle PM Delay Time" max="9999" min="1" paramter="" tag="" unit="s" type="Integer" visible="false"/>
+		<config default="25" name="MaxTemperatureToleranceTransferWafer" nameView="Max Temperature Tolerance Transfer Wafer" description="Max Temperature Tolerance Transfer Wafer" max="100" min="1" paramter="" tag="" unit="℃" type="Double" />
+		<config default="1" name="MaxTemperatureToleranceToTarget" nameView="Max Temperature Tolerance To Target" description="Max Temperature Tolerance To Target" max="100" min="1" paramter="" tag="" unit="℃" type="Double" />
+		<config default="3" name="SmallWafer" nameView="Small Wafer" description="Small Wafer" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
+		<config default="4" name="MidWafer" nameView="Mid Wafer" description="Mid Wafer" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
+		<config default="6" name="BigWafer" nameView="Big Wafer" description="Big Wafer" max="100" min="0" paramter="" tag="" unit="" visible="false" type="Integer" />
+		<config default="LP1,LP2,EfemRobot,EFEM,Aligner1,Buffer,PMA,PMB,Flipper" name="InstalledModules" description="Installed modules" max="" min="" paramter="" tag="" unit="" visible="false" type="String" />
+		<config default="2" name="MaxInternalWaferCount" nameView="Max Internal wafer count" description="Max Internal wafer count" max="25" min="1" paramter="" tag="" unit="" visible="true" type="Integer" />
+		<!--<config default="30" name="DefaultCoolingTime" nameView="Default Cooling Time" description="Default Cooling Time" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />-->
 		<config default="Default" name="LogFilePath"  nameView="LogFilePath"  description="Log File Path" max="" min="" paramter="" tag=""  unit="" type="String" />
 		<config default="true" name="RecipeFolderByType" nameView="Recipe File Saved In Folder Process or Clean" description="Recipe file saved in process or clean folders" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
     <config default="false" name="IsIgnoreCDAPressure2Alarm" nameView="IsIgnoreCDAPressure2Alarm" description="Is Ignore CDAPressure2 Alarm" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
     <config default="0" name="ChamberType"  nameView="Chamber Mode" description="0=>VirgoMask,1=>VirgoR" max="10" min="0" paramter="" tag=""  unit="" type="Integer" visible="false"/>
-    <config default="false" name="Recipetolerance" nameView="Recipetolerance" description="是否启用reciepe tolerance 功能" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
-    
+    <config default="false" name="Recipetolerance" nameView="Recipetolerance" description="Recipe tolerance" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
 
 		<configs name="SetUp" nameView="Set Up" visible="false">
-			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />
+			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="Is EPD installed" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		</configs>
 
 		<configs name="EndPoint" nameView="EndPoint" visible="false">
@@ -64,23 +63,23 @@
 	
 	<!--EFEM-->
 	<configs name="EFEM" nameView="EFEM">
-		<config default="30" name="HomeTimeout" nameView="Home Timeout" description="EFEM初始化超时" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />
+		<config default="30" name="HomeTimeout" nameView="Home Timeout" description="Home Timeout" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="60" name="MotionTimeout" nameView="Motion Timeout" description="motion time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="20" name="AlignerTimeout" nameView="Aligner Timeout" description="aligner time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="0" name="AlignAngle" nameView="Aligner Angle" description="" max="360" min="0" paramter="" tag="" unit="" type="Double" />
-		<config default="127.0.0.1:13000" name="IPAddress" nameView="IP Address" description="EFEM IP、端口设置;default 10.0.0.100:13000" max="" min="" paramter="" tag="" unit="" type="String" />
-		<config default="true" name="CheckSideDoorOnEAPMap" nameView="CheckSideDoorOnEAPMap" description="在自动跑货的时候检查侧门是否关闭" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
-		<config default="true" name="CheckCassetteDoorOnEAPMap" nameView="CheckCassetteDoorOnEAPMap" description="在自动跑货的时候检查EFEM正门是否关闭" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
+		<config default="127.0.0.1:13000" name="IPAddress" nameView="IP Address" description="EFEM IP and Port;default 10.0.0.100:13000" max="" min="" paramter="" tag="" unit="" type="String" />
+		<config default="true" name="CheckSideDoorOnEAPMap" nameView="CheckSideDoorOnEAPMap" description="Check side door on EAP map" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
+		<config default="true" name="CheckCassetteDoorOnEAPMap" nameView="CheckCassetteDoorOnEAPMap" description="Check cassette door on EAP map" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true"/>
 
 	
-		<config default="4" name="EfemType" nameView="EFEM Type" description="EFEM类型,1=Future广川 2=Jet自制 3=Brooks 4=BeamSUNWAY" max="300" min="1" paramter="" tag="" unit="" type="Integer" />
+		<config default="4" name="EfemType" nameView="EFEM Type" description="EFEM type,1=Future 2=Jet 3=Brooks 4=BeamSUNWAY" max="300" min="1" paramter="" tag="" unit="" type="Integer" />
 
-		<config default="false" name="AutoUnlockAfterUnload" nameView="auto unlock after unload" description="是否自动解锁" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="false" name="AutoUnlockAfterUnload" nameView="auto unlock after unload" description="auto unlock after unload" max="" min="" paramter="" tag="" unit="" type="Bool" />
 
-		<config default="false" name="IgnoreWaterFlowError" nameView="Ignore water flow alarm" description="是否忽略冷却水报警" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="false" name="IgnoreWaterFlowError" nameView="Ignore water flow alarm" description="Ignore water flow alarm" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="false" name ="VerifyWaferExistenceAtferRetract" nameView="Auto Verify Wafer existance after retract robot arm" description="Auto Verify Wafer existance after retract robot arm" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 
-		<config default="40" name="DelayTimeBeforeLiftDown" nameView="Delay Time before lift down" description="冷却前,lift pin停留多久再落下" max="600" min="0" paramter="" tag="" unit="second" type="Integer" />
+		<config default="40" name="DelayTimeBeforeLiftDown" nameView="Delay Time before lift down" description="Delay Time before lift down" max="600" min="0" paramter="" tag="" unit="second" type="Integer" />
 		<config default="0" name="FlipReturnWaferOption" nameView="Flip Option while return wafer" description="FlipOption,0=Not Flip, 1=FaceUp, 2=FaceDown, 3=AlwaysReverse" max="3" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="false" name="EnableResetError" nameView="Enable Reset EFEM Error by Click Reset Button" description="" max="1" min="0" paramter="" tag="" unit="" type="Bool" />
 
@@ -93,15 +92,15 @@
     </configs>
 		<configs name="LoadPort" nameView="LoadPort" >
 			<config default="30" name="MotionTimeout" nameView="Motion Timeout"  description="Motion Timeout" max="300" min="1" paramter="" tag="" unit="s" type="Integer" />
-			<config default="30" name="HomeTimeout" nameView="Home Timeout"  description="LoadPort初始化超时时间" max="60" min="1" paramter="" tag="" unit="s" type="Integer" />
-			<config default="25" name="SlotNumber" nameView="Slot number"  description="槽位个数" max="60" min="1" paramter="" tag="" unit="s" type="Integer" />
-			<config default="true" name="SlotFromBottom" nameView="Slot number from bottom" description="编号顺序从下往上,最下面的是1" max="" min="" paramter="" tag="" unit="" type="Bool" />
+			<config default="30" name="HomeTimeout" nameView="Home Timeout"  description="LoadPort Home Timeout" max="60" min="1" paramter="" tag="" unit="s" type="Integer" />
+			<config default="25" name="SlotNumber" nameView="Slot number"  description="Slot number" max="60" min="1" paramter="" tag="" unit="s" type="Integer" />
+			<config default="true" name="SlotFromBottom" nameView="Slot number from bottom" description="Slot number from bottom" max="" min="" paramter="" tag="" unit="" type="Bool" />
 
-			<config default="false" name="EnableScanner" nameView="Enable Scanner Reader" description="是否打开扫码枪功能" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
-			<config default="true" name="EnableDockUndock" nameView="Enable Dock and Undock" description="是否需要Dock/Undock动作" max="0" min="0" paramter="" tag="" unit="" type="Bool"  visible="false" />
-			<config default="0" name="WaferPlacementParityFlag" nameView="Parity Flag for wafer placement" description="0: 所有槽可放; 1:奇数槽可放; 2: 偶数槽可放。"  max="10" min="0" paramter="" tag="" unit="" type="Integer" />
-      <config default="true" name="HasMapFunction" description="是否具有Map功能" max="0" min="0" paramter="" tag="" unit="" visible="true"  type="Bool" />
-      <config default="true" name="HasLoadFunction" description="是否具有Load/Unload功能" max="0" min="0" paramter="" tag="" unit="" visible="true"  type="Bool" />
+			<config default="false" name="EnableScanner" nameView="Enable Scanner Reader" description="Enable scanner reader" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
+			<config default="true" name="EnableDockUndock" nameView="Enable Dock and Undock" description="Enable Dock and Undock" max="0" min="0" paramter="" tag="" unit="" type="Bool"  visible="false" />
+			<config default="0" name="WaferPlacementParityFlag" nameView="Parity Flag for wafer placement" description="0: all slot; 1:Odd slot; 2: Even slot。"  max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+      <config default="true" name="HasMapFunction" nameView="HasMapFunction" description="Has map function" max="0" min="0" paramter="" tag="" unit="" visible="true"  type="Bool" />
+      <config default="true" name="HasLoadFunction" nameView="HasLoadFunction" description="Has load/unload function" max="0" min="0" paramter="" tag="" unit="" visible="true"  type="Bool" />
 
 		</configs>
 	</configs>
@@ -109,13 +108,13 @@
 	<!--Router-->
 	<configs name="Scheduler" nameView="Scheduler" >
 		<config default="true" name="GroupWaferBySequence" nameView="Group Wafer By Sequence" description="GroupWaferBySequence" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
-		<config default="true" name="IsRunInParallelMode" nameView="Is Run In Parallel Mode" description="并行模式1对1,串行模式按顺序" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
+		<config default="true" name="IsRunInParallelMode" nameView="Is Run In Parallel Mode" description="Is run in parallel mode" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 	</configs>
 
 	<!--PMA-->
 	<configs name="PMA" nameView="PMA" >
 		<config default="120" name="PrepareTransferTimeout" nameView="Prepare Transfer Timeout" description="prepare transfer time out" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
-		<config default="1" name="OpenGasValveTimeout" nameView="Open Gas Valve Timeout" description="开阀超时" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		<config default="1" name="OpenGasValveTimeout" nameView="Open Gas Valve Timeout" description="Open Gas Valve Timeout" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		<config default="1" name="TimeLimitOfCloseGasValve" nameView="Time Limit Of Close Gas Valve" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="1" name="OpenCloseSlitValveTimeout" nameView="Open Close Slit Valve Timeout" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="180" name="VentTime" nameView="Vent Time" description="" max="600" min="0" paramter="" tag="" unit="second" type="Integer" />
@@ -132,13 +131,13 @@
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="100" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
 		<config default="25" name="GasTemperature" nameView="Gas Temperature" max="1000" min="-1000" paramter="" tag="" unit="℃" visible="false" type="Double" />
-		<config default="9" name="TargetPressureInMFCVerification" nameView="MFC verification中的目标压力" max="100" min="0" paramter="" tag="" unit="Torr" visible="false" type="Double" />
-		<config default="180" name="GasFlowTimeInMFCVerification" nameView="MFC verification中的目标时间" max="1000" min="0" paramter="" tag="" unit="second" visible="false" type="Double" />
+		<config default="9" name="TargetPressureInMFCVerification" nameView="MFC verification target pressure" max="100" min="0" paramter="" tag="" unit="Torr" visible="false" type="Double" />
+		<config default="180" name="GasFlowTimeInMFCVerification" nameView="MFC verification gas flow time" max="1000" min="0" paramter="" tag="" unit="second" visible="false" type="Double" />
 		<config default="0" name="PinDownDelayTimePick" nameView="Pick Delay Time before pin down" description="" max="120" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="0" name="PinDownDelayTimePlace" nameView="Place Delay Time before pin down" description="" max="120" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="0" name="LiftPinPositionAfterPlace" nameView="Lift Pin Position After Place wafer, 0, Down, 1, Middle, 2, Up" description="" max="5" min="0" paramter="" tag="" unit="" type="Integer" />
-		<config default="Strip" name="ChamberLabel"  nameView="Chamber Label" description="Chamber名称" max="" min="" paramter="" tag=""  unit="" type="String" />
-		<config default="30" name="MaxDeviationInMFCVerification" nameView="MFC verification允许的最大偏差值(%)" max="100000" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
+		<config default="Strip" name="ChamberLabel"  nameView="Chamber Label" description="Chamber label" max="" min="" paramter="" tag=""  unit="" type="String" />
+		<config default="30" name="MaxDeviationInMFCVerification" nameView="MFC verification max deviation(%)" max="100000" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		<config default="150" name="WallHeaterSetPointLimit" nameView="Wall Heater Set Point Limit" description="" max="500" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="false" name="EnableWallHeater" nameView="Enable Chamber Wall Heater" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
 		<config default="false" name="EnableGridHeater" nameView="Enable Chamber Grid Heater" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
@@ -151,18 +150,18 @@
 		<configs name="MFCVerification" nameView="MFC Verification" >
 			<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL"  visible="false" type="Double" />
 			<config default="25" name="GasTemperature" nameView="Gas Temperature" max="1000" min="-1000" paramter="" tag="" unit="℃" visible="false" type="Double" />
-			<config default="9" name="TargetPressure" nameView="结束条件:腔体压力达到的最大值" max="100" min="0" paramter="" tag="" unit="Torr" visible="true" type="Double" />
-			<config default="180" name="GasFlowTime" nameView="结束条件:流气多长时间" max="1000" min="0" paramter="" tag="" unit="second" visible="true" type="Double" />
-			<config default="30" name="MaxDeviation" nameView="结果检查:最大偏差,超过该值报警" max="100000" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
-			<config default="20" name="PressureStableTolerance" nameView="稳定条件:压力1秒内的最大变化范围" max="100000" min="0" paramter="" tag="" unit="mTorr" visible="true" type="Double" />
-			<config default="20" name="FlowStableTolerance" nameView="稳定条件:流量设定值和反馈值允许的最大偏差" max="100" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
-			<config default="5" name="CheckStableTimeout" nameView="稳定条件:在多长时间内处于稳定状态" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
+			<config default="9" name="TargetPressure" nameView="Target pressure" max="100" min="0" paramter="" tag="" unit="Torr" visible="true" type="Double" />
+			<config default="180" name="GasFlowTime" nameView="Gas flow time" max="1000" min="0" paramter="" tag="" unit="second" visible="true" type="Double" />
+			<config default="30" name="MaxDeviation" nameView="Max deviation" max="100000" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
+			<config default="20" name="PressureStableTolerance" nameView="Pressure stable tolerance" max="100000" min="0" paramter="" tag="" unit="mTorr" visible="true" type="Double" />
+			<config default="20" name="FlowStableTolerance" nameView="Flow stable tolerance" max="100" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
+			<config default="5" name="CheckStableTimeout" nameView="Check stable timeout" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		</configs>
 
 		<configs name="Chiller" nameView="Chiller" >
 			<config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
 			<!--<config default="false" name="ChillerSameWithPMB" nameView="Chiller Same With PMB" description="enable chiller same with PMB or not" max="1" min="0" tag="" unit="" type="Bool" />-->
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM12" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="100" min="0" paramter="" tag="" unit="degree" type="Double" />
@@ -174,7 +173,7 @@
     <configs name="GridChiller" nameView="Grid Chiller" >
       <config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
       <!--<config default="false" name="ChillerSameWithPMB" nameView="Chiller Same With PMB" description="enable chiller same with PMB or not" max="1" min="0" tag="" unit="" type="Bool" />-->
-      <config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+      <config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
       <config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
       <config default="COM12" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
       <config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="10" min="-10" paramter="" tag="" unit="degree" type="Double" />
@@ -184,14 +183,14 @@
       <config default="0" name="CoolantOutletTcFeedbackOffset" nameView="Coolant Outlet Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" visible="false"/>
     </configs>
 		<configs name="DryPump" nameView="Dry Pump" >
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:Sky; 2:Edwards" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:Sky; 2:Edwards" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM13" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1000" name="ChamberForelinePressureThreshold" nameView="Chamber Foreline Pressure Threshold" description="" max="10000" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 			<config default="20" name="ChamberForelinePressureTimeout" nameView="Chamber Foreline Pressure Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		</configs>
 		<configs name="Rf" nameView="Source RF" >
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM14" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -208,18 +207,18 @@
 			<config default="1000" name="RfPowerAlarmRange" nameView="RF Power Alarm Range" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3000" name="RfPowerAlarmTime" nameView="RF Power Alarm Time" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3" name="RFTurnOnTimeout" nameView="RF Turn On Timeout" description="" max="10" min="0" paramter="" tag="" unit="S" type="Integer" />
-			<config default="false" name="EnableCalibration" nameView="是否校准" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
-			<config default="100#100;200#200;" name="CalibrationTable" nameView="校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
-			<config default="" name="GeneratorSerialNumber" nameView="RF电源序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
-			<config default="" name="SensorSerialNumber" nameView="SensorHead序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="false" name="EnableCalibration" nameView="Enable calibration" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
+			<config default="100#100;200#200;" name="CalibrationTable" nameView="Calibration table" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="GeneratorSerialNumber" nameView="Generator serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="" name="SensorSerialNumber" nameView="Sensor serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
 			<config default="CCFG600" name="RFPhysicalMaxPower" nameView="RF Physical Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double"  visible="false"/>
 			<config default="600" name="CurrentRFMaxPower" nameView="Current RF Max Power" description="" max="2200" min="1800" paramter="" tag="" unit="" type="Double" />
 			<config default="600" name="RFCalibratedMaxPower" nameView="RF Calibrated Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double" />
-			<config default="" name="CalibrationTableDetail" nameView="详细校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="CalibrationTableDetail" nameView="Calibration table detail" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
 		</configs>
 		<configs name="match" nameView="Source Match" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM15" name="Port" nameView="Port" description="serial port name of match" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="192.168.10.21:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -231,7 +230,7 @@
 
 		<configs name="BiasRf" nameView="Bias RF" >
 			<config default="true" name="EnableBiasRF" nameView="Enable Bias RF" description="enable bias RF or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="2" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="2" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="2" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM14" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="127.0.0.1:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -247,18 +246,18 @@
 			<config default="1" name="PowerRegulationFactor" nameView="Power Regulation Factor" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1000" name="RfPowerAlarmRange" nameView="RF Power Alarm Range" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3000" name="RfPowerAlarmTime" nameView="RF Power Alarm Time" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="false" name="EnableCalibration" nameView="是否校准" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
-			<config default="100#100;200#200;" name="CalibrationTable" nameView="校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
-			<config default="" name="GeneratorSerialNumber" nameView="RF电源序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
-			<config default="" name="SensorSerialNumber" nameView="SensorHead序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="false" name="EnableCalibration" nameView="Enable calibration" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
+			<config default="100#100;200#200;" name="CalibrationTable" nameView="Calibration table" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="GeneratorSerialNumber" nameView="Generator serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="" name="SensorSerialNumber" nameView="Sensor serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
 			<config default="CCFG600" name="RFPhysicalMaxPower" nameView="RF Physical Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double"  visible="false"/>
 			<config default="600" name="CurrentRFMaxPower" nameView="Current RF Max Power" description="" max="660" min="540" paramter="" tag="" unit="" type="Double" />
 			<config default="600" name="RFCalibratedMaxPower" nameView="RF Calibrated Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double" />
-			<config default="" name="CalibrationTableDetail" nameView="详细校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="CalibrationTableDetail" nameView="Calibration table detail" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
 		</configs>
 		<configs name="BiasMatch" nameView="Bias Match" >
 			<config default="false" name="EnableBiasMatch" nameView="Enable Bias Match" description="enable bias match or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="2" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="2" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="2" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM15" name="Port" nameView="Port" description="serial port name of match" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="127.0.0.1:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -346,24 +345,24 @@
       <config default="10" name="HeaterWarningTime" nameView="Heater deviation Warning Time" description="" max="3600" min="0" paramter="" tag="" unit="second" type="Integer" />
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
 		</configs>
     <configs name="WallHeater" nameView="Heater Wall" >
       <config default="false" name="HeaterEnableTolerance" nameView="Enable Heater Deviation Check" description="" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
@@ -374,24 +373,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 
     <configs name="ForelineHeater" nameView="Heater Foreline" >
@@ -403,24 +402,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 
     <configs name="GridHeater" nameView="Heater Grid" >
@@ -432,24 +431,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 		<!--Clean-->
 
@@ -522,7 +521,7 @@
 	<!--PMB-->
 	<configs name="PMB" nameView="PMB" >
 		<config default="120" name="PrepareTransferTimeout" nameView="Prepare Transfer Timeout" description="prepare transfer time out" max="99999" min="1" paramter="" tag="" unit="s" type="Integer" />
-		<config default="1" name="OpenGasValveTimeout" nameView="Open Gas Valve Timeout" description="开阀超时" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
+		<config default="1" name="OpenGasValveTimeout" nameView="Open Gas Valve Timeout" description="Open gas valve timeout" max="60" min="0" paramter="" tag="" unit="second" type="Integer" />
 		<config default="1" name="TimeLimitOfCloseGasValve" nameView="Time Limit Of Close Gas Valve" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="1" name="OpenCloseSlitValveTimeout" nameView="Open Close Slit Valve Timeout" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="180" name="VentTime" nameView="Vent Time" description="" max="600" min="0" paramter="" tag="" unit="second" type="Integer" />
@@ -539,13 +538,13 @@
 		<config default="10" name="ProcessPressureOffset" nameView="Process Pressure Offset" description="" max="100" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 		<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL" visible="false" type="Double" />
 		<config default="25" name="GasTemperature" nameView="Gas Temperature" max="1000" min="-1000" paramter="" tag="" unit="℃" visible="false" type="Double" />
-		<config default="9" name="TargetPressureInMFCVerification" nameView="MFC verification中的目标压力" max="100" min="0" paramter="" tag="" unit="Torr" visible="false" type="Double" />
-		<config default="180" name="GasFlowTimeInMFCVerification" nameView="MFC verification中的目标时间" max="1000" min="0" paramter="" tag="" unit="second" visible="false" type="Double" />
+		<config default="9" name="TargetPressureInMFCVerification" nameView="MFC verification target pressure" max="100" min="0" paramter="" tag="" unit="Torr" visible="false" type="Double" />
+		<config default="180" name="GasFlowTimeInMFCVerification" nameView="MFC verification gas flow time" max="1000" min="0" paramter="" tag="" unit="second" visible="false" type="Double" />
 		<config default="0" name="PinDownDelayTimePick" nameView="Pick Delay Time before pin down" description="" max="120" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="0" name="PinDownDelayTimePlace" nameView="Place Delay Time before pin down" description="" max="120" min="0" paramter="" tag="" unit="s" type="Integer" />
 		<config default="0" name="LiftPinPositionAfterPlace" nameView="Lift Pin Position After Place wafer, 0, Down, 1, Middle, 2, Up" description="" max="5" min="0" paramter="" tag="" unit="" type="Integer" />
-		<config default="Strip" name="ChamberLabel"  nameView="Chamber Label" description="Chamber名称" max="" min="" paramter="" tag=""  unit="" type="String" />
-		<config default="30" name="MaxDeviationInMFCVerification" nameView="MFC verification允许的最大偏差值(%)" max="100000" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
+		<config default="Strip" name="ChamberLabel"  nameView="Chamber Label" description="Chamber label" max="" min="" paramter="" tag=""  unit="" type="String" />
+		<config default="30" name="MaxDeviationInMFCVerification" nameView="MFC verification max deviation(%)" max="100000" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		<config default="150" name="WallHeaterSetPointLimit" nameView="Wall Heater Set Point Limit" description="" max="500" min="0" paramter="" tag="" unit="" type="Integer" />
 		<config default="false" name="EnableWallHeater" nameView="Enable Chamber Wall Heater" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
 		<config default="false" name="EnableGridHeater" nameView="Enable Chamber Grid Heater" description="" max="10" min="0" paramter="" tag="" unit="" type="Bool" />
@@ -557,18 +556,18 @@
 		<configs name="MFCVerification" nameView="MFC Verification" >
 			<config default="7500" name="ChamberVolume" nameView="Chamber Volume" max="100000" min="0" paramter="" tag="" unit="mL"  visible="false" type="Double" />
 			<config default="25" name="GasTemperature" nameView="Gas Temperature" max="1000" min="-1000" paramter="" tag="" unit="℃" visible="false" type="Double" />
-			<config default="9" name="TargetPressure" nameView="结束条件:腔体压力达到的最大值" max="100" min="0" paramter="" tag="" unit="Torr" visible="true" type="Double" />
-			<config default="180" name="GasFlowTime" nameView="结束条件:流气多长时间" max="1000" min="0" paramter="" tag="" unit="second" visible="true" type="Double" />
-			<config default="30" name="MaxDeviation" nameView="结果检查:最大偏差,超过该值报警" max="100000" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
-			<config default="20" name="PressureStableTolerance" nameView="稳定条件:压力1秒内的最大变化范围" max="100000" min="0" paramter="" tag="" unit="mTorr" visible="true" type="Double" />
-			<config default="20" name="FlowStableTolerance" nameView="稳定条件:流量设定值和反馈值允许的最大偏差" max="100" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
-			<config default="5" name="CheckStableTimeout" nameView="稳定条件:在多长时间内处于稳定状态" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
+			<config default="9" name="TargetPressure" nameView="Target pressure" max="100" min="0" paramter="" tag="" unit="Torr" visible="true" type="Double" />
+			<config default="180" name="GasFlowTime" nameView="Gas flow time" max="1000" min="0" paramter="" tag="" unit="second" visible="true" type="Double" />
+			<config default="30" name="MaxDeviation" nameView="Max deviation" max="100000" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
+			<config default="20" name="PressureStableTolerance" nameView="Pressure stable tolerance" max="100000" min="0" paramter="" tag="" unit="mTorr" visible="true" type="Double" />
+			<config default="20" name="FlowStableTolerance" nameView="Flow stable tolerance" max="100" min="0" paramter="" tag="" unit="%" visible="true" type="Double" />
+			<config default="5" name="CheckStableTimeout" nameView="Check stable timeout" max="100" min="0" paramter="" tag="" unit="%" visible="false" type="Double" />
 		</configs>
 
 		<configs name="Chiller" nameView="Chiller" >
 			<config default="false" name="ChillerSameWithPMA" nameView="Chiller Same With PMA" description="enable chiller same with PMA or not" max="1" min="0" tag="" unit="" type="Bool" />
 			<config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM22" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="100" min="0" paramter="" tag="" unit="degree" type="Double" />
@@ -581,7 +580,7 @@
     <configs name="GridChiller" nameView="Grid Chiller" >
       <config default="true" name="EnableChiller" nameView="Enable Chiller" description="enable chiller or not" max="1" min="0" tag="" unit="" type="Bool" />
       <!--<config default="false" name="ChillerSameWithPMB" nameView="Chiller Same With PMB" description="enable chiller same with PMB or not" max="1" min="0" tag="" unit="" type="Bool" />-->
-      <config default="1" name="MFG" nameView="MFG" description="厂商, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+      <config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:SMC;" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
       <config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
       <config default="COM12" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
       <config default="10" name="ChillerTemperatureOffset" nameView="Chiller Temperature Offset" description="" max="10" min="-10" paramter="" tag="" unit="degree" type="Double" />
@@ -592,14 +591,14 @@
     </configs>
 
 		<configs name="DryPump" nameView="Dry Pump" >
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:Sky; 2:Edwards" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:Sky; 2:Edwards" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM23" name="Port" nameView="Port" description="serial port name of pump" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="1000" name="ChamberForelinePressureThreshold" nameView="Chamber Foreline Pressure Threshold" description="" max="10000" min="0" paramter="" tag="" unit="mtorr" type="Double" />
 			<config default="20" name="ChamberForelinePressureTimeout" nameView="Chamber Foreline Pressure Timeout" description="" max="3000" min="0" paramter="" tag="" unit="s" type="Integer" />
 		</configs>
 		<configs name="Rf" nameView="Source RF" >
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM24" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="127.0.0.1:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -616,18 +615,18 @@
 			<config default="1000" name="RfPowerAlarmRange" nameView="RF Power Alarm Range" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3000" name="RfPowerAlarmTime" nameView="RF Power Alarm Time" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3" name="RFTurnOnTimeout" nameView="RF Turn On Timeout" description="" max="10" min="0" paramter="" tag="" unit="S" type="Integer" />
-			<config default="false" name="EnableCalibration" nameView="是否校准" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
-			<config default="100#100;200#200;" name="CalibrationTable" nameView="校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
-			<config default="" name="GeneratorSerialNumber" nameView="RF电源序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
-			<config default="" name="SensorSerialNumber" nameView="SensorHead序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="false" name="EnableCalibration" nameView="Enable calibration" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
+			<config default="100#100;200#200;" name="CalibrationTable" nameView="Calibration table" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="GeneratorSerialNumber" nameView="Generator serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="" name="SensorSerialNumber" nameView="Sensor serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
 			<config default="CCFG600" name="RFPhysicalMaxPower" nameView="RF Physical Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double"  visible="false"/>
 			<config default="600" name="CurrentRFMaxPower" nameView="Current RF Max Power" description="" max="2200" min="1800" paramter="" tag="" unit="" type="Double" />
 			<config default="600" name="RFCalibratedMaxPower" nameView="RF Calibrated Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double" />
-			<config default="" name="CalibrationTableDetail" nameView="详细校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="CalibrationTableDetail" nameView="Calibration table detail" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
 		</configs>
 		<configs name="match" nameView="Source Match" >
 			<config default="false" name="EnableMatch" nameView="Enable Source Match" description="enable match or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="1" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="1" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM25" name="Port" nameView="Port" description="serial port name of match" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="127.0.0.1:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -638,7 +637,7 @@
 		</configs>
 			<configs name="BiasRf" nameView="Bias RF" >
 			<config default="true" name="EnableBiasRF" nameView="Enable Bias RF" description="enable bias RF or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="2" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="2" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="2" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM14" name="Port" nameView="Port" description="serial port name of RFG" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="192.168.10.22:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -654,18 +653,18 @@
 			<config default="1" name="PowerRegulationFactor" nameView="Power Regulation Factor" description="" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="1000" name="RfPowerAlarmRange" nameView="RF Power Alarm Range" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="3000" name="RfPowerAlarmTime" nameView="RF Power Alarm Time" description="" max="10000" min="0" paramter="" tag="" unit="" type="Integer" />
-			<config default="false" name="EnableCalibration" nameView="是否校准" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
-			<config default="100#100;200#200;" name="CalibrationTable" nameView="校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
-			<config default="" name="GeneratorSerialNumber" nameView="RF电源序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
-			<config default="" name="SensorSerialNumber" nameView="SensorHead序列号" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="false" name="EnableCalibration" nameView="Enable calibration" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
+			<config default="100#100;200#200;" name="CalibrationTable" nameView="Calibration table" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="GeneratorSerialNumber" nameView="Generator serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
+			<config default="" name="SensorSerialNumber" nameView="Sensor serial number" max="" min="0" paramter="" tag="" unit="" type="String" />
 			<config default="CCFG600" name="RFPhysicalMaxPower" nameView="RF Physical Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double"  visible="false"/>
 			<config default="600" name="CurrentRFMaxPower" nameView="Current RF Max Power" description="" max="660" min="540" paramter="" tag="" unit="" type="Double" />
 			<config default="600" name="RFCalibratedMaxPower" nameView="RF Calibrated Max Power" description="" max="9999" min="0" paramter="" tag="" unit="" type="Double" />
-			<config default="" name="CalibrationTableDetail" nameView="详细校准表" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
+			<config default="" name="CalibrationTableDetail" nameView="Calibration table detail" max="" min="0" paramter="" tag="" unit="" visible="false" type="String" />
 		</configs>
 		<configs name="BiasMatch" nameView="Bias Match" >
 			<config default="false" name="EnableBiasMatch" nameView="Enable Bias Match" description="enable bias match or not" max="1" min="0" tag="" unit="" type="Bool" />
-			<config default="2" name="MFG" nameView="MFG" description="厂商, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
+			<config default="2" name="MFG" nameView="MFG" description="Manufacturer, 1:AdTec; 2:Comet;3:Revtech" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="2" name="CommunicationType" nameView="Communication Type" description="0:Analogue; 1:RS232; 2:Ethernet" max="10" min="0" paramter="" tag="" unit="" type="Integer" />
 			<config default="COM15" name="Port" nameView="Port" description="serial port name of match" max="" min="" paramter="" tag="" unit="" type="String" />
 			<config default="192.168.10.22:502" name="IPAddress" nameView="IP Address" description="EFEM IP,default 127.0.0.1:502" max="" min="" paramter="" tag="" unit="" type="String" />
@@ -754,24 +753,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-			<config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-			<config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+			<config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+			<config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
 		</configs>
     <configs name="WallHeater" nameView="Heater Wall" >
       <config default="false" name="HeaterEnableTolerance" nameView="Enable Heater Deviation Check" description="" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
@@ -782,24 +781,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 
     <configs name="ForelineHeater" nameView="Heater Foreline" >
@@ -811,24 +810,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 
     <configs name="GridHeater" nameView="Heater Grid" >
@@ -840,24 +839,24 @@
       <config default="0" name="MonitorTcFeedbackOffset" nameView="Monitor Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
       <config default="0" name="ControlTcFeedbackOffset" nameView="Control Tc Feedback Offset" description="" max="5" min="-5" paramter="" tag="" unit="℃" type="Double" />
 
-      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="温度补偿点 1" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_1" nameView="Offset Value 1" description="补偿值 1" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="温度补偿点 2" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_2" nameView="Offset Value 2" description="补偿值 2" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="温度补偿点 3" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_3" nameView="Offset Value 3" description="补偿值 3" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="温度补偿点 4" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_4" nameView="Offset Value 4" description="补偿值 4" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="温度补偿点 5" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_5" nameView="Offset Value 5" description="补偿值 5" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="温度补偿点 6" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_6" nameView="Offset Value 6" description="补偿值 6" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="温度补偿点 7" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_7" nameView="Offset Value 7" description="补偿值 7" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="温度补偿点 8" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_8" nameView="Offset Value 8" description="补偿值 8" unit="degree" type="Double" max="300" min="0" />
-      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="温度补偿点 9" unit="degree" type="Integer" max="300" min="0" />
-      <config name="OffsetValue_9" nameView="Offset Value 9" description="补偿值 9" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_1" nameView="Temp Offset Point 1" description="Temp Offset Point 1" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_1" nameView="Offset Value 1" description="Offset Value 1" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_2" nameView="Temp Offset Point 2" description="Temp Offset Point 2" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_2" nameView="Offset Value 2" description="Offset Value 2" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_3" nameView="Temp Offset Point 3" description="Temp Offset Point 3" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_3" nameView="Offset Value 3" description="Offset Value 3" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_4" nameView="Temp Offset Point 4" description="Temp Offset Point 4" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_4" nameView="Offset Value 4" description="Offset Value 4" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_5" nameView="Temp Offset Point 5" description="Temp Offset Point 5" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_5" nameView="Offset Value 5" description="Offset Value 5" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_6" nameView="Temp Offset Point 6" description="Temp Offset Point 6" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_6" nameView="Offset Value 6" description="Offset Value 6" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_7" nameView="Temp Offset Point 7" description="Temp Offset Point 7" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_7" nameView="Offset Value 7" description="Offset Value 7" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_8" nameView="Temp Offset Point 8" description="Temp Offset Point 8" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_8" nameView="Offset Value 8" description="Offset Value 8" unit="degree" type="Double" max="300" min="0" />
+      <config name="TempOffsetPoint_9" nameView="Temp Offset Point 9" description="Temp Offset Point 9" unit="degree" type="Integer" max="300" min="0" />
+      <config name="OffsetValue_9" nameView="Offset Value 9" description="Offset Value 9" unit="degree" type="Double" max="300" min="0" />
     </configs>
 
 

+ 6 - 2
VirgoRT/Devices/EFEM/Loadport.cs

@@ -71,11 +71,15 @@ namespace VirgoRT.Devices.EFEM
             {
                 if (_slotMap == null)
                 {
-                    _slotMap = new string[SC.GetValue<int>("EFEM.LoadPort.SlotNumber")];
+                    _slotMap = new string[SC.GetValue<int>($"EFEM.{(ModuleHelper.IsBuffer(Module) ? "Buffer" : "LoadPort")}.SlotNumber")];
+                }
+                if (!ModuleHelper.IsInstalled(Module))
+                {
+                    return string.Join("", _slotMap);
                 }
                 for (int i = 0; i < _slotMap.Length; i++)
                 {
-                    _slotMap[i] = ((int)WaferManager.Instance.GetWafer(Module, i).Status).ToString();
+                    _slotMap[i] = ((int)WaferManager.Instance.GetWafer(Module, i)?.Status).ToString();
                 }
                 return string.Join("", _slotMap);
             }

+ 22 - 3
VirgoRT/Modules/AutoTransfer_T.cs

@@ -341,7 +341,7 @@ namespace VirgoRT.Modules
                         continue;
 
                     var outSlot = GetReadyOutSlot(module.Key);
-                    if (outSlot.Module != ModuleName.System)
+                    if (outSlot.Module != ModuleName.System && IsWaferCtrlJobRuning(outSlot))
                     {
                         var nextSlot = GetWaferNextReadySlot(outSlot);
                         if (nextSlot.Module != ModuleName.System)
@@ -391,7 +391,7 @@ namespace VirgoRT.Modules
                 foreach (var module in dictModules)
                 {
                     var outSlot = GetReadyOutSlot(module.Key);
-                    if (outSlot.Module != ModuleName.System)
+                    if (outSlot.Module != ModuleName.System && IsWaferCtrlJobRuning(outSlot))
                     {
                         var swapSlot = GetWaferNextReadySlot(outSlot, true);
                         if (swapSlot.Module != ModuleName.System)
@@ -851,6 +851,25 @@ namespace VirgoRT.Modules
             else
                 return GetModuleReadyOutSlot(module);
         }
+        private bool IsWaferCtrlJobRuning(SlotItem slotItem)
+        {
+            return IsWaferCtrlJobRuning(slotItem.Module, slotItem.Slot);
+        }
+        private bool IsWaferCtrlJobRuning(ModuleName mod, int slot)
+        {
+            var wafer = WaferManager.Instance.GetWafer(mod, slot);
+
+            if (wafer.IsEmpty || wafer.ProcessJob == null || wafer.ProcessJob.Sequence == null)
+                return false;
+
+            var waferCtrlJob = _lstControlJobs.Find(item => (int)ModuleHelper.Converter(item.Module) == wafer.OriginStation);
+            if (waferCtrlJob != null)
+            {
+                return waferCtrlJob.State == EnumControlJobState.Executing;
+            }
+
+            return false;
+        }
 
         private SlotItem GetLPReadyOutSlot(ModuleName lp)
         {
@@ -1324,7 +1343,7 @@ namespace VirgoRT.Modules
                     }
 
                     PM pm = DEVICE.GetDevice<PM>(module.ToString());
-                    if (pm.IsInstalled && (pmOccupied == null || !pmOccupied.Contains(module)))
+                    if (pm != null && pm.IsInstalled && (pmOccupied == null || !pmOccupied.Contains(module)))
                     {
                         hasPm = true;
                     }

+ 3 - 0
VirgoRT/Modules/PMs/PMEntity.cs

@@ -1404,6 +1404,9 @@ namespace VirgoRT.Module
                 return false;
             }
 
+            if (ret == Result.DONE && _isAlarm)
+                _isAlarm = false;
+
             return ret == Result.DONE;
         }
 

+ 1 - 1
VirgoRT/Modules/ReturnAllWafer.cs

@@ -91,7 +91,7 @@ namespace VirgoRT.Modules
             ModuleName source = ModuleName.System;
             WaferInfo wafer = null;
 
-            Hand hand = Hand.Blade1;
+            Hand hand = SelectFreeArm();
             int sourceSlot = 0;
 
             foreach (var moduleName in modules)

+ 10 - 10
VirgoUI/Controls/Parts/Efem.xaml

@@ -65,15 +65,15 @@
         <Image x:Name="imgAligner2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="596" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
         <Image x:Name="imgCooling1" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="315" Height="95" Width="105" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
         <Image x:Name="imgCooling2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="199" Canvas.Top="60" Height="133" Width="174"   />
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="445" Canvas.Top="60" Height="133" Width="174"    />
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="429" Canvas.Top="445" Height="123" Width="146"   />
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="243" Canvas.Top="445" Height="123" Width="146"   />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="199" Canvas.Top="60" Height="133" Width="174"  Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="445" Canvas.Top="60" Height="133" Width="174"   Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="429" Canvas.Top="445" Height="123" Width="146"  Visibility="{Binding Foup2Visibility}"  />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="243" Canvas.Top="445" Height="123" Width="146"   Visibility="{Binding Foup1Visibility}" />
 
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="252" Canvas.Top="440" Height="12" Width="128"   />
-        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="438" Canvas.Top="440" Height="12" Width="128"    />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="252" Canvas.Top="440" Height="12" Width="128"   Visibility="{Binding Foup1Visibility}" />
+        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="438" Canvas.Top="440" Height="12" Width="128"   Visibility="{Binding Foup2Visibility}" />
 
-        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMBBackground}" Opacity="0.7" Height="183.08" Canvas.Left="433.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
+        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMBBackground}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="433.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
             <Path.RenderTransform>
                 <TransformGroup>
                     <ScaleTransform/>
@@ -84,7 +84,7 @@
             </Path.RenderTransform>
         </Path>
 
-        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMABackground}" Opacity="0.7" Height="183.08" Canvas.Left="187.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
+        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMABackground}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="187.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
             <Path.RenderTransform>
                 <TransformGroup>
                     <ScaleTransform/>
@@ -105,8 +105,8 @@
         <parts:WaferCtrl x:Name="aligner2Ctrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="240" WaferData="{Binding Aligner2Wafer}" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
         <parts:WaferCtrl x:Name="cooler1Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="330" WaferData="{Binding Cooling1Wafer}" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}"  />
         <parts:WaferCtrl x:Name="cooler2Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="240" WaferData="{Binding Cooling2Wafer}" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}" />
-        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="254" Canvas.Top="103" WaferData="{Binding PMAWafer}" />
-        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="500" Canvas.Top="103" WaferData="{Binding PMBWafer}" />
+        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="254" Canvas.Top="103" WaferData="{Binding PMAWafer}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>
+        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="500" Canvas.Top="103" WaferData="{Binding PMBWafer}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>
 
 
         <TextBlock x:Name="lblFlipper" Text="Flipper" Canvas.Left="105" Canvas.Top="268"  Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}" />

+ 6 - 6
VirgoUI/Models/Operate/Overview/OverView.xaml

@@ -191,7 +191,7 @@
 
                             <local:FOUPFrontView UnitData="{Binding Buffer}" Visibility="{Binding Path=IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}" VerticalAlignment="Top" Canvas.Left="777" Canvas.Top="247"></local:FOUPFrontView>
 
-                            <StackPanel Canvas.Left="361" Canvas.Top="571" >
+                            <StackPanel Canvas.Left="361" Canvas.Top="571" Visibility="{Binding Foup1Visibility}">
                                 <!--<Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Padding="5,1">
                             <TextBlock Text="LP1 Wafer Size" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
                         </Border>
@@ -206,7 +206,7 @@
                                 </Border>
                             </StackPanel>
 
-                            <StackPanel Canvas.Left="516" Canvas.Top="571" >
+                            <StackPanel Canvas.Left="516" Canvas.Top="571" Visibility="{Binding Foup2Visibility}">
                                 <!--<Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="1" Padding="5,1">
                             <TextBlock Text="LP2 Wafer Size" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
                         </Border>
@@ -221,8 +221,8 @@
                                 </Border>
                             </StackPanel>
 
-                            <TextBlock Text="{Binding PMBState}" Canvas.Left="535" Canvas.Top="105"></TextBlock>
-                            <TextBlock Text="{Binding PMAState}" Canvas.Left="320" Canvas.Top="105"></TextBlock>
+                            <TextBlock Text="{Binding PMBState}" Canvas.Left="535" Canvas.Top="105" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}"></TextBlock>
+                            <TextBlock Text="{Binding PMAState}" Canvas.Left="320" Canvas.Top="105" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}"></TextBlock>
 
                         </Canvas>
 
@@ -232,7 +232,7 @@
 
             <TabControl Grid.Column="1" Margin="0,5,0,85">
 
-                <TabItem Header="{Binding LP1WaferAssociation.ModuleData.ModuleID}">
+                <TabItem Header="{Binding LP1WaferAssociation.ModuleData.ModuleID}" Visibility="{Binding IsLP1Visibility}">
 
                     <Grid>
                         <Grid.ColumnDefinitions>
@@ -284,7 +284,7 @@
                         </StackPanel>
                     </Grid>
                 </TabItem>
-                <TabItem Header="{Binding LP2WaferAssociation.ModuleData.ModuleID}">
+                <TabItem Header="{Binding LP2WaferAssociation.ModuleData.ModuleID}" Visibility="{Binding IsLP2Visibility}">
                     <Grid>
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="170"/>

+ 20 - 5
VirgoUI/Models/Operate/Overview/OverViewModel.cs

@@ -207,7 +207,7 @@ namespace VirgoUI.Client.Models.Operate
         {
             get
             {
-                if (PlacedLP1)
+                if (IsLP1Installed)
                 {
                     return Visibility.Visible;
                 }
@@ -228,7 +228,7 @@ namespace VirgoUI.Client.Models.Operate
         {
             get
             {
-                if (PlacedLP2)
+                if (IsLP2Installed)
                 {
                     return Visibility.Visible;
                 }
@@ -789,6 +789,16 @@ namespace VirgoUI.Client.Models.Operate
 
         #endregion
 
+        public Visibility IsLP1Visibility
+        {
+            get { return IsLP1Installed ? Visibility.Visible : Visibility.Collapsed; }
+        }
+
+        public Visibility IsLP2Visibility
+        {
+            get { return IsLP2Installed ? Visibility.Visible : Visibility.Collapsed; }
+        }
+
         #endregion Property
 
         public OverViewModel()
@@ -803,15 +813,20 @@ namespace VirgoUI.Client.Models.Operate
             base.InitModules();
 
             LP1WaferAssociation = new WaferAssociationInfo();
-            LP1WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP1"];
+            if(ModuleManager.ModuleInfos.ContainsKey("LP1"))
+            {
+                LP1WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP1"];
+            }
 
             LP2WaferAssociation = new WaferAssociationInfo();
-            LP2WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP2"];
+            if (ModuleManager.ModuleInfos.ContainsKey("LP2"))
+            {
+                LP2WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP2"];
+            }
 
             LP1CarrierIDChangedCommand = new DelegateCommand<object>(LP1CarrierIDInputChanged);
             LP2CarrierIDChangedCommand = new DelegateCommand<object>(LP2CarrierIDInputChanged);
 
-            
         }
 
         protected override void OnActivate()

+ 2 - 2
VirgoUI/Models/Platform/EFEM/EFEMView.xaml

@@ -333,7 +333,7 @@
                     <StackPanel   Orientation="Horizontal"  HorizontalAlignment="Left" Canvas.Left="-175" Canvas.Top="427" Height="234" >
                         <Grid  Width="460" Visibility="{Binding IsLP1Installed, Converter={StaticResource bool2VisibilityConverter}}" IsEnabled="{Binding IsEfemConnected}">
                             <Grid.RowDefinitions>
-                                <RowDefinition Height="24"/>
+                                <RowDefinition Height="30"/>
                                 <RowDefinition Height="35"/>
                                 <RowDefinition Height="35"/>
                                 <RowDefinition Height="35"/>
@@ -543,7 +543,7 @@
 
                         <Grid Margin="25,0" Width="460" Visibility="{Binding IsLP2Installed, Converter={StaticResource bool2VisibilityConverter}}" IsEnabled="{Binding IsEfemConnected}">
                             <Grid.RowDefinitions>
-                                <RowDefinition Height="24"/>
+                                <RowDefinition Height="30"/>
                                 <RowDefinition Height="35"/>
                                 <RowDefinition Height="35"/>
                                 <RowDefinition Height="35"/>

+ 2 - 2
VirgoUI/Models/Platform/EFEM/EFEMViewModel.cs

@@ -70,7 +70,7 @@ namespace VirgoUI.Client.Models.Platform.EFEM
         {
             get
             {
-                if (PlacedLP1)
+                if (IsLP1Installed)
                 {
                     return Visibility.Visible;
                 }
@@ -84,7 +84,7 @@ namespace VirgoUI.Client.Models.Platform.EFEM
         {
             get
             {
-                if (PlacedLP2)
+                if (IsLP2Installed)
                 {
                     return Visibility.Visible;
                 }

+ 42 - 3
VirgoUI/Models/Sys/UIViewModelBase.cs

@@ -240,6 +240,40 @@ namespace VirgoUI.Client.Models.Sys
             }
         }
 
+        public bool IsPMAInstalled
+        {
+            get
+            {
+                return ModuleManager.ModulesID.Contains("PMA");
+            }
+        }
+
+        public bool IsPMBInstalled
+        {
+            get
+            {
+                return ModuleManager.ModulesID.Contains("PMB");
+            }
+        }
+
+        public bool IsLP1Installed
+        {
+            get
+            {
+                string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
+                return moduleString != null && moduleString.Contains("LP1");
+            }
+        }
+
+        public bool IsLP2Installed
+        {
+            get
+            {
+                string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
+                return moduleString != null && moduleString.Contains("LP2");
+            }
+        }
+
         public Dictionary<string, float> ModuleTemperature { get; set; }
 
         #endregion Wafer info for machine
@@ -312,9 +346,14 @@ namespace VirgoUI.Client.Models.Sys
                 BufferWafer = ModuleManager.ModuleInfos["Buffer"].WaferManager.Wafers[0];
             }
                 
-
-            FOUPA = ModuleManager.ModuleInfos["LP1"];
-            FOUPB = ModuleManager.ModuleInfos["LP2"];
+            if(ModuleManager.ModuleInfos.ContainsKey("LP1"))
+            {
+                FOUPA = ModuleManager.ModuleInfos["LP1"];
+            }
+            if(ModuleManager.ModuleInfos.ContainsKey("LP2"))
+            {
+                FOUPB = ModuleManager.ModuleInfos["LP2"];
+            }
 
             if (ModuleManager.ModuleInfos.ContainsKey("PMA"))
             {

+ 10 - 2
VirgoUI/ModuleManager.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using MECF.Framework.Common.DataCenter;
 using OpenSEMI.ClientBase;
 
@@ -19,9 +20,16 @@ namespace VirgoUI.Client
         {
             string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
             var modules = moduleString.Split(',');
-            foreach (var mod in modules) 
-                if(ModuleNames.Contains(mod.Trim())) 
+            foreach(var mod in ModuleNames)
+            {
+                if(mod.Contains("LP"))
+                    ModulesID.Add(mod.Trim());
+                else if (modules.Contains(mod.Trim()))
                     ModulesID.Add(mod.Trim());
+            }
+            //foreach (var mod in modules) 
+            //    if(ModuleNames.Contains(mod.Trim())) 
+            //        ModulesID.Add(mod.Trim());
         }
 
         public static void Initialize()