Skip to content

MQTT数据转发

将scada采集到的设备数据,通过MQTT协议转发给第三方平台

配置流程

数据转发 --> 添加MQTT数据转发 --> 设置转发属性 --> 发布订阅配置 --> 添加变量 --> 运行工程

INFO

通过MQTT协议将Scada系统里采集到的设备数据上传值给第三方服务器

1、进入[数据转发],在[转发列表]点击添加转发,选择MQTT协议,自定义转发名称,完成基础转发创建 png

2、点击已创建的 MQTT 转发条目,进入属性配置页面,按要求填写参数后点击保存,各属性配置规范如下:

名词配置方式说明
转发名称自定义默认与创建的名称一致,也可以自行修改
服务器地址MQTT服务器实际地址:支持域名 / IP 格式,需确保设备网络可访问
服务器端口MQTT 服务器对应端口:1883常规为 1883(TCP)、8883(SSL/TLS),按服务器配置填写
客户端 ID自定义:建议唯一(如设备 SN + 转发名称),避免同服务器下 ID 冲突导致连接异常
用户名 / 密码:admin按 MQTT 服务器要求填写无认证则留空,有认证需准确输入,否则无法建立连接
协议版本3.1/3.1.1与 MQTT 服务器版本保持一致,优先选择 3.1.1(兼容性更强)
心跳间隔自定义:30000单位固定是ms
清理会话开启 / 关闭开启:断开后清除会话,重连后重新订阅;关闭:保留会话,重连后恢复订阅(适合需要持续接收数据场景)
最大/最小重连间隔自定义配置设备断网后的重连时间范围,建议最小≥1000ms,最大≤30000ms,避免频繁重连
离线缓存数量禁用 / 启用 + 设置条数禁用为默认;启用后设置缓存上限,超出则覆盖旧数据,适合对数据完整性要求一般的场景
断网续传禁用 / 启用启用后,断网期间采集的 PLC 数据本地存储,重连后批量上传,数据完整性要求高的场景建议开启(与离线缓存功能互补)
遗嘱设置禁用 / 启用启用后需配置以下参数,缺一不可:1. 主题:自定义(不能为空,如「device/mqtt/status」)2. 质量:最多一次 / 最少一次 / 精准一次(按业务可靠性要求选择)3. 内容:自定义(如「设备离线」「连接中断」,便于服务器感知设备状态)

png 3、点击发布配置订阅配置,分别完成上次变量和写入变量的双向配置,确保数据收发规则匹配业务需求

名词配置方式说明
类型选择上次变量与写入变量的详细控制变量写入回复默认不配置,也可以根据业务实际需求进行配置
主题自定义配置数据主题要与服务器要求的格式一致,上传于写入的主题要做区分,避免收发混淆
是否保留依据业务设置保留消息主要是服务器依据设置来判断是否保留这次消息,便于后续设备的订阅
质量根据业务场景选择数据消息质量QoS1:最多一次/QoS2:最少一次/QoS3:精准一次。等级越高,可靠性越高,但传输速度越慢,占用资源越多
数据类型选择对应从协议格式目前仅支持key-value/name-velue两种格式,自定义格式可以通过全局脚本里的脚本功能实现
数据格式字符串/数值配置的是上传变量值的类型是字符串还是数值

3.1进行上传变量的详细配置,依次配置:主题(自定义:sys/device/demo2026/variant_data)、消息质量(精准一次)、数据类型(key-value)、数据格式(数值) png

3.2进行写入变量的详细配置,依次配置:主题(自定义:sys/device/demo2026/write_variant)、消息质量(精准一次)、数据类型(key-value)、数据格式(数值) png

名词内容
数据类型:key-value{"电压":0,"电流":0}
数据类型:name-value[{"name":"电压","value":0},{"name":"电流","value":0}]
数据类型:标准直接上传正常的变量值:0
数据类型:字符串在上传的变量值上添加"":"0"

4、点击添加变量,在变量列表中精准勾选需要参与 MQTT 转发的变量(非必要变量不勾选,减少数据传输压力);支持导入 / 导出变量配置,同时支持批量修改变量的上传参数(如上传方式、上传间隔、上传名称),提升大批量变量配置效率。 png

5、所有配置完成后,点击运行工程,系统将按配置启动 MQTT 数据转发流程,自动建立与 MQTT 服务器的连接并开始数据收发。 png

6、工程运行后,点击[通讯报文]模块,可实时查看 MQTT 连接日志、数据收发日志、异常日志(如连接失败、重连、数据发送失败等),通过日志实现以下优化:

问题解决方式
连接服务端失败1.检查服务器地址、端口是否正确,设备与服务器网络是否通畅,防火墙是否放行对应端口;2.核对用户名、密码是否与 MQTT 服务器配置一致;
数据正常上传,服务器收不到数据1.检查发布订阅主题、消息质量、数据格式是否与服务器约定一致;2.检查转发上传的名称是否与服务器约定一致

png

SCADA帮助文档