Sparkplug规范-9.Sparkplug MQTT数据和命令消息

到目前为止,我们已经说明了:

  • 主应用
  • MQTT服务器
  • 网络边缘(EoN)节点
  • 设备
  • 主题名
  • 上线消息
  • 下线消息
  • 状态消息
  • 主应用、边缘节点和设备会话建立

所有这些规范和定义都是为了达到Sparkplug的目标,即高效地将丰富的实时设备检测数据分发给企业里各个数据使用者,同时提供一流的命令/控制SCADA/IIoT系统。

IIoT颠覆性的理念是,智能设备应该在需要时向网络发送测点数据。然而现实却是,100%现有的、成百上千万智能设备,只能通过请求-响应协议被“询问”是否有变化,这就是工业领域边缘设备出现的原因。在设备制造商内置IIoT技术之前的十年或更长时间里,现实的解决方案是把这一能力放到靠近数据源的小型嵌入式设备中。在Sparkplug规范中,这些设备称为网络边缘节点(EoN),代表这类新型网关、边缘控制器、边缘网络节点、协议转换网关,和许多同类设备的代称。这些设备的性能跨度很大,从低功耗单片机到多核Intel和ARM处理器。操作系统从嵌入式Linux内核、嵌入式Windows,到小型裸机实时操作系统(Real Time Operating SystemRTOS)。不论什么类型的网关设备,MQTT和Sparkplug规范都适用。

本节Sparkplug规范详述测点如何在MQTT网络中实时的发布/订阅,以及主应用如何读写测点信息。

    9.1 EoN NDATA和NCMD消息

先讲边缘节点如何发布测点信息给主应用。边缘节点通常定义为与传统设备接口的实物“边缘网关”设备,以及内部实现了Sparkplug规范的设备的逻辑MQTT终结点。7.3.1节定义了上线消息MQTT负载,可以提供任意数量的测点给主应用,其中一些“只读”测点如:

  • EoN制造商ID
  • EoN设备类型
  • EoN序列号
  • EoN软件版本号
  • EoN配置变更次数
  • EoN位置(如果带GPS功能)
  • EoN移动网络信号强度RSSI(如果使用了移动网络)
  • EoN电源电压
  • EoN温度

其他可变“读写”测点如:

  • EoN重连命令,重新发布所有EoN和设备上线消息
  • EoN切换服务器命令,转到下一个可用MQTT服务器
  • EoN重启命令,重启EoN节点
  • EoN设置主网络(PRI_NETWORK)1=移动网络,2=以太网

实现中的要点是,主应用的测点完全取决于边缘节点上线时发布的测点信息。每个边缘节点决定要发布什么和如何发布,测点会自动出现在主应用的测点树中。测点甚至可以在运行时通过上线消息动态添加,这些测点会自动添加到主应用测点树上。

另一个很重要的区分是,边缘节点NDATA和NCMD消息与设备的DDATA和DCMD是分开的,这种主题名解耦是重要的,允许(达到权限和应用级别)系统中的所有MQTT客户端与边缘节点交互,但不能发送设备命令。主应用可以提供要给配置参数,不让DDATA和DCMD消息通过,但允许NDATA和NCMD消息通过。这样,多应用系统可以连接到同一MQTT网络,但只有允许DCMD的能发布设备命令。

下图说明用来更新主应用移动RSSI值的消息,和从主应用发送给边缘节点的变更主网络路径命令。

                                                       图 6 边缘节点NDATA和NCMD消息流

  1. 假设MQTT服务器可用。
  2. 假设主应用与MQTT服务器建立了MQTT会话。
  3. 边缘节点已建立MQTT会话,NBIRTH已经发布,主应用获得了所有测点和它们的当前值。
  4. 边缘节点监视移动网络信号强度,强度变化时边缘节点发布新值给主应用中的相关测点。
  5. 根据操作需求,需要通知边缘节点把主网落从移动网络切换到以太网。主应用节点相关测点值更改,并自动给边缘节点参数发布新值。

链接:

0. 目录

8. ​​​​​Sparkplug MQTT会话管理和消息流

10. 多MQTT服务器下的主应用状态

猜你喜欢

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