Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

データ記録控件是大彩シリアルポート屏里专门用来做告警 / 事件记录的工具。在 Modbus 工程里,它把スレーブ(PLC、周波数変換器、温控モジュール)上来的报警ステータス按时间排好表示在屏上。本チュートリアル走一遍从プロトコル構成、变量建立到画面联调完全に。流程,并重点把两种最も一般的な的事件记录用法分开讲清楚,避免配错导致屏上不表示、记不下来。ドキュメント整理自广州大彩光电科技有限公司《MODBUS Tutorial_データ記録控件 V1.0》,著作権は大彩。

1 适用範囲与开发环境

该ドキュメント適用される大彩すべてのサポート Modbus protocol的シリアルポート屏产品:基本型、经济型、商业型、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 Download。

2 HMI Modbus protocol基础

大彩除 NANO 外的すべての系列シリアルポート屏,都同时サポート两种协议版本:大彩组态协议、Modbus RTU Protocol。屏的シリアルポート物理的仕様固定为:1 スタート地点。 / 8 data bit / 検証なし。 / 1 stop bit(8N1)。ボーレート範囲:RS232 サポート 1200~921600bps(典型 115200),RS485 サポート 1200~115200bps(典型 9600)。

开发 Modbus 工程时,你在 VisualTFT 里配好的变量和协议,编译后会固化进工程包下到屏里。屏作マスター时,按你设的ポーリング周期周期性地往スレーブ发readコマンド,收到スレーブ应答后解析,リフレッシュ绑定的控件或触发预设动作;屏作スレーブ时则レスポンス外部マスター的ポーリング。

3 Modbus protocol与变量設定(前置条件)

open VisualTFT 菜单【Tools】→【协议与变量設定】,左侧选文件路径,右侧协议設定栏设协议タイプ。データ記録控件本身不绑定具体レジスタの読み取り,它表示的是「变量」的ステータス变化,而变量是从 Modbus レジスタマップ上来的——所以協定と变量まず必要です。配好。

3.1 屏作マスター / スレーブ設定项

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure1

設定项デフォルト値説明
有効协议必须勾上才サポート Modbus
协议タイプ选「Modbus マスター」或「Modbus スレーブ」;本例程即マスターモード
スレーブアドレス1仅スレーブモード需要,マスターモード下スレーブアドレス在变量里单独填
ポーリング周期1 秒周期性读变量的間隔
ポーリング延时100 毫秒相邻两条读命令之间的間隔
应答タイムアウト100 毫秒允许スレーブ的最大レスポンス延时
连续読み取り连续アドレス变量一次性最大読み取り数
优化読み取り开启后読み取り専用本画面相关的变量,省シリアルポート带宽
存储設定不存储 / すべて存储 / 存储指定变量(おすすめ后者,存很少改的系统参数)
存储标记データ格式改了手动改这个值,防止读到旧版本存储

存储設定里「すべて存储」不おすすめ——频繁写 Flash 会加速坏块。要掉电保存的,用「存储指定变量」勾选特定变量即可。屏作スレーブ时設定项少一些:有効协议、协议タイプ选「Modbus スレーブ」、スレーブアドレス(デフォルト 1)、存储設定、存储标记。

3.2 建立变量

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure2

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure3

変数の追加节点后在属性窗口設定。几个关键属性:

属性説明
Nameデフォルト Variable1/2/3…,建议改成有意义的,如「机组ステータス」;セグメント化变量デフォルト Field1/2/3…,可改「开/关机」
format / 符号短整型、长整型、单精度浮点、ストリング·ストリング;可设符号なし。 / 記号付き。
読み書き設定読み書きができる。 / 只読み取り / 只写入
デフォルト値デフォルト表示值
数值转换实际值 = 元の值 × Zoom + 平移,比如 0.1 倍率把レジスタ全回転。成带小数工程量
Display format設定整数和小数部分的位数
配列タイプ开启后从该アドレス连续操作 N Registers
是否储存协议开启存储設定后,此处勾选可掉电保存

变量参数里:变量タイプサポートコイル、ショップ型入力、レジスタを保持する。、入力レジスタ。、内存变量、系统变量;屏作マスター时才需要填スレーブアドレス变量アドレス(16 进制填写);「初期化スレーブ」是上电后把变量值写回スレーブ;「読み取り失敗归零」是读不到时变量归零(报警场合慎用,可能误显)。

4 データ記録控件的两种用法(先读这段,再配)

データ記録控件记录的是「变量ステータス变化产生的事件」。要让某条告警表示出来,要做两件事:

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

event ID 怎么填、触发条件怎么写,取决于你的スレーブ戻る的是什么データ。实务里有两种用法,配法完全不同,下面分层讲。

4.1 用法一:bit ビットマップ(レジスタ戻る位图,需要拆子节点)

適用可能なシーン:スレーブ在一1つのレジスタ里用不同 bit 表示不同告警,戻る的是「位图」。例如建一個別入力です。变量「机组故障」(占 1 个 16 位レジスタ),bit0=压缩机低压、bit1=风机故障、bit2=烟感报警、bit3=过滤网堵塞。

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

子节点(セグメント化变量)对应 bit含义
Field1bit0压缩机低压
Field2bit1风机故障
Field3bit2烟感报警
Field4bit3过滤网堵塞

告警解析:event ID 填子节点番号 0/1/2/3(对应 bit0~bit3),并设好説明和颜色。

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

⚠ 注意:bit 用法里事件 ID 是子节点番号(从 0 开始),ではないレジスタ戻る的 0001/0002。底层对应レジスタの値 0x0001/0x0002/0x0004/0x0008。一个 16 位レジスタ最多 bit0~bit15 共 16 个事件。事件关联发生在屏侧:控件拿レジスタの値按 bit マッチング子节点,再去告警解析取文本。

4.2 用法二:值マッピング(レジスタ直读事件编号,不拆子节点)

適用可能なシーン:スレーブ直接戻る一个「事件编号」值,例如读到 0x0001 表示事件一、0x0002 表示事件二、0x0003 表示事件三……レジスタ里放的就是编号本身,必要なし。拆 bit、必要なし。建子节点

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

告警解析:event ID 填スレーブ戻る的那个编号值(如 1、2、3,或对应的十六进制 0001、0002、0003,按你レジスタ实际戻る填),并设好説明和颜色。

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

  1. 事件参数:Choice「变量」
  2. event ID:選択上面设定的那1つのレジスタ变量(就是读编号的那个变量本身)
  3. 执行条件:Choice「equal to」
  4. 变量:まだ选这1つのレジスタ(和步骤 2 同一个)
  5. numerical value:填写スレーブ戻る的值(如 1 / 2 / 3,或 0001 / 0002 / 0003,与告警解析里的事件 ID 一致)

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

4.3 两种用法怎么选

comparison items用法一 bit ビットマップ用法二 值マッピング
スレーブ戻る位图(每位一个告警)事件编号值(0001/0002/0003…)
是否建子节点需要(拆 bit)必要なし。
event ID 填什么子节点番号 0/1/2/3レジスタ戻る的编号值
执行条件某子节点 == 1register == 某个编号
常见场景一个故障字含多个开关量スレーブ主动上报事件流水号

5 チュートリアル実装(以 bit 用法完全演示,值マッピング见 4.2)

データ記録控件サポート三种记录タイプ:当前告警历史告警历史告警与解除(比「历史告警」多了每条告警的解除时间)。本例程对前两种做示范,整体分三步:准备素材 → 功能実装 → 下载工程。下面以 4.1 的 bit 用法走完全流程(有图);若你的工程是 4.2 值マッピング,把「事件记录[触发]」按 4.2 的 5 步改即可,其它一致。

5.1 准备工程素材

硬件用 DC80480B070 基本型 7 寸屏;软件用 VisualTFT;UI 用準備して的美工图。工程構造采用ホーム导航 + 分画面:ホーム放2つ按钮切到【当前告警】和【历史告警】画面,每个子画面有ホームに戻る按钮。另外配【当前告警説明】和【历史告警説明】2つ纯説明画面。

5.2 新建工程

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure4

打开菜单【文件】→【新建工程】,弹出新建工程窗口,設定好工程名称、路径、デバイスタイプ,click【确定】。

5.3 設定 Modbus マスター

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure5

进入【Tools】→【协议与变量設定】,协议タイプ设「Modbus マスター」,参数按 3.1 节。ポーリング周期 1 秒、ポーリング延时 100ms、应答タイムアウト 100ms 是デフォルト,一般不用动。

5.4 画面与控件設定

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure6

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure7

ホーム放2つ按钮(control ID:1),触控タイプ「切换画面」,目标画面分别指【当前告警】和【历史告警】。按钮属性里把触控タイプ设为「切换画面」、目标画面选【当前告警】,另一个同理。

5.5 当前告警画面

スレーブ产生报警时,データ記録控件表示current的告警和触发时间;报警解除后控件不再表示该条。設定步骤:

  1. 画面加一个データ記録控件(control ID:1),把「记录タイプ」设为当前告警
  2. 在「告警解析」里設定各事件 ID 的数值、表示颜色、Description;
  3. 针对每个事件 ID,加一条用途为「事件记录[触发]」的逻辑処理,执行条件设成该位 == 1(bit 用法)或该レジスタの値 == 编号(值マッピング,见 4.2)。

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure8

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure9

「告警解析」对话框三列:event ID(numerical value)、前景颜色、Description。本例用 bit 用法,建ショップ型入力变量「机组故障」取前 4 位,event ID 填子节点番号 0=压缩机低压、1=风机故障、2=烟感报警、3=过滤网堵塞(当前告警里颜色按严重度区分,例如压缩机低压红、风机/烟感绿、滤网蓝)。

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure10

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

若你用的是 4.2 值マッピング,这里就按 4.2 的 5 步来:事件参数=变量 / event ID=那1つのレジスタ / 执行条件=equal to / 变量=同レジスタ / numerical value=戻る的编号(如 1)。

5.6 历史告警画面

历史告警与当前告警設定几乎一样,唯一区别是记录タイプ选历史告警。不同点:报警解除后,历史告警的这件のレコード仍然留在表格里;もし在 Modbus protocol里开了存储設定,还能掉电保存,重新上电不丢。

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure11

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure12

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure13

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

5.7 运行预览

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure14

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure15

本例程屏作マスター,用 Modbus Slave 软件模拟スレーブ应答。运行虚拟屏,与 Modbus Slave 联机即可看到效果:当前告警画面列出活动告警(压缩机低压、烟感报警、过滤网堵塞)及其触发时间,右侧 Modbus Slave 表示对应レジスタの値与通信日志。具体操作参照大彩《【MODBUS】HMI_应用ドキュメント_V1.0.pdf》。

6 下载工程

Modbus Tutorial 6:データ記録控件(HMI Modbus 告警记录)Figure16

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

  • USB Download:点菜单【下载到デバイス】,用 USB 线把設定下进屏;
  • SD 卡下载:菜单【Tools】→【量产向导】→ 选「SD 卡下载」,把弹窗里すべての文件拷到 SD 卡根目录,插屏后重新上电,烧录完取下 SD 卡。

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

  • 先定用法,再配:スレーブ戻る的是位图(bit 用法,要拆子节点)まだ事件编号(值マッピング,不拆子节点)?两种配法完全不同,混着写屏上必然不表示。
  • bit 用法:event ID = 子节点番号 0/1/2/3,对应レジスタの値 0x0001/0x0002/0x0004/0x0008。别把"レジスタ戻る 0001/0002/0003"当编号填进事件 ID——0003 是 bit0+bit1 同置,ではない"event 3"。
  • 值マッピング用法:不建子节点、不写「某位 == 1」。事件记录[触发]按 4.2 的 5 步:事件参数=变量 → event ID=那1つのレジスタ → 执行条件=equal to → 变量=同レジスタ → numerical value=戻る编号。告警解析里的事件 ID 与这里数值必须完全一致。
  • event ID 必须对齐:「告警解析」里填的 ID,和「事件记录[触发]」逻辑里的事件 ID(或数值)是同一个东西,对不上屏上就不表示那条告警。
  • 逻辑必设条件:「事件记录[触发]」不写执行条件会无条件触发,すべての事件都被记下来,画面一团乱。
  • 历史告警要掉电保存,记得开存储:のみ Modbus protocol設定里开了「存储設定 = 存储指定变量」,且変数属性です勾了「是否储存」,历史告警停電后才不丢。两处都要设,只设一处不生效。
  • 当前告警 vs 历史告警的语义:当前告警是「活的」——解除即消失;历史告警是「记账」——解除也留痕。选型时想清楚你要的是实时ステータスまだ审计记录。
  • ポーリング周期别太狠:スレーブレスポンス慢或バスデバイス多时,1 秒ポーリング + 100ms 延时要酌情放大,否则会出现读到一半タイムアウト、报警跳变。
  • 颜色 ID 有意义:当前告警按严重度用不同前景色(红/绿/蓝),历史告警统一红——别随便填,否则屏上区分不出来。

整理自广州大彩光电科技有限公司《MODBUS Tutorial_データ記録控件 V1.0》(www.gz-dc.com),著作権は大彩すべての。如需联机デバッグ细节,参见大彩《【MODBUS】HMI_应用ドキュメント_V1.0.pdf》。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.