Warnfilter Rückrufon_filter_warning(warning_id)(anpassbarer Firmware-exklusiv): Entscheidet, obeine Warnung angezeigt wird oder nicht angezeigt wird。0 wird nicht angezeigt und 1 wird angezeigt. Typisches Szenario: Ein HMI verwaltet zwei Geräte, Gerät 1 Alarm (ID 1 ~ 100) in Bild 0 zu sehen, Gerät 2 Alarm (ID 101 ~ 200) in Bild 2 zu sehen - ohne zu filtern, müssen Sie zwei Sätze von Alarm erstellen.
1. Aktivieren Sie Filter
auf _ init Aktivieren Sie:
function on_init()
set_uint16(VT_LW, 0x0115, 1) -- 启用告警过滤
end
function on_filter_warning(warning_id)
local cur = get_uint16(VT_LW, 0x0114) -- 当前画面/设备号
if cur == 0 then
return (warning_id >= 1 and warning_id = 101 and warning_id <= 200) and 1 or 0
end
return 1
end2. Multi-Slaven - Szenario in Kombination mit Warning_set: Warndaten werden von Modbus gelesen, mit Warning_set ausgelöst, nur die aktuellen Gerätbezogenen ausgelöst werden:
Multi-slave - Szenario: Warndaten werden von Modbus gelesen, mit warning _ set ausgelöst in Massen, filtern Rückrufe nur die aktuellen Gerät-bezogenen freigeben:
-- 读回告警后逐个触发
function on_cmd_resp(slave, vtype, addr, count, ret, wr)
...
for j = 0, 15 do
local bitv = (val >> j) & 0x01
warning_set(idx + slave * 100, bitv, 1) -- 设备号编码进告警ID
end
end
-- 过滤:只显示当前选中设备的告警
function on_filter_warning(warning_id)
local dev = get_uint16(VT_LW, 0x0114) -- 当前设备号
local wdev = math.floor(warning_id / 100) -- 告警所属设备
return (wdev == dev) and 1 or 0
endAktualisieren Sie die Anzeige: Schreiben Sie 0x0022 nach dem Umschalten des Geräts auf 0x0114 eine Aktualisierung der Warnliste auslösen (siehe das Firmware-Handbuch für verschiedene Versionen des Aktualisierungsmechanismus).
Aus dem VisualHMI-Entwicklungsdokument von Guangzhou Dacai Technology (hmi-doc.gz-dc.com) LUA-Tutorial "Alarmfilter" zusammengestellt, das Urheberrecht liegt bei Dacai Technology.
Antwort veröffentlichen