使用 N3uron、MQTT 和 Modbus 将工业数据发布到 AWS 云
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues
简介
在工业自动化领域,Modbus 是最常见的协议之一。由于其众多特点,MQTT 已成为工业自动化中 IoT 的领先协议。其轻量化设计、高效性、可扩展性以及对异步消息的支持尤为显著。在 MQTT 中,设备仅在有可报告事件时进行通信,与持续更新检查形成鲜明对比。这种事件驱动的方法结合异常报告——仅在数据偏离正常值或触发特定事件时发送数据——节省了带宽和资源,从而优化了关键 IoT 应用的数据传输。
强大的 reComputer R1000 和 N3uron Duo 的结合,通过提供强大的连接和数据处理能力,实现了高效的工厂管理。本 Wiki 强调了 Modbus TCP 在工业环境中的重要性,并突出了 MQTT 设备的无缝集成以进一步增强连接性。
前提条件
硬件
reComputer R1000 |
---|
![]() |
软件
我们强烈建议学习 N3uron 入门指南。该指南提供了关于如何使用 N3uron Web 界面的重要信息,包括理解 Web UI 和 Web Vision 模块的概念、掌握标签的概念以及创建基本仪表板。如果您尚未了解这些基础知识,建议在继续之前先进行学习。您可以通过提供的链接访问该指南。
配置 Modbus TCP/IP 的以太网设置
由于您的 PLC/设备 IP 域与无线设置不同,您可能需要手动更改 IP 配置。具体步骤如下:
- 步骤 01:如果您运行的是 Bullseye,请运行以下命令:
sudo nano /etc/dhcpcd.conf
- 步骤 02:然后根据您的 PLC/设备网络域配置以太网端口设置,并使用 metric 命令设置优先级。数值越低优先级越高。
- 步骤 01:如果您运行的是 Bookworm OS,您可以使用 GUI 点击网络图标。在高级选项中选择“编辑连接”。
- 步骤 02:选择“有线连接 2”(ETH 1),并在 IPv4 设置中添加地址、子网掩码和网关。
Modbus 模块创建与配置
在 N3uron 的 WebUI 界面中创建模块实例
- 步骤 01:在导航面板中,选择 Config。
- 步骤 02:在资源管理器面板中,选择 Modules。
- 步骤 03:点击 Model 菜单并选择 New Module。
- 步骤 04:实例可以命名为任意名称,但在本例中,我们将使用 ModbusClient。
- 步骤 05:将 Module Type 属性设置为 ModbusClient。其余属性保持默认值,然后点击 Save。
通道创建与配置
- 步骤 01:在创建的 Modbus Client 和 Model 下,选择 New Channel。将通道命名为 Client。
- 步骤 02:现在,我们将使用 Modbus TCP 与 PLC 通信。请提供 PLC 的 IP 地址 和 端口地址。
如果您使用的是 Modbus RTU,则需要考虑各种配置。为此,您需要提供诸如 COM 端口、波特率等详细信息。有关在 N3uron 上配置 Modbus RTU 和 TCP 协议的更多信息,请参考提供的指南。
- 步骤 03:添加设备:每个通道可以有一个或多个设备。为设备设置一个 名称 并继续配置。在本例中,设备名称为 PLC。
- 步骤 04:通过此界面,您可以调整一些设置。您可以通过此链接找到更多详细信息。然而,在本例中,我们将保持默认设置。
标签配置
- 步骤 01:进入 WebUI,选择 Config,然后点击 Tag。在 Model 部分,点击菜单并选择 New Tag。将其命名为 Q1。通常,Q 用于表示输出线圈。
- 步骤 02:然后需要进行以下配置:并点击 Save。
- Source:Enabled/Yes
- Module Type:ModbusClient
- ModuleName:ModbusClient
- Config:Device: Client/PLC
- Modbus address:008931
- Data type:Boolean
建议参考 PLC 或设备制造商的技术手册中关于 Modbus 地址的说明。在那里,您可以找到关于输入、输出和保持地址的详细信息。根据这些规范,应在标签配置中的 Modbus 地址行进行调整。例如,如果制造商将输出线圈 Q1 标记为 8193,则地址应配置为 008193。同样,如果网络输入标记为 1 且为线圈类型,则地址应设置为 000001。
- 步骤 03:实时模拟
连接到系统后,您可以查看输出线圈和输入线圈的实时状态。
通过 N3uron 界面与 PLC 交互需要适当的访问权限,包括读写能力。
在 N3uron 的 WebUI 界面中创建一个 MQTT 模块实例
- 步骤 01:在导航面板中选择 Config。
- 步骤 02:在资源管理器面板中选择 Modules。
- 步骤 03:点击模型菜单并选择 New Module。
- 步骤 04:实例可以命名为任意名称,但在本示例中,我们将使用 MQTT。
- 步骤 05:将模块类型属性设置为 MqttClient。保持其他属性为默认值并点击 Save。
配置 N3uron 的 MQTT 模块
步骤 01:在资源管理器面板中选择刚刚创建的 MQTT 实例。
步骤 02:点击模型菜单按钮并选择 New Connection。
步骤 03:为新连接命名。在本示例中,它被命名为 MqttClient:
- 目标代理:Custom
- 认证模式:Password
- 用户名:您的代理用户名
- 密码:您的代理密码
- 协议:MQTT
- 代理 URL:代理 IP保存配置
使用 N3uron 的 MQTT 模块订阅主题
- 步骤 01:在模型面板中右键点击 AWS Connection,选择 New Subscriber,并为其命名。在本示例中,我们将简单地使用 Subscriber。
- 步骤 02:点击它并在 Topic 字段中添加一个名称。在本示例中,我们使用了 device/data。
为了测试和实践,我们为您提供了一个 Arduino 代码,可以在 XIAO 上运行。此外,您需要在上传代码之前输入自己的凭据。
步骤 03:使用以下值设置属性,保持其他属性为默认值:
- Qos:Qos 0。
- 编码:UTF8
- 压缩:None
- 序列化:JSON
- 数据解析器/类型:MqttClient JSON然后点击 Save。
在这里,我们使用了为 MQTTClient JSON 格式配置的数据解析器。XIAO 设备以此格式向代理发布数据。如果您的设备未以此特定格式发布数据,您需要识别它使用的格式并创建一个自定义 JavaScript 代码片段来处理这些设备。有关进一步指导,请参考提供的 指南。
创建一个 Tag
- 步骤 01:在资源管理器面板中选择 Tags。
- 步骤 02:在模型菜单中右键点击文件夹图标,选择 New Tag,并为其命名。在本示例中,我们将使用 test。
步骤 03:在配置面板中使用以下值设置属性,保持其他属性为默认值:
- 类型:Number。
- 来源/启用:Yes
- 模块类型:MqttClient
- 模块名称:MQTT
- 配置/订阅者:MqttClient/Subscriber点击 Save。
- 步骤 04:实时模拟
连接到系统后,您可以查看来自 MQTT Broker 的输出的实时状态。
奖励:让我们使用 AWS 发布工厂状态
我们提供了逐步的说明,指导您如何将 AWS 云连接到您的 reComputer R1000 设备。如果您是第一次访问此 Wiki,请参考此链接。
- 第一步:在 Explorer 面板中,选择您刚刚创建的 MQTT 实例。
- 第二步:点击 Model 菜单按钮并选择 New Connection。
- 第三步:为新连接命名。在本示例中,它被命名为 MqttPublisher。
第四步:配置连接属性:
- A: 从 Destination Broker 下拉菜单中选择 Amazon Web Services。Authentication mode 将为 Certificate。此外,Client Id 在本示例中为 N3uron。
- B: 加载您在 AWS IoT 控制台中创建 Thing 时下载并保存的 Certificate, Private key 和 CA certificate。
- C: 在 AWS IoT 控制台的左侧菜单中,转到 Settings 并复制您的 Device Data Endpoint。返回 N3uron 并将其粘贴到 Broker URL 字段中。
- D: 保留其余属性为默认值,然后点击 Save。
- 第五步:在 Model 面板中,右键单击您刚刚配置的 MqttPublisher 连接,选择 New Publisher,并为其命名。在本示例中,我们将其命名为 AWS。
第六步:点击它,并在 Topic 字段中添加一个名称。在本示例中,我们使用了 N3uron。
第七步:点击 Tag Filter 按钮,选择 New Tag Filter,并更改默认名称。在本示例中,我们使用了 TagFilter。保留 Mode、Path 和 Regex pattern 为默认值。通过此配置,N3uron 中配置的每个标签都将发布到我们的 AWS Broker。
- 第八步:转到 AWS IoT 控制台,在左侧菜单中选择 MQTT test client。点击 Subscribe to a topic 标签,在 Topic filter 中输入 N3uron 以订阅所有内容,然后点击 Subscribe。
技术支持与产品讨论
感谢您选择我们的产品!我们为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供了多种沟通渠道,以满足不同的偏好和需求。