MQTT Sparkplug在IIoT架构中的关键组件运作
要有效地设计和开发基于MQTT Sparkplug的IIoT架构,理解其组件的运作方式至关重要。具体来说,这包括它们如何连接、发布、接收数据以及如何从网络断开。
本文将探讨三个关键组件在IIoT网络中的会话生命周期:Sparkplug主机应用程序、网络边缘节点和设备,以解释连接机制、数据传输方法和会话建立的复杂性。
MQTT Sparkplug主机应用程序会话生命周期
当Sparkplug主机应用程序启动或重新建立连接时,它会立即尝试与MQTT服务器(已预先配置)建立会话。
一旦与MQTT服务器成功连接,主机应用程序会采取两项主要行动:
- 它订阅指定的Sparkplug主题命名空间,特别是spBv1.0/#。
- 它还确保通过名为STATE/host_app_id的主题订阅其自身的状态。
在完成这些订阅后,Sparkplug主机应用程序负责通过发布新的STATE消息通知其他人自己的状态。
此时,主机应用程序准备好接收网络中任何边缘节点发送的MQTT消息。每当边缘节点发送其Sparkplug NBIRTH和DBIRTH通知时,主机应用程序会更新其指标,显示它目前在线并正在处理数据。
MQTT Sparkplug边缘节点会话生命周期
像Sparkplug网络中的任何设备一样,边缘节点通过发送连接请求来初始化其与MQTT代理的连接。此请求通常包含节点的凭据和其他必要细节。
当Sparkplug边缘节点发送其MQTT CONNECT数据包时,它会包含以下主题格式下的“遗嘱消息”:
spBv1.0/group_id/NDEATH/edge_node_id
在这里,group_id是Sparkplug组ID,edge_node_id是该边缘节点的Sparkplug边缘节点ID。
在Sparkplug环境中,边缘节点可以设置为识别主机应用程序。如果这样配置,边缘节点只会在主机应用程序在线并主动监听Sparkplug消息时发送其NBIRTH和DBIRTH消息。
成功连接到MQTT服务器后,边缘节点将订阅NCMD和STATE主题。NCMD订阅允许边缘节点处理重生请求。同时,订阅STATE有助于边缘节点了解主机应用程序的当前状态。
随后,边缘节点将使用以下格式广播NBIRTH消息:
spBv1.0/group_id/NBIRTH/edge_node_id
此时,主机应用程序可以建立边缘节点的指标结构,显示其在线状态。
MQTT Sparkplug设备会话生命周期
在边缘节点准备向MQTT服务器报告其所有Sparkplug定义的指标数据时,边缘节点(逻辑或物理)负责发布设备诞生消息,DBIRTH。
然而,在发送DBIRTH消息之前,如果设备支持写入输出,则与Sparkplug设备相关联的MQTT客户端必须订阅接收DCMD消息,使用以下主题格式:
spBv1.0/group_id/DCMD/edge_node_id/device_id
在这里,group_id是Sparkplug组ID,edge_node_id是Sparkplug边缘节点ID,device_id是设备的Sparkplug设备ID。
从那时起,所有后续指标都会按照例外报告(RBE)的方式使用DDATA消息格式发布给主机应用程序。
结论
总之,本文解释了MQTT Sparkplug的运作行为,阐明了有效的IIoT通信所需的复杂机制。
回复