通过 IoT Edge 设备网关连接 Modbus TCP 设备
适用于: IoT Edge 1.5 IoT Edge 1.4
重要
IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 是受支持的版本。 IoT Edge 1.4 LTS 的生命周期结束日期为 2024 年 11 月 12 日。 如果你使用的是较低的版本,请参阅更新 IoT Edge。
若要将使用 Modbus TCP 或 RTU 协议的 IoT 设备连接到 Azure IoT 中心,可以使用 IoT Edge 设备作为网关。 此网关设备从 Modbus 设备读取数据,然后使用支持的协议将该数据传送到云。
本文介绍如何针对 Modbus 模块创建自己的容器映像(也可使用预构建的示例),然后将其部署到会充当网关的 IoT Edge 设备。
本文假定你使用的是 Modbus TCP 协议。 若要详细了解如何配置支持 Modbus RTU 的模块,请参阅 GitHub 上的 Azure IoT Edge Modbus 模块项目。
先决条件
- Azure IoT Edge 设备。 若要详细了解如何设置一个,请参阅在 Windows 中部署 Azure IoT Edge 或在 Linux 中部署 Azure IoT Edge。
- IoT Edge 设备的主键连接字符串。
- 支持 Modbus TCP 的物理或模拟 Modbus 设备。 需要知道其 IPv4 地址。
准备 Modbus 容器
若要测试 Modbus 网关功能,可以使用 Azure 提供的示例模块。 可以通过 Azure 市场 Modbus 或映像 URI mcr.microsoft.com/azureiotedge/modbus:1.0
访问该模块。
如果需要创建自己的模块并根据环境对其自定义,可以使用 GitHub 上的开源 Azure IoT Edge Modbus 模块项目。 按照该项目中的指南创建自己的容器映像。 若要创建容器映像,请参阅在 Visual Studio 中开发 C# 模块或使用 Visual Studio Code 开发 Azure IoT Edge 模块。 这些文章说明了如何创建新模块并将容器映像发布到注册表。
试用此解决方案
此部分详述如何将 Azure 的示例 Modbus 模块部署到 IoT Edge 设备。
在 Azure 门户中转到 IoT 中心。
转到“设备”,然后选择 IoT Edge 设备。
选择“设置模块”。
在“IoT Edge 模块”部分中,添加 Modbus 模块:
- 选择“添加”下拉列表,然后选择“市场模块”。
- 搜索
Modbus
,并选择 Microsoft 的“Modbus TCP 模块”。 - IoT 中心的模块会自动进行配置,并显示在 IoT Edge 模块列表中。 路由也会自动进行配置。 选择“查看 + 创建”。
- 查看部署清单并选择“创建”。
在列表中选择 Modbus 模块
ModbusTCPModule
,然后选择“模块孪生设置”选项卡。模块孪生所需属性的必需 JSON 会自动填充。查找 JSON 中的 SlaveConnection 属性,并将其值设置为 Modbus 设备的 IPv4 地址。
选择“更新”。
选择“查看 + 创建”,检查部署,然后选择“创建”。
返回到“设备详细信息”页,并选择“刷新”。 此时会看到新的
ModbusTCPModule
模块与 IoT Edge 运行时一起运行。
查看数据
通过 Modbus 模块查看传入的数据:
iotedge logs modbus
也可使用适用于 Visual Studio Code 的 Azure IoT 中心扩展(以前称为 Azure IoT 工具包扩展)查看设备正发送的遥测数据。
后续步骤
- 若要详细了解 IoT Edge 设备如何充当网关,请参阅创建充当透明网关的 IoT Edge 设备。
- 有关 IoT Edge 模块工作原理的详细信息,请参阅了解 Azure IoT Edge 模块。