VisualHMI 告警参数:{#0:num1.num2} 占位符与 on_get_warning_param

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

告警参数让告警文本能嵌入实时寄存器值——比如「1#压缩机电流过高:current 12.5A」这种动态告警,而不是死板的固定文本。系统支持最多 4 个独立参数字段,每个字段可单独配显示格式(整数位前置空格、小数位补零),告警内容自动拼接。适用 HMI&M 시리즈&Dx 시리즈。

1. API:on_get_warning_param(warning_id)

工程告警设置里启用了「告警参数」后,系统在显示告警详情时自动调用此回调。parameter warning_id 是告警唯一标识符,按 ID 区分业务逻辑,返回最多 4 个数值/状态参数:

返回值必填用途
데이터0填充告警设置里的 {#0:num1.num2},或 on_parse_warning 的 p0
데이터1填充 {#1:num1.num2},或 on_parse_warning 的 p1
데이터2填充 {#2:num1.num2},或 on_parse_warning 的 p2
데이터3填充 {#3:num1.num2},或 on_parse_warning 的 p3

2. 告警内容格式:{#데이터:num1.num2}

在告警设置里写告警内容时,参数占位符要遵循这个格式:

field含义example
데이터告警参数 ID,最多 4 个,从 0 开始{#0:2.2} 用 데이터0
num1整数位前置空格个数num1=2:值 12.5 显示成「 12.5」(2 个前导空格)
num2小数位个数,显示补零num2=2:值 12.5 显示成「12.50」

例:告警内容写「1#压缩机电流过高:{#0:2.2}A」,데이터0 返回 12.5,显示为「1#压缩机电流过高: 12.50A」。

VisualHMI 告警参数:{#0:num1.num2} 占位符与 on_get_warning_paramFigure

3. 应用案例:电流/温度告警带参数

3.1 画面配置

告警显示控件:告警模式=历史告警、时间顺序、显示日期和时间、时间在前、列宽比例 20;100;20;20、每页 5 行、滚动条√。

两个位状态指示灯触发/解除告警:读取地址 LW1000.0 和 LW1000.1,切换开关类型。

四个数值控件模拟告警参数:读取地址 LW1001~LW1004,启用输入。

3.2 Lua:按告警 ID 返回参数

告警内容里 {#0:2.2} 的意思是 데이터0 要缩小 100 倍显示(寄存器存的是放大 100 倍的值),所以回调里除 100:

function on_get_warning_param(warning_id)
  if warning_id == 0 or warning_id == 1 then   -- 告警ID 0 或 1
    local 데이터0, 데이터1, 데이터2, 데이터3 = 0, 0, 0, 0
    데이터0 = get_uint16(VT_LW, 0x1001) / 100   -- 放大100倍存储,除以100还原
    데이터1 = get_uint16(VT_LW, 0x1002) / 100
    데이터2 = get_uint16(VT_LW, 0x1003) / 100
    데이터3 = get_uint16(VT_LW, 0x1004)         -- 这个不缩
    return 데이터0, 데이터1, 데이터2, 데이터3
  end
end

运行虚拟屏,键盘给 LW1001 输入 1250,触发告警 0,告警内容里的 {#0:2.2} 显示 12.50——比例换算全在回调里做,显示端不用再处理。

三个要点:①占位符格式必须是 {#데이터:num1.num2},데이터 从 0 开始最多 4 个,写错格式参数不显示;②num1 是整数位前置空格不是整数位数——想右对齐才用,不需要就写 0;③num2 是小数位补零,寄存器里放大 10/100 倍存的工程值,记得在回调里除回去。这个回调和 on_parse_warning 是两套机制:on_get_warning_param 只填数值参数,on_parse_warning 是自定义整个告警文本。

整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)LUA Tutorial「告警参数」,版权归大彩科技所有。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email 주소 will not be published. Required fields are marked *.