diff --git a/MECF.Framework.RT.EquipmentLibrary/Devices/IoTC.cs b/MECF.Framework.RT.EquipmentLibrary/Devices/IoTC.cs index e11e848..9d51c22 100644 --- a/MECF.Framework.RT.EquipmentLibrary/Devices/IoTC.cs +++ b/MECF.Framework.RT.EquipmentLibrary/Devices/IoTC.cs @@ -193,6 +193,8 @@ namespace Aitex.Core.RT.Device.Devices private readonly R_TRIG _trigSetTempLimit = new R_TRIG(); + private PeriodicJob _thread; + public IoTC(string module, XmlElement node, string ioModule = "") { var attrModule = node.GetAttribute("module"); @@ -401,6 +403,8 @@ namespace Aitex.Core.RT.Device.Devices DATA.Subscribe($"{Module}.{Name}.PIDLimitUpper", () => _aoPIDLimitUpper?.Value ?? double.NaN); DATA.Subscribe($"{Module}.{Name}.PIDRateLimit", () => _aoPIDRateLimit?.Value ?? double.NaN); + _thread = new PeriodicJob(1000, MonitorTempRaisingTooFastAlarm, $"{Name}", true); + if (Name == "TC1") { DATA.Subscribe($"{Module}.Temp.Outer", () => OuterTemp); @@ -1148,7 +1152,7 @@ namespace Aitex.Core.RT.Device.Devices MonitorTemp(); MonitorDynamicPIDLimit(); - MonitorTempRaisingTooFastAlarm(); + } catch (Exception ex) { @@ -1156,6 +1160,7 @@ namespace Aitex.Core.RT.Device.Devices } } + public void StopRamp() { /*if (!_rampTimerL1.IsIdle()) @@ -1302,7 +1307,7 @@ namespace Aitex.Core.RT.Device.Devices private readonly R_TRIG _rTrigInnerTempRaisingFast = new(); private readonly R_TRIG _rTrigOuterTempRaisingFast = new(); - private void MonitorTempRaisingTooFastAlarm() + private bool MonitorTempRaisingTooFastAlarm() { string pmStatus = DATA.Poll($"{Module}.Status") == null ? "" : DATA.Poll($"{Module}.Status").ToString(); @@ -1364,6 +1369,8 @@ namespace Aitex.Core.RT.Device.Devices _lastOuterTemp = OuterTemp; _timTempRaisingMonitor.Start(0); + return true; + } public void MonitorTemp()