LUA ist die Skriptsprache für VisualHMI, die das HMI von einem „Display-Terminal" in einen „funktiven Host" verwandelt: Protokolllösung, logische Urteile, Datenoperationen und Datei-Manipulation sind alles in einem Skript. Zuerst verstehen Sie die Programmstruktur und Systemrufebacks von main.lua, und danach haben Sie Platz für alle APIs.
1. Mainlua. Grundstruktur
_ENCRYPT_ = 0 -- LUA 脚本加密开关(量产加密置1) -- 数据类型定义(随协议变化,Modbus 常用这些) VT_LW = 1 -- 内部变量(掉电不保存) VT_RW = 2 -- Flash 掉电保存区 VT_0x = 10 -- 线圈 VT_1x = 11 -- 输入 VT_3x = 12 -- 输入寄存器 VT_4x = 13 -- 保持寄存器 -- 系统回调函数(自动被调用,不用自己调) function on_init() end -- 上电加载后执行一次 function on_run(screen) end -- 周期执行 function on_update(slave,vtype,addr) end -- 变量变化 function on_draw(screen,control) end -- 自绘
mainlua.lua ist eine Importdatei, die beim Kompilieren des Projekts verpackt wird. Das große Projekt empfiehlt, das Modul zu unterteilen: in on _ init dofile ("xxx.lua") kann man es öffnen, um es zu pflegen.
2. Bearbeitungswerkzeuge und Code
Offiziell empfohlen NotePad + +, Lua editor, VS Code Bearbeitungs-Skripte.Kodierung muss beachtenDatei-Codierung und HMI-Projekt - Einstellungen müssen übereinstimmen (UTF - 8 oder GB2312), die Kodierung wird nicht auf Chinesisch verwirrt, die Zeichenkettenvergleich ist auch falsch.
3. Fehlersuche (LUA ohne Ausfallpunkt Debugger)
LUA ist eine interpretierende Sprache und kann nicht in einem Schritt unterbrochen werden. Bei virtuellen Bildschirmen gibt es übliche drei Typen von Ausnahmen:
- nil-Wertfehler: Zugriff auf undefinierte Variable / Tabellelement - - Initialisierung der Variablen zuerst überprüfen
- Typfehler: nummerierung bei table, string splicing nil - - print-Type bestätigt
- : Globale kumulative Daten werden nicht freigegeben - prüfen Sie, ob die Schleife stets table.insert: Globale kumulative Daten nicht freigegeben - prüfen Sie, ob die Schleife immer table. insert ist
physische Bildschirmdebugger mit TTL Debugger serieller Anschluss J2, Baudrate 115200 8N1, print Ausgabe gehen diesen Anschluss.

4. Dofile Modulverwaltung
function on_init()
dofile("config.lua") -- 参数配置
dofile("protocol.lua") -- 协议解析
dofile("ui.lua") -- 界面逻辑
endGlobale Variablen werden zwischen den Modulen geteilt, beachten Sie Konflikte bei Namensspezifiken (gewohnheitsmäßige Präfixe wie g _, m _).
Aus dem LUA-Tutorial "Was ist LUA" von Guangzhou Dacai Technology VisualHMI Development Document (hmi-doc.gz-dc.com) zusammengestellt, das Urheberrecht liegt bei Dacai Technology.
Antwort veröffentlichen