VisualHMI - 告警选择(定制)

在人机界面(HMI)系统中,当操作人员点击告警显示控件并选中某一条具体告警记录时,系统可触发预置的 Lua 脚本事件回调。该脚本能够获取所选告警的结构化元数据,包括告警唯一标识符、告警触发时间与解除时间以及告警描述内容。基于上述信息,可以显示该告警类型对应的标准化处置建议或故障排除指南,从而提升故障响应效率与操作一致性。
使用范围:VisualHMI - HMI&M系列&Dx系列(启用告警参数不支持)
1.设置选中
告警控件配置以下2点,才能在LUA脚本系统回调中触发:
- 告警显示的控件ID:不为0,如1;
- 容许选中:勾选;

2.API说明
2.1.on_select_warning(screen_id,control_id,warning_id,starttime,stoptime,warning_text)[定制]
告警选中事件回调函数(定制功能),on_select_warning 是 HMI 系统提供的告警交互响应接口,属于定制固件专属功能。当用户在告警列表控件中点击或选中某条告警记录时,系统自动调用此函数,向脚本传递该告警的完整上下文信息,用于触发深度诊断、详细信息等
⚠️ 重要限制:
- 仅在定制固件的设备上可用;
- 若工程中为该告警启用了“告警参数”功能,此回调不会被触发(二者互斥)。
📊 参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
screen_id |
number | 当前画面 ID • 告警列表所在的页面标识 |
control_id |
number | 告警列表控件 ID • 触发选中事件的具体控件ID |
warning_id |
number | 告警序号(ID) • 对应工程“告警设置”中的告警编号(从 0 开始) |
starttime |
number | 告警触发时间 • 32 位时间戳(秒) |
stoptime |
number | 告警解除时间 • 32 位时间戳(秒) |
warning_text |
string | 告警原始描述文本 |
3.应用
3.1.告警设置
“工程”→“告警设置”配置如下所示:
序号告警ID0:【触发条件】:LW1001 ==1;【告警等级】:1;【告警内容】:相序保护;
序号告警ID1:【触发条件】:LW1002==1; 【告警等级】:2;【告警内容】:水流开关保护;
序号告警ID2:【触发条件】:LW1003==1;【告警等级】:3;【告警内容】:水位开关保护。

3.2.告警显示
“告警控件”属性配置如下所示:
- 告警显示的控件ID:1;
- 容许选中:勾选;

3.3.显示选中内容
新增一个画面,添加1个数值控件,3个文本控件,分别显示选中的告警ID、触发时间、解除时间、告警内容,以及解决方案,如下所示

3.4.编辑Lua
在Lua脚本on_select_warning里,点击告警条时,将画面ID、触发/解除时间、告警字符显示在对应控件,如下所示
g_Solution = {
[0] = '1. 确认是否真的相序错误\n2. 交换任意两根火线\n3. 检查相序保护器/继电器设置\n4. 变频器/软启动器内部设置\n5. 现场多设备供电冲突',
[1] = '1. 冷却水未开启或阀门关闭\n2. 管路堵塞或滤网脏堵\n3. 水泵故障或扬程不足\n4. 水流开关本身故障或设定不当\n5. 气堵(Air Lock)\n6. 水温过低导致粘度变化',
[2] = '1. 水箱实际缺水\n2. 水位开关卡滞或污垢覆盖\n3. 水位开关接线松动或损坏\n4. 气泡或泡沫干扰\n5. 安装位置不当',
}
function on_select_warning(screen_id,control_id,warning_id,starttime,stoptime,warning_text)
if screen_id == 0 and control_id == 1
then
set_uint16(VT_LW, 0x2000, warning_id)--告警ID
local year1,mon1,day1,hour1,min1,sec1 = make_datetime(starttime)--告警触发时间
set_string(VT_LW, 0x2010, string.format('%04d-%02d-%02d %02d:%02d:%02d', year1,mon1,day1,hour1,min1,sec1))
local year2,mon2,day2,hour2,min2,sec2 = make_datetime(stoptime)--告警解除时间
set_string(VT_LW, 0x2020, string.format('%04d-%02d-%02d %02d:%02d:%02d', year2,mon2,day2,hour2,min2,sec2))
set_string(VT_LW, 0x2030, warning_text)--告警内容
end
end
3.5.运行预览
点击“相序保护”、“水流开关保护”、“水位开关保护”对于按钮,触发/解除告警,选择对于告警内容,如下所示:
