Skip to main content

图书馆: MQTT Client SL

MQTT(消息队列遥测传输)是一种开源物联网协议,它允许遥测数据作为消息在设备之间传输。因此,您可以从发送消息 CODESYS 控制器到 MQTT 代理并根据主题订阅消息。

  • 设备始终通过 MQTT 代理进行通信。

    例子: 日食蚊子

  • 消息根据主题发送和订阅。一个主题对应一个路径。

    例子: device1/temperature

  • 订阅消息是通过指定主题过滤器来完成的。还允许使用通配符 (+ 对于一个级别, # 对于多个级别)。

  • 消息的格式不固定。可以传输 JSON 字符串或任何数据结构。

. 的功能块 MQTT Client SL 图书馆:
  • 用于建立 MQTT 链接的功能块(MQTTClient

  • 用于发送消息的功能块(MQTTPublish

  • 用于订阅消息的功能块(MQTTSubscribe

. 支持的功能:
  • 基于MQTT V3.1.1和MQTT V5.0的消息发布和订阅

  • TLS 加密

  • 支持客户端证书(证书句柄的传输)

  • “服务质量”的支持:

    0、1 和 2(QoS0、QoS1、QoS2)用于最后意愿、发布者和订阅者

  • 主题的数据类型: WSTRING

  • 主题最大大小:1024

  • 最大包大小和有效负载大小可以通过参数列表进行配置。

  • 多任务和多核支持

    MQTTClient、MQTTPublish 和 MQTTSubscribe 各自可以在不同的任务或 CPU 内核上运行。

  • “最后遗嘱”消息(QoS0, QoS1, QoS2

  • 通配符 (#+

  • MQTT 或 WebSocket

. 支持的MQTT V5功能:
  • Session Expiry

  • Message Expiry

  • Reason Code on All ACKs

  • Server Disconnect

  • Payload Format and Content Type

  • Request / Response

  • Shared Subscriptions

  • Subscription ID

  • Topic Alias

  • Flow Control

  • User Properties

  • Maximum Packet Size

  • Optional Server Feature Availability

  • Enhanced Authentication

  • Subscription Options

  • Will Delay

  • Server Keep Alive

  • Assigned ClientID

  • Server Reference

消息吞吐量

最大消息吞吐量(消息数/秒,mps)取决于所使用的硬件、消息大小、QoS 设置和配置(参数列表 MQTTParam、循环时间)。

1. 测量示例

配置:

  • 当地 Mosquito 经纪人

  • 当地的 CODESYS Control (1 出版商)

  • 当地的 CODESYS Control (1 位订户)

  • MQTTParam (默认设置)

  • 消息大小:1024字节

  • 循环时间:1毫秒

结果:

  • QoS0 => 大约190 英里/秒

  • QoS1 => 大约130 英里/秒

  • QoS2 => 大约90 英里/秒



提示

参见示例: 使用 MQTT 客户端 SL 库