使用开源 IIoT 网关加速 Modbus 设备集成

2024-08-16

工业物联网 (IIoT) 是指将设备、传感器和执行器与工业基础设施和应用(包括制造、运输、能源、零售、医疗保健和供应链管理)联网在一起。这种连接允许数据收集、交换和分析,从而可能促进生产力和效率的提高以及其他经济效益。边缘计算是随着工业物联网应用的兴起而出现的。在边缘计算中,数据由设备本身或本地计算机或服务器处理,而不是传输到数据中心。

在工业用例中,许多传感器需要与边缘网关连接,解决方案架构师和开发人员需要决定边缘网关的软件设计和开发;如何处理来自各种传感器的数据;以及如何在设计和开发阶段执行数据分析。在这种情况下,如果没有开源框架,新软件的开发和错误修复可能会耗费大量的精力和成本。这些问题可以通过在开发阶段使用开源边缘计算框架来开发边缘网关软件来缓解。EdgeX Foundry 是一个开源边缘计算框架,可用于边缘网关的软件开发,从而降低延迟和成本。Modbus 是一种广泛用于工业系统的开放协议,随着边缘计算需求的出现,将 Modbus 外围设备连接至边缘计算系统的能力非常重要。

本系列文章分为两部分,介绍了基于 EdgeX Foundry 的边缘网关设计和开发边缘计算功能的应用程序。第一篇文章介绍了工业传感器及其用例,并概述了边缘网关要求,并讨论了 EdgeX 如何满足边缘网关要求。

工业传感器概述

在工业自动化中,传感器和执行器在任何智能产品中都发挥着至关重要的作用。传感器让我们能够检测、分析和处理各种变换。执行器接收来自传感器的信号并根据输入执行动作。

工业中使用的一些传感器包括温度和湿度传感器、压力传感器、接近传感器、气体和化学传感器等。这些传感器的一些用例包括:

· 温度是决定生物样本完整性的关键因素。如果样本没有在严格的温度控制下保存,它们将变得毫无用处,影响实验结论,甚至影响患者的健康。医院的 IT 系统管理员可以安装温度传感器,全天候监控实验室和诊所的温度。

· 有些产品对湿度和温度很敏感。将此类产品存放在普通仓库中会导致其腐蚀,因此需要将其存放在气候受控的环境中。仓库管理员可以放置传感器以持续监控仓库环境。

· 压力传感器用于感测气体和液体的压力变化。水压传感器可安装在浸没在容器内的开口管的顶部,用于测量水箱中的水位或水位随时变化的速度。

在实时工业环境中,设备到设备的通信,即设备之间的单向或双向通信系统性地发生。根据设备制造商的不同,使用专有或开源协议。许多制造商采用开放协议,以适应轻松将其产品整合到市场中。连接工业电子设备和 SCADA(监控和数据采集)的最常见自动化通信协议之一是 Modbus。

Modbus 协议的优势在于支持多家制造商、软件供应商、服务组织,并且拥有活跃的社区团体提供支持。Modbus 协议有多种版本,可用于串行端口和以太网,最常见的是 Modbus RTU、Modbus ASCII、Modbus TCP 和 Modbus Plus。它通过多种类型的物理介质(如串行 RS-232、RS-485、RS-422 和以太网)进行通信,并且能够支持点对点和多点网络。借助以太网上的 Modbus TCP/IP,Modbus 和其他类型的混合协议可以同时通过同一物理接口共存。这些功能促使行业和用户选择支持 Modbus 协议的传感器。

边缘网关概述

设备连接

边缘网关的一个关键要求是实现与传感器和执行器的连接。有许多行业协议支持不同的设备通信方法。边缘解决方案应支持最常见的工业协议,例如 ZigBee、蓝牙 LE、BACnet、Modbus 和西门子 S7。

数据分析与规则引擎

网关可以在本地运行应用程序,从而实现本地数据计算。人工智能服务可以在本地处理来自下游设备的数据,在本地对洞察做出反应,并将部分数据发送到云端。制定规则也是其中重要的一项。

数据存储

除了本地处理之外,网关还应具备本地存储数据的能力。这是网关自主运行的关键。本地计算和本地存储的结合还应允许网关以离线模式运行。

互操作性

在边缘网关上运行的连接设备和应用程序应该提供跨其他产品或系统的互操作性。

安全

数据可能需要在边缘网关的不同模块之间交换,这些模块和设备需要验证彼此之间的连接,因此需要将安全性集成到边缘解决方案中。边缘解决方案应允许基于权限的访问控制、安全加密通信、证书管理以及与现有安全解决方案的集成。

设备管理

边缘网关需要一种远程管理和访问每个网关的方法。远程管理功能应允许操作员远程启动、停止、配置和更新网关及其所连接的设备。

云连接

边缘网关和云系统之间的连接至关重要。它有助于记录准确的数据以进行深入分析,并根据需要将收集到的数据传输到其他应用程序。

可移植性

边缘解决方案的软件应该能够移植到不同的操作系统和硬件平台上。这将帮助用户避免被锁定在特定供应商的硬件和软件解决方案中。

EdgeX 铸造厂

为什么是开源而不是开发?

开发新的软件框架将耗费大量的时间、精力和成本。设计、开发和测试等每个阶段都需要花费大量的时间。EdgeX Foundry 是一个开源边缘计算框架,它已经提供了边缘网关服务性所需的所有微服务。该框架运行松散耦合的微服务,不需要一起运行所有服务,因此只需运行依赖服务。其他服务可以根据需要使用。由于这些优势,开源边缘计算框架被首选为边缘网关的软件基础。

EdgeX Foundry项目已在 Linux 基金会下启动。它是一个开放的、可互操作的 IoT 边缘平台。该框架分为不同的层,每层由多个微服务组成。模块化架构允许用户轻松扩展、更新和将逻辑分发到不同的系统中,从而提高可维护性。

EdgeX 与 Windows、macOS 和 Linux 系统兼容。该平台架构的设计方式使得任何技术人员都可以在短时间内学习、自行实施和贡献。

EdgeX 通过为设备数据提取、规范化、边缘智能(AI/ML)提供可替换的参考服务以及对新的物联网数据服务和先进的边缘计算应用的共享支持,加快了完整的边缘解决方案和/或边缘 SW/HW 产品的上市时间。

EdgeX 已在 EdgeXpert、EdgeXRT、HP Engage Edge、EdgeBox 和戴尔网关等产品中实现。EdgeX 框架在这些产品中的使用进一步为在其他边缘网关中的使用建立了信任。

EdgeX 如何满足边缘网关要求?

EdgeX Foundry 是一个开源的、供应商中立的软件平台,作为物理感应和驱动“事物”与信息技术 (IT) 系统之间的边缘中间件。

数据存储 – Redis DB

EdgeX 默认提供开源 Redis 作为数据库。Redis 提供一系列不同的持久性选项,例如 RDB、AOF。它是一种用于存储和转发的内存数据结构。这有助于边缘设备在连接和断开连接模式之间切换的情况。

数据分析 – Kuiper 规则引擎

EdgeX 提供 EMQ X Kuiper,一款用于物联网边缘分析和流处理的轻量级开源软件包。Kuiper 可以在各种资源受限的边缘设备上运行。Kuiper 规则基于 Source、SQL 和 Sink。

· 来源:流数据的数据源,比如来自 MQTT 服务器的数据。

· SQL:SQL 是指定流数据处理的业务逻辑的地方。Kuiper 提供类似 SQL 的语句允许用户提取、过滤和转换数据。

· Sink:Sink 用于将分析结果发送到指定目标,例如 MQTT Broker,或者 HTTP REST 地址。

使用 Kuiper 需要以下四个步骤:

1. 创建需要指定数据源的流

2. 编写 SQL/规则进行数据分析

3. 指定用于保存分析结果的接收目标

4. 部署并运行规则

设备连接 – 设备服务

EdgeX 提供了四个松耦合的微服务层。其中,设备服务层与设备服务交互。EdgeX 设备服务将来自设备的信息通过数百种协议和数千种格式进行转换,并将其带入 EdgeX。

设备服务是与智能家用电器、传感器、执行器和行业中的任何机器等设备交互的边缘连接器。除了获取传感器数据和驱动设备外,设备服务还包括:

1. 从设备/传感器中获取状态更新

2. 在将传感器数据发送到EdgeX之前,请先转换数据

3. 更改配置

4. 发现设备

设备服务可以同时服务于一个或多个设备。该设备可以是边缘/物联网网关(以及所有该网关的设备)、设备管理器、传感器集线器、通过HTTP提供的web服务,或作为EdgeX Foundry的设备的软件传感器或设备集合。

互操作性——MQTT代理和REST API

EdgeX支持一个轻量级的MQTT消息传递协议。它使用户能够发布或订阅消息传递传输,这是连接具有小代码占用和最小网络带宽的远程设备的理想选择。EdgeX支持休息设备服务,这为第三方应用程序通过rest协议将数据推送EdgeX提供了一种简单的方法。

安全-安全存储区和API网关

EdgeX提供了两个关键的安全组件。第一个是一个安全商店,它被用来提供一个安全的地方来保存EdgeX的秘密,如密码、认证和访问密钥。第二个是API网关,它被用作反向代理,以限制对EdgeX REST资源的访问,并执行与访问控制相关的工作。

设备管理-设备管理API

EdgeX 提供了定期检查健康状况的选项。设备管理 API 用于获取有关任何设备的元数据。

云连接

EdgeX提供与AWS、Microsoft Azure、IBM Watson云等云平台的连接支持。

EdgeX 中的云连接以两种方式提供:

1. 应用服务:这些服务需要编译部署,用于将数据发送到 AWS 和 Microsoft Azure 等云服务。它直接从消息总线接收数据,edgex-core-data 通过该消息总线发布数据事件。

2. 应用服务可配置:提供一种快捷方式来使用配置,而不是编译服务来使用内置 SDK 功能。

相关推荐