Browse Source

fix add SelectN2PurgeModePhase sc

jiangjy 3 weeks ago
parent
commit
d7a8e008e6
2 changed files with 19 additions and 13 deletions
  1. 1 0
      Furnace/FurnaceRT/Config/System.sccfg
  2. 18 13
      Furnace/FurnaceRT/Equipments/PMs/PMN2Purge.cs

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

@@ -4580,6 +4580,7 @@
 		<!--是否开启Recipe 关联N2PurgeMode/ATMMode功能-->
 		<config default="true" name="RecipeRelevancyN2Purge" description="Is Open Recipe Relevancy N2Purge" max="" min="" paramter="true;false" tag="ReadOnlySelection" unit="" type="Bool" />
 		<config default="" name="SelectN2PurgeMode" description="" max="" min="" paramter="" tag="" unit="" type="String" visible="false"/>
+		<config default="" name="SelectN2PurgeModePhase" description="" max="" min="" paramter="" tag="" unit="" type="String" visible="false"/>
 		<config default="Furnace" name="RecipeChamberType" description="Recipe Chamber Type" max="" min="" paramter="" tag="" unit="" type="String" />
 		<!--<config default="147" name="SlotCount" description="Cassette Slot Count" max="150" min="1" paramter="" tag="" unit=""  type="Integer" />-->
 		<config default="10" name="HomeTimeout" description="Home Time Out" max="60" min="1" paramter="" tag="" unit="s" type="Integer" />

+ 18 - 13
Furnace/FurnaceRT/Equipments/PMs/PMN2Purge.cs

@@ -49,7 +49,7 @@ namespace FurnaceRT.Equipments.PMs
         private Dictionary<string, Stopwatch> _allTimeDict = new Dictionary<string, Stopwatch>();
         private void InitN2PurgeData()
         {
-            DATA.Subscribe($"{Module}.O2DensityData", () => GetO2DensityData(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
+            DATA.Subscribe($"{Module}.O2DensityData", () => GetO2Density().ToString("f3"), SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.CheckO2Location", () => GetCheckO2Location(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
             DATA.Subscribe($"{Module}.O2SetCheckSetPoint", () => GetO2SetCheckSetPoint(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
 
@@ -57,6 +57,7 @@ namespace FurnaceRT.Equipments.PMs
 
 
 
+           
             var selectN2PurgeMode = SC.ContainsItem("PM1.SelectN2PurgeMode") ? SC.GetStringValue("PM1.SelectN2PurgeMode") : "";
             if (!string.IsNullOrEmpty(selectN2PurgeMode))
             {
@@ -66,6 +67,12 @@ namespace FurnaceRT.Equipments.PMs
                 }
             }
 
+            var currentPhase = SC.ContainsItem("PM1.SelectN2PurgeModePhase") ? SC.GetStringValue("PM1.SelectN2PurgeModePhase") : "";
+            if (!string.IsNullOrEmpty(currentPhase))
+            {
+                var enumCurrentPhase = (N2PurgeModeEnum)Enum.Parse(typeof(N2PurgeModeEnum), currentPhase);
+                _currentPhase = enumCurrentPhase;
+            }
         }
 
         private void InitN2PurgeConfigData()
@@ -339,6 +346,10 @@ namespace FurnaceRT.Equipments.PMs
 
             _currentPhase = (N2PurgeModeEnum)Enum.Parse(typeof(N2PurgeModeEnum), mode);
 
+            if (SC.ContainsItem("PM1.SelectN2PurgeModePhase"))
+            {
+                SC.SetItemValue("PM1.SelectN2PurgeModePhase", mode);
+            }
             foreach (var operateItem in value.Item2)
             {
                 if (operateItem.Item1 is IoMFC)
@@ -420,36 +431,30 @@ namespace FurnaceRT.Equipments.PMs
         /// 获取当前O2浓度
         /// </summary>
         /// <returns></returns>
-        private string GetO2DensityData()
-        {
-            var result = "";
-
-            result = GetO2Density().ToString("f3");
-            return result;
-        }
+      
         private float GetO2Density()
         {
             return IO.AI[$"PM1.AI_O2Concentration"].FloatValue;
         }
         private bool GetN2PurgePhase1()
         {
-            return (GetO2Density() >= _n2PurgeData) && GetLADoorOpenStatus();
+            return ((int)GetO2Density() >= _n2PurgeData) && GetLADoorOpenStatus();
         }
         private bool GetN2PurgePhase2()
         {
-            return (GetO2Density() < _n2PurgeData) && GetLADoorOpenStatus();
+            return ((int)GetO2Density() < _n2PurgeData) && GetLADoorOpenStatus();
         }
         private bool GetN2PurgePhase3()
         {
-            return GetO2Density() < _n2ToAirData && GetLADoorOpenStatus();
+            return ((int)GetO2Density()) < _n2ToAirData && GetLADoorOpenStatus();
         }
         private bool GetN2PurgePhase5()
         {
-            return GetO2Density() >= _n2ToAirData && !GetLADoorOpenStatus();
+            return ((int)GetO2Density()) >= _n2ToAirData && !GetLADoorOpenStatus();
         }
         private bool GetN2PurgePhase4()
         {
-            return GetO2Density() >= _n2ToAirData && GetLADoorOpenStatus();
+            return ((int)GetO2Density()) >= _n2ToAirData && GetLADoorOpenStatus();
         }
         private bool GetN2PurgeAIRTo20PPMStatus()
         {