VisualHMI Lua API 大全:回调/通信/寄存器读写函数速查表

免费免费技术资料

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

本文目录
  1. 1. 1. 系统回调函数
  2. 2. 2. 通信控制
  3. 3. 2.1 start_read 参数
  4. 4. 3. 寄存器读写 API(速查)
  5. 5. 4. 其他常用

这是 VisualHMI LUA 的API 总表:系统回调、通信控制、寄存器读写、字符串、串口、定时器、画图、文件、数据库全套函数。开发时查这一篇就够。

1. 系统回调函数

函数 触发时机
on_init() 上电加载后执行一次
on_run(screen) 主循环周期调用(set_run_cycle 设周期)
on_update(slave,vtype,addr) 变量被修改时(用户操作或脚本)
on_screen_change(screen) 画面切换完成后
on_press(state,x,y) 触摸事件(0抬起/1按下/2长按)
on_usb_inserted(driver)/on_usb_removed() U 盘插拔
on_sd_inserted(dir)/on_sd_removed() SD 卡插拔
on_parse_timestamp(screen,control,timestamp) 时间戳解析(数据记录控件)

2. 通信控制

函数 说明
set_notify(enable) 通信帧收发通知开关:1=使能 on_cmd_resp,0=关闭
select_slave(slave_id) 选择当前从机(0 起);配合 set_slave_site 映射实际站号
set_slave_site(idx, slave_id) 设置从机序号与站号映射
set_endian(en) 字节序:0=小端(默认),1=大端
create_resp_que() 创建响应队列,使能 on_cmd_resp 回调
start_read(index,vtype,addr,quantity,cycle,cycle_run,mode) 后台自动轮询读从机寄存器
stop_read(index) 停止指定索引的轮询
stop_all_read() 停止全部轮询
set_auto_read(en) 0=脚本控制读取(配 start_read),1=自动

2.1 start_read 参数

start_read(index, vtype, addr, quantity, cycle, cycle_run, mode)
-- index: 轮询任务索引(0~N)
-- vtype: 变量类型 VT_4x/VT_0x 等
-- addr: 起始地址
-- quantity: 数量
-- cycle: 轮询周期(ms)
-- cycle_run: 0=定时器触发, 1=画面触发
-- mode: 1=自动后台轮询(默认)

例:start_read(1, VT_4x, 0x2000, 10, 3, 2)——索引 1、保持寄存器 0x2000 起 10 个、周期 3ms。

3. 寄存器读写 API(速查)

函数 范围 地址跨度
set_bit / get_bit 位(0/1) 1 位
set_uint16 / get_uint16 0~65535 1 寄存器
set_int16 / get_int16 -32768~32767 1 寄存器
set_uint32 / get_uint32 0~4294967295 2 寄存器
set_int32 / get_int32 -2^31~2^31-1 2 寄存器
set_uint64 / get_uint64 0~2^64-1 4 寄存器
set_int64 / get_int64 -2^63~2^63-1 4 寄存器
set_float / get_float IEEE754 单精度 2 寄存器
set_double / get_double IEEE754 双精度 4 寄存器
set_string / get_string 最大 2048 字节 字节数/2
set_uint16_ex 批量写,最多 120 个 连续
set_array 批量写 Lua 表,最多 120 字 连续

vtype 取值(Modbus):VT_0x=10(线圈)、VT_1x=11(输入点)、VT_3x=12(输入寄存器)、VT_4x=13(保持寄存器)、VT_LW=1(内部变量)、VT_RW=2(掉电保持)。FX3U 另有 VT_X/VT_Y/VT_S/VT_M/VT_D/VT_T/VT_C。

4. 其他常用

  • get_date_time():读取系统时间(年/月/日/时/分/秒/星期)
  • delay_ms(ms):延时(慎用,阻塞主循环)
  • feed_dog():喂看门狗(超长任务里防复位)
  • redraw():强制刷新画面(触发 on_draw)
  • set_pen_color(color):设置画笔颜色(RGB565),供 on_draw 绘图用
  • print(...):调试输出(虚拟屏设置窗口/实体屏调试口)
  • pcall(f):保护调用,捕获运行时错误不崩脚本

VisualHMI Lua API 大全:回调/通信/寄存器读写函数速查表插图

API 名字大小写敏感、下划线不能省(set_uint16 写成 setuint16 直接 nil 报错)。on_cmd_resp 是通信回调核心:set_notify(1)+create_resp_que() 使能后,每帧响应都会回调,配 start_read 做脚本主导的通信。

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

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

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

工程师会员

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

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

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

发表回复

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