Browse Source

fix 调整N2Purge 展示

jiangjy 3 weeks ago
parent
commit
9305db1b07

+ 2 - 0
Furnace/FurnaceRT/Config/FurnaceGemModel.xml

@@ -787,6 +787,8 @@
     <SVID id="332190047" valueType="Boolean" logicalName="PM1.RunningMode" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="332190048" valueType="Boolean" logicalName="PM1.EnableMinics" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="332190049" valueType="Boolean" logicalName="PM1.IsDPROn" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="332190050" valueType="Boolean" logicalName="PM1.RunningModeIsDebug" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="332190051" valueType="F8" logicalName="PM1.N2PurgeLimitData" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="332200001" valueType="Boolean" logicalName="PM1.CMNT.Feedback" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="332200002" valueType="Boolean" logicalName="PM1.CMNT.SetPoint" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="332210001" valueType="F8" logicalName="PM1.ConcentrationO2.Value" value="" eventTrigger="" units="" description="" isArray="false" />

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

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root system="Furnace">
 	<configs name="System" display="System Parameter">
-		<config default="true" name="IsSimulatorMode" description="Is Simulator Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="false" name="IsSimulatorMode" description="Is Simulator Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="120" name="BackUpFileMaxNumber" description="BackUpFileMaxNumber" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   />
 		<!--检测断线报警时间-->
 		<config default="10" name="PLCConnectSensorFoolTime" description="PLC Connect Sensor Fool Time" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   visible="false"/>

BIN
Furnace/FurnaceRT/Config/VIDs/Equipment_VIDs_20250616.xlsx


File diff suppressed because it is too large
+ 1 - 1
Furnace/FurnaceRT/Config/VIDs/_SVID.xml


+ 9 - 2
Furnace/FurnaceRT/Equipments/PMs/PMModule.cs

@@ -283,7 +283,14 @@ namespace FurnaceRT.Equipments.PMs
             _prepareTransferRoutine = new PMPrepareTransferRoutine(Module, this);
             _postTransferRoutine = new PMPostTransferRoutine(Module, this);
         }
-
+        public bool GetRunningModeIsDebug()
+        {
+            if (SC.ContainsItem("System.RunningMode"))
+            {
+                return SC.GetStringValue("System.RunningMode") == ConfigEnum.Debug.ToString();
+            }
+            return true;
+        }
         private void InitData()
         {
             DATA.Subscribe($"{Module}.IsError", () => IsError);
@@ -291,7 +298,7 @@ namespace FurnaceRT.Equipments.PMs
             DATA.Subscribe($"{Module}.Status", () => StringFsmStatus);
             DATA.Subscribe($"{Module}.IsOnline", () => IsOnline);
             DATA.Subscribe($"{Module}.IsProcessing", () => IsProcessing);
-            DATA.Subscribe($"{Module}.RunningMode", () => SC.ContainsItem("System.RunningMode") ? SC.GetStringValue("System.RunningMode") == ConfigEnum.Debug.ToString() : false);
+            DATA.Subscribe($"{Module}.RunningModeIsDebug", () => GetRunningModeIsDebug());
             DATA.Subscribe($"{Module}.EnableMinics", () => SC.ContainsItem("Minics.EnableMinics") ? SC.GetValue<bool>("Minics.EnableMinics") : false);
 
             //DATA.Subscribe($"{Module}.WaferSize", () => WaferManager.Instance.GetWaferSize(_module, 0).ToString());

+ 28 - 15
Furnace/FurnaceRT/Equipments/PMs/PMN2Purge.cs

@@ -6,6 +6,7 @@ using Aitex.Core.RT.Log;
 using Aitex.Core.RT.SCCore;
 using Aitex.Core.Util;
 using DocumentFormat.OpenXml.Packaging;
+using DocumentFormat.OpenXml.Spreadsheet;
 using FurnaceRT.Devices;
 using FurnaceRT.Equipments.PMs.Devices;
 using FurnaceRT.Extraction;
@@ -49,6 +50,7 @@ namespace FurnaceRT.Equipments.PMs
         private Dictionary<string, Stopwatch> _allTimeDict = new Dictionary<string, Stopwatch>();
         private void InitN2PurgeData()
         {
+            DATA.Subscribe($"{Module}.N2PurgeLimitData", () => GetN2PurgeLimitData());
             DATA.Subscribe($"{Module}.O2DensityData", () => ConcentrationO2.Value.ToString("f3"), SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.CheckO2Location", () => GetCheckO2Location(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.O2SetCheckSetPoint", () => GetO2SetCheckSetPoint(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
@@ -125,7 +127,18 @@ namespace FurnaceRT.Equipments.PMs
             }
             SetN2PurgeModeAction(selectN2PurgeMode);
         }
-
+        private double GetN2PurgeLimitData()
+        {
+            if (_N2PurgeMode == N2PurgeModeEnum.N2PurgeMode)
+            {
+                return _n2PurgeData;
+            }
+            if (_N2PurgeMode == N2PurgeModeEnum.ATMMode)
+            {
+                return _n2ToAirData;
+            }
+            return ConcentrationO2.Value;
+        }
         private void SetN2PurgeModeAction(string selectN2PurgeMode)
         {
 
@@ -135,7 +148,7 @@ namespace FurnaceRT.Equipments.PMs
             {
                 if (_currentPhase == N2PurgeModeEnum.Manual_phase1)
                 {
-                    if (CheckN2PurgePhase2( ) && _canSwitchToPhase2)
+                    if (CheckN2PurgePhase2() && _canSwitchToPhase2)
                     {
                         LOG.Info($" N2PurgeMode Trigger from Manual_phase1 to Manual_phase2,O2:{ConcentrationO2.Value}");
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase2.ToString());
@@ -150,7 +163,7 @@ namespace FurnaceRT.Equipments.PMs
                     var second = _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Elapsed.TotalSeconds;
                     if (second >= _manualPhase2StabilityTime)
                     {
-                        if (CheckN2PurgePhase1( ))
+                        if (CheckN2PurgePhase1())
                         {
                             LOG.Info($"N2PurgeMode Trigger Manual_phase1 was triggered {second} seconds later,O2:{ConcentrationO2.Value}");
                             N2PurgeFaileAlarm.Set();
@@ -162,7 +175,7 @@ namespace FurnaceRT.Equipments.PMs
                             SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase1.ToString());
 
                         }
-                        if (CheckN2PurgePhase2( ))
+                        if (CheckN2PurgePhase2())
                         {
                             LOG.Info($"N2PurgeMode Trigger Hold Manual_phase2 was triggered {second} seconds later,O2:{ConcentrationO2.Value}");
                             _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Restart();
@@ -174,12 +187,12 @@ namespace FurnaceRT.Equipments.PMs
                 }
                 else
                 {
-                    if (CheckN2PurgePhase1( ))
+                    if (CheckN2PurgePhase1())
                     {
                         LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase1,O2:{ConcentrationO2.Value}");
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase1.ToString());
                     }
-                    else if (CheckN2PurgePhase2( ))
+                    else if (CheckN2PurgePhase2())
                     {
                         LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase2,O2:{ConcentrationO2.Value}");
 
@@ -193,7 +206,7 @@ namespace FurnaceRT.Equipments.PMs
 
                 if (_currentPhase == N2PurgeModeEnum.Manual_phase3)
                 {
-                    var checkResult = CheckN2PurgePhase4( );
+                    var checkResult = CheckN2PurgePhase4();
 
                     if (!_allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].IsRunning)
                     {
@@ -213,7 +226,7 @@ namespace FurnaceRT.Equipments.PMs
                 }
                 else if (_currentPhase == N2PurgeModeEnum.Manual_phase4)
                 {
-                    if (CheckN2PurgePhase5( ))
+                    if (CheckN2PurgePhase5())
                     {
                         LOG.Info($"N2PurgeMode Trigger from Manual_phase4 to Manual_phase5,O2:{ConcentrationO2.Value}");
 
@@ -229,7 +242,7 @@ namespace FurnaceRT.Equipments.PMs
                 }
                 else if (_currentPhase == N2PurgeModeEnum.Manual_phase5)
                 {
-                    if (CheckN2PurgePhase4( ))
+                    if (CheckN2PurgePhase4())
                     {
                         LOG.Info($"N2PurgeMode Trigger from Manual_phase5 to Manual_phase4,O2:{ConcentrationO2.Value}");
 
@@ -244,21 +257,21 @@ namespace FurnaceRT.Equipments.PMs
                 }
                 else
                 {
-                    if (CheckN2PurgePhase3( ))
+                    if (CheckN2PurgePhase3())
                     {
                         LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase3,O2:{ConcentrationO2.Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
                         return;
                     }
-                    if (CheckN2PurgePhase5( ))
+                    if (CheckN2PurgePhase5())
                     {
                         LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase5,O2:{ConcentrationO2.Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase5.ToString());
                         return;
                     }
-                    if (CheckN2PurgePhase4( ))
+                    if (CheckN2PurgePhase4())
                     {
                         LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase4,O2:{ConcentrationO2.Value}");
 
@@ -269,7 +282,7 @@ namespace FurnaceRT.Equipments.PMs
             }
             if (_N2PurgeMode == N2PurgeModeEnum.ManualMode || _N2PurgeMode == N2PurgeModeEnum.Auto)
             {
-              
+
             }
             //switch (_N2PurgeMode)
             //{
@@ -437,7 +450,7 @@ namespace FurnaceRT.Equipments.PMs
         /// </summary>
         /// <returns></returns>
 
-     
+
         private bool CheckN2PurgePhase1()
         {
             return ((int)ConcentrationO2.Value >= _n2PurgeData) && GetLADoorOpenStatus();
@@ -456,7 +469,7 @@ namespace FurnaceRT.Equipments.PMs
         }
         private bool CheckN2PurgePhase4()
         {
-      
+
             return (((int)ConcentrationO2.Value)) >= _n2ToAirData && GetLADoorOpenStatus();
         }
         private bool GetN2PurgeAIRTo20PPMStatus()

+ 1 - 1
Furnace/FurnaceUI/Views/Maintenances/BoatRobotViewModel.cs

@@ -23,7 +23,7 @@ namespace FurnaceUI.Views.Maintenances
         public string RtStatus { get; set; }
         [Subscription("PM1.IsProcessing")]
         public bool IsProcessing { get; set; }
-        [Subscription("PM1.RunningMode")]
+        [Subscription("PM1.RunningModeIsDebug")]
         public bool RunningModeIsDebug { get; set; }
         public bool IsSystemStaus => (RtStatus != "AutoRunning");
 

+ 6 - 4
Furnace/FurnaceUI/Views/Maintenances/IOListEditViewModel.cs

@@ -22,6 +22,7 @@ using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Data;
 using System.Xml.Linq;
+using static Aitex.Core.Common.DeviceData.AITConfigData;
 
 namespace FurnaceUI.Views.Maintenances
 {
@@ -32,7 +33,7 @@ namespace FurnaceUI.Views.Maintenances
     public class IOListEditViewModel : UiViewModelBase
     {
         private XDocument xmlDoc = new XDocument();
-        [Subscription("PM1.RunningMode")]
+        [Subscription("PM1.RunningModeIsDebug")]
         public bool RunningModeIsDebug { get; set; }
         public ObservableCollection<IOItem<bool>> DIs { get; private set; }
         public ObservableCollection<IOItem<bool>> DOs { get; private set; }
@@ -130,7 +131,6 @@ namespace FurnaceUI.Views.Maintenances
         protected override void OnActivate()
         {
             base.OnActivate();
-            FilterData();
 
         }
         #endregion
@@ -302,7 +302,7 @@ namespace FurnaceUI.Views.Maintenances
         private void FilterData()
         {
 
-
+            string runningMode = (string)QueryDataClient.Instance.Service.GetConfig("System.RunningMode");
             var diDoAiAoData = GetDiDoAiAo();
         
             AIViewSource = new ListCollectionView(AIs);
@@ -363,7 +363,7 @@ namespace FurnaceUI.Views.Maintenances
                 }
                 return isfilter;
             };
-            if (RunningModeIsDebug)
+            if (runningMode == ConfigEnum.Debug.ToString())
             {
                 OutViewSource = new ListCollectionView(DOs);
                 AOViewSource = new ListCollectionView(AOs);
@@ -534,6 +534,8 @@ namespace FurnaceUI.Views.Maintenances
 
             base.OnViewLoaded(view);
             view = (IOListEditView)view;
+            FilterData();
+
 
         }
         public List<string> BufferViews = new List<string>()

+ 18 - 1
Furnace/FurnaceUI/Views/Maintenances/IOListView.xaml

@@ -288,6 +288,23 @@ FontSize="30">
                 </i:EventTrigger>
             </i:Interaction.Triggers>
         </Button>
- 
+
+        <Button
+Grid.Row="6"
+Grid.Column="2"
+Content="SignalTower"
+FontFamily="Segoe"
+FontSize="30">
+            <i:Interaction.Triggers>
+                <i:EventTrigger EventName="Click">
+                    <cal:ActionMessage MethodName="BtnEdit">
+                        <cal:Parameter Value="IoSignalTower" />
+                        <cal:Parameter Value="SignalTower" />
+                        <cal:Parameter Value="SignalTower" />
+
+                    </cal:ActionMessage>
+                </i:EventTrigger>
+            </i:Interaction.Triggers>
+        </Button>
     </Grid>
 </UserControl>

+ 1 - 1
Furnace/FurnaceUI/Views/Operations/Maintenances/N2PurgeStatusView.xaml

@@ -1699,7 +1699,7 @@
                                 <TextBox
                                     Grid.Row="2"
                                     Grid.Column="2"   IsReadOnly="True"
-                                    Grid.ColumnSpan="1"   Text="{Binding O2SetCheckSetPoint,UpdateSourceTrigger=PropertyChanged}"/>
+                                    Grid.ColumnSpan="1"   Text="{Binding N2PurgeLimitData,UpdateSourceTrigger=PropertyChanged}"/>
                                 <!--<UniformGrid
                                     Grid.Row="3"
                                     Grid.ColumnSpan="3"

+ 2 - 2
Furnace/FurnaceUI/Views/Operations/Maintenances/N2PurgeStatusViewModel.cs

@@ -244,8 +244,8 @@ namespace FurnaceUI.Views.Operations.Maintenances
         #endregion
         [Subscription("PM1.CheckO2Location")]
         public string CheckO2Location { get; set; }
-        [Subscription("PM1.O2SetCheckSetPoint")]
-        public string O2SetCheckSetPoint { get; set; }
+        [Subscription("PM1.N2PurgeLimitData")]
+        public float N2PurgeLimitData { get; set; }
         [Subscription("PM1.MFM57.DeviceData")]
         public AITWaterFlowMeterData MFM57Flow { get; set; }
 

+ 4 - 98
Furnace/FurnaceUI/Views/Operations/StatusView.xaml

@@ -2270,34 +2270,8 @@
                                         IsEnabled="False"    Text="{Binding N2PurgeMode, Mode=OneWay}"/>
                                 </Border>
                             </Grid>
-                            <Grid Grid.Row="1">
-                                <Grid.ColumnDefinitions>
-                                    <ColumnDefinition Width="24*"/>
-                                    <ColumnDefinition Width="61*"/>
-                                </Grid.ColumnDefinitions>
-                                <Grid.RowDefinitions>
-                                    <RowDefinition/>
-                                    <RowDefinition/>
-                                </Grid.RowDefinitions>
-                                <TextBlock
-                                    Grid.ColumnSpan="2"
-                                    Margin="0,0,2,0"
-                                    Style="{StaticResource TextBlock_Grid}"
-                                    Text="O2 Density CtrlStatus"/>
-                                <Border
-                                    Grid.Row="1"
-                                    Grid.ColumnSpan="2"
-                                    Background="#DAE5F1"
-                                    BorderBrush="Gray"
-                                    BorderThickness="1,1,1,1">
-                                    <TextBlock
-                                        HorizontalAlignment="Center"
-                                        VerticalAlignment="Center"
-                                        Background="#DAE5F1"
-                                        IsEnabled="False"/>
-                                </Border>
-                            </Grid>
-                            <Grid Grid.Row="2" Grid.RowSpan="2">
+                     
+                            <Grid Grid.Row="1" Grid.RowSpan="2">
                                 <Grid.RowDefinitions>
                                     <RowDefinition/>
                                     <RowDefinition/>
@@ -2345,81 +2319,13 @@
                                         <TextBlock
                                             Width="100"
                                             Margin="2"
-                                            Text="{Binding O2SetCheckSetPoint,UpdateSourceTrigger=PropertyChanged}"
-                                            HorizontalAlignment="Center"
-                                            VerticalAlignment="Center"
-                                            IsEnabled="False"/>
-                                    </Border>
-                                </StackPanel>
-                                <StackPanel
-                                    Grid.Row="4"
-                                    HorizontalAlignment="Center"
-                                    Orientation="Horizontal">
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,0,1">
-                                        <TextBlock Width="83" IsEnabled="False"/>
-                                    </Border>
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,0,1">
-                                        <TextBlock
-                                            Width="50"
-                                            Margin="4,0,4,0"
-                                            IsEnabled="False"/>
-                                    </Border>
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,0,1">
-                                        <TextBlock
-                                            Width="50"
-                                            Margin="4,0,4,0"
-                                            IsEnabled="False"/>
-                                    </Border>
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,1,1">
-                                        <TextBlock Width="61" IsEnabled="False"/>
-                                    </Border>
-                                </StackPanel>
-                            </Grid>
-                            <Grid Grid.Row="4">
-                                <Grid.RowDefinitions>
-                                    <RowDefinition/>
-                                    <RowDefinition/>
-                                </Grid.RowDefinitions>
-                                <TextBlock Style="{StaticResource TextBlock_Grid}" Text="TransferRoom N2Tota(L)"/>
-                                <StackPanel
-                                    Grid.Row="1"
-                                    Width="265"
-                                    HorizontalAlignment="Center"
-                                    Orientation="Horizontal">
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,1,1">
-                                        <TextBlock
-                                            Width="127"
-                                            HorizontalAlignment="Center"
-                                            VerticalAlignment="Center"
-                                            IsEnabled="False"/>
-                                    </Border>
-                                    <TextBlock Margin="10,10,10,0" Text="/"/>
-                                    <Border
-                                        Background="#DAE5F1"
-                                        BorderBrush="Gray"
-                                        BorderThickness="1,1,1,1">
-                                        <TextBlock
-                                            Width="109"
+                                            Text="{Binding N2PurgeLimitData,UpdateSourceTrigger=PropertyChanged}"
                                             HorizontalAlignment="Center"
                                             VerticalAlignment="Center"
                                             IsEnabled="False"/>
                                     </Border>
                                 </StackPanel>
+                            
                             </Grid>
                         </Grid>
                     </Canvas>

+ 2 - 2
Furnace/FurnaceUI/Views/Operations/StatusViewModel.cs

@@ -37,8 +37,8 @@ namespace FurnaceUI.Views.Operations
         [Subscription("PM1.CheckO2Location")]
         public string CheckO2Location { get; set; }
 
-        [Subscription("PM1.O2SetCheckSetPoint")]
-        public string O2SetCheckSetPoint { get; set; }
+        [Subscription("PM1.N2PurgeLimitData")]
+        public float N2PurgeLimitData { get; set; }
 
         [Subscription("PM1.O2DensityData")]
         public string O2DensityData { get; set; }

+ 1 - 1
Furnace/FurnaceUI/Views/Operations/TransferMain/SelfCheckViewModel.cs

@@ -1084,7 +1084,7 @@ namespace FurnaceUI.Views.Operations
         }
 
         public bool IsSimulateMode { get; set; }
-        [Subscription("PM1.RunningMode")]
+        [Subscription("PM1.RunningModeIsDebug")]
         public bool RunningModeIsDebug { get; set; }
 
         protected override void OnInitialize()