VisualHMI 简易数据库:easydb_* 与数据记录控件自定义模式

免费免费技术资料

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

本文目录
  1. 1. 1. API
  2. 2. 2. Flash 地址避让
  3. 3. 3. 案例:人员名单管理

在 Flash 里建轻量数据库(定制固件专属):追加、更新、删除、清空记录,配合数据记录控件的”自定义”模式,实现配方、日志、名单管理。

1. API

函数 说明
easydb_open(flashaddr, createIfNotExist, dataRowSize, maxCount) 打开/创建数据库,返回句柄;总占用 = dataRowSize × maxCount
easydb_close(db) 关闭
easydb_get_count(db) 记录条数
easydb_get(db, idx) 读取第 idx 条,返回字符串或 nil
easydb_add(db, dataset) 追加一条记录
easydb_update(db, idx, dataset) 更新第 idx 条(长度必须严格 = dataRowSize)
easydb_del(db, idx) 删除
easydb_clear(db) 清空

VisualHMI 简易数据库:easydb_* 与数据记录控件自定义模式插图

2. Flash 地址避让

flashaddr 必须避开四类区域:工程资源区、资料采样块、操作记录块、OTA 备份区。建议选工程尾部靠后的空闲区,先算好占用(dataRowSize × maxCount)。

3. 案例:人员名单管理

数据记录控件”自定义”模式 + 数据库:控件显示用回调取数,增删改用按钮。

g_db_handle = nil

function on_init()
  g_db_handle = easydb_open(0x480000, 1, 64, 100)  -- 每条64字节, 最多100条
end

-- 数据记录控件"自定义"模式回调
function on_get_record_count(screen_id, control_id)
  return easydb_get_count(g_db_handle)
end

function on_get_record_row(screen_id, control_id, row)
  return easydb_get(g_db_handle, row)   -- 返回 "姓名;职业;年龄"
end

-- 按钮操作
function on_update(slave, vtype, addr)
  if vtype == VT_LW and addr == 0x1000 then
    local key = get_uint16(VT_LW, 0x1000)
    if key == 1 then
      easydb_add(g_db_handle, "张三;工程师;30")
    elseif key == 2 then
      easydb_update(g_db_handle, 0, "李四;经理;40")
    elseif key == 3 then
      easydb_del(g_db_handle, 0)
    elseif key == 4 then
      easydb_clear(g_db_handle)
    end
    redraw()   -- 刷新控件
  end
end

VisualHMI 简易数据库:easydb_* 与数据记录控件自定义模式插图1

数据库三个坑:①flashaddr 一定要避开工程资源/资料采样/操作记录/OTA 四区,算好占用别越界;②update 的 dataset 长度必须严格等于 dataRowSize;③记录用分号分隔字段(「姓名;职业;年龄」),控件端按分号拆列显示

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

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

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

工程师会员

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

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

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

发表回复

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