【问题标题】:AWS Greengrass V2 Modbus RTU adapter connectivity issueAWS Greengrass V2 Modbus RTU 适配器连接问题
【发布时间】:2022-01-22 20:51:48
【问题描述】:

我已成功将 Greengrass Modbus 组件部署到我的 Raspberry pi 4B 并具有所需的依赖项。 pi 通过 RS485 USB 加密狗连接到 Modbus 温度和湿度传感器。我确认我可以使用 Modpoll 命令行主模拟器工具成功读取保持寄存器,到目前为止一切都很可爱。传感器可以通过路径“/dev/ttyUSB0”访问。

我希望 Greengrass 将传感器上这些寄存器的值报告给 AWS IoTCore。

为了请求数据,我将负载从 AWS 代理发送到特定主题到 Greengrass 核心。在我的特殊情况下,主题是默认的“modbus/adapter/request”。我发送了以下有效载荷:

{
  "request": {
    "operation": "ReadHoldingRegistersRequest",
    "device": 4,
    "address": 1,
    "count": 2
  },
  "id": "TestRequest"
}

我收到了关于“modbus/adapter/response”主题的以下回复:

{
  "response": {
    "status": "fail",
    "error_message": "Modbus Error: [Connection] Failed to connect[rtu baud[9600]]",
    "error": "Exception",
    "payload": {
      "error": "Modbus Error: [Connection] Failed to connect[rtu baud[9600]]"
    },
    "operation": "ReadHoldingRegistersRequest",
    "device": 4
  },
  "id": "TestRequest"
}

重申一下,我知道正确的端口,因为我可以使用命令行 Modbuspoll 读取保持寄存器。但是,使用该工具我可以指定更多参数,例如奇偶校验类型、波特率等……这似乎我在这里做不到。供大家参考,我在 Modpoll 上使用的参数如下:

Address: 4
Baud rate: 9600
Parity: none
Registers: 1 (or 40001 for PLC)
Path: /dev/ttyUSB0

供您参考,上述所有步骤均遵循本指南:https://docs.aws.amazon.com/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html#modbus-rtu-protocol-adapter-component-input-data

有什么建议吗?

【问题讨论】:

    标签: amazon-web-services modbus raspberry-pi4 greengrass


    【解决方案1】:

    查看日志 /greengrass/v2/logs/aws.greengrass.Modbus.log 后,我很快意识到这是 pi 的权限问题。我可以使用 sudo chmod 777 命令快速修复它。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2022-07-22
      • 2021-04-20
      • 1970-01-01
      • 2014-03-06
      • 2022-01-10
      • 2019-06-17
      • 2022-08-16
      • 1970-01-01
      相关资源
      最近更新 更多