【问题标题】:How to connect multiple slave devices under the modbus-serial (rtu) connector如何在 modbus-serial (rtu) 连接器下连接多个从设备
【发布时间】:2022-07-22 21:47:36
【问题描述】:

这是我的配置文件。我使用的是新配置文件https://thingsboard.io/docs/iot-gateway/config/modbus/[new_modbus.json],在新的配置文件中,似乎可以在{ master : { "slaves" : [] }}中配置几个不同的设备。当我这样做时,我无法得到正确的结果。

{
    "master":{
        "slaves":[
            {
                "unitId":1,
                "deviceName":"test1",
                "attributesPollPeriod":5000,
                "timeseriesPollPeriod":5000,
                "sendDataOnlyOnChange":false,
                "attributes":[
                    {
                        "byteOrder":"BIG",
                        "tag":"temperature",
                        "type":"bytes",
                        "functionCode":3,
                        "registerCount":1,
                        "address":1
                    }
                ],
                "timeseries":[
                    {
                        "tag":"distance",
                        "type":"bytes",
                        "functionCode":3,
                        "objectsCount":1,
                        "address":2
                    }
                ],
                "attributeUpdates":[
                    {
                        "tag":"shared_value_1",
                        "type":"32uint",
                        "functionCode":6,
                        "objectsCount":2,
                        "address":3
                    },
                    {
                        "tag":"shared_value_2",
                        "type":"32uint",
                        "functionCode":6,
                        "objectsCount":2,
                        "address":4
                    }
                ],
                "rpc":[
                    {
                        "tag":"bearing_bpfo",
                        "type":"32uint",
                        "functionCode":6,
                        "objectsCount":2,
                        "address":5
                    }
                ],
                "host":null,
                "port":"/dev/ttyUSB0",
                "type":"serial",
                "method":"rtu",
                "timeout":35,
                "byteOrder":"BIG",
                "wordOrder":"BIG",
                "retries":null,
                "retryOnEmpty":null,
                "retryOnInvalid":null,
                "baudrate":9600,
                "pollPeriod":5000,
                "connectAttemptCount":1
            },
            {
                "unitId":2,
                "deviceName":"Test2",
                "attributesPollPeriod":5000,
                "timeseriesPollPeriod":5000,
                "sendDataOnlyOnChange":false,
                "attributes":[
                    {
                        "byteOrder":"BIG",
                        "tag":"temperature",
                        "type":"bytes",
                        "functionCode":3,
                        "registerCount":1,
                        "address":10
                    }
                ],
                "timeseries":[
                    {
                        "tag":"distance",
                        "type":"bytes",
                        "functionCode":3,
                        "objectsCount":1,
                        "address":11
                    }
                ],
                "attributeUpdates":[
                    {
                        "tag":"shared_value_1",
                        "type":"32uint",
                        "functionCode":6,
                        "objectsCount":2,
                        "address":12
                    }
                ],
                "host":null,
                "port":"/dev/ttyUSB0",
                "type":"serial",
                "method":"rtu",
                "timeout":35,
                "byteOrder":"BIG",
                "wordOrder":"BIG",
                "retries":null,
                "retryOnEmpty":null,
                "retryOnInvalid":null,
                "baudrate":9600,
                "pollPeriod":5000,
                "connectAttemptCount":5
            }
        ]
    },
    "slave":null
}

我使用的Connector名字是Modbus Connector,我部署的版本信息如下:
操作系统:树莓派
Thingsboard 物联网网关版本:3.0.1
Python 版本:3.9.2

错误回溯:

    ""2022-05-11 15:28:10" - |DEBUG| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 87 - datatype: telemetry   key: distance   value: None"
    ""2022-05-11 15:28:10" - |DEBUG| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 92 - {'deviceName': 'testUpdate', 'deviceType': 'default', 'telemetry': [], 'attributes': []}"
    ""2022-05-11 15:28:10" - |ERROR| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 83 - Modbus Error: [Input/Output] device reports readiness to read but returned no data (device disconnected or multiple access on port?)"
    NoneType: None
    ""2022-05-11 15:28:10" - |DEBUG| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 87 - datatype: telemetry   key: distance   value: None"
    ""2022-05-11 15:28:10" - |DEBUG| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 92 - {'deviceName': 'RpcTest', 'deviceType': 'default', 'telemetry': [], 'attributes': []}"
    ""2022-05-11 15:28:10" - |ERROR| - [bytes_modbus_uplink_converter.py] - bytes_modbus_uplink_converter - convert - 83 - Modbus Error: [Input/Output] device reports readiness to read but returned no data (device disconnected or multiple access on port?)"
    NoneType: None

【问题讨论】:

  • 您好,欢迎来到 SO。一些问题:您真的有两个具有正确 ID(1 和 2)的从站连接到您的/dev/ttyUSB0 串行端口吗?您是否检查过它们是否正确接线?什么是奴隶?你确定你正在阅读的地址是正确的,而你正在写的地址没有受到保护?
  • @Marcos G. 感谢您的回复。这个问题我已经解决了。

标签: modbus thingsboard-gateway


【解决方案1】:

我也有同样的问题。你能分享你的解决方案吗?

【讨论】:

猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 2021-12-30
  • 2014-09-14
  • 2016-11-22
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 2018-11-25
相关资源
最近更新 更多