Skip to Content
技术文档05 · 数据转发转发配置与运行
本页目录

数据转发

数据转发把 TGateway 已采集到的变量、设备状态、报警和事件发送到外部系统,也可以写入实时数据、历史数据或历史报警目标。

页面只需要理解两个对象:转发组决定“发送哪些数据、什么时候发送”,转发目标决定“发送到哪里”。

最短配置流程

  1. 进入“开发配置 → 数据转发”,新建一个转发组。
  2. 变量范围选择“手动选择”,触发模式选择“定时”,定时间隔填 1000,保存。
  3. 选中已保存的组,打开“转发组变量配置”,点击“新增变量配置”,先选设备再选变量,保存。具体见维护组变量。
  4. 在转发组下新增目标,选择目标插件,填写连接参数并保存。需要外部字段或地址时,再维护目标的“变量属性”。
  5. 启用转发组和目标,确认目标运行正常。
  6. 到接收端查看这个变量的数据;仅看到目标在线,还不能说明已经上传成功。

页面入口

菜单路径:开发配置 → 数据转发。

数据转发中的转发组、目标和运行状态

区域用途
转发组列表新增、编辑、删除、启停和重启转发组。
转发目标列表管理所选转发组下的目标、变量属性和目标运行状态。
详情区查看详细信息、组日志、目标日志和调试页。

配置转发组与目标

配置转发组

点击转发组面板的新增按钮,打开转发组配置窗口。

转发组配置窗口

配置项说明
名称转发组显示名称,建议体现业务范围,例如“生产线A_实时上传”。
排序控制组导航顺序,数字较小的在前;修改排序不会改变变量采样或目标发送顺序。
启用控制该组是否运行。禁用后组下目标不会启动。
日志级别组级日志详细程度。联调时可临时提高,稳定后恢复 Info。
变量范围可选全部变量、手动选择、采集设备或采集组。
范围配置使用采集设备或采集组范围时,填写对应名称;多个名称用英文逗号分隔。
触发模式变化、定时、定时或变化。
定时间隔触发模式包含定时时填写毫秒数或 Cron;常规周期优先填毫秒数,例如 1000。
在线过滤开启后只发送在线变量。
分批模式不分批、全部、按数据组、按设备或按采集组分批。
最大批量组交付给目标的一个快照批次最多包含的变量记录数。目标还会按自身分片、Topic 和格式生成出站消息。
描述记录组用途、范围和维护说明。

变量范围怎么选

范围适用场景
全部变量整站上传。
手动选择只转发少量关键点位或试点变量。
采集设备按设备名称筛选,适合同一设备或一组设备。
采集组按变量的采集组筛选,适合按业务分组。

触发和分批怎么选

需求建议
值改变就发送选择“变化”。
固定周期上报选择“定时”,填写毫秒数。
变化和周期都要发送选择“定时或变化”。
按设备组织输入批次分批选择“按设备”,再核对目标实际出站消息。
按业务分组组织输入批次分批选择“按数据组”或“按采集组”。
数据量小、目标自行处理批量选择“不分批”。

分批决定组向目标交付的记录边界,不直接决定外部消息的最终数量。目标还会按 Topic、列表或字典开关、模板和上传分片生成载荷。例如“按设备”再配置不同变量 Topic,仍可能形成多条 MQTT 消息;字典也可能把同一变量的多条记录合并为一个键。对接验收应查看接收端的完整消息,配置方法见上传模板与消息格式。

维护组变量

手动选择范围下,组变量列表就是该组的成员名单;其它范围下,组变量主要用于覆盖变量级设置。

只上传指定的几个变量

  1. 新建转发组,把“变量范围”设为“手动选择”,先点击“保存”。新组尚未保存时,不能添加变量。
  2. 选中已保存的组,切换“转发组变量配置”。列表与右侧编辑区分别用于查找记录和编辑当前记录。
  3. 点击“新增变量配置”,先选择源设备,再搜索并选择变量;设备改变后重新选择变量。
  4. 核对“启用”、数据组、更新模式、组触发及别名,点击右侧“保存”。
  5. 重复添加其他变量,刷新列表并按设备、名称查找成员,核对启用状态。
  6. 修改时选中已有行,在右侧保存。需要移出多项时勾选记录并使用批量删除,核对确认范围;这不会删除原来的采集变量。关闭“启用”则保留配置并停止该成员参与本组。

新增变量后,检查该行“更新”与本次要求一致:固定值也要周期发送时选择“定时”或“定时或变化”。数据组和别名无额外要求时可留空。

转发组变量配置窗口

配置项说明
变量选择要加入或覆盖配置的变量。
启用控制该变量是否参与当前组。
数据组用于“按数据组”分批。
更新覆盖该变量的触发方式。
组触发开启后变量变化可以唤醒整个转发组。
别名当前组中的外部命名设置,是否进入载荷取决于目标、模板或脚本;默认 MQTT 实体不会自动用它替换变量名。

变量覆盖与整组触发

新增行以当前组触发模式作为起点;保存后,“更新”独立控制该变量在当前组内的触发方式。修改组触发模式时,如需已有成员采用相同模式,应逐行调整“更新”。排查漏发时,检查成员行的实际设置。

需要在设备运行标志变化时一同上报温度、压力,可为运行标志开启“组触发”,并将伴随变量加入组范围。组触发发送范围内变量的当前状态,采集时间仍以各变量自己的采样为准。

  1. 将测试变量 A、B 加入组范围,更新模式均设为“变化”,先关闭 A 的“组触发”。
  2. 固定 B、改变 A,在接收端核对本次 A 的值和时间。
  3. 开启 A 的“组触发”并保存,再改变 A,核对 B 是否按配置一同发送。

关闭“组触发”后,该变量仍按“启用”和“更新”设置参与转发,但自身变化不再唤醒整个组。

用四个变量验证分批

  1. 选择两个设备、每台两个测试点,先确认四点都在范围内并正常更新。
  2. 先用“全部”形成快照,再比较最大批量为 1 与较大值时的入口批次和接收载荷。
  3. 改用“按设备”或“按采集组”,按变量身份检查每个集合。
  4. 需要跨设备业务分组时,在当前组的覆盖行中设置数据组,例如两个跨设备点归 Fast,另两个归 Slow。
  5. “按数据组”下空数据组按未分组单点处理。需要严格分类时,应为全部成员填写数据组,再结合目标上传分片核对。

“不分批”将符合条件的变量按单点交给目标;“全部”等模式形成组快照,目标出站仍可能再次合并或拆分。采集组来自变量配置,数据组只属于当前转发组,二者不会互相修改。

验证在线过滤时,可以在维护窗口停止测试源:关闭过滤应保留离线质量及最后值,开启过滤应从新快照排除离线点。成员数量不因此改变;恢复源端后用新的在线采样确认重新进入,不能用外部空窗口单独判断目标断线。

配置转发目标

先选中转发组,再点击目标面板的新增按钮。

转发目标配置窗口

配置项说明
所属转发组当前目标归属的转发组;目标只消费该组范围内的数据。
目标名称同一转发组内唯一,用于日志、冗余和导入导出定位。
启用控制目标是否运行。启用后才会进入运行态并支持调试。
允许方法调用默认关闭。允许直接调用此目标公开的全部方法;作为 MQTT 或 UA 入口调用别的实例时,检查那个实例的开关。详见插件方法调用。
插件选择数据转发插件;选择后显示对应的插件属性。
日志级别控制目标日志详细程度。
启动超时目标连接或初始化的等待时间,单位秒。
描述记录目标用途和维护说明。
插件目标属性由具体插件提供,字段含义见对应插件手册索引。

插件参数在哪里看

公共页面只说明目标的创建和启停。MQTT、Kafka、RabbitMQ、Webhook、Modbus、OPC UA、IEC104、IEC61850、数据库和 SyncBridge 的专用参数、模板、调试页及排障方法,统一放在对应的数据转发插件手册。

目标变量属性

目标变量属性是“某个变量在某个目标下的外部映射”,不是转发组成员范围。

常见用途包括:

  • 外部字段名、别名和自定义数据字段。
  • Modbus 从站地址、数据类型和写入权限。
  • MQTT、Kafka、RabbitMQ、Webhook 等目标的上传字段。

历史数据存储的采样范围和触发方式在转发组中配置,不在“目标变量属性”中重复设置。

配置前先选择有效的转发目标和变量。变量必须先进入转发组范围,目标变量属性才会生效。

  1. 选中提供变量属性的目标,打开“目标变量属性”;没有变量属性的插件不显示此页签。
  2. 点击“新增变量属性”,先选择设备,再选择当前组范围内的变量,填写当前插件要求的映射字段。
  3. 点击右侧“保存”;修改时选中已有记录,在右侧编辑并保存。勾选列表可批量删除当前目标的属性记录。
  4. 确认记录出现在列表中,再到接收端核对字段或地址。不要用这里代替上面的“转发变量”成员设置。

运行、调试与恢复

启停和验证

保存后依次确认:

  1. 转发组已启用。
  2. 目标已启用并显示运行状态。
  3. 目标的变量范围不是空集。
  4. 目标日志没有连接、认证或发送错误。
  5. 外部系统能看到一条测试数据。

目标在线不等于数据已经送达;必须结合目标日志和外部系统接收结果判断。

调试和日志

选中目标后,点击详情区的“调试”。不同插件会显示不同的专用调试页,例如发布、订阅、客户端列表、服务端状态或协议操作。

目标无法启动或数据没有发出时,先看“转发目标日志”,再看“转发组日志”。

现象先检查
目标没有启动组和目标是否启用,插件是否启用,目标参数是否完整。
没有数据发出变量范围、变量启用状态、触发模式和在线过滤。
目标显示在线但外部没有数据目标日志、外部账号权限、Topic/URL/表名和数据格式。
定时转发不触发触发模式是否包含定时,定时间隔是否为毫秒数或 Cron。
变化转发不触发变量是否真实发生变化;需要唤醒整组时检查“组触发”。
离线缓存持续增长外部系统是否恢复,磁盘空间、上传分片和并发数是否足够。

离线缓存与历史补录

缓存容量、队列与分片组合及完整断网测试见离线缓存与补传;实时、历史、报警和时序库的选型与查询验收见数据库存储配置。

网络恢复后能否补齐历史,取决于发送端是否缓存了每条采样、消息是否保留来源时间,以及接收端是否启用了历史存储。

业务插件缓存与时间行为
MQTT 客户端、MQTT 服务端、Kafka、RabbitMQ、Webhook、ZeroMQ(PRO)支持通用失败重试缓存,原始变量采样保留采集、变化和记录时间。列表上传可保留多条同点记录;字典、模板和脚本可能合并记录或省略时间。外部接收端需按所选格式处理。MQTT 服务端发布成功不代表离线订阅者已收到消息。
SyncBridgeEdge 使用通用缓存,恢复后等待 Hub 应用确认再删除;Hub 可将收到的旧采样和同值采样交给历史数据存储,实时值不回退。
ThingsBoard支持缓存重试,遥测时间 ts 使用来源采集时间 CollectTime;按 ThingsBoard 接口写入。
历史数据存储支持自身缓存和失败重试;中心接收 Gateway MQTT 或 SyncBridge 采样后,可按来源时间写入关系库和时序库。
实时数据存储保存最新状态,不能用来补齐完整历史;更新时间表示本次写入,采集时间单独保留。
历史报警存储缓存实际产生的报警事件;不会根据补发的旧变量值重新推演离线期间的报警。
Modbus 从站、OPC UA 服务端、IEC104 服务端(PRO)主要维护实时协议状态,不提供逐条持久历史补发。OPC UA 历史读取需要另行配置历史库;IEC104 内存变化队列也不等同于持久历史缓存。
IEC61850 服务端(PRO)可配置关系库 Journal 及其离线缓存,保存协议事件。变量更新队列会合并最新状态,不等同于逐变量采样补录。

数据库中的时间

中心使用“历史数据存储”目标,并将镜像变量加入该目标所属组。收到的历史采样独立入库,遵循组范围、启用和来源在线状态过滤;不会因为当前值未变化或已更新而丢弃。中心本地定时采样仍可产生额外记录。

时间字段含义与存储规则
CollectTime边缘采集时间。标准历史数据保留此字段,用于核对现场采样时刻。
CreateTime边缘转发组生成记录的时间;补录时不改成中心接收时间。标准关系库按此列分表;QuestDB、TDengine 和 IoTDB 的标准历史模型使用它作为主记录时间。
ChangeTime来源值或状态最近变化的时间;随同步采样保留,标准历史表不单独存储此列。

配置数据库时区后,时间按目标时区转换保存。自定义 SQL、表结构和动态脚本需自行保留所需字段,并决定相同测点、相同时间记录的覆盖或去重规则。补录使用来源已处理的值,中心读取表达式不会重放。

断网验收

  1. 在边缘启用目标缓存,确认变量范围、触发方式和在线过滤满足采样要求;在中心启用对应历史目标。
  2. 记录几次测试值及其采集时间,在维护窗口断开上传链路,继续产生多条采样。
  3. 确认缓存增加,恢复链路后确认缓存逐步减少。
  4. 在中心查询断线期间的历史范围,逐条核对值、采集时间、记录时间和在线状态,确认实时值仍为最新值。

缓存不能恢复未采集、未被转发组生产或因容量超限被淘汰的数据。通用缓存按成功结果删除,不提供跨消息系统与数据库的唯一写入保证;确认丢失、QoS 重投、快照或批次重试都可能形成重复记录。

Gateway MQTT 大量补发时,超过中心每秒消息上限或并发处理容量的消息会被拒绝,已获 Broker 确认的消息不会因此自动回到边缘缓存。请根据补发峰值配置分片、发送速率和中心处理容量,并检查拒绝计数。

目标冗余

目标冗余用于主备目标切换。

  1. 主目标和备用目标必须在同一转发组内。
  2. 备用目标建议使用相同插件,并单独填写连接参数和认证信息。
  3. 备用目标不能同时作为其它目标的备用目标,也不要开启自己的冗余。
  4. 上线前手动切换一次,确认备用目标能够发送。

导入导出

  1. 点击转发组面板的“导出配置”,保留一份原始文件作为备份。
  2. 修改副本,保留导出的工作表名称、列名及组与目标之间的关联。换网关使用前,先在新网关准备好同名采集设备和变量。
  3. 点击“导入配置”,选择修改后的文件。选择文件后即开始导入,不是只预览。
  4. 查看导入结果中的各工作表和失败行。发生错误时,先检查当前配置,不能假定整份文件都没有写入。
  5. 重新打开转发组,检查成员、目标插件和变量属性,再确认目标连接和接收结果。

相关链接