VisualHMI 文件 IO:LUA 读写 SD 卡/U 盘/Flash 与目录列举

免费免费技术资料

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

LUA 支持读写 SD 卡 / U 盘 / 内部 Flash 文件:目录列举、打开、读、写、定位、关文件。适合配方文件、数据导出、日志落地。

1. 路径与盘符

系列 SD卡 U盘 内部Flash
M 系列 1: 2: 3:
DH 系列 /sdcard /udisk /data

VisualHMI 文件 IO:LUA 读写 SD 卡/U 盘/Flash 与目录列举插图

2. API

函数 说明
list_dir(path) 列举目录,结果通过 on_list_dir 逐条回调
on_list_dir(path, filename, type, fsize) 回调:type 0=文件夹/1=文件,fsize 文件大小
file_open(path, mode) 打开文件:mode 0=FA_READ(读)/1=FA_WRITE(覆盖写)/2=FA_WRITE_ADD(追加)
file_close() 关闭当前文件
file_size() 当前文件字节数
file_seek(offset) 定位读写位置
file_read(count) 读 count 字节(1~2048),返回下标从 1 的字节表
file_write(data) 写数据

3. 案例:SD 卡目录列表

function on_init()
  list_dir("1:/music")   -- 列SD卡music目录
end

function on_list_dir(path, filename, type, fsize)
  if type == 1 then  -- 文件
    print(path .. filename .. " " .. fsize .. "B")
  end
end

4. 案例:读文件(流式处理)

function read_file_ok()
  file_open("1:/data/recipe.txt", 0)  -- 读模式
  local remain = file_size()
  local line = ""
  while remain > 0 do
    local n = (remain > 64) and 64 or remain
    local buf = file_read(n)          -- 每次最多2048, 建议小块
    -- 处理 buf...
    remain = remain - n
  end
  file_close()
end

VisualHMI 文件 IO:LUA 读写 SD 卡/U 盘/Flash 与目录列举插图1

文件 IO 最容易踩内存溢出的坑:严禁全局累计大缓冲——每次 file_read 后立即解析释放,必须流式处理,否则内存溢出触发看门狗复位。写 SD 卡注意文件已存在时 mode=2 追加、mode=1 覆盖。

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

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

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

工程师会员

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

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

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

发表回复

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