Browse Source

fix add bufferPurge报警

jiangjy 2 weeks ago
parent
commit
a69c6f08c3

+ 17 - 1
Furnace/FurnaceRT/Config/IO/ELK/DeviceModelPM.xml

@@ -990,7 +990,23 @@
 		<IoAlarmSignal id="AlarmSignalFIMS2LatchKeyOffRunningError" diSignalsplay="E0031)FIMS2 Latch Key Off Running Error" diSignal="DI_FIMS2LatchKeyOffRunningError" alarmTrigValue="true" />
 		<IoAlarmSignal id="AlarmSignalFIMS2N2ReleaseRunningError" diSignalsplay="E0032)FIMS2 N2 Release Running Error" diSignal="DI_FIMS2N2ReleaseRunningError" alarmTrigValue="true" />
 		<IoAlarmSignal id="AlarmSignalFIMS2N2SealRunningError" diSignalsplay="E0033)FIMS2 N2 Seal Running Error" diSignal="DI_FIMS2N2SealRunningError" alarmTrigValue="true" />
-		
+
+		<IoAlarmSignal id="AlarmSignalBufferA1N2LowPressureError" diSignalsplay="Buffer A1 N2 Low Pressure Error" diSignal="DI_BufferA1N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferB1N2LowPressureError" diSignalsplay="Buffer B1 N2 Low Pressure Error" diSignal="DI_BufferB1N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferC1N2LowPressureError" diSignalsplay="Buffer C1 N2 Low Pressure Error" diSignal="DI_BufferC1N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferD1N2LowPressureError" diSignalsplay="Buffer D1 N2 Low Pressure Error" diSignal="DI_BufferD1N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferA2N2LowPressureError" diSignalsplay="Buffer A2 N2 Low Pressure Error" diSignal="DI_BufferA2N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferB2N2LowPressureError" diSignalsplay="Buffer B2 N2 Low Pressure Error" diSignal="DI_BufferB2N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferC2N2LowPressureError" diSignalsplay="Buffer C2 N2 Low Pressure Error" diSignal="DI_BufferC2N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferD2N2LowPressureError" diSignalsplay="Buffer D2 N2 Low Pressure Error" diSignal="DI_BufferD2N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferA3N2LowPressureError" diSignalsplay="Buffer A3 N2 Low Pressure Error" diSignal="DI_BufferA3N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferB3N2LowPressureError" diSignalsplay="Buffer B3 N2 Low Pressure Error" diSignal="DI_BufferB3N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferC3N2LowPressureError" diSignalsplay="Buffer C3 N2 Low Pressure Error" diSignal="DI_BufferC3N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferD3N2LowPressureError" diSignalsplay="Buffer D3 N2 Low Pressure Error" diSignal="DI_BufferD3N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferA4N2LowPressureError" diSignalsplay="Buffer A4 N2 Low Pressure Error" diSignal="DI_BufferA4N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferB4N2LowPressureError" diSignalsplay="Buffer B4 N2 Low Pressure Error" diSignal="DI_BufferB4N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferC4N2LowPressureError" diSignalsplay="Buffer C4 N2 Low Pressure Error" diSignal="DI_BufferC4N2LowPressureError" alarmTrigValue="true" />
+		<IoAlarmSignal id="AlarmSignalBufferD4N2LowPressureError" diSignalsplay="Buffer D4 N2 Low Pressure Error" diSignal="DI_BufferD4N2LowPressureError" alarmTrigValue="true" />
 		
 		<IoAlarmSignal id="AlarmSignalFBFrontDoorSwitch"		diSignalsplay="FBFrontDoorSwitch"			diSignal="DI_Frontbodydoorswitch"		alarmTrigValue="true"/>
 		<IoAlarmSignal id="AlarmSignalGLBoxPG1CNT1Alarm"		diSignalsplay="GLBoxPG1CNT1Alarm"			diSignal="DI_GLBoxPG1CNT1Alarm"		alarmTrigValue="true"/>

+ 17 - 0
Furnace/FurnaceRT/Config/IO/ELK/_ioDefinePM.xml

@@ -146,6 +146,23 @@
 		<DI_ITEM Index="208" Name="DI_FIMS2N2ReleaseRunningError" BufferOffset="208" Addr="D13.0" Description="E0032)FIMS2 N2 Release Running Error(D13.0)" />
 		<DI_ITEM Index="209" Name="DI_FIMS2N2SealRunningError" BufferOffset="209" Addr="D13.1" Description="E0033)FIMS2 N2 Seal Running Error(D13.1)" />
 		
+		<DI_ITEM Index="224" Name="DI_BufferA1N2LowPressureError" BufferOffset="224" Addr="D14.0" Description="E0070)Buffer A1 N2 Low Pressure Error(D14.0)" />
+		<DI_ITEM Index="225" Name="DI_BufferB1N2LowPressureError" BufferOffset="225" Addr="D14.1" Description="E0071)Buffer B1 N2 Low Pressure Error(D14.1)" />
+		<DI_ITEM Index="226" Name="DI_BufferC1N2LowPressureError" BufferOffset="226" Addr="D14.2" Description="E0072)Buffer C1 N2 Low Pressure Error(D14.2)" />
+		<DI_ITEM Index="227" Name="DI_BufferD1N2LowPressureError" BufferOffset="227" Addr="D14.3" Description="E0073)Buffer D1 N2 Low Pressure Error(D14.3)" />
+		<DI_ITEM Index="228" Name="DI_BufferA2N2LowPressureError" BufferOffset="228" Addr="D14.4" Description="E0074)Buffer A2 N2 Low Pressure Error(D14.4)" />
+		<DI_ITEM Index="229" Name="DI_BufferB2N2LowPressureError" BufferOffset="229" Addr="D14.5" Description="E0075)Buffer B2 N2 Low Pressure Error(D14.5)" />
+		<DI_ITEM Index="230" Name="DI_BufferC2N2LowPressureError" BufferOffset="230" Addr="D14.6" Description="E0076)Buffer C2 N2 Low Pressure Error(D14.6)" />
+		<DI_ITEM Index="231" Name="DI_BufferD2N2LowPressureError" BufferOffset="231" Addr="D14.7" Description="E0077)Buffer D2 N2 Low Pressure Error(D14.7)" />
+		<DI_ITEM Index="232" Name="DI_BufferA3N2LowPressureError" BufferOffset="232" Addr="D14.8" Description="E0078)Buffer A3 N2 Low Pressure Error(D14.8)" />
+		<DI_ITEM Index="233" Name="DI_BufferB3N2LowPressureError" BufferOffset="233" Addr="D14.9" Description="E0079)Buffer B3 N2 Low Pressure Error(D14.9)" />
+		<DI_ITEM Index="234" Name="DI_BufferC3N2LowPressureError" BufferOffset="234" Addr="D14.10" Description="E0080)Buffer C3 N2 Low Pressure Error(D14.10)" />
+		<DI_ITEM Index="235" Name="DI_BufferD3N2LowPressureError" BufferOffset="235" Addr="D14.11" Description="E0081)Buffer D3 N2 Low Pressure Error(D14.11)" />
+		<DI_ITEM Index="236" Name="DI_BufferA4N2LowPressureError" BufferOffset="236" Addr="D14.12" Description="E0082)Buffer A4 N2 Low Pressure Error(D14.12)" />
+		<DI_ITEM Index="237" Name="DI_BufferB4N2LowPressureError" BufferOffset="237" Addr="D14.13" Description="E0083)Buffer B4 N2 Low Pressure Error(D14.13)" />
+		<DI_ITEM Index="238" Name="DI_BufferC4N2LowPressureError" BufferOffset="238" Addr="D14.14" Description="E0084)Buffer C4 N2 Low Pressure Error(D14.14)" />
+		<DI_ITEM Index="239" Name="DI_BufferD4N2LowPressureError" BufferOffset="239" Addr="D14.15" Description="E0085)Buffer D4 N2 Low Pressure Error(D14.15)" />
+		
 		
 		
 		

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


+ 274 - 2
Furnace/FurnaceRT/Equipments/PMs/PMModuleAlarmDefine.cs

@@ -289,6 +289,22 @@ namespace FurnaceRT.Equipments.PMs
         public AlarmEventItem SensorAlarmSignalFIMS2LatchKeyOffRunningError { get; set; }
         public AlarmEventItem SensorAlarmSignalFIMS2N2ReleaseRunningError { get; set; }
         public AlarmEventItem SensorAlarmSignalFIMS2N2SealRunningError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferA1N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferB1N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferC1N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferD1N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferA2N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferB2N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferC2N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferD2N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferA3N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferB3N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferC3N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferD3N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferA4N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferB4N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferC4N2LowPressureError { get; set; }
+        public AlarmEventItem SensorAlarmSignalBufferD4N2LowPressureError { get; set; }
 
         #endregion
 
@@ -299,7 +315,7 @@ namespace FurnaceRT.Equipments.PMs
         private void InitAlarmEvent()
         {
 
-            InitFIMSAlarmEvent();
+            InitIoAlarmSignalAlarmEvent();
             Mini8ConnectAlarm = SubscribeAlarm(new AlarmEventItem()
             {
                 EventEnum = $"{Name}.Mini8ConnectAlarm",
@@ -7516,8 +7532,264 @@ namespace FurnaceRT.Equipments.PMs
             return Tuple.Create(auxWarning, auxAlarm, tcAlarm);
         }
 
-        private void InitFIMSAlarmEvent()
+        private void InitIoAlarmSignalAlarmEvent()
         {
+            if (AlarmSignalBufferA1N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferA1N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferA1N2LowPressureError",
+                    Description = "Buffer A1 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferA1N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferA1N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferA1N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferB1N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferB1N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferB1N2LowPressureError",
+                    Description = "Buffer B1 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferB1N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferB1N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferB1N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferC1N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferC1N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferC1N2LowPressureError",
+                    Description = "Buffer C1 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferC1N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferC1N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferC1N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferD1N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferD1N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferD1N2LowPressureError",
+                    Description = "Buffer D1 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferD1N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferD1N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferD1N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferA2N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferA2N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferA2N2LowPressureError",
+                    Description = "Buffer A2 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferA2N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferA2N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferA2N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferB2N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferB2N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferB2N2LowPressureError",
+                    Description = "Buffer B2 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferB2N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferB2N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferB2N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferC2N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferC2N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferC2N2LowPressureError",
+                    Description = "Buffer C2 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferC2N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferC2N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferC2N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferD2N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferD2N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferD2N2LowPressureError",
+                    Description = "Buffer D2 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferD2N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferD2N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferD2N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferA3N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferA3N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferA3N2LowPressureError",
+                    Description = "Buffer A3 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferA3N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferA3N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferA3N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferB3N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferB3N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferB3N2LowPressureError",
+                    Description = "Buffer B3 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferB3N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferB3N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferB3N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferC3N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferC3N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferC3N2LowPressureError",
+                    Description = "Buffer C3 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferC3N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferC3N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferC3N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferD3N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferD3N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferD3N2LowPressureError",
+                    Description = "Buffer D3 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferD3N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferD3N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferD3N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferA4N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferA4N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferA4N2LowPressureError",
+                    Description = "Buffer A4 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferA4N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferA4N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferA4N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferB4N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferB4N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferB4N2LowPressureError",
+                    Description = "Buffer B4 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferB4N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferB4N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferB4N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferC4N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferC4N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferC4N2LowPressureError",
+                    Description = "Buffer C4 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferC4N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferC4N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferC4N2LowPressureError;
+            }
+
+            if (AlarmSignalBufferD4N2LowPressureError != null)
+            {
+                SensorAlarmSignalBufferD4N2LowPressureError = SubscribeAlarm(new AlarmEventItem()
+                {
+                    EventEnum = $"{Name}.AlarmSignalBufferD4N2LowPressureError",
+                    Description = "Buffer D4 N2 Low Pressure Error",
+                    Solution = "No information available. Press [Clear] to delete alarm message.",
+                    Explaination = "No information available.",
+                    AutoRecovery = true,
+                    Level = EventLevel.Alarm,
+                    Action = EventAction.Clear,
+                    Category = "TubeAlarm",
+                }, () => { AlarmSignalBufferD4N2LowPressureError.Reset(); return true; });
+                AlarmSignalBufferD4N2LowPressureError.AlarmTriggered = SensorAlarmSignalBufferD4N2LowPressureError;
+            }
+
 
             if (AlarmSignalFIMS1LoadRunningError != null)
             {

+ 32 - 0
Furnace/FurnaceRT/Equipments/PMs/PMModuleDevice.cs

@@ -246,6 +246,38 @@ namespace FurnaceRT.Equipments.PMs
 
         #region AlarmSignal
 
+        [Tag("AlarmSignalBufferA1N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferA1N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferB1N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferB1N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferC1N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferC1N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferD1N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferD1N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferA2N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferA2N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferB2N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferB2N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferC2N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferC2N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferD2N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferD2N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferA3N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferA3N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferB3N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferB3N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferC3N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferC3N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferD3N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferD3N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferA4N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferA4N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferB4N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferB4N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferC4N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferC4N2LowPressureError { get; set; }
+        [Tag("AlarmSignalBufferD4N2LowPressureError")]
+        public IoAlarmSignal AlarmSignalBufferD4N2LowPressureError { get; set; }
         [Tag("AlarmSignalFIMS1LoadRunningError")]
         public IoAlarmSignal AlarmSignalFIMS1LoadRunningError { get; set; }
         [Tag("AlarmSignalFIMS1UnloadRunningError")]