123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- 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
- {
- private readonly object _lock = new object();
- 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(), $"SendMinicsConfig {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}";
- lock (_lock)
- {
- 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;
- }
- }
- }
- 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();
- }
- }
- }
|