Sparkplug规范-5.通用消息流

本节讨论图 2 简单MQTT系统 所示的通用拓扑结构,说明系统中组件之间如何交互。

最简单情况下,只有如下图所示两个组件,一个MQTT客户端和一台MQTT服务器。任何有凭证的MQTT客户端都可以连接MQTT服务器,而不需要知道其他MQTT客户端的存在,并订阅感兴趣的MQTT消息,发布任何含有数据的消息,这正是IIoT的一个核心理念:解耦智能设备与应用之间的直接连接。

                        图 2 简单MQTT系统

    5.1 MQTT会话状态感知

任何网络架构中,网络连接状态(State)都是重要的,在SCADA/IIoT网络中,连接状态尤其重要。状态是对MQTT EoN与MQTT服务器会话的感知。市面上大部分SCADA主机系统还在使用传统的请求-响应协议来维护SCADA应用与设备之间的连接状态,“我读取,收到响应,然后知道所有I/O点的状态,但我必须再读取,因为状态可能已经变了。”

很多时候,MQTT被视为简单、无状态、发布/订阅状态机,对于IoT和一些IIoT应用来说虽然可行,但没有充分利用MQTT的能力。

MQTT的一个主要原生设计用途是通过VSAT网络,提供可靠的SCADA通讯,考虑到传输时延和成本,采用请求-响应协议不可行。用MQTT仅在数据变化时从远端“发布”信息,取代请求-响应协议每次发送全部数据,这种技术有时也称作变化通知(Report By Exception),即RBE。不过,RBE要想在实时SCADA中正常工作,就要随时掌握终端设备的“状态”。换言之,MQTT会话状态可信是RBE数据可靠的前提。

Sparkplug 规范定义了使用MQTT V3.1.1“遗嘱”特性,给任何订阅MQTT客户端提供MQTT会话状态信息。会话状态感知是通过一系列“Birth”和“Death”主题名和负载定义,连同MQTT连接的“保活”定时器实现的。

 

链接:

0. 目录

4. 引用标准和资源

6. Sparkplug MQTT主题名

猜你喜欢

转载自blog.csdn.net/xhydongda/article/details/114263437