为什么Modbus getter收不到来自Modbus服务器的数据?

问题描述 投票:0回答:1

工作流程如下:

[
    {
        "id": "8433851b34033b3b",
        "type": "modbus-read",
        "z": "1ba6b61acf69773f",
        "name": "test",
        "topic": "test",
        "showStatusActivities": false,
        "logIOActivities": false,
        "showErrors": false,
        "showWarnings": true,
        "unitid": "0",
        "dataType": "Coil",
        "adr": "1",
        "quantity": "1",
        "rate": "1",
        "rateUnit": "m",
        "delayOnStart": false,
        "startDelayTime": "",
        "server": "b242b402bba0f67f",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": false,
        "x": 370,
        "y": 60,
        "wires": [
            [
                "17c8a4504ad23109"
            ],
            []
        ]
    },
    {
        "id": "17c8a4504ad23109",
        "type": "debug",
        "z": "1ba6b61acf69773f",
        "name": "debug 6",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 600,
        "y": 60,
        "wires": []
    },
    {
        "id": "f1c9a936ac0bce42",
        "type": "debug",
        "z": "1ba6b61acf69773f",
        "name": "DO格式",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 580,
        "y": 100,
        "wires": []
    },
    {
        "id": "dc61d5bb20b3e373",
        "type": "modbus-getter",
        "z": "1ba6b61acf69773f",
        "name": "modbus getter",
        "showStatusActivities": true,
        "showErrors": true,
        "showWarnings": true,
        "logIOActivities": false,
        "unitid": "0",
        "dataType": "Coil",
        "adr": "1",
        "quantity": "1",
        "server": "b242b402bba0f67f",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": false,
        "keepMsgProperties": true,
        "delayOnStart": false,
        "startDelayTime": "",
        "x": 220,
        "y": 160,
        "wires": [
            [
                "f1c9a936ac0bce42",
                "5b83066048133419"
            ],
            []
        ]
    },
    {
        "id": "b242b402bba0f67f",
        "type": "modbus-client",
        "name": "Modbus server",
        "clienttype": "tcp",
        "bufferCommands": true,
        "stateLogEnabled": false,
        "queueLogEnabled": false,
        "failureLogEnabled": true,
        "tcpHost": "127.0.0.1",
        "tcpPort": "502",
        "tcpType": "DEFAULT",
        "serialPort": "/dev/ttyUSB",
        "serialType": "RTU-BUFFERD",
        "serialBaudrate": "9600",
        "serialDatabits": "8",
        "serialStopbits": "1",
        "serialParity": "none",
        "serialConnectionDelay": "100",
        "serialAsciiResponseStartDelimiter": "0x3A",
        "unit_id": "0",
        "commandDelay": "1",
        "clientTimeout": "1000",
        "reconnectOnTimeout": false,
        "reconnectTimeout": "2000",
        "parallelUnitIdsAllowed": true,
        "showWarnings": true,
        "showLogs": true
    }
]

我正在使用 Modbus 客户端模拟器连接到 Modbus 服务器。最初,我使用Modbus read来获取数据,但现在我想用Modbus getter代替它。然而,在我的测试中,只有 Modbus read 能够检测到来自 Modbus 服务器节点的更改,而 Modbus getter 则不能。输出如下:

2023/8/29 9:54:01 node: debug 6
test : msg.payload : array[8]
[true, false, false, false, false, false, false, false]

2023/8/29 9:55:01 node: debug 6
test : msg.payload : array[8]
[false, false, false, false, false, false, false, false]

我已经尝试比较相应的节点,它们应该正确指向Modbus服务器。模拟器和 debug6 的输出也是一致的,因此唯一剩下的问题是为什么 Modbus getter 没有收到任何消息。

我的期望:我需要帮助让 Modbus getter 正确接收来自 Modbus 服务器的信息。

node-red modbus
1个回答
0
投票

我导入了你的流程并使用同一个包的modbus服务器进行了尝试。

Getter 和 Read 节点之间的区别在于,Getter 对输入消息做出反应,而 Read 节点可以通过按下按钮或编辑器中的选项来触发。

因此,您只需在 Getter 节点前面添加一个 Inject 节点即可注入任何类型的消息。现在,您可以通过按 Inject 节点上的按钮来启动 Getter,也可以在那里设置间隔。

© www.soinside.com 2019 - 2024. All rights reserved.