瀏覽代碼

优化N2Purge Config

git-svn-id: http://10.4.3.168:50001/svn/Furnace@92 dbcde07d-dcf5-c148-8a84-ac3097b7778e
Jiangjinyuan 1 月之前
父節點
當前提交
2d86f05d60

+ 2 - 1
Furnace/FurnaceRT/Config/System.sccfg

@@ -16,6 +16,7 @@
     <config default="Release" name="RunningMode" description="" max="" min="" paramter="Debug,Release" tag="" unit="" type="String" visible="false" />
 
     <config default="true" name="IsServiceControlMode" description="Is Service Control Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
+    <config default="true" name="EnableMinics" description="" max="" min="" paramter="" tag="" unit="" type="Bool"  visible="false" />
 
     <config default="false" name="BypassInterlock" description="Bypass Interlock" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 
@@ -790,7 +791,7 @@
     <configs name="RfMatch">
 
     </configs>
-    <configs name="N2Purge">
+    <configs name="N2Purge" visible="false">
       <config default="1" name="TransferRoomArrivalWaitTime" description="LA O2 CheckTime" max="360" min="1" paramter="" tag="" unit="s" type="Double" />
       <config default="1" name="TransferRoomStableWaitTime" description="LA O2 OverTime" max="360" min="1" paramter="" tag="" unit="s" type="Double" />
       <config default="1" name="FOUPOpenerArrivalWaitTime" description="FOUP O2 CheckTime" max="360" min="1" paramter="" tag="" unit="s" type="Double" />

+ 20 - 1
Furnace/FurnaceRT/Equipments/PMs/PMModuleDevice.cs

@@ -25,6 +25,7 @@ using FurnaceRT.Equipments.PMs.Devices;
 using Aitex.Core.RT.SCCore;
 using static Aitex.Core.RT.Device.Unit.IoBoat;
 using MECF.Framework.Common.CommonData.SorterDefines;
+using System.Windows;
 
 namespace FurnaceRT.Equipments.PMs
 {
@@ -1320,6 +1321,10 @@ namespace FurnaceRT.Equipments.PMs
         public IoTrigger TrigFurnaceCUZoneHeatingEnable { get; set; }
         [Tag("TrigFurnaceUZoneHeatingEnable")]
         public IoTrigger TrigFurnaceUZoneHeatingEnable { get; set; }
+        [Tag("TrigFFULSPEED")]
+        public IoTrigger TrigFFULSPEED { get; set; }
+        [Tag("TrigFFUHSPEED")]
+        public IoTrigger TrigFFUHSPEED { get; set; }
         [Tag("TrigVGUnitConversion")]
         public IoTrigger TrigVGUnitConversion { get; set; }
         [Tag("TrigForlineHeaterOn")]
@@ -1623,8 +1628,22 @@ namespace FurnaceRT.Equipments.PMs
             MINI8AlarmReset?.Reset();
             PLCCPUReset?.Reset();
             InitN2PurgeConfigData();
+            InitSCToAODO();
         }
+        private void InitSCToAODO()
+        {
+
+
+            var scTrigFFULSPEEDData = SC.GetValue<double>($"FFU.LSPEED");
+            TrigFFULSPEED.SetAOTrigger((float)scTrigFFULSPEEDData, out _);
+
 
+            var hSPEED = SC.GetValue<double>($"FFU.HSPEED");
+            TrigFFUHSPEED.SetAOTrigger((float)hSPEED, out _);
+
+            SetN2PurgeLAO2CheckSV((float)SC.GetValue<double>("PM1.N2Purge.N2PurgeLAO2CheckSV"));
+            SetN2PurgeFOUPO2CheckSV((float)SC.GetValue<double>("PM1.N2Purge.N2PurgeFOUPO2CheckSV"));
+        }
         private void SensorLidClosed_OnSignalChanged(IoSensor sender, bool isTriggered)
         {
             if (!isTriggered)
@@ -2411,7 +2430,7 @@ namespace FurnaceRT.Equipments.PMs
             {
                 bool.TryParse(param[0].ToString(), out bool isEnable);
 
-             
+
                 SC.SetItemValue($"PM1.IsHTR2Enable", isEnable);
             }
             return true;

+ 6 - 6
Furnace/FurnaceUI/Dialog/N2PurgeSelectDialogView.xaml

@@ -39,7 +39,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="O2 Density Arrival Wait Time (s)"/>
+                            Text="LA O2 Check Time (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"
@@ -75,7 +75,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="O2 Density Stable Wait Time (s)"/>
+                            Text="LA O2 Over Time (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"
@@ -155,7 +155,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="O2 Density Arrival Wait Time (s)"/>
+                            Text="Foup O2 Check Time (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"
@@ -191,7 +191,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="O2 Density Stable Wait Time (s)"/>
+                            Text="Foup O2 Over Time (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"
@@ -272,7 +272,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="Transfer Room → FOUP (s)"/>
+                            Text="LA → FOUP (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"
@@ -308,7 +308,7 @@
                             Margin="5,0,0,0"
                             VerticalAlignment="Center"
                             Foreground="White"
-                            Text="FOUP → Transfer Room (s)"/>
+                            Text="FOUP → LA (s)"/>
                     </Border>
                     <Border
                         Grid.Row="1"

+ 3 - 2
Furnace/FurnaceUI/Views/Operations/NTP/GasDetailView.xaml

@@ -204,12 +204,13 @@
 
                 <RadioButton
                     Grid.Row="0"
-                    Grid.Column="3"
+                    Grid.Column="4"
                     Width="160"
                     Height="45"
                     Margin="4"
                     Content="AUX"
                     FontSize="30"
+                    Visibility="{Binding EnableMinics,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource boolReverseConverter}}"
                     IsChecked="{Binding AuxIsChecked}">
                     <i:Interaction.Triggers>
                         <i:EventTrigger EventName="Click">
@@ -222,7 +223,7 @@
                 </RadioButton>
                 <RadioButton
                     Grid.Row="0"
-                    Grid.Column="4"
+                    Grid.Column="3"
                     Width="160"
                     Height="45"
                     Margin="4"

+ 3 - 0
Furnace/FurnaceUI/Views/Operations/NTP/GasDetailViewModel.cs

@@ -339,8 +339,11 @@ namespace FurnaceUI.Views.Operations
             }
         }
         #endregion
+
         [Subscription("PM1.CurrentAuxData")]
         public List<AITAuxData> AUXDetailDatas { get; set; }
+        [Subscription("PM1.EnableMinics")]
+        public bool EnableMinics { get; set; }
 
         private bool _mFCIsChecked = false;
 

+ 34 - 12
Furnace/FurnaceUI/Views/Parameter/N2PurgeEditView.xaml

@@ -47,11 +47,11 @@
                         <TextBlock
                             Canvas.Left="-55"
                             Canvas.Top="-18"
-                            Text="Transfer Room "/>
+                            Text="LA O2 "/>
                         <TextBlock
                             Canvas.Left="-55"
                             Canvas.Top="5"
-                            Text="O2 Density Check"/>
+                            Text="Density Check"/>
                     </Canvas>
                 </ContentControl>
                 <i:Interaction.Triggers>
@@ -73,11 +73,11 @@
                         <TextBlock
                             Canvas.Left="-55"
                             Canvas.Top="-18"
-                            Text="FOUP Opener"/>
+                            Text="FOUP O2"/>
                         <TextBlock
                             Canvas.Left="-55"
                             Canvas.Top="5"
-                            Text="O2 Density Check"/>
+                            Text="Density Check"/>
                     </Canvas>
                 </ContentControl>
                 <i:Interaction.Triggers>
@@ -97,10 +97,12 @@
                 Background="{Binding O2DetectorVisibleBackGround}">
                 <ContentControl>
                     <Canvas>
-                        <TextBlock
-                            Canvas.Left="-55"
-                            Canvas.Top="-18"
-                            Text="O2 Detector"/>
+                        <TextBlock Canvas.Left="-55" Canvas.Top="-18">
+                        <Run>LA</Run>
+                         <Run >⇆</Run>
+                        <Run>FOUP</Run>
+                           
+                        </TextBlock>
                         <TextBlock
                             Canvas.Left="-55"
                             Canvas.Top="5"
@@ -576,8 +578,8 @@
                     HorizontalAlignment="Center"
                     VerticalAlignment="Center"
                     Orientation="Vertical">
-                    <TextBlock Margin="5" Text="Transfer Room"/>
-                    <TextBlock Margin="20,15,0,0"  Text="FOUP"/>
+                    <TextBlock Margin="5" Text="LA"/>
+                    <TextBlock Margin="5,15,0,0"  Text="FOUP"/>
 
                 </StackPanel>
                 <Border
@@ -907,7 +909,17 @@
                     Background="{DynamicResource N2_purge_Idlebg}"
                     BorderBrush="{DynamicResource Table_BD}"
                     BorderThickness="1,1,0,0">
-                    <TextBox FontSize="20"/>
+                    <TextBox FontSize="20" Tag="Number" Text="{Binding N2PurgeLAO2CheckSV,Mode=OneWay}">
+                        <i:Interaction.Triggers>
+                            <i:EventTrigger EventName="TextChanged">
+                                <cal1:ActionMessage MethodName="SetConfigTextChanged">
+                                    <cal1:Parameter Value="PM1.N2Purge.N2PurgeLAO2CheckSV"></cal1:Parameter>
+                                    <cal1:Parameter Value="$source"></cal1:Parameter>
+                                    <cal1:Parameter Value="{Binding}"></cal1:Parameter>
+                                </cal1:ActionMessage>
+                            </i:EventTrigger>
+                        </i:Interaction.Triggers>
+                    </TextBox>
                 </Border>
                 <Border
                     Grid.Row="5"
@@ -925,7 +937,17 @@
                     Background="{DynamicResource N2_purge_Idlebg}"
                     BorderBrush="{DynamicResource Table_BD}"
                     BorderThickness="1,1,0,0">
-                    <TextBox FontSize="20"/>
+                    <TextBox Tag="Number" FontSize="20" Text="{Binding N2PurgeFOUPO2CheckSV,Mode=OneWay}">
+                        <i:Interaction.Triggers>
+                            <i:EventTrigger EventName="TextChanged">
+                                <cal1:ActionMessage MethodName="SetConfigTextChanged">
+                                    <cal1:Parameter Value="PM1.N2Purge.N2PurgeFOUPO2CheckSV"></cal1:Parameter>
+                                    <cal1:Parameter Value="$source"></cal1:Parameter>
+                                    <cal1:Parameter Value="{Binding}"></cal1:Parameter>
+                                </cal1:ActionMessage>
+                            </i:EventTrigger>
+                        </i:Interaction.Triggers>
+                    </TextBox>
                 </Border>
                 <Border
                     Grid.Row="5"

+ 55 - 1
Furnace/FurnaceUI/Views/Parameter/N2PurgeEditViewModel.cs

@@ -1,8 +1,11 @@
-using Aitex.Core.RT.SCCore;
+using Aitex.Core.Common.DeviceData;
+using Aitex.Core.RT.Log;
+using Aitex.Core.RT.SCCore;
 using Aitex.Core.Util;
 using Caliburn.Micro;
 using DocumentFormat.OpenXml.Drawing;
 using FurnaceUI.Client.Dialog;
+using FurnaceUI.Views.Recipes;
 using MECF.Framework.Common.DataCenter;
 using MECF.Framework.Common.OperationCenter;
 using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
@@ -18,6 +21,7 @@ using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Globalization;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -140,6 +144,35 @@ namespace FurnaceUI.Views.Parameter
         public double MFC51Feedback { get; set; }
         [Subscription("PM1.MFM57.Feedback")]
         public double MFM57Feedback { get; set; }
+        #region WaferCharge
+        private double _n2PurgeFOUPO2CheckSV = 0;
+        public double N2PurgeFOUPO2CheckSV
+        {
+            get
+            {
+
+                return _n2PurgeFOUPO2CheckSV;
+            }
+            set
+            {
+                _n2PurgeFOUPO2CheckSV = value;
+                NotifyOfPropertyChange("N2PurgeFOUPO2CheckSV");
+            }
+        }
+        private double _n2PurgeLAO2CheckSV = 0;
+        public double N2PurgeLAO2CheckSV
+        {
+            get
+            {
+                return _n2PurgeLAO2CheckSV;
+            }
+            set
+            {
+                _n2PurgeLAO2CheckSV = value;
+                NotifyOfPropertyChange("N2PurgeLAO2CheckSV");
+            }
+        }
+        #endregion
         protected override void OnInitialize()
         {
             base.OnInitialize();
@@ -153,6 +186,9 @@ namespace FurnaceUI.Views.Parameter
         {
             base.OnActivate();
             DefaultUnit = (string)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.PressureUnit");
+
+            N2PurgeFOUPO2CheckSV = (double)QueryDataClient.Instance.Service.GetConfig($"PM1.N2Purge.N2PurgeFOUPO2CheckSV");
+            N2PurgeLAO2CheckSV = (double)QueryDataClient.Instance.Service.GetConfig($"PM1.N2Purge.N2PurgeLAO2CheckSV");
             //GetO2ModelSpline();
             //GetN2ModelSpline();
         }
@@ -563,6 +599,24 @@ namespace FurnaceUI.Views.Parameter
                 return FindNodeByName(node, strName.Replace(strCates + ".", ""));
         }
 
+
+        public void SetConfigTextChanged(string configName, object sender, object item)
+        {
+            try
+            {
+                if (!string.IsNullOrEmpty(configName) &&item != null && sender != null)
+                {
+                    string value = ((TextBox)sender).Text;
+                    double setValue = 0;
+                    double.TryParse(value, out setValue);
+                    InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"{configName}", setValue);
+                }
+            }
+            catch (Exception ex)
+            {
+                LOG.Info($"N2PurgeFOUPO2CheckSVTextChanged:{ex.Message}");
+            }
+        }
         public void N2PurgeParaSelect(string ButtonPara)
         {
             this.GetType().GetProperty($"{ButtonPara}BackGround").SetValue(this, "#FF7DD486");