瀏覽代碼

1.VenusDE UI Viewmodel update and fix pipelines switch bugs
2.Kepler PMrouting Process_ Data database record logic adjustment and process data UI update

hecl 1 年之前
父節點
當前提交
eb71335c9e

+ 5 - 4
Venus/Framework/Common/DBCore/ProcessDataRecorder.cs

@@ -131,10 +131,10 @@ namespace MECF.Framework.Common.DBCore
             }
         }
 
-        public static void RecordPrecess(string guid, DateTime startTime, DateTime endTime, string recipeName,string status, string waferDataGuid, string processIn, string lotID, string slotID)
+        public static void RecordPrecess(string guid, DateTime startTime, DateTime endTime, string recipeName,string status, string waferDataGuid, string processIn, string lotID, string slotID, string recipe_type)
         {
             string sql = string.Format(
-                "INSERT INTO \"process_data\"(\"guid\", \"process_begin_time\",\"process_end_time\", \"recipe_name\" ,\"process_status\", \"wafer_data_guid\", \"process_in\", \"lot_id\", \"slot_id\" )VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}','{7}' ,'{8}');",
+                "INSERT INTO \"process_data\"(\"guid\", \"process_begin_time\",\"process_end_time\", \"recipe_name\" ,\"process_status\", \"wafer_data_guid\", \"process_in\", \"lot_id\", \"slot_id\", \"recipe_type\")VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}','{7}' ,'{8}','{9}');",
                 guid,
                 startTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
                 endTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
@@ -143,8 +143,9 @@ namespace MECF.Framework.Common.DBCore
                 waferDataGuid,
                 processIn,
                 lotID,
-                string.IsNullOrEmpty(slotID) ? "" : (int.Parse(slotID) + 1).ToString());
-
+                string.IsNullOrEmpty(slotID) ? "" : (int.Parse(slotID) + 1).ToString(),
+                recipe_type
+                );
             DB.Insert(sql);
         }
 

+ 7 - 7
Venus/Venus_MainPages/ViewModels/OverVenusDEViewModel.cs

@@ -145,7 +145,7 @@ namespace Venus_MainPages.ViewModels
 
         private PMState m_PMCurrentState;
 
-        private bool m_SourceRFFanInterlock;
+        private bool m_BiasRFFanInterlock;
         private bool m_IsWLK;
         private bool m_IsWaterFlowOk;
         private bool m_IsTurboPumpInterlock;
@@ -424,12 +424,12 @@ namespace Venus_MainPages.ViewModels
                 SetProperty(ref m_ForelinePressurePressure, value);
             }
         }
-        public bool SourceRFFanInterlock
+        public bool BiasRFFanInterlock
         {
-            get { return m_SourceRFFanInterlock; }
+            get { return m_BiasRFFanInterlock; }
             set
             {
-                SetProperty(ref m_SourceRFFanInterlock, value);
+                SetProperty(ref m_BiasRFFanInterlock, value);
             }
         }
         public bool IsWLK
@@ -1734,12 +1734,12 @@ namespace Venus_MainPages.ViewModels
 
                 ValveHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.ValveHeater.DeviceData"];
                 ForelineHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.ForelineHeater.DeviceData"];
-                WallHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.WallHeater.DeviceData"];
+                //WallHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.WallHeater.DeviceData"];
 
                 ProcessHighPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ProcessHighPressure");
                 ProcessLowPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ProcessLowPressure");
                 ForelinePressure = float.Parse(RtDataValues[$"{ModuleName}.ForelinePressure"].ToString());
-                //ESCHePressure = float.Parse(RtDataValues[$"{ModuleName}.ESCHePressure"].ToString());
+                ESCHePressure = float.Parse(RtDataValues[$"{ModuleName}.ESCHePressure"].ToString());
 
                 ChillerTemperature = float.Parse(RtDataValues[$"{ModuleName}.Chiller.Temp"].ToString());
 
@@ -1749,7 +1749,7 @@ namespace Venus_MainPages.ViewModels
 
                 ChillerIsOn = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.Chiller.IsOn");
 
-                SourceRFFanInterlock = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.SourceRFFanInterlock");
+                BiasRFFanInterlock = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.SourceRFFanInterlock");
                 IsWLK = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWLK");
                 IsWaterFlowOk = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWaterFlowOk");
                 IsTurboPumpInterlock = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpInterlock");

+ 4 - 1
Venus/Venus_MainPages/ViewModels/ProcessHistoryViewModel.cs

@@ -212,6 +212,7 @@ namespace Venus_MainPages.ViewModels
                         item.Status = dbData.Rows[i]["process_status"].ToString();
                         item.SlotID = dbData.Rows[i]["slot_id"].ToString();
                         item.LotID = dbData.Rows[i]["lot_id"].ToString();
+                        item.RecipeType= dbData.Rows[i]["recipe_type"].ToString();
                         if (!dbData.Rows[i]["process_begin_time"].Equals(DBNull.Value))
                             item.StartTime = ((DateTime)dbData.Rows[i]["process_begin_time"]).ToString("yyyy-MM-dd HH:mm:ss");
                         if (!dbData.Rows[i]["process_end_time"].Equals(DBNull.Value))
@@ -272,6 +273,7 @@ namespace Venus_MainPages.ViewModels
                         item.Chamber = dbData.Rows[i]["process_in"].ToString();
                         item.Status = dbData.Rows[i]["process_status"].ToString();
                         item.SlotID = dbData.Rows[i]["slot_id"].ToString();
+                        item.RecipeType = dbData.Rows[i]["recipe_type"].ToString();
                         item.LotID = dbData.Rows[i]["lot_id"].ToString();
                         if (!dbData.Rows[i]["process_begin_time"].Equals(DBNull.Value))
                             item.StartTime = ((DateTime)dbData.Rows[i]["process_begin_time"]).ToString("yyyy-MM-dd HH:mm:ss");
@@ -627,7 +629,8 @@ namespace Venus_MainPages.ViewModels
             public string EndTime { get; set; }
             public string LotID { get; set; }
             public string SlotID { get; set; }
-        }
+            public string RecipeType { get; set; }
+    }
     public class StepData
     {
         [DataMember]

+ 74 - 43
Venus/Venus_MainPages/Views/OverVenusDEView.xaml

@@ -65,8 +65,8 @@
                 <ColumnDefinition Width="Auto"/>
             </Grid.ColumnDefinitions>
 
-            <TextBlock Text="SRF Fan"    Margin="5,0,5,0" Grid.Column="0" FontSize="15"  HorizontalAlignment="Center" VerticalAlignment="Center" />
-            <Ellipse                     Grid.Column="1" Width="16" Height="16"  Fill="{Binding SourceRFFanInterlock,Converter={StaticResource boolToColor4}}"   Stroke="Silver"  StrokeThickness="2"></Ellipse>
+            <TextBlock Text="Bias RF Fan"    Margin="5,0,5,0" Grid.Column="0" FontSize="15"  HorizontalAlignment="Center" VerticalAlignment="Center" />
+            <Ellipse                     Grid.Column="1" Width="16" Height="16"  Fill="{Binding BiasRFFanInterlock,Converter={StaticResource boolToColor4}}"   Stroke="Silver"  StrokeThickness="2"></Ellipse>
 
             <TextBlock Text="Wafer Leak"   Margin="15,0,5,0"  Grid.Column="2" FontSize="15"  HorizontalAlignment="Center" VerticalAlignment="Center" />
             <Ellipse                     Grid.Column="3" Width="16" Height="16"  Fill="{Binding IsWLK,Converter={StaticResource boolToColor4}}"   Stroke="Silver" StrokeThickness="2"></Ellipse>
@@ -109,7 +109,7 @@
 
             <customControls:CommonValveControl Status="{Binding N2ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="N2" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
 
-            <ctrls:FlowPipe x:Name="N2Pipe1"  Height="8"  Width="193" Canvas.Left="64"  Canvas.Top="120">
+            <ctrls:FlowPipe x:Name="N2Pipe1"  Height="8"  Width="193" Canvas.Left="85"  Canvas.Top="120">
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter3}">
                         <Binding Path="PVN21ValveIsOpen"/>
@@ -136,7 +136,7 @@
             <customControls:CommonValveControl Status="{Binding MFC1ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="156" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc1" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
 
-            <ctrls:FlowPipe   Height="8"  Width="114" Canvas.Left="64"  Canvas.Top="162" IsFlowing="{Binding PV11ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="114" Canvas.Left="85"  Canvas.Top="162" IsFlowing="{Binding PV11ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
             <ctrls:FlowPipe   Height="8"  Width="80" Canvas.Left="177"  Canvas.Top="198" IsFlowing="{Binding PV12ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="30" Canvas.Left="178"  Canvas.Top="168" RotateTransformValue="90" IsFlowing="{Binding PV12ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -186,7 +186,7 @@
             <customControls:CommonValveControl Status="{Binding MFC2ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="212" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc2" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
 
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="218" IsFlowing="{Binding PV21ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85" Canvas.Top="218" IsFlowing="{Binding PV21ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
             <ctrls:FlowPipe   Height="8"  Width="80" Canvas.Left="177"  Canvas.Top="254" IsFlowing="{Binding PV22ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
@@ -237,7 +237,7 @@
             <customControls:CommonValveControl Status="{Binding MFC3ValveIsOpen,Mode=TwoWay}"   ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="268" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc3" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
 
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="274" IsFlowing="{Binding PV31ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="274" IsFlowing="{Binding PV31ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
             <ctrls:FlowPipe   Height="8"  Width="80" Canvas.Left="177"  Canvas.Top="310" IsFlowing="{Binding PV32ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="30" Canvas.Left="178"  Canvas.Top="280" RotateTransformValue="90" IsFlowing="{Binding PV32ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -275,7 +275,7 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas4-->
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="328" IsFlowing="{Binding PV41ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="328" IsFlowing="{Binding PV41ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="356" IsFlowing="{Binding PV42ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="310" Canvas.Left="174"  Canvas.Top="328" IsFlowing="{Binding MFC4ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
@@ -315,9 +315,9 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas5-->
-            <ctrls:FlowPipe   Height="8"  Width="419" Canvas.Left="64"  Canvas.Top="370" IsFlowing="{Binding MFC5ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="370" IsFlowing="{Binding MFC5ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="399" IsFlowing="{Binding PV52ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="370" IsFlowing="{Binding PV51ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="370" IsFlowing="{Binding PV51ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
 
             <TextBlock Text="V5" Canvas.Left="438" Canvas.Top="349" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC5ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"   Canvas.Left="436" Canvas.Top="364" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc5" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -352,8 +352,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--6-->
-            <ctrls:FlowPipe  Height="8"  Width="419" Canvas.Left="65"  Canvas.Top="415" IsFlowing="{Binding MFC6ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="415" IsFlowing="{Binding PV61ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="415" IsFlowing="{Binding MFC6ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="415" IsFlowing="{Binding PV61ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="441" IsFlowing="{Binding PV62ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V6" Canvas.Left="438" Canvas.Top="393" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC6ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"   Canvas.Left="436" Canvas.Top="409" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc6" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -386,8 +386,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas7-->
-            <ctrls:FlowPipe   Height="8"  Width="418" Canvas.Left="65"  Canvas.Top="458" IsFlowing="{Binding MFC7ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="458" IsFlowing="{Binding PV71ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="458" IsFlowing="{Binding MFC7ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="458" IsFlowing="{Binding PV71ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="484" IsFlowing="{Binding PV72ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V7" Canvas.Left="438" Canvas.Top="436" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC7ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="452" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc7" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -418,8 +418,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas8-->
-            <ctrls:FlowPipe  Height="8"  Width="418" Canvas.Left="65"  Canvas.Top="499" IsFlowing="{Binding MFC8ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="499" IsFlowing="{Binding PV81ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="499" IsFlowing="{Binding MFC8ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="499" IsFlowing="{Binding PV81ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="527" IsFlowing="{Binding PV82ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V8" Canvas.Left="438" Canvas.Top="477" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC8ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="493" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc8" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -448,8 +448,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas9-->
-            <ctrls:FlowPipe  Height="8"  Width="418" Canvas.Left="64"  Canvas.Top="543" IsFlowing="{Binding MFC9ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="543" IsFlowing="{Binding PV91ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="543" IsFlowing="{Binding MFC9ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="543" IsFlowing="{Binding PV91ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="569" IsFlowing="{Binding PV92ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V9" Canvas.Left="440" Canvas.Top="520" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC9ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="536" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc9" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -476,8 +476,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas10-->
-            <ctrls:FlowPipe  Height="8"  Width="418" Canvas.Left="64"  Canvas.Top="588" IsFlowing="{Binding MFC10ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="588" IsFlowing="{Binding PVA1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="588" IsFlowing="{Binding MFC10ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="588" IsFlowing="{Binding PVA1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="615" IsFlowing="{Binding PVA2ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V10" Canvas.Left="436" Canvas.Top="567" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC10ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="582" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc10" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -502,8 +502,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas11-->
-            <ctrls:FlowPipe  Height="8"  Width="418" Canvas.Left="65"  Canvas.Top="634" IsFlowing="{Binding MFC11ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="634" IsFlowing="{Binding PVB1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="400" Canvas.Left="85"  Canvas.Top="634" IsFlowing="{Binding MFC11ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="634" IsFlowing="{Binding PVB1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="661" IsFlowing="{Binding PVB2ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V11" Canvas.Left="436" Canvas.Top="612" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC11ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="627" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc11" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -526,8 +526,8 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
             <!--Gas12-->
-            <ctrls:FlowPipe  Height="8"  Width="415" Canvas.Left="65"  Canvas.Top="679" IsFlowing="{Binding MFC12ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="64"  Canvas.Top="679" IsFlowing="{Binding PVC1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe  Height="8"  Width="391" Canvas.Left="85"  Canvas.Top="679" IsFlowing="{Binding MFC12ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
+            <ctrls:FlowPipe   Height="8"  Width="112" Canvas.Left="85"  Canvas.Top="679" IsFlowing="{Binding PVC1ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <ctrls:FlowPipe   Height="8"  Width="76"  Canvas.Left="175"  Canvas.Top="709" IsFlowing="{Binding PVC2ValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <TextBlock Text="V12" Canvas.Left="436" Canvas.Top="658" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <customControls:CommonValveControl Status="{Binding MFC12ValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="436" Canvas.Top="673" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Mfc12" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
@@ -748,72 +748,103 @@
 
             <Ellipse Width="20" Height="20" Fill="{Binding GasIsFlowing,Converter={StaticResource boolToColor}}"  Canvas.Left="360" Canvas.Top="712" Stroke="Silver" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Top"/>
             <Button Width="100" Content="Gas ON/OFF" Canvas.Left="390" Canvas.Top="712" Style="{StaticResource SysBtnStyle}"  Command="{Binding GasCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
-            <TextBlock FontSize="13" Text="Vent N2" Canvas.Left="10" Canvas.Top="117" Foreground="Black"  Block.TextAlignment="Right" Width="50"/>
-            <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="227" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12" Text="Vent N2" Canvas.Left="35" Canvas.Top="117" Foreground="Black"  Block.TextAlignment="Right"  Panel.ZIndex="4"/>
+            <TextBlock FontSize="12" Canvas.Left="-5" Canvas.Top="158" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC1Data.DisplayName"></Binding>
                         <Binding Path="MFC1Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="284" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="214" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC2Data.DisplayName"></Binding>
                         <Binding Path="MFC2Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="338" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="269" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC3Data.DisplayName"></Binding>
                         <Binding Path="MFC3Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="392" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="325" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC4Data.DisplayName"></Binding>
                         <Binding Path="MFC4Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="448" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="367" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC5Data.DisplayName"></Binding>
                         <Binding Path="MFC5Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="503" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12" Canvas.Left="-5" Canvas.Top="413" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC6Data.DisplayName"></Binding>
                         <Binding Path="MFC6Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="562" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="455" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC7Data.DisplayName"></Binding>
                         <Binding Path="MFC7Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-            <TextBlock FontSize="13"  Canvas.Left="-5" Canvas.Top="618" Block.TextAlignment="Right" MaxWidth="65">
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="496" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
                 <TextBlock.Text>
-                    <MultiBinding StringFormat="{}({0}:{1})">
+                    <MultiBinding StringFormat="{}{0}:{1}">
                         <Binding Path="MFC8Data.DisplayName"></Binding>
                         <Binding Path="MFC8Data.Scale"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
-
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="539" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC9Data.DisplayName"></Binding>
+                        <Binding Path="MFC9Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="584" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC10Data.DisplayName"></Binding>
+                        <Binding Path="MFC10Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="631" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC11Data.DisplayName"></Binding>
+                        <Binding Path="MFC11Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
+            <TextBlock FontSize="12"  Canvas.Left="-5" Canvas.Top="676" Block.TextAlignment="Right" Width="85" TextAlignment="Right" Panel.ZIndex="4">
+                <TextBlock.Text>
+                    <MultiBinding StringFormat="{}{0}:{1}">
+                        <Binding Path="MFC12Data.DisplayName"></Binding>
+                        <Binding Path="MFC12Data.Scale"></Binding>
+                    </MultiBinding>
+                </TextBlock.Text>
+            </TextBlock>
 
         </Canvas >
         <Canvas Canvas.Right="2050" Canvas.Top="70">
@@ -1071,10 +1102,10 @@
                 <TextBlock Text="Foreline Heater"/>
                 <Button Height="18" Width="50" Content="{Binding ForelineHeaterData.FeedBack}" ToolTip="{Binding ForelineHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White" ContentStringFormat="F1"  Background="{Binding ForelineHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding ForelineHeaterData}" Cursor="Hand"/>
             </StackPanel>
-            <StackPanel Canvas.Top="380" Canvas.Left="1280" Orientation="Vertical">
+            <!--<StackPanel Canvas.Top="380" Canvas.Left="1280" Orientation="Vertical">
                 <TextBlock Text="Wall Heater"/>
                 <Button Height="18" Width="50" Content="{Binding WallHeaterData.FeedBack}" ToolTip="{Binding WallHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White"  ContentStringFormat="F1"  Background="{Binding WallHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding WallHeaterData}" Cursor="Hand"/>
-            </StackPanel>
+            </StackPanel>-->
 
             <!--Chamber-->
             <ctrls:Chamber Canvas.Left="1034" Canvas.Top="224" 

+ 9 - 9
Venus/Venus_MainPages/Views/ProcessHistoryView.xaml

@@ -96,13 +96,13 @@
                     </i:EventTrigger>
                 </i:Interaction.Triggers>
                 <DataGrid.Columns>
-                    <DataGridTemplateColumn Header="checked" Width="100">
+                    <!--<DataGridTemplateColumn Header="checked" Width="100">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                                 <CheckBox IsChecked="{Binding Selected,Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Center" />
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
-                    </DataGridTemplateColumn>
+                    </DataGridTemplateColumn>-->
                     <DataGridTemplateColumn Header="Lot ID" Width="320">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
@@ -110,7 +110,7 @@
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
                     </DataGridTemplateColumn>
-                    <DataGridTemplateColumn Header="Slot ID" Width="320">
+                    <DataGridTemplateColumn Header="Slot ID" Width="120">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                                 <TextBlock Text="{Binding SlotID}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" />
@@ -118,34 +118,34 @@
                         </DataGridTemplateColumn.CellTemplate>
                     </DataGridTemplateColumn>
 
-                    <DataGridTemplateColumn Header="Start" Width="200">
+                    <DataGridTemplateColumn Header="Start" Width="280">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                                 <TextBlock Text="{Binding StartTime}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
                     </DataGridTemplateColumn>
-                    <DataGridTemplateColumn Header="End" Width="200">
+                    <DataGridTemplateColumn Header="End" Width="280">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                                 <TextBlock Text="{Binding EndTime}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
                     </DataGridTemplateColumn>
-                    <DataGridTemplateColumn Header="Chamber" Width="80">
+                    <DataGridTemplateColumn Header="Chamber" Width="180">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                                 <TextBlock Text="{Binding Chamber}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
                     </DataGridTemplateColumn>
-                    <!--<DataGridTemplateColumn Header="Wafer ID" Width="320">
+                    <DataGridTemplateColumn Header="Recipe type" Width="180">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
-                                <TextBlock Text="{Binding RecipeRunGuid}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Left" VerticalAlignment="Center" />
+                                <TextBlock Text="{Binding RecipeType}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                             </DataTemplate>
                         </DataGridTemplateColumn.CellTemplate>
-                    </DataGridTemplateColumn>-->
+                    </DataGridTemplateColumn>
                     <DataGridTemplateColumn Header="Recipe" Width="300">
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>

+ 3 - 2
Venus/Venus_RT/Config/DBModel.sql

@@ -136,8 +136,9 @@ begin
 					  "chuck_name" text,
 					  "dechuck_name" text,
 					  "process_status" text,
-					   "wafer_data_guid" text,
-					   "process_in" text,
+					  "wafer_data_guid" text,
+					  "process_in" text,
+					  "recipe_type" text,
 					  CONSTRAINT "process_data_pkey" PRIMARY KEY ("guid" )
 					)
 					WITH (

+ 5 - 5
Venus/Venus_RT/Config/PM/VenusDE/VenusDEDeviceModel.xml

@@ -22,14 +22,14 @@
 				isDefaultOpen="false" diOpen="" doOpen="DO_PV41" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePV42" display="PV42 Valve" schematicId="PV42" unit="" isNc="true"
 				isDefaultOpen="false" diOpen="" doOpen="DO_PV42" diCloseSensor="" diOpenSensor="" />
-		<!--<IoValve id="ValvePV51" display="PV51 Valve" schematicId="PV51" unit="" isNc="true"
+		<IoValve id="ValvePV51" display="PV51 Valve" schematicId="PV51" unit="" isNc="true"
 		isDefaultOpen="false" diOpen="" doOpen="DO_PV51" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePV52" display="PV52 Valve" schematicId="PV52" unit="" isNc="true"
-				isDefaultOpen="false" diOpen="" doOpen="DO_PV52" diCloseSensor="" diOpenSensor="" />-->
-		<!--<IoValve id="ValvePV61" display="PV61 Valve" schematicId="PV61" unit="" isNc="true"
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV52" diCloseSensor="" diOpenSensor="" />
+		<IoValve id="ValvePV61" display="PV61 Valve" schematicId="PV61" unit="" isNc="true"
 		isDefaultOpen="false" diOpen="" doOpen="DO_PV61" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePV62" display="PV62 Valve" schematicId="PV62" unit="" isNc="true"
-				isDefaultOpen="false" diOpen="" doOpen="DO_PV62" diCloseSensor="" diOpenSensor="" />-->
+				isDefaultOpen="false" diOpen="" doOpen="DO_PV62" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePV71" display="PV71 Valve" schematicId="PV71" unit="" isNc="true"
 		isDefaultOpen="false" diOpen="" doOpen="DO_PV71" diCloseSensor="" diOpenSensor="" />
 		<IoValve id="ValvePV72" display="PV72 Valve" schematicId="PV72" unit="" isNc="true"
@@ -193,7 +193,7 @@
 		<IoSensor id="N2PressureOk" display="N2 Pressure OK"  schematicId="" unit="" di="DI_PN2_Pressure_Switch" isLowAsNormal="" textOutTrigValue="false"
 			   infoText="" warningText="N2 Pressure Alarm" alarmText="" />
 		<IoSensor id="GeneratorInterlock" display="RFG hardware interlock"  schematicId="" unit="" di="DI_RF_HV_Interlock_OK" isLowAsNormal="" textOutTrigValue="false" infoText="Generator interlock" warningText="" alarmText="" />
-		<IoSensor id="SensorSourceRFFan" display="Source RF Water Flow Switch"  schematicId="" unit="" di="DI_SOURCE_RF_Water_Flow_Switch" isLowAsNormal="" textOutTrigValue="true" infoText="Source RF Water Flow" warningText="" alarmText="Source RF Water Flow Error" />
+		<IoSensor id="SensorSourceRFFan" display="Bias RF Water Flow Switch"  schematicId="" unit="" di="DI_BIAS_RF_Water_Flow_Switch" isLowAsNormal="" textOutTrigValue="true" infoText="Bias RF Water Flow" warningText="" alarmText="Bias RF Water Flow Error" />
 		<IoSensor id="SensorSlitDoorClosed" display="Slit Door Closed"  schematicId="" unit="" di="DI_TM_Slit_Door_Closed" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />
 		<IoSensor id="TurboPumpInterlock" display="Turbo Pump Interlock"  schematicId="" unit="" di="DI_Turbo_Pump_Interlock" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />
 		<IoSensor id="GasBoxDoorSW" display="Gas Box Door SW"  schematicId="" unit="" di="DI_Gas_Box_Door_Switch" isLowAsNormal="" textOutTrigValue="false" infoText="" warningText="" alarmText="" />

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

@@ -263,7 +263,7 @@ namespace Venus_RT.Instances
                     AddCustomDevice(new JetVenusSEPM(mod));
                     break;
                 case JetChamber.VenusDE:
-                    AddCustomDevice(new JetVenusSEPM(mod));
+                    AddCustomDevice(new JetVenusDEPM(mod));
                     break;
             }
 

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

@@ -310,7 +310,7 @@ namespace Venus_RT.Devices
             });
             OP.Subscribe($"{Module}.ControlValve", (cmd, args) =>
             {
-                if (ChamberType == JetChamber.VenusSE)
+                if (ChamberType == JetChamber.VenusSE|| ChamberType == JetChamber.VenusDE)
                 {
                     if (Enum.TryParse(args[0].ToString(), out ValveType targetvalve))
                     {

+ 43 - 63
Venus/Venus_RT/Modules/PMs/PMProcessRoutine.cs

@@ -36,12 +36,11 @@ namespace Venus_RT.Modules.PMs
         public string WaferId { get; set; }
         public string SlotID { get; set; }
         public string LotID { get; set; }
-        public string FullRecipeName { get; set; }
-
-        string Guidall;
+        public string GuidAllStep { get; set; }
 
+        //public bool CurrentRecipeType { get; set; }
         //int Timeall;
-        private Stopwatch Processtime = new Stopwatch();
+        private Stopwatch Recipetime = new Stopwatch();
         private readonly PumpDownRoutine _pumpDownRoutine;
         private readonly ProcessHelper _processHelper;
         private bool _withWafer = true;
@@ -132,6 +131,7 @@ namespace Venus_RT.Modules.PMs
             return true;
         }
 
+
         public RState Start(params object[] objs)
         {
             string recipeName = (string)objs[0];
@@ -177,7 +177,6 @@ namespace Venus_RT.Modules.PMs
                 return RState.Failed;
             }
 
-            RecipeStartTime = DateTime.Now;
 
             // Load/Validate Recipe
             _qeRecipes.Clear();
@@ -223,7 +222,7 @@ namespace Venus_RT.Modules.PMs
                         if (dechuckRecipe != null)
                         {
                             DechuckRecipeName = recipe.Header.DechuckRecipe;
-                            _qeRecipes.Enqueue(dechuckRecipe);
+                            _qeRecipes.Enqueue(dechuckRecipe);                           
                         }
                     }
 
@@ -337,8 +336,8 @@ namespace Venus_RT.Modules.PMs
         }
 
         public RState StartNewStep()
-        {
-            ProcessDataRecorder.StepStart(Guidall, _currentRecipe.Steps[_currentStep].StepNo, $"{Module}:{_currentRecipe.Header.Name}:{_currentRecipe.Steps[_currentStep].Description}", _currentRecipe.Steps[_currentStep].Time);
+        {   
+            ProcessDataRecorder.StepStart(GuidAllStep, _currentRecipe.Steps[_currentStep].StepNo, $"{Module}:{_currentRecipe.Header.Name}:{_currentRecipe.Steps[_currentStep].Description}", _currentRecipe.Steps[_currentStep].Time);
             _stepTime.Restart();
             var state = _currentRecipe.Steps[_currentStep].Start();
             if (state != RState.Running)
@@ -377,26 +376,22 @@ namespace Venus_RT.Modules.PMs
             if (_qeRecipes.Count > 0)
             {
                 _currentStep = 0;
-                _currentRecipe = _qeRecipes.Dequeue();
+                _currentRecipe = _qeRecipes.Dequeue();                               
                 CurrentRunningRecipe = _currentRecipe.Header.Name;
-
-                if (Guidall == null)
+                if (GuidAllStep == null)
                 {
-                    Guidall = Guid.NewGuid().ToString();
+                    GuidAllStep = Guid.NewGuid().ToString();
                     RecipeStartTime = DateTime.Now;
-                    Processtime.Restart();
+                    Recipetime.Restart();
                 }
                 Notify($"Recipe:{CurrentRunningRecipe} start");
-                //FaEvent.FaPostInfo(Module.ToString(), $"Recipe:{CurrentRunningRecipe} start");
-
                 _chamber.EPDRecipeStart(CurrentRunningRecipe);
                 return StartNewStep() == RState.Running;
             }
-
             return false;
         }
-        private bool RunRecipes()
-        {
+            private bool RunRecipes()
+            {            
             var step = _currentRecipe.Steps[_currentStep];
             currentRecipeResult.RecipeStepCount = _currentRecipe.Steps.Count;
             currentRecipeResult.RecipeName = _currentRecipe.Header.Name;
@@ -405,27 +400,15 @@ namespace Venus_RT.Modules.PMs
             currentRecipeResult.RecipeStepType = step.Type.ToString();
             currentRecipeResult.RecipeStepDescription = string.IsNullOrEmpty(step.Description) ? "" : step.Description;
             currentRecipeResult.RecipeStepSetTime = step.Time;
-            currentRecipeResult.RecipeType = _currentRecipe.Header.Type.ToString();
-            //currentRecipeResult.RecipeStepDuringTime = (int)_stepTime.ElapsedMilliseconds/1000;
+            currentRecipeResult.RecipeType = _currentRecipe.Header.Type.ToString();            
             currentRecipeResult.RecipeStepDuringTime = new System.TimeSpan(0, 0, System.Convert.ToInt32(_stepTime.ElapsedMilliseconds / 1000));
 
-
+            
             var result = step.Run();
             if (result == RState.Failed)
             {
-                WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.Completed);
-                WaferInfo waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module.ToString()), 0);
-                if (!waferInfo.IsEmpty)
-                {
-                    WaferId = waferInfo.InnerId.ToString();
-                    SlotID = waferInfo.OriginSlot.ToString();
-                    LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
-                    FullRecipeName = string.Format(@"{0} {1} {2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
-                }
-                Processtime.Stop();
-                RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
-                ProcessDataRecorder.RecordPrecess(Guidall, RecipeStartTime, DateTime.Now, FullRecipeName, "Fail", WaferId, _chamber.Name, LotID, SlotID);
-                Guidall = null;
+                WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.Failed);
+                RecipeDown("Fail");            
                 UpdateWaferStatus(false);
                 Runner.Stop($"Recipe:{CurrentRunningRecipe}, Step:{_currentStep + 1} Failed");
                 EV.PostAlarmLog(Module.ToString(), $"Recipe:{CurrentRunningRecipe}, Step:{_currentStep + 1} Failed");
@@ -477,6 +460,7 @@ namespace Venus_RT.Modules.PMs
                         processRecipe = (Recipe)SerializeHelper.Instance.Clone(_currentRecipe);
                     }
                     _chamber.EPDRecipeStop();
+                    RecipeDown("Success");
                     return !StartNewRecipe();
                 }
             }
@@ -484,6 +468,30 @@ namespace Venus_RT.Modules.PMs
             return false;
         }
 
+        public void RecipeDown(string result)
+        {
+            Recipetime.Stop();
+            WaferInfo waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module.ToString()), 0);
+            if (!waferInfo.IsEmpty)
+            {
+                WaferId = waferInfo.InnerId.ToString();
+                SlotID = waferInfo.OriginSlot.ToString();
+                LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
+            }                     
+            RecipeEndTime = RecipeStartTime + Recipetime.Elapsed;
+            switch (_currentRecipe.Header.Type)
+            {
+                case RecipeType.Clean:
+                    ProcessDataRecorder.RecordPrecess(GuidAllStep, RecipeStartTime, DateTime.Now, _currentRecipe.Header.Name, result, "", _chamber.Name, "", "", _currentRecipe.Header.Type.ToString());
+                    break;
+                case RecipeType.Chuck:
+                case RecipeType.DeChuck:
+                case RecipeType.Process:
+                    ProcessDataRecorder.RecordPrecess(GuidAllStep, RecipeStartTime, RecipeEndTime, _currentRecipe.Header.Name, result, WaferId, _chamber.Name, LotID, SlotID, _currentRecipe.Header.Type.ToString());
+                    break;
+            }           
+            GuidAllStep = null;
+        }
         private bool ProcessDone()
         {
             _currentRecipe.Steps[_currentStep].End();
@@ -504,19 +512,6 @@ namespace Venus_RT.Modules.PMs
             {
                 _chamber.OnOffSetESCHV(false);
             }
-            WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.Completed);
-            WaferInfo waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module.ToString()), 0);
-            if (!waferInfo.IsEmpty)
-            {
-                WaferId = waferInfo.InnerId.ToString();
-                SlotID = waferInfo.OriginSlot.ToString();
-                LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
-                FullRecipeName = string.Format(@"{0} {1} {2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
-            }
-            Processtime.Stop();
-            RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
-            ProcessDataRecorder.RecordPrecess(Guidall, RecipeStartTime, RecipeEndTime, FullRecipeName, "Success", WaferId, _chamber.Name, LotID, SlotID);
-            Guidall = null;
             return true;
         }
 
@@ -547,22 +542,7 @@ namespace Venus_RT.Modules.PMs
 
         public async void Abort()
         {
-            WaferInfo waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module.ToString()), 0);
-            if (!waferInfo.IsEmpty)
-            {
-                WaferId = waferInfo.InnerId.ToString();
-                SlotID = waferInfo.OriginSlot.ToString();
-                LotID = waferInfo.ProcessJob == null || string.IsNullOrEmpty(waferInfo.ProcessJob.ControlJobName) ? "" : waferInfo.ProcessJob.ControlJobName;
-                FullRecipeName = string.Format(@"{0} {1} {2}", ChuckRecipeName, ProcessRecipeName, DechuckRecipeName);
-            }
-            Processtime.Stop();
-            RecipeEndTime = RecipeStartTime + Processtime.Elapsed;
-            //ProcessDataRecorder.RecordPrecess(Guidall, RecipeStartTime, RecipeEndTime, FullRecipeName, "Fail", WaferId, _chamber.Name, LotID, SlotID);
-            if (Guidall != null)
-            {
-                ProcessDataRecorder.RecordPrecess(Guidall, RecipeStartTime, RecipeEndTime, FullRecipeName, "Abort", WaferId, _chamber.Name, LotID, SlotID);
-            }
-            Guidall = null;
+            RecipeDown("Abort");
             _chamber.GeneratorBiasPowerOn(false);
             _chamber.GeneratorPowerOn(false);
             _chamber.TurnPendulumValve(false);

+ 2 - 2
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -296,8 +296,8 @@ namespace Venus_Simulator.Instances
 
                     IO.DI[$"{mod}.DI_RF_HV_Interlock_OK"].Value = true;
                     IO.DI[$"{mod}.DI_Turbo_Pump_Interlock"].Value = true;
-                    IO.DI[$"{mod}.DI_Slit_Door_Open_Position"].Value = false;
-                    IO.DI[$"{mod}.DI_Slit_Door_Close_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_Slit_Door_Open_Position"].Value = true;
+                    IO.DI[$"{mod}.DI_Slit_Door_Close_Position"].Value = false;
                     IO.DI[$"{mod}.DI_ESC_Coolant_Inlet_TC_Broken_Alarm"].Value = false;
                     IO.DI[$"{mod}.DI_Magnets_Coils_ON_FB"].Value = false;