在我们系列的第2部分中,我们研究了如何设置凹槽管理和点火边缘用于使用SparkPlug B有效载荷发布。
MQTT是企业物联网的宠儿,因为它具有效率,简单性和灵活性,因此非常适合与资源约束的网络设备通信的应用程序使用。在IBM中培养了多年并将其纳入其智能能源,健康和公用事业解决方案之后,MQTT已成为所有主要的云IoT平台中选定的消息传递协议以及高度可扩展的应用程序,例如Facebook Messenger。
但是,如果在工业控制世界中也没有重要地位,我不会在这里谈论MQTT。在控制网络和IT系统中,还有其他用于通信的选项,但最常见的选项具有MQTT避免的相似缺点。特别是,OPC和HTTP都使用点对点,请求响应通信模型和比MQTT更大的有效负载,这导致了许多安全挑战,并且网络需求明显更高。
正如我们所看到的第一部分但是,在这个系列中,普通瓦尼拉MQTT在大规模,关键任务的场景方面存在一些弱点。这启发了在MQTT的共同发明家之一的领导下,开源火花插图规格的开发Arlen nipper。当前版本的火花插图(SparkPlug B或SPB)向MQTT客户端添加了一些实施详细信息:
执行状态监控
尽管MQTT包含用于监视客户连接状态的功能,但不能保证供应商将实现它们。另一方面,符合SparkPlug规格的设备将始终在服务器上注册死亡消息,以便在其出乎意料地与网络断开连接时分发。
有效载荷定义
像HTTP一样,MQTT不在乎它传输的数据类型,这使订户负担正确解释数据。SparkPlug B客户端将有效载荷与结构化元数据打包,因此可以通过任何订户确定该格式。完整有效载荷是编码保持小占地面积。
标准主题格式
MQTT的灵活主题命名可能需要大型网络的重型配置,并成为来自不同供应商的设备的问题,这些设备可能使用不同的命名模式。SparkPlug定义了标准主题格式,降低了供应商之间的可变性,并与SPB有效负载结合使用,使客户能够自动发现可用的数据。
使用SparkPlug B,MQTT网络可以保证在没有损害灵活性和效率的情况下进行州感知和互操作。来自不同供应商的设备可以共享和使用数据,而无需知道其起源地点的详细信息,主机应用程序可以快速发现已发布的数据,并且当数据变为陈旧时,所有客户端将经过实时通知。
开始使用火花塞B
接下来,我将向您展示如何设置凹槽Sparplug Publishing的史诗。同样,您有两个选择:凹槽管理或点火边缘。
选项1:凹槽管理
上次我们走过设置凹槽设法发布PAC控制标签,而I/O作为字符串数据。配置凹槽设法使用Sparkplug B有效负载几乎是相同的。
这是两个配置屏幕的比较:
您会注意到字段略有不同。那是因为Sparkplug的主题路径要求。好处是,任何订户,无论供应商如何,都可以使用以下路径格式阅读任何其他客户端发布的更新:
“ SPBV1.0/<组ID>/+/<边缘节点ID>/<设备ID>”
在这种情况下,它映射到:
“ spbv1.0/opto22/+/2层 - 乔什/epic-lc”。
为EPIC配置了MQTT服务后,您可以通过在标签或I/O点配置对话框中启用Make公共选项来通过PAC控制创建和发布标签。
选项2:点火边缘
设置点火边缘涉及的步骤比凹槽管理,但结果很强大。对您和我来说幸运的是,我们已经有一些很棒的视频教程引导我们完成:
- 首次配置点火边缘(现在可以随时跳过许可证激活)
- 配置IGNITION EDGE OPC-UA服务器并添加设备(您将使用“ Opto 22”添加史诗凹槽史诗般的和snap pac”驱动程序Localhost作为地址)
- 配置MQTT传输模块,连接到MQTT服务器并设置点火标签文件夹结构
这是我的标签文件夹结构在点火设计师中的样子:
此设置产生与火花b主题路径相同的凹槽在上一节中管理设置。
开箱即用,您将在两个小时的计时器上无限制地访问点火边缘的所有功能。在两个小时结束时,只需重置计时器即可。对于不间断的使用,您可以购买点火边缘许可证(凹槽)。
除EPIC数据外,如果您需要连接并发布来自Legacy Systems或PLC的数据,例如Allen-Bradley或Siemens,或任何Modbus/TCP兼容设备,则可以使用同一过程,使用Epic上的IGNITION EDGE AS EPIC上的IGNITION EDGE通往MQTT网络的网关。这是点火边缘MQTT客户端的主要优点之一。
替代:节点红
如果您只需要凹槽EPIC订阅MQTT数据,Node-Red也可以与Sparkplug B有效载荷一起使用。它需要大量的自定义编程来创建一个完全兼容的客户端,因此您不会拥有SparkPlug的所有功能。(因此,我们不建议尝试使用Node-red发布火花插花有效载荷。这就像做自己的牙科工作⛏️)
但是Node-Red确实具有免费提供的优势,并且可以轻松地将MQTT主题与来自其他来源的数据捣碎。这也非常适合创建仪表板或轻型UI。
看看本指南在开发人员论坛上尝试一下。更新:这是另一篇文章在火花插头控制消息上。
权衡和考虑
SparkPlug使得将MQTT发布者和订阅者在线访问变得更加容易,并与来自不同供应商的设备一起使用,因此我们建议在寻求成长和管理大型网络时。我们建议使用凹槽在使用数据设置的数据时进行管理,每史诗中最多可PAC控制或I/O标签。点火边缘应该能够超过这种情况而不会影响性能,但是我们尚未测试其限制。
SparkPlug还可以为您提供国家意识的保证,如果您依靠高质量的数据进行操作,审计或历史化,那么重要。下次,我们将获得其他两者的其他容错功能凹槽管理和点火边缘提供。目前,我只想说,对于点火边缘许可证的适度价格,您会得到很多。
让我们看看我们的两个客户现在如何堆叠:
凹槽用火花插头b管理 |
点火边缘 |
|
标签计数 |
媒介(<1000) |
高(1000+) |
有效载荷 |
火花布b |
火花拔布b/json/strings |
数据源 |
PAC控制标签和本地I/O |
PAC控制标签和本地I/O,Legacy PLC,设备或OPC标签 |
订阅其他出版商的主题 |
不 |
是的,使用MQTT引擎模块 |
容错 |
中等的 |
高的 |
成本 |
没有任何 |
$ 800† |
†截至2/17/20的当前列表定价
当然,一般考虑的是需要与火花兼容的客户。由于MQTT是数据不可能的,因此任何经纪人都可以在没有问题的情况下与普通MQTT流量一起处理火花plug b流量。但是,任何想要订阅您的SPB数据的设备或应用程序客户端也需要支持SPB。
接下来的是...
旧应用程序(例如SCADA或HMI软件包)又如何支持MQTT使用SparkPlug?我们将在探索MQTT上探索MQTT时,看看Sparkplug固有宽容的固有耐受性的功能凹槽史诗般的大规模和关键任务行动。
本系列中的所有帖子
第1部分 -MQTT:基本出版凹槽史诗
第2部分 -MQTT:更快,更好地使用火花plug b
第3部分 -MQTT:关键任务容忍度
第4部分 -MQTT:将所有这些都放在一起