Quellcode durchsuchen

fix minics报警区分gasline与forline

jiangjy vor 1 Tag
Ursprung
Commit
826d9390ed

+ 79 - 6
Furnace/FurnaceRT/Equipments/PMs/PMModuleAlarmDefine.cs

@@ -191,13 +191,13 @@ namespace FurnaceRT.Equipments.PMs
         public AlarmEventItem ExecuteAbortRecipeFailAlarm { get; set; }
         public AlarmEventItem ShutterMoveFailedForInterlock { get; set; }
         public AlarmEventItem N2PurgeFaileAlarm { get; set; }
-        //public AlarmEventItem GasLineTcBrokenAlarm { get; set; }
-        //public AlarmEventItem GasLineCapsOverFlownAlarm { get; set; }
-        //public AlarmEventItem GasLineFloorOverFlowAlarm { get; set; }
+        public AlarmEventItem GasLineTcBrokenAlarm { get; set; }
+        public AlarmEventItem GasLineCapsOverFlownAlarm { get; set; }
+        public AlarmEventItem GasLineFloorOverFlowAlarm { get; set; }
 
-        //public AlarmEventItem ForLineTcBrokenAlarm { get; set; }
-        //public AlarmEventItem ForLineCapsOverFlownAlarm { get; set; }
-        //public AlarmEventItem ForLineFloorOverFlowAlarm { get; set; }
+        public AlarmEventItem ForLineTcBrokenAlarm { get; set; }
+        public AlarmEventItem ForLineCapsOverFlownAlarm { get; set; }
+        public AlarmEventItem ForLineFloorOverFlowAlarm { get; set; }
 
         #region Sensor alarm       
         public AlarmEventItem SensorTHMCONAlarm { get; set; }
@@ -328,6 +328,7 @@ namespace FurnaceRT.Equipments.PMs
         {
             InitSensorAlarmEvent();
             InitIoAlarmSignalAlarmEvent();
+            InitMinicsAlarmEvent();
             FurnaceTempabnormalAlarm = SubscribeAlarm(new AlarmEventItem()
             {
                 EventEnum = $"{Name}.FurnaceTempabnormalAlarm",
@@ -339,6 +340,8 @@ namespace FurnaceRT.Equipments.PMs
                 Action = EventAction.Clear,
                 Category = "TubeAlarm",
             }, () => { return true; });
+
+
             Mini8ConnectAlarm = SubscribeAlarm(new AlarmEventItem()
             {
                 EventEnum = $"{Name}.Mini8ConnectAlarm",
@@ -7554,6 +7557,76 @@ namespace FurnaceRT.Equipments.PMs
 
             return Tuple.Create(auxWarning, auxAlarm, tcAlarm);
         }
+        private void InitMinicsAlarmEvent()
+        {
+            GasLineCapsOverFlownAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.GasLineCapsOverFlownAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+            GasLineFloorOverFlowAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.GasLineFloorOverFlowAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+            GasLineTcBrokenAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.GasLineTcBrokenAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+
+            ForLineCapsOverFlownAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.ForLineCapsOverFlownAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+            ForLineFloorOverFlowAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.ForLineFloorOverFlowAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+            ForLineTcBrokenAlarm = SubscribeAlarm(new AlarmEventItem()
+            {
+                EventEnum = $"{Name}.ForLineTcBrokenAlarm",
+                Description = $"",
+                Solution = "No information available. Press[Clear] to delete alarm message.",
+                Explaination = "No information available.",
+                AutoRecovery = true,
+                Level = EventLevel.Alarm,
+                Action = EventAction.Clear,
+                Category = "TubeAlarm",
+            }, () => { return true; });
+        }
         private void InitSensorAlarmEvent()
         {
             foreach (var item in _sensors)

+ 21 - 17
Furnace/FurnaceRT/Extraction/MinicsManager.cs

@@ -35,7 +35,7 @@ namespace FurnaceRT.Extraction
             communicator.Initialize(this);
             SWJConnectedMinics(ip, port);
 
-            AlarmIndefinx();
+            //  AlarmIndefinx();
         }
 
         public void SWJConnectedMinics(string ip, int port)
@@ -96,10 +96,22 @@ namespace FurnaceRT.Extraction
 
         }
 
-        public void ChannelAlarmNotify(ST_ALARM alarm)
+        public void Mini8ConnectNotify(byte mini8Index)
         {
+            var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
+            pm.Mini8ConnectAlarm.Reset();
+        }
 
+        public void Mini8DisconnectNotify(byte mini8)
+        {
+            var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
+            pm.Mini8ConnectAlarm.Set();
+        }
+
+        public void ChannelAlarmNotify(ST_ALARM_Notify alarm)
+        {
             var gasLineHeaterIndex = $"{alarm.Mini8Index}_{alarm.ChannelIndex}";
+            var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
             lock (_lock)
             {
                 var alarmValue = MinicsAlarmDic[gasLineHeaterIndex];
@@ -109,33 +121,25 @@ namespace FurnaceRT.Extraction
                 {
                     case RTCommunicatorBase.AlarmType.CapsOverFlow:
                         message = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} Feedback:{alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
-                        alarmValue.Item1.Set(message);
+                        var alarmEvent = alarm.HeaterType == HeaterType.GaseLine ? pm.GasLineCapsOverFlownAlarm : pm.ForLineCapsOverFlownAlarm;
+                        alarmEvent.Set(message);
                         break;
                     case RTCommunicatorBase.AlarmType.FloorOverFlow:
                         message = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} Feedback:{alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
-                        alarmValue.Item2.Set(message);
+                        alarmEvent = alarm.HeaterType == HeaterType.GaseLine ? pm.GasLineFloorOverFlowAlarm : pm.ForLineFloorOverFlowAlarm;
+                        alarmEvent.Set(message);
                         break;
                     case RTCommunicatorBase.AlarmType.TcBroken:
                         message = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} is TcBroken";
-                        alarmValue.Item3.Set(message);
+                        alarmEvent = alarm.HeaterType == HeaterType.GaseLine ? pm.GasLineTcBrokenAlarm : pm.ForLineTcBrokenAlarm;
+                        alarmEvent.Set(message);
                         break;
                     default:
                         // Handle other cases or log an error
                         break;
                 }
-            }
-        }
-
-        public void Mini8ConnectNotify(byte mini8Index)
-        {
-            var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
-            pm.Mini8ConnectAlarm.Reset();
-        }
 
-        public void Mini8DisconnectNotify(byte mini8)
-        {
-            var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
-            pm.Mini8ConnectAlarm.Set();
+            }
         }
     }
 }

+ 112 - 0
ThirdParty/Minices/HeaterType.csv

@@ -0,0 +1,112 @@
+1,1,GaseLine
+1,2,GaseLine
+1,3,GaseLine
+1,4,GaseLine
+1,5,GaseLine
+1,6,GaseLine
+1,7,GaseLine
+1,8,GaseLine
+1,9,GaseLine
+1,10,GaseLine
+1,11,GaseLine
+1,12,GaseLine
+1,13,GaseLine
+1,14,GaseLine
+1,15,GaseLine
+1,16,GaseLine
+2,1,GaseLine
+2,2,GaseLine
+2,3,GaseLine
+2,4,GaseLine
+2,5,GaseLine
+2,6,GaseLine
+2,7,GaseLine
+2,8,GaseLine
+2,9,GaseLine
+2,10,GaseLine
+2,11,GaseLine
+2,12,GaseLine
+2,13,GaseLine
+2,14,GaseLine
+2,15,GaseLine
+2,16,GaseLine
+3,1,GaseLine
+3,2,GaseLine
+3,3,GaseLine
+3,4,GaseLine
+3,5,GaseLine
+3,6,GaseLine
+3,7,GaseLine
+3,8,GaseLine
+3,9,GaseLine
+3,10,GaseLine
+3,11,GaseLine
+3,12,GaseLine
+3,13,GaseLine
+3,14,GaseLine
+3,15,GaseLine
+3,16,GaseLine
+4,1,ForeLine
+4,2,ForeLine
+4,3,ForeLine
+4,4,ForeLine
+4,5,ForeLine
+4,6,ForeLine
+4,7,ForeLine
+4,8,ForeLine
+4,9,ForeLine
+4,10,GaseLine
+4,11,GaseLine
+4,12,GaseLine
+4,13,GaseLine
+4,14,GaseLine
+4,15,GaseLine
+4,16,GaseLine
+6,1,ForeLine
+6,2,ForeLine
+6,3,ForeLine
+6,4,ForeLine
+6,5,ForeLine
+6,6,ForeLine
+6,7,ForeLine
+6,8,ForeLine
+6,9,ForeLine
+6,10,ForeLine
+6,11,ForeLine
+6,12,ForeLine
+6,13,ForeLine
+6,14,ForeLine
+6,15,ForeLine
+6,16,ForeLine
+7,1,ForeLine
+7,2,ForeLine
+7,3,ForeLine
+7,4,ForeLine
+7,5,ForeLine
+7,6,ForeLine
+7,7,ForeLine
+7,8,ForeLine
+7,9,ForeLine
+7,10,ForeLine
+7,11,ForeLine
+7,12,ForeLine
+7,13,ForeLine
+7,14,ForeLine
+7,15,GaseLine
+7,16,GaseLine
+8,1,GaseLine
+8,2,GaseLine
+8,3,GaseLine
+8,4,GaseLine
+8,5,GaseLine
+8,6,GaseLine
+8,7,GaseLine
+8,8,GaseLine
+8,9,GaseLine
+8,10,GaseLine
+8,11,GaseLine
+8,12,GaseLine
+8,13,GaseLine
+8,14,GaseLine
+8,15,GaseLine
+8,16,GaseLine

BIN
ThirdParty/Minices/RTCommunicatorBase.dll


BIN
ThirdParty/Minices/RTCommunicatorTLV.dll


BIN
ThirdParty/Minices/TLVProtocal.dll


BIN
ThirdParty/Minices/UniversalNetFrame451.dll