Skip to content

MQTT协议数据转发

在物联网(IoT)应用中,MQTT客户端负责从各种设备(如传感器、智能设备等)采集数据,并将其发送至MQTT Broker。这一过程简洁而高效,确保了数据的实时传输和处理。

数据发送流程简介

连接建立: MQTT客户端首先与MQTT Broker建立一个稳定的网络连接。这一连接可以是非加密的,也可以通过TLS/SSL进行加密,以保证数据传输的安全性。
数据采集: 客户端从连接的设备采集数据。这些数据可能包括温度、湿度、位置信息、设备状态等,具体取决于应用场景和设备的功能。
消息发布: 采集到的数据被封装成MQTT消息,并发送到Broker。这些消息包含主题(Topic)和有效载荷(Payload)。主题定义了消息的分类或发送目的,而有效载荷则包含了实际的数据内容。
消息路由: MQTT Broker接收到消息后,根据预设的主题路由规则,将消息分发给所有订阅了该主题的客户端。这样,相关的系统或服务就可以及时接收并处理这些数据。
断开连接: 数据发送完成后,客户端可以保持连接以等待命令或发送更多数据,也可以选择断开连接,特别是对于低功耗设备来说,这是一种节能的做法。

创建转发任务

1、首先,进入“数据转发”菜单。当您首次创建任务时,请点击页面上的“添加转发”按钮。随后,一个弹窗会弹出,请您在其中选择“MQTT”作为转发类型,并为转发任务设定一个您自定义的名称。设置完毕后,点击“确认”按钮,即可成功创建您的转发任务。 MQTT 2、创建任务之后,您需要配置MQTT Broker的相关信息以确保成功建立连接。这包括指定服务器的地址、端口以及任何必要的认证细节,从而确保转发任务能够顺利地与目标服务器进行通信。

说明

在您已经成功创建过转发任务之后,只需再次点击界面左上角的“添加转发”按钮,即可快速开始创建一个新的转发任务。

注意

在您对任务内容进行修改或新建任务之后,需要先停止当前运行的工程,然后再重新启动它,这样所作的更改才会正式生效。

MQTT
MQTT

基本属性
属性描述
转发名称用于标识和区分不同转发任务的名称
状态表示转发任务的当前状态,例如开启和关闭
服务器地址MQTT服务所在的服务器的IP地址或域名,客户端需要这个地址来建立连接
服务器端口MQTT服务监听的端口号,用于客户端建立网络连接。通常1883为非加密连接,8883为TLS/SSL加密连接
客户端ID客户端的唯一标识符,用于区分不同的客户端实例。在MQTT会话中,每个客户端ID应该是唯一的
用户名如果MQTT服务需要身份验证,这是用于登录的用户名
密码与用户名对应,用于登录MQTT服务的密码
高级属性
属性描述
MQTT版本指定使用的MQTT协议版本,常见的有MQTT 3.1.1和MQTT 5.0。不同的版本支持的特性可能有所不同,系统暂时支持3.1.1和3.1两个版本
心跳间隔MQTT客户端与服务器之间的心跳检测间隔时间,用于保持连接的活跃状态,防止连接因空闲而超时,单位ms
清理会话是否启用指定是否在连接断开后清除会话状态。如果启用,每次重新连接都需要重新订阅之前的主题
最小重连间隔客户端尝试重连的最小时间间隔,防止在网络不稳定时频繁重连导致的问题,单位ms
最大重连间隔客户端尝试重连的最大时间间隔,确保在长时间网络故障后能够重新连接到服务器。单位ms
离线缓存数量客户端在离线状态下可以缓存的消息数量,用于在网络恢复后发送这些消息
断网续传指定客户端在网络恢复后是否继续发送之前未发送成功的的消息
断网续传保存条数客户端在断网续传功能启用的情况下,可以保存的最大未确认消息的数量
遗嘱
属性描述
遗嘱是否启用指定客户端是否启用遗嘱消息功能。启用时,客户端在意外断开连接时,Broker会发布遗嘱消息给订阅者
遗嘱主题客户端断开连接时,Broker会向这个主题发送遗嘱消息,告知其他客户端或系统该客户端已经离线
遗嘱消息质量遗嘱消息的服务质量等级,可以是0(至多一次)、1(至少一次)或2(只有一次),确保消息的可靠传递
遗嘱消息内容客户端断开连接时,Broker向遗嘱主题发送的消息内容,可以是客户端的状态或其他重要信息

3、在您成功创建转发任务并配置了目标服务器的详细信息之后,下一步是添加需要进行转发的变量。以下是如何添加这些变量以及它们相关功能的介绍。 MQTT

发布订阅配置

MQTT协议的发布订阅配置是其核心机制,允许设备(发布者)向特定主题发布消息,同时其他设备(订阅者)可以订阅这些主题以接收消息,实现高效的信息交换和通信。 MQTT

属性描述
类型:指明是订阅(Subscribe)还是发布(Publish)操作,此处对应“写入变量”和“上传变量”,另外有类型“写入变量回复”预留
主题:指定消息的通道,即消息的分类,客户端通过主题来订阅或发布消息
是否保留:消息是否需要被保留,如果设置为保留,那么即使客户端离线,当它重新连接时也能接收到保留的消息
质量:消息的服务质量等级(Quality of Service, QoS),分为0、1、2三个等级。0-最多一次(At most once),消息可能丢失,但不一定会送达;1-至少一次(At least once),消息至少送达一次,但可能会重复;2-只有一次(Exactly once),确保消息只送达一次
数据类型:提供了两种标准选项:键值对(key-value)和名称值对(name-value)。这些格式适用于大多数数据组织需求,确保数据的清晰和有序。然而,如果您需要特定的编码格式以适应独特的数据处理或传输要求,您可以深入脚本进行自定义编辑
数据格式:消息内容的数据类型,支持标准格式和字符串

数据类型 key-value

{
    "电压":0,
    "电流":0
}

数据类型 name-value

[
    {
        "name":"电流",
        "value":0
    },
    {   "name":"电压",
        "value":0
    }
]
添加变量

您需要精确地定位到目标设备,并确定哪些数据需要被转发。 MQTT
在选择数据之后,您可以进行个性化设置,为其定义一个对接名称。这个对接名称将作为数据发送到目标服务时使用的键名。请注意,对接名称一旦设定,将用于标识和引用您所选数据,因此请确保它既具有描述性又便于识别。其他选择变量的条件和内容固定的且和所选择的数据同步(参照 添加变量 ),无需您进行额外配置。这样设计旨在简化流程,同时赋予您足够的灵活性,以满足特定的数据标识需求。 MQTT
除了上述信息,您还可以为每个变量单独配置数据上传的方式。我们提供两种上传模式:周期性上传和变化触发上传。

周期性上传: 在此模式下,您可以设定一个固定的上传间隔时间,系统将按照这一时间间隔自动推送数据。这种方式适用于需要定期更新数据的场景。

变化触发上传: 当数据发生变化时,系统会自动上传最新的数据。这种方式适用于对数据变化敏感的应用,确保只有当数据有更新时才进行上传,从而节省资源。

我们提供了上传精度的设置选项。您可以根据需要,选择在数据上传时保留1到5位小数。这允许您根据数据的重要性和精度要求,灵活地调整上传数据的详细程度,以满足不同的业务需求。 MQTT

删除变量

在配置MQTT协议时,您可能需要对转发的数据进行精细的控制。为了满足这一需求,我们提供了一个便捷的“删除变量”按钮,允许您轻松移除不再需要的变量。您可以通过两种方式灵活地管理MQTT协议中的变量:
批量删除: 选择多个变量后,点击界面上的“批量删除”按钮,即可一次性移除所有选中的变量,从而简化操作流程,提高效率。
逐项删除: 如果您希望单独删除某个变量,可以直接点击该变量旁边的“删除”按钮。这种方式允许您有选择性地移除特定变量,而不会影响到其他变量。
无论是批量删除还是逐项删除,我们都旨在为您提供灵活且高效的操作方式,以满足不同的管理需求,并确保您可以轻松维护转发任务的配置。 MQTT

导入/导出

导出变量: 您可以将配置好的转发变量导出为Excel文件进行保存。随后,您能够遵循特定的规则,直接在Excel表格内对变量内容执行修改,从而实现数据的快速更新和维护。
导出模板: 您可以导出一个仅包含表头的空白Excel文件。利用此文件,您可以遵循预设的规则,直接在表格中添加所需的变量,从而便捷地构建和扩展您的数据结构。
导入变量: 选择您之前导出并保存的变量Excel文件,您可以快速且方便地将这些变量导入到其他转发任务中。这一过程不仅节省了重新配置变量的时间,还确保了数据的一致性和准确性,从而提高了工作效率和数据管理的便捷性。
MQTT

4、在您完成所有配置后,需要启动工程以使其进入运行状态。只有在工程运行时,MQTT协议的数据转发功能才会被激活并开始执行。这意味着,为了使转发任务生效,您必须确保工程正在运行。一旦工程启动,所有设置的转发规则将自动应用,确保数据能够按照预期进行传输。这个过程确保了数据转发的可控性和工程状态的清晰性,让您能够轻松管理转发任务的启动与停止。 MQTT

MQTT

操作样例

MQTT

SCADA帮助文档