我们的MQTT系列继续深入研究用于高可靠性MQTT网络的groov EPIC(现在是groov里约热内卢)特性。
第1部分- - - - - -MQTT:使用的基本发布groov史诗
第2部分- - - - - -MQTT:更快,使用Sparkplug B更好
MQTT的核心是为不可靠的网络设计的。早在上世纪90年代,康菲石油公司(现在的Phillips 66)就在寻找一种方法来改善其低带宽拨号和昂贵的VSAT(小碟式卫星)SCADA网络的遥测报告。IBM与系统集成商Arcom控制系统公司(现在卷云连接解决方案)来开发一个极简的通信协议,该协议可以优雅地处理通过TCP/IP的许多分布式设备之间的间歇性网络中断和高延迟。
过去20年,MQTT作为一种灵活、高效的物联网数据传输方式在IT界流行起来,但这些应用程序不一定利用MQTT严格的状态管理和数据完整性特性。Cirrus Link知道,MQTT要想在工业环境中茁壮成长,可靠性是至关重要的,因此它开发了Sparkplug B规范,部分地解决了这一需求。
如果您刚刚开始本系列,我建议您回到第1部分和第2部分,熟悉一下groovEPIC的MQTT客户端和Sparkplug B规范的优点。在这篇文章中,我将更深入地探讨安全性、历史和冗余特性groovManage和Ignition Edge客户端提供了如何使用Sparkplug B有效载荷使MQTT网络更具弹性。
奖金:groov管理客户端groov里约热内卢提供本系列中描述的所有相同的MQTT函数。继续读下去,groov里约热内卢用户!
安全
网络威胁对原本稳定的系统构成了威胁,但幸运的是,groovEPIC和MQTT使保护数据变得更容易。
MQTT没有使用自己的安全机制使协议复杂化,而是利用了TCP/IP堆栈中内置的SSL/TLS加密。假设您的代理支持它,那么您可以在其中任意一个中启用加密通信groov管理或点火边缘首先更换协议和端口指定在您的代理地址。对于我的经纪人,而不是使用
我将使用
在groov在MQTT > Configuration > Broker子菜单下,您还可以启用“SSL”选项并选择适当的“CA证书”。以下是这些改变的样子:
如果您以前没有处理过信任证书,那么它们是生成加密密钥和验证您的EPIC是否与正确的端点通信的重要部分。证书由MQTT服务器创建,并由网络管理员分发,以便在受信任的边缘设备(如EPIC)上使用。欲了解更多信息,请查看这篇文章来自我们的系列groov史诗的安全.
将安全证书上传到您的groov进入Security >客户端SSL菜单。完成之后,证书文件将作为一个选项出现在MQTT Broker > Select certificate对话框中。的groov史诗用户指南有关证书创建和管理的更多信息。
如果您正在使用groovEPIC的Ignition Edge MQTT客户端,以下是在MQTT Transmission模块设置中的相同更改:
如果您关心SSL/TLS如何影响MQTT的性能,可以看看这个来自Hive MQ的基准测试报告.它的结论是,虽然加密会影响连接的性能,但在持续使用期间,它的影响微乎其微。
历史
在断开连接的情况下,普通的MQTT提供了服务质量级别,以牺牲用于握手的额外流量为代价来保证消息传递。但是,在重新连接时只传递最近的消息。Sparkplug B提供了一种不同的机制来最大限度地减少数据丢失。
由于Sparkplug B用元数据装饰MQTT消息,因此SpB客户端能够将某些消息标记为历史记录。如果groovEPIC失去了与经纪人的联系,groovManage可以将记录存储在RAM中,然后在连接恢复时将它们转发给代理。
在groov通过在“Historic Queue”字段中插入一个数字,您将在MQTT > Configuration > Device子菜单中启用此特性。我们建议将队列大小设置为3600,以便在存储和性能之间取得平衡,但根据数据产生的速率,您可以设置更高的队列大小:
存储转发功能在Ignition Edge客户端上甚至更好,它提供了更大的容量和非易失性存储选项。如果选择磁盘支持的选项,则可以获得额外的好处groovEPIC的断电安全文件系统和工业SSD。
要在Ignition Edge中启用历史记录,请转到MQTT Transmission > History并编辑“默认内存存储”。选择“启用此历史存储”并更改“类型”为“磁盘备份”。(我还将更改历史商店的名称,以反映这些变化。)
如果您愿意,还可以在这里调整历史容量。默认设置将在一周内缓冲多达100,000条记录。哇。
完成这一部分后,返回到MQTT Transmission > Settings菜单并选择“transmitter”选项卡。向下滚动并设置“History Store”为您刚刚启用的商店的名称(在我的例子中是“Default Store”)。
注意:为了充分利用存储和转发历史记录,您需要与监视这些历史记录的网络内MQTT订阅者通信。目前,点火MQTT发动机模块和金丝雀实验室MQTT Sparkplug B数据收集器都可以。
随着MQTT的不断普及,我们希望看到对这个以及Sparkplug B的其他创造性用法的支持被添加到其他SCADA包和历史学家中。
冗余
另一个基本的容错措施是设置多个MQTT代理并配置您的groov与每个连接的EPIC。
来设置这个groov管理、导航到MQTT > Configuration > Add Broker,并创建任意数量的连接。
在上面的图片中,以及我与Opto 22的现场连接Mosquittobroker,我已经添加了第二个连接到我们的战车代理托管在AWS上。
如果您使用的是Ignition Edge MQTT客户机,那么设置冗余就像groov管理。从MQTT传输>设置>服务器选项卡添加新的服务器连接。任何共享相同“Server Set”属性的代理连接都将成为自动故障转移组的一部分。
点火边缘允许您在“设置”选项卡下创建额外的故障转移组。对于可能将MQTT客户端围绕特定代理分组的高级场景,可以通过在“Transmitter”选项卡下定义“Custom Transmitter Settings”来创建附加的MQTT客户端,每个客户端都有自己的服务器集和历史存储。
主要的主机
中的“主主机ID”属性groovManage和Ignition Edge得到了特别的提及,因为它适用于我们已经讨论过的几个特性,并展示了Sparkplug B规范的另一个好处。
通常,当使用冗余连接时,MQTT客户机将连接到第一个可用的代理,并在失去连接时切换轮询。在将数据发送到后端客户机(如SCADA、历史学家或物联网系统)的情况下,spb兼容的客户机可以通过允许您将该系统指定为主要主机应用程序来提高性能。
如果有,则使用主主机名称groovEPIC或后端客户端失去了与当前代理的连接,EPIC将在可用连接中循环,直到它再次找到后端客户端。如果您使用的是存储转发历史队列,那么一旦连接中断,EPIC就会开始存储记录,并一直持续到能够将记录交付给目标应用程序为止。
中指定主主机应用程序groovManage后,转到主MQTT配置屏幕,并将“主主机ID”设置为目标应用程序的MQTT客户机ID。
例如,在我的笔记本电脑上运行的Ignition SCADA服务器(不是Ignition Edge,而是full Ignition),它的客户端ID是laptop- Ignition - SCADA,所以我要在其中输入“主主机ID”groov管理:
在Ignition Edge中,一个称为服务器集的冗余代理故障转移组也可以指定一个“主主机ID”。这在“设置”选项卡下找到。
当您指定主主机时,请注意MQTT更喜欢到后端客户机的连接在与代理的连接。如果没有一个可用的代理连接发布主主机的ONLINE状态,那么MQTT客户机将一直保持连接,直到有一个代理连接发布了ONLINE状态。
权衡和考虑
Sparkplug B为可靠的、可互操作的工业通信提供了一个有效的标准。groov史诗和groov里约热内卢为构建容错的MQTT Sparkplug B数据系统提供了一个安全的OT平台。无需额外费用,groovManage提供了安全性、存储转发历史记录和冗余等基本特性。可以免费试用,只需要授权许可就可以了,Ignition Edge通过磁盘支持的存储和更多扩展基础设施的选项将这些功能提升了一个层次。
当你考虑哪种选择适合你时,请记住这一点groov管理更适合标签计数在1000以下,所以如果你有一个更大的系统,点火边缘将是最好的选择。与groovEPIC,您可以利用这两种选择来设计系统,以提供高运行时间、数据完整性和抵抗网络攻击。
groov与火花塞B管理 | 点火边 | |
平台 | groov史诗 groov里约热内卢 |
groov史诗 |
数据源 | PAC控制标签和I/O | PAC控制标签和I/O,遗留plc,设备,或OPC标签 |
标签数 | 媒介 | 高 |
订阅其他发布者的主题 | 没有 | 是的(带MQTT引擎) |
安全 | 用户身份验证 SSL / TLS加密 安全证书 |
用户身份验证 SSL / TLS加密 安全证书 客户端证书 |
Historization | 易失性存储器 Max 65 k记录 |
非易失性存储(可选) 100K记录或1周 |
冗余 | 多个代理 主要的主机名称 |
多个代理 多个故障转移组 多个客户端 主要的主机名称 |
成本 | 没有一个 | 800美元* +$200** w/ MQTT引擎 |
*GROOV-LIC-EDGE截至6/10/20的当前列表定价;**使用Ignition Edge License购买时的特价
下次我们会把这些都放在一起…
现在,我们已经有了一个安全、可靠的数据共享基础,我们可以考虑让MQTT网络扩展到工业级别(包括遗留系统集成)的总体架构。想要预览一下,请查看我们最近的网络研讨会,包括感应自动化和Cirrus Link:点火社区与Cirrus Live Link: MQTT Workshop.
了下:Opto 22赞manbetx体育 平台助内容