我们的MQTT系列继续深入研究用于高可靠性MQTT网络的grov EPIC(现在是grov里约热内卢)特性。
第1部分 -MQTT:基本出版groov史诗
第2部分- - - - - -mqtt:较快,用sparkplug b更好
在它的心之上,MQTT专为不熟度的网络而设计。回到90年代,Conocophillips(现在的菲利普斯66)正在寻找一种改进遥测报告的方法,以通过其低带宽拨号和昂贵的VSAT(小卫星菜)SCADA网络。IBM与系统集成商ARCOM控制系统合作(现在卷云连接解决方案)开发一个简约的通信协议,可以优雅地处理在TCP / IP上的许多分布式设备中的间歇性网络中断和高延迟。
跳跃20年来,MQTT在IT世界中捕获了灵活,有效的IOT数据运输,但这些应用程序不一定利用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服务器创建的,并由网络管理员分发,以便在史诗般的受信任边缘设备上使用。有关更多信息,请退房这篇文章来自我们的系列groov史诗安全.
将安全证书上传到您的groov史诗,转到安全>客户端SSL菜单。完成后,证书文件将在MQTT Broker>“选择证书”对话框中显示为选项。这groov史诗用户指南有关证书创建和管理的更多信息。
如果你使用了groovEPIC的点火边缘MQTT客户端,这是MQTT传输模块设置中相同的更改所示的样子:

如果您担心SSL / TLS如何影响MQTT的性能,请查看此Hive MQ的基准报告.它的结论是,虽然加密会对性能产生影响时,但在持续使用过程中会没有差异。
历史
如果发生断开连接,普通vanilla mqtt提供了服务质量水平,可以以牺牲用于握手的额外流量的额外流量来保证信息交付。但是,只有最近的消息进行重新连接。SparkPlug B提供了一种不同的机制,可最大限度地减少数据丢失。
由于SparkPlugb使用元数据装饰MQTT消息,因此SPB客户端能够将某些消息标记为历史记录。如果groov史诗失去了与经纪人的联系,groov管理可以存储RAM中的记录,然后在连接恢复时将它们转发到代理。
在groov通过将数字插入“历史队列”字段,管理您将在MQTT>配置>设备子菜单中启用此功能。我们建议队列大小为3,600,在存储和性能之间取得平衡,但根据数据生产率可能会更高,因此

点火边缘客户端甚至更好地进行存储,提供更大的容量和非易失性存储选项。如果选择磁盘备份选项,则会获得额外的福利groovEPIC的电源故障安全文件系统和工业SSD。
要在点火边缘中启用历史记录,请转到MQTT Transmission > History并编辑“默认内存存储”。选择“启用此历史存储”,并将“类型”更改为“磁盘备份”。(我还打算改变历史店的名字,以反映这些变化。)

如果需要,您还可以在此处调整历史容量。默认设置将缓冲高达100,000条记录1周。哇。
完成该部件后,返回MQTT传输>设置菜单,然后选择“变送器”选项卡。向下滚动并将“历史记录存储”设置为刚刚启用的商店的名称(在我的情况下“默认存储”)。

注意:要充分利用存储和转发历史记录,您需要与监视这些历史记录的网络内MQTT订阅者进行通信。目前,Ignition MQTT Engine模块和金丝雀实验室MQTT Sparkplug B Data Collector都可以。
随着MQTT的普及,我们希望看到对它的支持,以及Sparkplug B的其他创造性使用被添加到其他SCADA包和历史学家中。
冗余
另一个基本的容错度量是设置多个MQTT经纪人并配置您的groov史诗与每个连接。
把这个放在groov管理,导航到MQTT > Configuration > Add Broker,并创建任意数量的连接。

在上面的图片,连同我的连接Opto 22的现场Mosquitto.经纪人,我已经添加了第二个连接战车代理托管在AWS上。
如果您使用的是点火边缘MQTT客户端,则设置冗余就像与之一样简单groov管理。从MQTT传输>设置>服务器选项卡添加新的服务器连接。任何共享相同“服务器集”属性的批读连接都会成为自动故障转移组的一部分。

点火边缘允许您在“Sets”选项卡下创建其他故障转移组。对于您可以在特定经纪人周围组组的高级方案,您可以通过在“变送器”选项卡下定义“自定义发射机设置”,创建额外的MQTT客户端,每个MQTT客户端,每个都使用自己的服务器集和历史记录存储。
主要的主机
“主要宿主ID”属性groov管理和点火边缘获得特别提及,因为它适用于我们已经讨论过的几个功能,并显示了SparkPlug B Spec的另一个好处。
通常,在使用冗余连接时,如果失去连接,MQTT客户端将连接到第一个可用的代理并切换循环。在您将数据发送到后端客户端(如SCADA,Historian或IoT系统)的情况下,SPB兼容的客户端可以通过允许您将该系统视为主要主机应用程序来提高性能。
如果有的话,要指定为主宿主groov当EPIC或后端客户端失去与当前代理的连接时,EPIC将通过可用的连接进行旋转,直到再次找到后端客户端。如果您正在使用存储并转发历史队列,那么一旦连接中断,EPIC就会开始存储记录,并一直保存到它可以将记录交付到目标应用程序为止。
指定主要主机应用程序groov管理,转到主MQTT配置屏幕,并将“主托管ID”设置为目标应用程序的MQTT客户端ID。
例如,在我的笔记本电脑上运行的Ignition SCADA服务器(不是Ignition Edge,而是完全Ignition)有一个笔记本电脑-点火- SCADA的客户端ID,所以我将它作为“主主机ID”输入groov管理:

在Ignition Edge中,冗余代理故障转移组(称为服务器集)也可以指定“主主机ID”。这可以在“设置”选项卡下找到。

当您指定一个主主机时,请注意MQTT将倾向于与后端客户机的连接超过与经纪人的联系。如果没有可用的代理连接在主机上发布在线状态,则MQTT客户端将不会保持连接,直到一个人。
权衡和考虑因素
火花塞B为可靠、可互操作的工业通信提供了一个有效的标准。groov史诗和groovRIO提供了一个安全的OT平台,用于构建容错MQTT SparkPlug B数据系统。无需额外费用,groov管理提供安全,存储和前进历史和冗余的基本功能。自由尝试,只需多次才能许可,点火边缘带有这些功能,其中包含磁盘备份的存储和更多选项,用于缩放基础架构。
当你考虑哪个选择对你是正确的,记住groovManage更适合标记数在1000以下的情况,所以如果你有一个更大的系统,Ignition Edge将是最好的选择。与groovEPIC,您可以利用任何一种选项来设计提供高正常运行时间、数据完整性和抵抗网络攻击的系统。
| groov用Sparkplug b管理 | 点火边 | |
| 平台 | groov史诗 groov里约热内卢 |
groov史诗 |
| 数据源 | PAC控制标签和I/O | PAC控制标签和I/O,遗留plc,设备,或OPC标签 |
| 标签计数 | 中等的 | 高的 |
| 订阅其他出版商的主题 | 不 | 是(W / MQTT引擎) |
| 安全 | 用户认证 SSL / TLS加密 安全证书 |
用户认证 SSL / TLS加密 安全证书 客户端证书 |
| 历史化 | 易失性存储器 最大65K记录 |
非易失性存储(可选) 100K记录或1周 |
| 冗余 | 多个经纪人 主要主机指定 |
多个经纪人 多个故障转移组 多个客户端 主要主机指定 |
| 成本 | 没有任何 | $ 800 * +$200** w/ MQTT引擎 |
*Groov-Lic-Edge目前的列表定价截至6/10/20;**购买点火边缘许可证时的特殊价格
下次我们一起带来......
既然我们为数据共享提供了安全,可靠的基础,我们可以查看大图架构,使MQTT网络规模扩展到工业水平,包括遗留系统集成。有关潜行预览,请查看我们最近的网络研讨会,具有归纳自动化和Cirrus链接:点火社区与Cirrus Link居住:MQTT研讨会.
提交:光电子的22




