VisualHMI 告警매개변수:{#0:num1.num2} 占位符与 on_get_warning_param

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

告警매개변수让告警文本能嵌入实时레지스터 값——比如「1#压缩机电流过高:当前 12.5A」这种动态告警,而不是死板的固定文本。系统支持最多 4 个独立매개변수필드,每个필드可单独配표시 형식(整数位前置空格、小数位补零),告警콘텐츠自动拼接。适用 HMI&M 시리즈&Dx 시리즈。

1. API:on_get_warning_param(warning_id)

엔지니어링告警设置里활성화了「告警매개변수」后,系统在显示告警详情时自动调用此回调。매개변수 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}

在告警设置里写告警콘텐츠时,매개변수占位符要遵循这个형식:

필드含义예제
데이터告警매개변수 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_param插图

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 튜토리얼「告警매개변수」,版权归大彩科技所有。

실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注