Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)

免费免费技术资料

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

本文目录
  1. 1. 1 适用范围与开发环境
  2. 2. 2 串口屏 Modbus 协议基础
  3. 3. 3 Modbus 协议与变量配置(前置条件)
  4. 4. 3.1 屏作主机 / 从机配置项
  5. 5. 3.2 建立变量
  6. 6. 4 数据记录控件的两种用法(先读这段,再配)
  7. 7. 4.1 用法一:bit 位映射(寄存器返回位图,需要拆子节点)
  8. 8. 4.2 用法二:值映射(寄存器直读事件编号,不拆子节点)
  9. 9. 4.3 两种用法怎么选
  10. 10. 5 教程实现(以 bit 用法完整演示,值映射见 4.2)
  11. 11. 5.1 准备工程素材
  12. 12. 5.2 新建工程
  13. 13. 5.3 配置 Modbus 主机
  14. 14. 5.4 画面与控件配置
  15. 15. 5.5 当前告警画面
  16. 16. 5.6 历史告警画面
  17. 17. 5.7 运行预览
  18. 18. 6 下载工程
  19. 19. 7 工程实操要点(踩坑提示)

数据记录控件是大彩串口屏里专门用来做告警 / 事件记录的工具。在 Modbus 工程里,它把从机(PLC、变频器、温控模块)上来的报警状态按时间排好显示在屏上。本教程走一遍从协议配置、变量建立到画面联调的完整流程,并重点把两种最常见的事件记录用法分开讲清楚,避免配错导致屏上不显示、记不下来。文档整理自广州大彩光电科技有限公司《MODBUS 教程_数据记录控件 V1.0》,版权归大彩。

1 适用范围与开发环境

该文档适用于大彩所有支持 Modbus 协议的串口屏产品:基本型、经济型、商业型、F 型、物联型、86 盒、485 系列。NANO 系列除外(NANO 仅支持大彩组态协议,不支持 Modbus)。

搭建工程前先确认版本够用,版本不够会在编译或运行期出诡异问题,调半天发现是固件旧了:

软件 / 固件 最低版本要求 查看方式
VisualTFT 上位机 V3.0.0.1037 及以上 启动页右上角 / 软件右下角
基本型 / 经济型 / 商业型 固件 MB 2.22.912.259 及以上 屏背面贴纸,或文本控件绑「系统变量→固件版本号」
物联型固件 V3.0.301.0 及以上 同上
F 型固件 V4.1.66.0 及以上 同上

本例程硬件验证平台为大彩基本型 7 寸屏 DC80480B070,其它尺寸串口屏照此教程即可。上位机用大彩自研的 VisualTFT,官网 http://www.gz-dc.com 下载。

2 串口屏 Modbus 协议基础

大彩除 NANO 外的所有系列串口屏,都同时支持两种协议版本:大彩组态协议、Modbus RTU 协议。屏的串口物理规格固定为:1 起始位 / 8 数据位 / 无校验 / 1 停止位(8N1)。波特率范围:RS232 支持 1200~921600bps(典型 115200),RS485 支持 1200~115200bps(典型 9600)。

开发 Modbus 工程时,你在 VisualTFT 里配好的变量和协议,编译后会固化进工程包下到屏里。屏作主机时,按你设的轮询周期周期性地往从机发读指令,收到从机应答后解析,刷新绑定的控件或触发预设动作;屏作从机时则响应外部主站的轮询。

3 Modbus 协议与变量配置(前置条件)

打开 VisualTFT 菜单【工具】→【协议与变量设置】,左侧选文件路径,右侧协议设置栏设协议类型。数据记录控件本身不绑定具体寄存器读取,它显示的是「变量」的状态变化,而变量是从 Modbus 寄存器映射上来的——所以协议和变量必须先配好。

3.1 屏作主机 / 从机配置项

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图1

配置项 默认值 说明
启用协议 必须勾上才支持 Modbus
协议类型 选「Modbus 主机」或「Modbus 从机」;本例程即主机模式
从机地址 1 仅从机模式需要,主机模式下从机地址在变量里单独填
轮询周期 1 秒 周期性读变量的间隔
轮询延时 100 毫秒 相邻两条读命令之间的间隔
应答超时 100 毫秒 允许从机的最大响应延时
连续读取 连续地址变量一次性最大读取数
优化读取 开启后只读本画面相关的变量,省串口带宽
存储设置 不存储 / 全部存储 / 存储指定变量(推荐后者,存很少改的系统参数)
存储标记 数据格式改了手动改这个值,防止读到旧版本存储

存储设置里「全部存储」不推荐——频繁写 Flash 会加速坏块。要掉电保存的,用「存储指定变量」勾选特定变量即可。屏作从机时配置项少一些:启用协议、协议类型选「Modbus 从机」、从机地址(默认 1)、存储设置、存储标记。

3.2 建立变量

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图2

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图3

添加变量节点后在属性窗口设置。几个关键属性:

属性 说明
名称 默认 Variable1/2/3…,建议改成有意义的,如「机组状态」;分段变量默认 Field1/2/3…,可改「开/关机」
格式 / 符号 短整型、长整型、单精度浮点、字符串;可设无符号 / 有符号
读写设置 可读写 / 只读取 / 只写入
默认值 默认显示值
数值转换 实际值 = 原始值 × 缩放 + 平移,比如 0.1 倍率把寄存器整数转成带小数工程量
显示格式 设置整数和小数部分的位数
数组类型 开启后从该地址连续操作 N 个寄存器
是否储存 协议开启存储设置后,此处勾选可掉电保存

变量参数里:变量类型支持线圈、离散输入、保持寄存器、输入寄存器、内存变量、系统变量;屏作主机时才需要填从机地址变量地址(16 进制填写);「初始化从机」是上电后把变量值写回从机;「读取失败归零」是读不到时变量归零(报警场合慎用,可能误显)。

4 数据记录控件的两种用法(先读这段,再配)

数据记录控件记录的是「变量状态变化产生的事件」。要让某条告警显示出来,要做两件事:

  1. 告警解析:建立「事件 ID → 文本 / 颜色」的对照表。屏上显示什么字、什么颜色,由这里决定。
  2. 事件记录[触发]:决定「什么时候记一条」。只有触发条件满足,才会按告警解析里的文本生成一条带时间戳的记录。

事件 ID 怎么填、触发条件怎么写,取决于你的从机返回的是什么数据。实务里有两种用法,配法完全不同,下面分层讲。

4.1 用法一:bit 位映射(寄存器返回位图,需要拆子节点)

适用场景:从机在一个寄存器里用不同 bit 表示不同告警,返回的是「位图」。例如建一个离散输入变量「机组故障」(占 1 个 16 位寄存器),bit0=压缩机低压、bit1=风机故障、bit2=烟感报警、bit3=过滤网堵塞。

必须建子节点:因为这种用法要把每一位单独拆出来当成一个变量,否则控件分不清是哪一位。在变量下添加子节点(分段变量),把 bit0~bit3 分别命名:

子节点(分段变量) 对应 bit 含义
Field1 bit0 压缩机低压
Field2 bit1 风机故障
Field3 bit2 烟感报警
Field4 bit3 过滤网堵塞

告警解析:事件 ID 填子节点序号 0/1/2/3(对应 bit0~bit3),并设好描述和颜色。

事件记录[触发]:事件参数选变量、事件 ID 选对应子节点(0/1/2/3),执行条件写「该子节点 == 1」。例如:事件参数=变量 / 事件 ID=0 / 执行条件=等于 / 变量=机组故障/压缩机低压 / 数值=1。

⚠ 注意:bit 用法里事件 ID 是子节点序号(从 0 开始),不是寄存器返回的 0001/0002。底层对应寄存器值 0x0001/0x0002/0x0004/0x0008。一个 16 位寄存器最多 bit0~bit15 共 16 个事件。事件关联发生在屏侧:控件拿寄存器值按 bit 匹配子节点,再去告警解析取文本。

4.2 用法二:值映射(寄存器直读事件编号,不拆子节点)

适用场景:从机直接返回一个「事件编号」值,例如读到 0x0001 表示事件一、0x0002 表示事件二、0x0003 表示事件三……寄存器里放的就是编号本身,不需要拆 bit、不需要建子节点

不建子节点:这种用法下,变量就一个,读回来的值就是事件编号,别去拆位。

告警解析:事件 ID 填从机返回的那个编号值(如 1、2、3,或对应的十六进制 0001、0002、0003,按你寄存器实际返回填),并设好描述和颜色。

事件记录[触发]配置(严格按下面 5 步)

  1. 事件参数:选择「变量」
  2. 事件 ID:选择上面设定的那个寄存器变量(就是读编号的那个变量本身)
  3. 执行条件:选择「等于」
  4. 变量:还是选这个寄存器(和步骤 2 同一个)
  5. 数值:填写从机返回的值(如 1 / 2 / 3,或 0001 / 0002 / 0003,与告警解析里的事件 ID 一致)

⚠ 注意:值映射用法不设子节点、不写「某位 == 1」。条件是「寄存器值 == 某个编号」,命中后屏直接按告警解析里那个编号对应的文本显示 / 记录时间。告警解析里的事件 ID 和此处「数值」必须完全一致,否则读过来的数对不上文本,屏上就不显示、也不计时。

4.3 两种用法怎么选

对比项 用法一 bit 位映射 用法二 值映射
从机返回 位图(每位一个告警) 事件编号值(0001/0002/0003…)
是否建子节点 需要(拆 bit) 不需要
事件 ID 填什么 子节点序号 0/1/2/3 寄存器返回的编号值
执行条件 某子节点 == 1 寄存器 == 某个编号
常见场景 一个故障字含多个开关量 从机主动上报事件流水号

5 教程实现(以 bit 用法完整演示,值映射见 4.2)

数据记录控件支持三种记录类型:当前告警历史告警历史告警与解除(比「历史告警」多了每条告警的解除时间)。本例程对前两种做示范,整体分三步:准备素材 → 功能实现 → 下载工程。下面以 4.1 的 bit 用法走完整流程(有图);若你的工程是 4.2 值映射,把「事件记录[触发]」按 4.2 的 5 步改即可,其它一致。

5.1 准备工程素材

硬件用 DC80480B070 基本型 7 寸屏;软件用 VisualTFT;UI 用准备好的美工图。工程结构采用首页导航 + 分画面:首页放两个按钮切到【当前告警】和【历史告警】画面,每个子画面有返回首页按钮。另外配【当前告警说明】和【历史告警说明】两个纯说明画面。

5.2 新建工程

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图4

打开菜单【文件】→【新建工程】,弹出新建工程窗口,设置好工程名称、路径、设备类型,点击【确定】。

5.3 配置 Modbus 主机

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图5

进入【工具】→【协议与变量设置】,协议类型设「Modbus 主机」,参数按 3.1 节。轮询周期 1 秒、轮询延时 100ms、应答超时 100ms 是默认,一般不用动。

5.4 画面与控件配置

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图6

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图7

首页放两个按钮(控件 ID:1),触控类型「切换画面」,目标画面分别指【当前告警】和【历史告警】。按钮属性里把触控类型设为「切换画面」、目标画面选【当前告警】,另一个同理。

5.5 当前告警画面

从机产生报警时,数据记录控件显示当前的告警和触发时间;报警解除后控件不再显示该条。配置步骤:

  1. 画面加一个数据记录控件(控件 ID:1),把「记录类型」设为当前告警
  2. 在「告警解析」里设置各事件 ID 的数值、显示颜色、描述;
  3. 针对每个事件 ID,加一条用途为「事件记录[触发]」的逻辑处理,执行条件设成该位 == 1(bit 用法)或该寄存器值 == 编号(值映射,见 4.2)。

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图8

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图9

「告警解析」对话框三列:事件 ID(数值)、前景颜色、描述。本例用 bit 用法,建离散输入变量「机组故障」取前 4 位,事件 ID 填子节点序号 0=压缩机低压、1=风机故障、2=烟感报警、3=过滤网堵塞(当前告警里颜色按严重度区分,例如压缩机低压红、风机/烟感绿、滤网蓝)。

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图10

每个事件 ID 对应一条「事件记录[触发]」逻辑。bit 用法写法形如:事件记录[触发] / 控件(1,1) / 事件(0) / 条件(机组故障/压缩机低压 == 1),即该位为 1 时触发一条告警记录。四个事件分别为事件0(压缩机低压)、事件1(风机故障)、事件2(烟感报警)、事件3(过滤网堵塞)——事件 ID 必须和「告警解析」里填的数值一一对上。

若你用的是 4.2 值映射,这里就按 4.2 的 5 步来:事件参数=变量 / 事件 ID=那个寄存器 / 执行条件=等于 / 变量=同寄存器 / 数值=返回的编号(如 1)。

5.6 历史告警画面

历史告警与当前告警配置几乎一样,唯一区别是记录类型选历史告警。不同点:报警解除后,历史告警的这条记录仍然留在表格里;如果在 Modbus 协议里开了存储设置,还能掉电保存,重新上电不丢。

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图11

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图12

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图13

历史告警的「告警解析」与「事件记录[触发]」逻辑和当前告警完全对称,只是控件指向画面 2,且告警解析里四项颜色统一设为红(255,0,0),强调”已发生即留痕”。事件 ID 同样从 0 起始对应子节点序号(bit 用法),逻辑里同样要写”各位 == 1″的条件;值映射用法见 4.2。

5.7 运行预览

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图14

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图15

本例程屏作主机,用 Modbus Slave 软件模拟从机应答。运行虚拟屏,与 Modbus Slave 联机即可看到效果:当前告警画面列出活动告警(压缩机低压、烟感报警、过滤网堵塞)及其触发时间,右侧 Modbus Slave 显示对应寄存器值与通信日志。具体操作参考大彩《【MODBUS】串口屏_应用文档_V1.0.pdf》。

6 下载工程

Modbus 教程 6:数据记录控件(串口屏 Modbus 告警记录)插图16

VisualTFT 编译成功后输出窗口会提示「编译成功」,再下到屏里,两种方式:

  • USB 下载:点菜单【下载到设备】,用 USB 线把配置下进屏;
  • SD 卡下载:菜单【工具】→【量产向导】→ 选「SD 卡下载」,把弹窗里所有文件拷到 SD 卡根目录,插屏后重新上电,烧录完取下 SD 卡。

7 工程实操要点(踩坑提示)

  • 先定用法,再配:从机返回的是位图(bit 用法,要拆子节点)还是事件编号(值映射,不拆子节点)?两种配法完全不同,混着写屏上必然不显示。
  • bit 用法:事件 ID = 子节点序号 0/1/2/3,对应寄存器值 0x0001/0x0002/0x0004/0x0008。别把”寄存器返回 0001/0002/0003″当编号填进事件 ID——0003 是 bit0+bit1 同置,不是”事件 3″。
  • 值映射用法:不建子节点、不写「某位 == 1」。事件记录[触发]按 4.2 的 5 步:事件参数=变量 → 事件 ID=那个寄存器 → 执行条件=等于 → 变量=同寄存器 → 数值=返回编号。告警解析里的事件 ID 与这里数值必须完全一致。
  • 事件 ID 必须对齐:「告警解析」里填的 ID,和「事件记录[触发]」逻辑里的事件 ID(或数值)是同一个东西,对不上屏上就不显示那条告警。
  • 逻辑必设条件:「事件记录[触发]」不写执行条件会无条件触发,所有事件都被记下来,画面一团乱。
  • 历史告警要掉电保存,记得开存储:只在 Modbus 协议配置里开了「存储设置 = 存储指定变量」,且变量属性里勾了「是否储存」,历史告警断电后才不丢。两处都要设,只设一处不生效。
  • 当前告警 vs 历史告警的语义:当前告警是「活的」——解除即消失;历史告警是「记账」——解除也留痕。选型时想清楚你要的是实时状态还是审计记录。
  • 轮询周期别太狠:从机响应慢或总线设备多时,1 秒轮询 + 100ms 延时要酌情放大,否则会出现读到一半超时、报警跳变。
  • 颜色 ID 有意义:当前告警按严重度用不同前景色(红/绿/蓝),历史告警统一红——别随便填,否则屏上区分不出来。

整理自广州大彩光电科技有限公司《MODBUS 教程_数据记录控件 V1.0》(www.gz-dc.com),版权归大彩所有。如需联机调试细节,参见大彩《【MODBUS】串口屏_应用文档_V1.0.pdf》。

技术术语(共 9 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用二进制编码和CRC校验
RS485工业常用的差分串行通信标准,支持多点通信
RS232点对点串行通信标准,常用于短距离设备通信
寄存器Modbus 寄存器存储数据单元,分线圈/离散输入/保持/输入寄存器四类
PLC可编程逻辑控制器,工业自动化控制的核心设备
波特率串行通信每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行通信的物理接口
线圈Modbus位可读写数据,地址从00001开始
保持寄存器Modbus 16位可读写数据,地址从40001开始
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 Modbus 协议文档 / Modbus 协议标准 / 触控屏开发文档 字数 5554 字 · 阅读约 14 分钟 更新 2026-08-07 永久链接 https://www.modbus.cn/52186.html
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

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

工程师会员

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

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

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

发表回复

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