|
@@ -1,94 +1,135 @@
|
|
|
-using Aitex.Core.RT.Event;
|
|
|
-using Aitex.Core.RT.RecipeCenter;
|
|
|
-using Aitex.Core.Util;
|
|
|
-using MECF.Framework.Common.Equipment;
|
|
|
-using MECF.Framework.Common.Event;
|
|
|
-using MECF.Framework.Common.SCCore;
|
|
|
-using Microsoft.VisualBasic.Devices;
|
|
|
-using RTCommunicatorBase;
|
|
|
-using RTCommunicatorTLV;
|
|
|
-using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Reflection;
|
|
|
-using System.Text;
|
|
|
-using System.Threading;
|
|
|
-using System.Threading.Tasks;
|
|
|
-
|
|
|
-namespace MECF.Framework.Common.Minics
|
|
|
-{
|
|
|
- public class MinicsManager : Singleton<MinicsManager>, IRTMini8Provider
|
|
|
- {
|
|
|
- public void Connected(string ip, int port)
|
|
|
- {
|
|
|
- Console.WriteLine($"DisconnectedNotify {ip} {port}");
|
|
|
-
|
|
|
- }
|
|
|
- public void DisConnected(string ip, int port)
|
|
|
- {
|
|
|
- Console.WriteLine($"DisconnectedNotify {ip} {port}");
|
|
|
- }
|
|
|
- private RTCommunicator_TLV communicator = new RTCommunicator_TLV();
|
|
|
- public void Initialize(string ip = "127.0.0.1", int port = 50052)
|
|
|
- {
|
|
|
- communicator.Initialize(this);
|
|
|
- SWJConnectedMinics(ip, port);
|
|
|
- }
|
|
|
- public void SWJConnectedMinics(string ip, int port)
|
|
|
- {
|
|
|
- if (communicator.StartService(ip, port))
|
|
|
- {
|
|
|
- EV.PostInfoLog(ModuleName.Minics.ToString(), $"minics Connected {ip}:{port} sucessful");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- for (int i = 1; i <= 3; i++)
|
|
|
- {
|
|
|
- var status = this.communicator.StartService(ip, port);
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- if (status)
|
|
|
- break;
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- if (i == 3)
|
|
|
- return;
|
|
|
- Thread.Sleep(300);
|
|
|
- EV.PostAlarmLog(ModuleName.Minics.ToString(), $"retry minics Connected {ip}:{port} error {i} times");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- public void End()
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- public void SelectMinicsConfig(string minicsConfigName)
|
|
|
- {
|
|
|
- bool result = communicator.SelectConfigFile(minicsConfigName);
|
|
|
- if (!result)
|
|
|
- {
|
|
|
- EV.PostAlarmLog(ModuleName.Minics.ToString(), $"SelectMinicsConfig {minicsConfigName} fail!");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void CurrentTempConfigFile(string fileName)
|
|
|
- {
|
|
|
- }
|
|
|
-
|
|
|
- public void ChannelAlarmNotify(ST_ALARM alarm)
|
|
|
- {
|
|
|
- }
|
|
|
-
|
|
|
- public void Mini8ConnectNotify(byte mini8Index)
|
|
|
- {
|
|
|
- }
|
|
|
-
|
|
|
- public void Mini8DisconnectNotify(byte mini8)
|
|
|
- {
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+using Aitex.Core.RT.Event;
|
|
|
+using Aitex.Core.Util;
|
|
|
+using DocumentFormat.OpenXml.Wordprocessing;
|
|
|
+using FurnaceRT.Equipments.PMs;
|
|
|
+using FurnaceRT.Equipments.Systems;
|
|
|
+using MECF.Framework.Common.Equipment;
|
|
|
+using MECF.Framework.Common.Event;
|
|
|
+using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
|
|
|
+using RTCommunicatorBase;
|
|
|
+using RTCommunicatorTLV;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
+namespace FurnaceRT.Extraction
|
|
|
+{
|
|
|
+ public class MinicsManager : Singleton<MinicsManager>, IRTMini8Provider
|
|
|
+ {
|
|
|
+ public void Connected(string ip, int port)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"DisconnectedNotify {ip} {port}");
|
|
|
+
|
|
|
+ }
|
|
|
+ public void DisConnected(string ip, int port)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"DisconnectedNotify {ip} {port}");
|
|
|
+ }
|
|
|
+ private RTCommunicator_TLV communicator = new RTCommunicator_TLV();
|
|
|
+ public void Initialize(string ip = "127.0.0.1", int port = 50052)
|
|
|
+ {
|
|
|
+ communicator.Initialize(this);
|
|
|
+ SWJConnectedMinics(ip, port);
|
|
|
+
|
|
|
+ AlarmIndefinx();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SWJConnectedMinics(string ip, int port)
|
|
|
+ {
|
|
|
+ if (communicator.StartService(ip, port))
|
|
|
+ {
|
|
|
+ EV.PostInfoLog(ModuleName.Minics.ToString(), $"minics Connected {ip}:{port} sucessful");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ for (int i = 1; i <= 3; i++)
|
|
|
+ {
|
|
|
+ var status = this.communicator.StartService(ip, port);
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (status)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ if (i == 3)
|
|
|
+ return;
|
|
|
+ Thread.Sleep(300);
|
|
|
+ EV.PostAlarmLog(ModuleName.Minics.ToString(), $"retry minics Connected {ip}:{port} error {i} times");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void End()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ public void SelectMinicsConfig(string minicsConfigName)
|
|
|
+ {
|
|
|
+ bool result = communicator.SelectConfigFile(minicsConfigName);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ EV.PostAlarmLog(ModuleName.Minics.ToString(), $"SelectMinicsConfig {minicsConfigName} fail!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public Dictionary<string, Tuple<AlarmEventItem, AlarmEventItem, AlarmEventItem>> MinicsAlarmDic { get; set; } = new Dictionary<string, Tuple<AlarmEventItem, AlarmEventItem, AlarmEventItem>>();
|
|
|
+
|
|
|
+ public void AlarmIndefinx()
|
|
|
+ {
|
|
|
+ var pm = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
|
|
|
+ for (int i = 1; i < 9; i++)
|
|
|
+ {
|
|
|
+ for (int j = 1; j < 17; j++)
|
|
|
+ {
|
|
|
+ MinicsAlarmDic.Add($"{i}_{j}", pm.AddMini8ChannelAlarm(i, j));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void CurrentTempConfigFile(string fileName)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void ChannelAlarmNotify(ST_ALARM alarm)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ var gasLineHeaterIndex = $"{alarm.Mini8Index}_{alarm.ChannelIndex}";
|
|
|
+ if (!MinicsAlarmDic.TryGetValue(gasLineHeaterIndex, out var alarmValue))
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (alarm.AlarmType == RTCommunicatorBase.AlarmType.CapsOverFlow)
|
|
|
+ {
|
|
|
+ var msg = $"{gasLineHeaterIndex} {alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
|
|
|
+ alarmValue.Item1.Set(msg);
|
|
|
+ }
|
|
|
+ if (alarm.AlarmType == RTCommunicatorBase.AlarmType.FloorOverFlow)
|
|
|
+ {
|
|
|
+ var msg = $"{gasLineHeaterIndex} {alarm.PV} limit is ({alarm.Caps}~{alarm.Floor}) ";
|
|
|
+ alarmValue.Item2.Set(msg);
|
|
|
+ }
|
|
|
+ if (alarm.AlarmType == RTCommunicatorBase.AlarmType.TcBroken)
|
|
|
+ {
|
|
|
+ var msg = $"{gasLineHeaterIndex} is TcBroken";
|
|
|
+ alarmValue.Item3.Set(msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|