[RT.EquipmentLibrary]

加热带报警监控,正增加配置项,修改报警逻辑
This commit is contained in:
hanqiangqiang 2024-02-21 10:59:59 +08:00
parent dc031629ef
commit 18a505cc30
1 changed files with 22 additions and 5 deletions

View File

@ -25,11 +25,13 @@ namespace Aitex.Core.RT.Device.Devices
protected int _alarmCount; protected int _alarmCount;
protected string _scWarningLog;
private readonly LineHeaterData _lineHeaterData = new(); private readonly LineHeaterData _lineHeaterData = new();
public LineHeaterData lineHeaterData public LineHeaterData lineHeaterData
{ {
get get
{ {
_lineHeaterData.LineHeaterLaber = Display; _lineHeaterData.LineHeaterLaber = Display;
_lineHeaterData.ScHighTemp = _alarmHigh; _lineHeaterData.ScHighTemp = _alarmHigh;
@ -46,6 +48,14 @@ namespace Aitex.Core.RT.Device.Devices
_doLineHeaterEnable = ParseDoNode("doLineHeaterEnable", node, ioModule); _doLineHeaterEnable = ParseDoNode("doLineHeaterEnable", node, ioModule);
_scNameAlarmHigh = $"{ScBasePath}.{node.GetAttribute("scAlarmHigh")}"; _scNameAlarmHigh = $"{ScBasePath}.{node.GetAttribute("scAlarmHigh")}";
var scWarningLog = node.GetAttribute("scWarningLog");
_scWarningLog = scWarningLog == "" ? scWarningLog : SC.GetStringValue($"{ScBasePath}.{scWarningLog}");
if (scWarningLog != "")
{
SC.RegisterValueChangedCallback($"{ScBasePath}.{scWarningLog}", (obj) => { _scWarningLog = (string)obj; });
}
} }
protected override void HandleMonitor() protected override void HandleMonitor()
@ -59,19 +69,26 @@ namespace Aitex.Core.RT.Device.Devices
{ {
if (_doLineHeaterEnable == null) if (_doLineHeaterEnable == null)
{ {
EV.PostWarningLog(Module, PostLog($"{_aiTemp.Name} {_aiTemp.FloatValue} over temperature {_alarmHigh}");
$"{_aiTemp.Name} {_aiTemp.FloatValue} over temperature {_alarmHigh} but doLineHeaterEnable can not be off since it's not defined");
} }
else else
{ {
_doLineHeaterEnable.SetValue(false, out _); _doLineHeaterEnable.SetValue(false, out _);
EV.PostWarningLog(Module, PostLog($"{_aiTemp.Name} {_aiTemp.FloatValue} over temperature {_alarmHigh}\r\n{Module}.{_doLineHeaterEnable.Name} force off");
$"{_aiTemp.Name} {_aiTemp.FloatValue} over temperature {_alarmHigh}\r\n{Module}.{_doLineHeaterEnable.Name} force off");
} }
} }
} }
} }
private void PostLog(string log)
{
if (_scWarningLog == "Alarm")
EV.PostAlarmLog(Module, log);
else
EV.PostWarningLog(Module, log);
}
public bool Initialize() public bool Initialize()
{ {
DATA.Subscribe($"{Module}.LineHeater.{Display}", () => _aiTemp.FloatValue); DATA.Subscribe($"{Module}.LineHeater.{Display}", () => _aiTemp.FloatValue);