通过 IoT Edge 设备网关连接 Modbus TCP 设备

适用于:IoT Edge 1.4 checkmark IoT Edge 1.4

若要将使用 Modbus TCP 或 RTU 协议的 IoT 设备连接到 Azure IoT 中心,可以使用 IoT Edge 设备作为网关。 此网关设备从 Modbus 设备读取数据,然后使用支持的协议将该数据传送到云。

Screenshot of Modbus devices that connect to IoT Hub through IoT Edge gateway.

本文介绍如何针对 Modbus 模块创建自己的容器映像(也可使用预构建的示例),然后将其部署到会充当网关的 IoT Edge 设备。

本文假定你使用的是 Modbus TCP 协议。 若要详细了解如何配置支持 Modbus RTU 的模块,请参阅 GitHub 上的 Azure IoT Edge Modbus 模块项目。

先决条件

准备 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 设备。

  1. Azure 门户中转到 IoT 中心。

  2. 转到“设备”,然后选择 IoT Edge 设备。

  3. 选择“设置模块”。

  4. 在“IoT Edge 模块”部分中,添加 Modbus 模块

    1. 单击“添加”下拉列表,然后选择“市场模块”
    2. 搜索 Modbus,并选择 Microsoft 的“Modbus TCP 模块”
    3. IoT 中心的模块会自动进行配置,并显示在 IoT Edge 模块列表中。 路由也会自动进行配置。 选择“查看 + 创建”。
    4. 查看部署清单并选择“创建”
  5. 在列表中选择 Modbus 模块 ModbusTCPModule,然后选择“模块孪生设置”选项卡。模块孪生所需属性的必需 JSON 会自动填充。

  6. 查找 JSON 中的 SlaveConnection 属性,并将其值设置为 Modbus 设备的 IPv4 地址

  7. 选择“更新”。

  8. 选择“查看 + 创建”,检查部署,然后选择“创建”

  9. 返回到“设备详细信息”页,并选择“刷新”。 此时会看到新的 ModbusTCPModule 模块与 IoT Edge 运行时一起运行。

查看数据

通过 Modbus 模块查看传入的数据:

iotedge logs modbus

也可使用适用于 Visual Studio Code 的 Azure IoT 中心扩展(以前称为 Azure IoT 工具包扩展)查看设备正发送的遥测数据。

后续步骤