Browse Source

fix 修改n2Purge日志输出

jiangjy 3 weeks ago
parent
commit
7dc6896029

+ 2 - 2
Furnace/FurnaceRT/Config/IO/ELK/DeviceModelPM.xml

@@ -946,8 +946,8 @@
 		<IoAlarmSignal id="AlarmSignalLoadingAreaExhaust1stAlarmMS5"		diSignalsplay="LoadingAreaExhaust1stAlarmMS5"			diSignal="DI_LoadingAreaExhaust1stAlarmMS5"		alarmTrigValue="true"/>
 		<IoAlarmSignal id="AlarmSignalLoadingAreaExhaust2ndAlarmMS5"		diSignalsplay="LoadingAreaExhaust2ndAlarmMS5"			diSignal="DI_LoadingAreaExhaust2ndAlarmMS5"		alarmTrigValue="true"/>
 
-		<IoAlarmSignal id="AlarmSignalLAExhaust1stAlarmMS7"		diSignalsplay="LAExhaust1stAlarmMS7"			diSignal="DI_LAExhaust1stAlarmMS7"		alarmTrigValue="true"/>
-		<IoAlarmSignal id="AlarmSignalLAExhaust2ndAlarmMS7"		diSignalsplay="LAExhaust2ndAlarmMS7"			diSignal="DI_LAExhaust2ndAlarmMS7"		alarmTrigValue="true"/>
+		<IoAlarmSignal id="AlarmSignalLAExhaust1stAlarmMS7"		diSignalsplay="LAExhaust1stAlarmMS321"			diSignal="DI_LAExhaust1stAlarmMS321"		alarmTrigValue="true"/>
+		<IoAlarmSignal id="AlarmSignalLAExhaust2ndAlarmMS7"		diSignalsplay="LAExhaust2ndAlarmMS321"			diSignal="DI_LAExhaust2ndAlarmMS321"		alarmTrigValue="true"/>
 		<IoAlarmSignal id="AlarmSignalRHC1stAlarmMS8"		diSignalsplay="RHC1stAlarmMS8"			diSignal="DI_RHC1stAlarmMS8"		alarmTrigValue="true"/>
 		<IoAlarmSignal id="AlarmSignalRHC2ndAlarmMS8"		diSignalsplay="RHC2ndAlarmMS8"			diSignal="DI_RHC2ndAlarmMS8"		alarmTrigValue="true"/>
 		<IoAlarmSignal id="AlarmSignalREV1stAlarmMS9"		diSignalsplay="REV1stAlarmMS9"			diSignal="DI_REV1stAlarmMS9"		alarmTrigValue="true"/>

+ 2 - 2
Furnace/FurnaceRT/Config/IO/ELK/_ioDefinePM.xml

@@ -171,8 +171,8 @@
 		<DI_ITEM Index="1191" Name="DI_ValveBoxExhaust2ndAlarmMS4" BufferOffset="1191" Addr="D74.7" Description="valve box exhaust 2nd alarm MS4(D74.7)" />
 		<DI_ITEM Index="1192" Name="DI_LoadingAreaExhaust1stAlarmMS5" BufferOffset="1192" Addr="D74.8" Description="loading area exhaust 1st alarm MS5(D74.8)" />
 		<DI_ITEM Index="1193" Name="DI_LoadingAreaExhaust2ndAlarmMS5" BufferOffset="1193" Addr="D74.9" Description="loading area exhaust 2nd alarm MS5(D74.9)" />
-		<DI_ITEM Index="1196" Name="DI_LAExhaust1stAlarmMS7" BufferOffset="1196" Addr="D74.12" Description="common exhaust 1st alarm MS7(D74.12)" />
-		<DI_ITEM Index="1197" Name="DI_LAExhaust2ndAlarmMS7" BufferOffset="1197" Addr="D74.13" Description="common exhaust 2nd alarm MS7(D74.13)" />
+		<DI_ITEM Index="1196" Name="DI_LAExhaust1stAlarmMS321" BufferOffset="1196" Addr="D74.12" Description="common exhaust 1st alarm MS321(D74.12)" />
+		<DI_ITEM Index="1197" Name="DI_LAExhaust2ndAlarmMS321" BufferOffset="1197" Addr="D74.13" Description="common exhaust 2nd alarm MS321(D74.13)" />
 		<DI_ITEM Index="1198" Name="DI_RHC1stAlarmMS8" BufferOffset="1198" Addr="D74.14" Description="RHC 1st alarm MS8(D74.14)" />
 		<DI_ITEM Index="1199" Name="DI_RHC2ndAlarmMS8" BufferOffset="1199" Addr="D74.15" Description="RHC 2nd alarm MS8(D74.15)" />
 		 

+ 10 - 10
Furnace/FurnaceRT/Equipments/PMs/PMModuleAlarmDefine.cs

@@ -2409,35 +2409,35 @@ namespace FurnaceRT.Equipments.PMs
                 }, () => { AlarmSignalFrontBodyExhaust2ndAlarmMS6.Reset(); return true; });
                 AlarmSignalFrontBodyExhaust2ndAlarmMS6.AlarmTriggered = alarm;
             }
-            if (AlarmSignalLAExhaust1stAlarmMS7 != null)
+            if (AlarmSignalLAExhaust1stAlarmMS321 != null)
             {
                 alarm = SubscribeAlarm(new AlarmEventItem()
                 {
-                    EventEnum = $"{Name}.AlarmSignalLAExhaust1stAlarmMS7",
-                    Description = $"L/A Exhaust 1st Alarm MS7 Trigger ",
+                    EventEnum = $"{Name}.AlarmSignalLAExhaust1stAlarmMS321",
+                    Description = $"L/A Exhaust 1st Alarm MS321 Trigger ",
                     Solution = "No information available. Press[Clear] to delete alarm message.",
                     Explaination = "No information available.",
                     AutoRecovery = false,
                     Level = EventLevel.Alarm,
                     Action = EventAction.Clear,
                     Category = "TubeAlarm",
-                }, () => { AlarmSignalLAExhaust1stAlarmMS7.Reset(); return true; });
-                AlarmSignalLAExhaust1stAlarmMS7.AlarmTriggered = alarm;
+                }, () => { AlarmSignalLAExhaust1stAlarmMS321.Reset(); return true; });
+                AlarmSignalLAExhaust1stAlarmMS321.AlarmTriggered = alarm;
             }
-            if (AlarmSignalLAExhaust2ndAlarmMS7 != null)
+            if (AlarmSignalLAExhaust2ndAlarmMS321 != null)
             {
                 alarm = SubscribeAlarm(new AlarmEventItem()
                 {
-                    EventEnum = $"{Name}.AlarmSignalLAExhaust2ndAlarmMS7",
-                    Description = $"L/A Exhaust 2nd Alarm MS7 Trigger ",
+                    EventEnum = $"{Name}.AlarmSignalLAExhaust2ndAlarmMS321",
+                    Description = $"L/A Exhaust 2nd Alarm MS321 Trigger ",
                     Solution = "No information available. Press[Clear] to delete alarm message.",
                     Explaination = "No information available.",
                     AutoRecovery = false,
                     Level = EventLevel.Alarm,
                     Action = EventAction.Clear,
                     Category = "TubeAlarm",
-                }, () => { AlarmSignalLAExhaust2ndAlarmMS7.Reset(); return true; });
-                AlarmSignalLAExhaust2ndAlarmMS7.AlarmTriggered = alarm;
+                }, () => { AlarmSignalLAExhaust2ndAlarmMS321.Reset(); return true; });
+                AlarmSignalLAExhaust2ndAlarmMS321.AlarmTriggered = alarm;
             }
             if (AlarmSignalRHC1stAlarmMS8 != null)
             {

+ 4 - 4
Furnace/FurnaceRT/Equipments/PMs/PMModuleDevice.cs

@@ -408,10 +408,10 @@ namespace FurnaceRT.Equipments.PMs
         public IoAlarmSignal AlarmSignalFrontBodyExhaust1stAlarmMS6 { get; set; }
         [Tag("AlarmSignalFrontBodyExhaust2ndAlarmMS6")]
         public IoAlarmSignal AlarmSignalFrontBodyExhaust2ndAlarmMS6 { get; set; }
-        [Tag("AlarmSignalLAExhaust1stAlarmMS7")]
-        public IoAlarmSignal AlarmSignalLAExhaust1stAlarmMS7 { get; set; }
-        [Tag("AlarmSignalLAExhaust2ndAlarmMS7")]
-        public IoAlarmSignal AlarmSignalLAExhaust2ndAlarmMS7 { get; set; }
+        [Tag("AlarmSignalLAExhaust1stAlarmMS321")]
+        public IoAlarmSignal AlarmSignalLAExhaust1stAlarmMS321 { get; set; }
+        [Tag("AlarmSignalLAExhaust2ndAlarmMS321")]
+        public IoAlarmSignal AlarmSignalLAExhaust2ndAlarmMS321 { get; set; }
         [Tag("AlarmSignalRHC1stAlarmMS8")]
         public IoAlarmSignal AlarmSignalRHC1stAlarmMS8 { get; set; }
         [Tag("AlarmSignalRHC2ndAlarmMS8")]

+ 65 - 61
Furnace/FurnaceRT/Equipments/PMs/PMN2Purge.cs

@@ -57,7 +57,7 @@ namespace FurnaceRT.Equipments.PMs
 
 
 
-           
+
             var selectN2PurgeMode = SC.ContainsItem("PM1.SelectN2PurgeMode") ? SC.GetStringValue("PM1.SelectN2PurgeMode") : "";
             if (!string.IsNullOrEmpty(selectN2PurgeMode))
             {
@@ -98,11 +98,11 @@ namespace FurnaceRT.Equipments.PMs
                 {"Foup1",()=> GetN2PurgeFoup1Status()},
                 {"Foup2",()=> GetN2PurgeFoup2Status()},
 
-                {N2PurgeModeEnum.Manual_phase1.ToString(),()=>  GetN2PurgePhase1() },
-                {N2PurgeModeEnum.Manual_phase2.ToString(),()=>  GetN2PurgePhase2()},
-                {N2PurgeModeEnum.Manual_phase3.ToString(),()=>  GetN2PurgePhase3() },
-                {N2PurgeModeEnum.Manual_phase4.ToString(),()=>  GetN2PurgePhase4() },
-                {N2PurgeModeEnum.Manual_phase5.ToString(),()=>  GetN2PurgePhase5() },
+                {N2PurgeModeEnum.Manual_phase1.ToString(),()=>  CheckN2PurgePhase1(out float o2Value) },
+                {N2PurgeModeEnum.Manual_phase2.ToString(),()=>  CheckN2PurgePhase2(out float o2Value)},
+                {N2PurgeModeEnum.Manual_phase3.ToString(),()=>  CheckN2PurgePhase3(out float o2Value) },
+                {N2PurgeModeEnum.Manual_phase4.ToString(),()=>  CheckN2PurgePhase4(out float o2Value) },
+                {N2PurgeModeEnum.Manual_phase5.ToString(),()=>  CheckN2PurgePhase5(out float o2Value) },
 
             };
             _allTimeDict = new Dictionary<string, Stopwatch>()
@@ -135,9 +135,9 @@ namespace FurnaceRT.Equipments.PMs
             {
                 if (_currentPhase == N2PurgeModeEnum.Manual_phase1)
                 {
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase2.ToString()].Invoke() && _canSwitchToPhase2)
+                    if (CheckN2PurgePhase2(out float o2Value) && _canSwitchToPhase2)
                     {
-                        LOG.Info($" N2PurgeMode Trigger from Manual_phase1 to Manual_phase2,O2:{GetO2Density()}");
+                        LOG.Info($" N2PurgeMode Trigger from Manual_phase1 to Manual_phase2,O2:{o2Value}");
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase2.ToString());
                     }
                 }
@@ -150,9 +150,9 @@ namespace FurnaceRT.Equipments.PMs
                     var second = _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Elapsed.TotalSeconds;
                     if (second >= _manualPhase2StabilityTime)
                     {
-                        if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase1.ToString()].Invoke())
+                        if (CheckN2PurgePhase1(out float o2Value))
                         {
-                            LOG.Info($"N2PurgeMode Trigger Manual_phase1 was triggered {_manualPhase2StabilityTime} seconds later,O2:{GetO2Density()}");
+                            LOG.Info($"N2PurgeMode Trigger Manual_phase1 was triggered {second} seconds later,O2:{o2Value}");
                             N2PurgeFaileAlarm.Set();
 
                             _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Restart();
@@ -162,9 +162,9 @@ namespace FurnaceRT.Equipments.PMs
                             SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase1.ToString());
 
                         }
-                        if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase2.ToString()].Invoke())
+                        if (CheckN2PurgePhase2(out o2Value))
                         {
-                            LOG.Info($"N2PurgeMode Trigger Hold Manual_phase2 was triggered {_manualPhase2StabilityTime} seconds later,O2:{GetO2Density()}");
+                            LOG.Info($"N2PurgeMode Trigger Hold Manual_phase2 was triggered {second} seconds later,O2:{o2Value}");
                             _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Restart();
                             _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Stop();
                             _canSwitchToPhase2 = false;
@@ -174,14 +174,14 @@ namespace FurnaceRT.Equipments.PMs
                 }
                 else
                 {
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase1.ToString()].Invoke())
+                    if (CheckN2PurgePhase1(out float o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase1,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase1,O2:{o2Value}");
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase1.ToString());
                     }
-                    else if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase2.ToString()].Invoke())
+                    else if (CheckN2PurgePhase2(out o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase2,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase2,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase2.ToString());
 
@@ -193,73 +193,72 @@ namespace FurnaceRT.Equipments.PMs
 
                 if (_currentPhase == N2PurgeModeEnum.Manual_phase3)
                 {
+                    var checkResult = CheckN2PurgePhase4(out float o2Value);
 
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase4.ToString()].Invoke())
+                    if (!_allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].IsRunning)
                     {
-                        if (!_allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].IsRunning)
-                        {
-                            _allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].Restart();
-                        }
-                        var second = _allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].Elapsed.TotalSeconds;
-
-                        if (second >= _manualPhase4StabilityTime)
-                        {
-                            LOG.Info($"N2PurgeMode Trigger from  Manual_phase3 to Manual_phase4 is triggered {_manualPhase4StabilityTime} seconds later,O2:{GetO2Density()}");
+                        _allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].Restart();
+                    }
+                    var second = _allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].Elapsed.TotalSeconds;
 
-                            SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase4.ToString());
-                            _allTimeDict[N2PurgeModeEnum.Manual_phase4.ToString()].Stop();
-                        }
+                    if (second >= _manualPhase4StabilityTime && checkResult)
+                    {
+                        LOG.Info($"N2PurgeMode Trigger from  Manual_phase3 to Manual_phase4 is triggered {second} seconds later,O2:{o2Value}");
 
+                        SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase4.ToString());
+                        _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Restart();
+                        _allTimeDict[N2PurgeModeEnum.Manual_phase2.ToString()].Stop();
                     }
+
                 }
                 else if (_currentPhase == N2PurgeModeEnum.Manual_phase4)
                 {
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase5.ToString()].Invoke())
+                    if (CheckN2PurgePhase5(out float o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger from Manual_phase4 to Manual_phase5,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger from Manual_phase4 to Manual_phase5,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase5.ToString());
                     }
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase3.ToString()].Invoke())
-                    {
-                        LOG.Info($"N2PurgeMode Trigger from Manual_phase4 to Manual_phase3,O2:{GetO2Density()}");
+                    //if (CheckN2PurgePhase3(out o2Value))
+                    //{
+                    //    LOG.Info($"N2PurgeMode Trigger from Manual_phase4 to Manual_phase3,O2:{o2Value}");
 
-                        SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
-                    }
+                    //    SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
+                    //}
 
                 }
                 else if (_currentPhase == N2PurgeModeEnum.Manual_phase5)
                 {
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase4.ToString()].Invoke())
+                    if (CheckN2PurgePhase4(out float o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger from Manual_phase5 to Manual_phase4,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger from Manual_phase5 to Manual_phase4,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase4.ToString());
                     }
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase3.ToString()].Invoke())
-                    {
-                        LOG.Info($"N2PurgeMode Trigger from Manual_phase5 to Manual_phase3,O2:{GetO2Density()}");
+                    //if (CheckN2PurgePhase3(out o2Value))
+                    //{
+                    //    LOG.Info($"N2PurgeMode Trigger from Manual_phase5 to Manual_phase3,O2:{o2Value}");
 
-                        SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
-                    }
+                    //    SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
+                    //}
                 }
                 else
                 {
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase3.ToString()].Invoke())
+                    if (CheckN2PurgePhase3(out float o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase3,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase3,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase3.ToString());
                     }
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase5.ToString()].Invoke())
+                    if (CheckN2PurgePhase5(out o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase5,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase5,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase5.ToString());
                     }
-                    if (_n2PurgeSequenceStatus[N2PurgeModeEnum.Manual_phase4.ToString()].Invoke())
+                    if (CheckN2PurgePhase4(out o2Value))
                     {
-                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase4,O2:{GetO2Density()}");
+                        LOG.Info($"N2PurgeMode Trigger Directly  triggered Manual_phase4,O2:{o2Value}");
 
                         SetN2PurgeValveData(N2PurgeModeEnum.Manual_phase4.ToString());
                     }
@@ -337,7 +336,7 @@ namespace FurnaceRT.Equipments.PMs
                 item.Value.Stop();
                 item.Value.Reset();
             }
-
+            _canSwitchToPhase2 = true;
         }
         private void SetN2PurgeValveData(string mode, string msg = "")
         {
@@ -431,30 +430,35 @@ namespace FurnaceRT.Equipments.PMs
         /// 获取当前O2浓度
         /// </summary>
         /// <returns></returns>
-      
+
         private float GetO2Density()
         {
             return IO.AI[$"PM1.AI_O2Concentration"].FloatValue;
         }
-        private bool GetN2PurgePhase1()
+        private bool CheckN2PurgePhase1(out float o2Value)
         {
-            return ((int)GetO2Density() >= _n2PurgeData) && GetLADoorOpenStatus();
+            o2Value = GetO2Density();
+            return ((int)o2Value >= _n2PurgeData) && GetLADoorOpenStatus();
         }
-        private bool GetN2PurgePhase2()
+        private bool CheckN2PurgePhase2(out float o2Value)
         {
-            return ((int)GetO2Density() < _n2PurgeData) && GetLADoorOpenStatus();
+            o2Value = GetO2Density();
+            return (o2Value < _n2PurgeData) && GetLADoorOpenStatus();
         }
-        private bool GetN2PurgePhase3()
+        private bool CheckN2PurgePhase3(out float o2Value)
         {
-            return ((int)GetO2Density()) < _n2ToAirData && GetLADoorOpenStatus();
+            o2Value = GetO2Density();
+            return ((int)o2Value) < _n2ToAirData && GetLADoorOpenStatus();
         }
-        private bool GetN2PurgePhase5()
+        private bool CheckN2PurgePhase5(out float o2Value)
         {
-            return ((int)GetO2Density()) >= _n2ToAirData && !GetLADoorOpenStatus();
+            o2Value = GetO2Density();
+            return ((int)o2Value) >= _n2ToAirData && !GetLADoorOpenStatus();
         }
-        private bool GetN2PurgePhase4()
+        private bool CheckN2PurgePhase4(out float o2Value)
         {
-            return ((int)GetO2Density()) >= _n2ToAirData && GetLADoorOpenStatus();
+            o2Value = GetO2Density();
+            return ((int)o2Value) >= _n2ToAirData && GetLADoorOpenStatus();
         }
         private bool GetN2PurgeAIRTo20PPMStatus()
         {