VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接

免费免费技术资料

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

本文目录
  1. 1. 1. 核心能力
  2. 2. 2. 属性介绍
  3. 3. 2.1 基本设置
  4. 4. 2.2 外观设置
  5. 5. 3. 应用案例
  6. 6. 3.1 数据采集(100 通道)
  7. 7. 3.2 特殊应用:地址不连续/类型不同(字符串表格 + LUA)

数据记录控件把同一时间戳下多个寄存器值组合成一行,动态追加到表格——类似数据库日志。最多 1000 个通道(列),掉电不丢,支持翻页、清除、CSV 导出。

1. 核心能力

  • 多通道同步记录:单条记录最多 1000 通道,每通道绑一个寄存器
  • 时间对齐采样:所有通道同一时刻读取
  • 实时表格:新记录自动追加,滚动查看
  • 持久化:存 Flash,掉电不丢;支持翻页/清除/CSV 导出

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图

2. 属性介绍

2.1 基本设置

属性 说明
数据来源 资料采集(同一寄存器不同时刻)/ 配方数据(配方内容显示)
字符串表格 资料采集类型为 STRING 时勾选,按字符串显示
时间排序 时间顺序 / 逆序
日期/时间 显示时间 / 日期 / 时间和日期
配方数据索引/直接编辑 选配方集;勾选后点击表格参数直接改
通道数量 数据通道数
表格设置 标题、文本宽度;自动列宽(按比例)或固定像素
固定列 无(全可滚动)/ 1列(序号固定)/ 2列(序号+时间固定)
每页行数 / 滚动条 / 手势滑动 分页显示;垂直滚动条;手势滑动

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图1

翻页控制(Addr 起):Addr+0 翻页(1上/2下/3首页/4尾页);Addr+1 读取可行性(BIT1~4);Addr+2~3 时间戳定位(UINT32,配下拉按天定位);Addr+4~5 选中行通知(UINT32,选中行号从 0 开始)。

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图2

2.2 外观设置

字体/大小/颜色/对齐、标题(含标题文字颜色)、网格(网格/边框颜色)、背景(标题背景/内容背景)、奇偶分行(背景颜色2)。

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图3

3. 应用案例

3.1 数据采集(100 通道)

资料采集:描述”历史数据”,定时采样,2000 条,周期 1 秒,数据地址 LW1010,UINT16,数据个数 100,控制地址 LW1001,采样控制 LW1000 OFF→ON。数据记录控件:数据来源资料采集(索引[0]),通道 100,时间逆序,固定列 2,每页 5 行,滚动条+手势滑动,翻页控制 LW1004、允许翻页 LW1005、时间戳 LW1006、选中行 LW1008

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图4

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图5

采样使能:位状态灯绑 LW1000(ON 开始/OFF 停止);清除/导出:字按钮绑 LW1001 写 85(清除)/1(导出);翻页:4 个按钮绑 LW1004 1/2/3/4 + 权限 LW1005.1/.2

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图6

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图7

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图8

时间戳定位:下拉菜单绑 0xA000,选项内容=历史数据日期(资料取样索引[0]),选某天定位到该天第一条记录。

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图9

3.2 特殊应用:地址不连续/类型不同(字符串表格 + LUA)

当寄存器地址不连续、数据类型不一致(如电压 4×0000 UINT32、电流 4×0007 UINT32、负载率 4×0015 UINT16、谐波 4×0021 INT16、功因 4×0026 UINT32…)时,用字符串表格方案:资料采集数据地址 LW2000、类型 STRING、个数 100;LUA 在 on_run 里读各寄存器拼接字符串写入 LW2000,每列用分号 ; 分隔:

function on_init()
  set_run_cycle(1000)
  start_read(0, VT_4x, 0, 80)   -- 读从站1保持寄存器 0x0000~0x0050
end
function on_run(screen)
  if (get_uint16(VT_LW, 0x01A3) & 0x0001) == 0x01 then  -- 从机在线
    select_slave(0)
    local vol = get_uint32(VT_4x, 0x0000)  -- 电压
    local cur = get_uint32(VT_4x, 0x0007)  -- 电流
    -- ... 读其它寄存器
    local rcrd = string.format("%0.2f", vol/100)..";"..
                 string.format("%0.2f", cur/100)..";"..
                 -- ... 拼接所有列
    set_string(VT_LW, 0x2000, rcrd)  -- 写到 LW2000
  end
end

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图10

VisualHMI 数据记录:1000 通道表格、时间戳定位与字符串拼接插图11

资料采样要求寄存器地址连续、数据类型一致。地址不连续/类型混杂时别硬采——用字符串表格方案:LUA 读值→拼接字符串(分号分隔)→写到资料采样地址,控件勾选字符串表格按列显示。字符串编码用 GB CODE。

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

技术术语(共 2 个)—— 点击展开
寄存器Modbus 寄存器存储数据单元,分线圈/离散输入/保持/输入寄存器四类
保持寄存器Modbus 16位可读写数据,地址从40001开始
来源/工具信息 —— 点击展开
来源 Modbus.cn — China's leading Modbus communication protocol technical community 分类 串口屏/HMI 开发 / 数据记录 字数 1705 字 · 阅读约 5 分钟 更新 2026-08-04 永久链接 http://www.modbus.cn/en/51325.html
Recommended: Modbus Debug Assistant Mini Program
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

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

工程师会员

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

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

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

发表回复

Your email address will not be published. 必填项已用 * 标注