Browse Source

fix minics alarm

JET-JJY 2 weeks ago
parent
commit
ebd19e99b2

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


+ 2 - 2
Furnace/FurnaceRT/Equipments/Systems/EquipmentManager_FA.cs

@@ -262,9 +262,9 @@ namespace FurnaceRT.Equipments.Systems
     public partial class EquipmentManager : IEquipmentCallBack
     {
 
-        public void InitializeFA()
+        public void InitializeFA(string file)
         {
-            Singleton<FAJobController>.Instance.Initialize("Furnace", PathManager.GetCfgDir() + "FurnaceGemModel.xml",
+            Singleton<FAJobController>.Instance.Initialize("Furnace", file,
                 new int[] { 1, 2, 3, 4 }, Singleton<EquipmentManager>.Instance, null);
 
             SubscribeFAState();

+ 24 - 19
Furnace/FurnaceRT/Extraction/MinicsManager.cs

@@ -19,6 +19,7 @@ namespace FurnaceRT.Extraction
 {
     public class MinicsManager : Singleton<MinicsManager>, IRTMini8Provider
     {
+        private readonly object _lock = new object();
         public void Connected(string ip, int port)
         {
             Console.WriteLine($"DisconnectedNotify {ip} {port}");
@@ -74,7 +75,7 @@ namespace FurnaceRT.Extraction
             bool result = communicator.SelectConfigFile(minicsConfigName);
             if (!result)
             {
-                EV.PostAlarmLog(ModuleName.Minics.ToString(), $"SelectMinicsConfig {minicsConfigName} fail!");
+                EV.PostAlarmLog(ModuleName.Minics.ToString(), $"SendMinicsConfig {minicsConfigName} fail!");
             }
         }
         public Dictionary<string, Tuple<AlarmEventItem, AlarmEventItem, AlarmEventItem>> MinicsAlarmDic { get; set; } = new Dictionary<string, Tuple<AlarmEventItem, AlarmEventItem, AlarmEventItem>>();
@@ -99,25 +100,29 @@ namespace FurnaceRT.Extraction
         {
 
             var gasLineHeaterIndex = $"{alarm.Mini8Index}_{alarm.ChannelIndex}";
-            if (!MinicsAlarmDic.ContainsKey(gasLineHeaterIndex))
+            lock (_lock)
             {
-                return;
-            }
-            var alarmValue = MinicsAlarmDic[gasLineHeaterIndex];
-            if (alarm.AlarmType == RTCommunicatorBase.AlarmType.CapsOverFlow)
-            {
-                var msg = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} Feedback:{alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
-                alarmValue.Item1.Set(msg);
-            }
-            if (alarm.AlarmType == RTCommunicatorBase.AlarmType.FloorOverFlow)
-            {
-                var msg = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} Feedback:{alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
-                alarmValue.Item2.Set(msg);
-            }
-            if (alarm.AlarmType == RTCommunicatorBase.AlarmType.TcBroken)
-            {
-                var msg = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} is TcBroken";
-                alarmValue.Item3.Set(msg);
+                var alarmValue = MinicsAlarmDic[gasLineHeaterIndex];
+                string message;
+
+                switch (alarm.AlarmType)
+                {
+                    case RTCommunicatorBase.AlarmType.CapsOverFlow:
+                        message = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} Feedback:{alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
+                        alarmValue.Item1.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);
+                        break;
+                    case RTCommunicatorBase.AlarmType.TcBroken:
+                        message = $"Unit{alarm.Mini8Index}CH{alarm.ChannelIndex} is TcBroken";
+                        alarmValue.Item3.Set(message);
+                        break;
+                    default:
+                        // Handle other cases or log an error
+                        break;
+                }
             }
         }
 

+ 2 - 3
Furnace/FurnaceRT/Instances/ToolLoader.cs

@@ -81,7 +81,6 @@ namespace FurnaceRT.Instances
 
             WaferManager.Instance.Initialize();
             CarrierManager.Instance.Initialize();
-            CarrierManager.Instance.Initialize();
 
 
             Singleton<DeviceManager>.Instance.DisableAsyncInitialize = true;
@@ -97,7 +96,7 @@ namespace FurnaceRT.Instances
             //RtSystemManager.Instance.AddCustomBackend("Tune Table", new BackendTuneView());
 
             Singleton<EquipmentManager>.Instance.Initialize();
-            Singleton<EquipmentManager>.Instance.InitializeFA();
+            Singleton<EquipmentManager>.Instance.InitializeFA(PathManager.GetCfgDir() + "FurnaceGemModel.xml");
             //Singleton<FAJobController>.Instance.Initialize("Furnace", 2);
             //DEVICE.GetDevice<Devices.E84Passiver>("LP1.Loadport1E84").Provider = Singleton<FAJobController>.Instance.GetLoadPort(1);
             //DEVICE.GetDevice<Devices.E84Passiver>("LP2.Loadport2E84").Provider = Singleton<FAJobController>.Instance.GetLoadPort(2);
@@ -118,7 +117,7 @@ namespace FurnaceRT.Instances
             IoManager.Instance.Initialize(PathManager.GetCfgDir() + $"{SC.GetStringValue("System.SetUp.ToolType")}\\interlock.xml", PathManager.GetCfgDir() + $"{SC.GetStringValue("System.SetUp.ToolType")}\\interlockUserDefine.xml");
 
             UpgradeDataTable();
-            Singleton<MinicsManager>.Instance.Initialize(SC.GetStringValue("Minics.ip"), int.Parse(SC.GetStringValue("Minics.port")));
+            Singleton<MinicsManager>.Instance.Initialize("192.168.250.30", int.Parse(SC.GetStringValue("Minics.port")));
 
             Singleton<EventManager>.Instance.FireEvent += InstanceOnEvent;