VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块

免费免费技术资料

这篇内容可直接阅读,适合用于基础学习和搜索引流。

VisualHMI 的脚本语言是 Lua——轻量、解释执行、上手快。工程→脚本编程里打开编辑器,默认生成 main.lua,包含加密开关、数据类型声明和常用回调函数。这篇讲清楚 LUA 工程的骨架和调试方法。

1. main.lua 的结构

新建工程默认生成 main.lua,分三部分:

  • 加密开关_ENCRYPT_ = 0。设为 1 后编译生成的 private 资源包里 lua 文件加密,实体屏上电解密运行
  • 数据类型声明:按所选协议自动生成。Modbus 协议:VT_LW=1(变量地址)、VT_RW=2(FLASH存储)、VT_0x=10(线圈)、VT_1x=11(输入点)、VT_3x=12(输入寄存器)、VT_4x=13(保持寄存器)。FX2N 协议:VT_X=10(输入位)、VT_Y=11(输出位)、VT_S=12(状态位)、VT_M=13(辅助位)、VT_D=14(数据)、VT_T=15(定时器值)、VT_C=16(计数器)
  • 系统回调函数:on_init()、on_run(screen)、on_update(slave,vtype,addr)、on_draw(screen_id,control_id)

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图

2. 编辑与查错

2.1 编辑器

除了自带的脚本编辑器,可以用 NotePad++、Lua editor、VS Code 等第三方工具。注意:多个编辑器同时打开同一项目,自动保存可能导致代码不同步、文件编码(UTF8/GB2312)异常

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图1

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图2

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图3

2.2 查错(无断点调试)

Lua 是解释性语言,逻辑错误只能在运行时发现,不支持断点调试。错误信息在虚拟屏设置窗口或实体屏调试串口显示。常见报错:

  • nil 错误attempt to call a nil value——变量/函数未定义、空表。例:mb_write_reg_06 为 nil 说明这个函数没找到
  • 类型错误number expected, got string——参数类型不对
  • 重启:表格过大内存溢出、循环体过大触发看门狗复位

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图4

实体屏调试:屏上有 TTL 调试串口(HMI80480M070 的 J2 排针,方孔 GND、圆孔 TX),USB 转 TTL 接 115200/8N1 ASCII 显示。个别多串口型号调试串口被占用为第 2 路,不支持调试输出。

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图5

3. 分模块管理

功能复杂时建议拆多 lua 文件。在工程目录建 *.lua,on_init 里 dofile 加载:

function on_init()
  dofile("wbrCom.lua")
  dofile("dp.lua")
  dofile("gui.lua")
  dofile("ota.lua")
  dofile("file.lua")
  dofile("wbrCfg.lua")
  set_string(VT_LW, regAddr.mcu_ver, "V"..ProductKey.v)
  uart_setup(1, 115200, 8, 0, 0)
end

VisualHMI 关于 LUA:main.lua 结构、数据类型声明、查错与分模块插图6

Lua 脚本三大坑:①函数名拼错直接 nil 报错(大小写敏感);②on_run 里别做耗时操作和 delay_ms();③全局变量别滥用,容易内存泄漏触发看门狗

整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)LUA 教程「关于LUA」,版权归大彩科技所有。

技术术语(共 4 个)—— 点击展开
寄存器Modbus 寄存器存储数据单元,分线圈/离散输入/保持/输入寄存器四类
串口计算机与外部设备进行串行通信的物理接口
线圈Modbus位可读写数据,地址从00001开始
保持寄存器Modbus 16位可读写数据,地址从40001开始
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 LUA 脚本 / 串口屏/HMI 开发 字数 1302 字 · 阅读约 4 分钟 更新 2026-08-04 永久链接 https://www.modbus.cn/51492.html
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注