데이터记录控件把同一时间戳下多个레지스터 값组合成一行,动态追加到表格——类似데이터库로그。最多 1000 个通道(列),掉电不丢,支持翻页、清除、CSV 导出。
1. 核心能力
- 多通道同步记录:单条记录最多 1000 通道,每通道绑一个레지스터
- 时间对齐采样:所有通道同一时刻읽기
- 实时表格:新记录自动追加,滚动보기
- 持久化:存 Flash,掉电不丢;支持翻页/清除/CSV 导出

2. 属性介绍
2.1 基本设置
| 属性 | 설명 |
|---|---|
| 데이터来源 | 자료采集(同一레지스터不同时刻)/ 配方데이터(配方콘텐츠显示) |
| 문자串表格 | 자료采集유형为 STRING 时勾选,按문자串显示 |
| 时间排序 | 时间顺序 / 逆序 |
| 日期/时间 | 显示时间 / 日期 / 时间和日期 |
| 配方데이터索引/直接편집 | 选配方集;勾选后클릭表格매개변수直接改 |
| 通道数量 | 데이터通道数 |
| 表格设置 | 标题、文本宽度;自动列宽(按比例)或固定像素 |
| 固定列 | 无(全可滚动)/ 1列(순번固定)/ 2列(순번+时间固定) |
| 每页行数 / 滚动条 / 手势滑动 | 分页显示;垂直滚动条;手势滑动 |

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

2.2 外观设置
字体/大小/颜色/对齐、标题(含标题文字颜色)、网格(网格/边框颜色)、背景(标题背景/콘텐츠背景)、奇偶分行(背景颜色2)。

3. 적용案例
3.1 데이터采集(100 通道)
자료采集:설명"历史데이터",定时采样,2000 条,周期 1 秒,데이터주소 LW1010,UINT16,데이터个数 100,控制주소 LW1001,采样控制 LW1000 OFF→ON。데이터记录控件:데이터来源자료采集(索引[0]),通道 100,时间逆序,固定列 2,每页 5 行,滚动条+手势滑动,翻页控制 LW1004、允许翻页 LW1005、时间戳 LW1006、选中行 LW1008。


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



时间戳定位:下拉菜单绑 0xA000,选项콘텐츠=历史데이터日期(자료取样索引[0]),选某天定位到该天第一条记录。

3.2 特殊적용:주소不连续/유형不同(문자串表格 + LUA)
当레지스터주소不连续、데이터유형不一致(如电压 4x0000 UINT32、电流 4x0007 UINT32、负载率 4x0015 UINT16、谐波 4x0021 INT16、功因 4x0026 UINT32…)时,用문자串表格方案:자료采集데이터주소 LW2000、유형 STRING、个数 100;LUA 在 on_run 里读各레지스터拼接문자串쓰기 LW2000,每列用分号 ; 分隔:
function on_init()
set_run_cycle(1000)
시작_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 개발문서(hmi-doc.gz-dc.com)记录튜토리얼「데이터记录」,版权归大彩科技所有。
답글 작성