工作流程如下:
[
{
"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 服务器的信息。
我导入了你的流程并使用同一个包的modbus服务器进行了尝试。
Getter 和 Read 节点之间的区别在于,Getter 对输入消息做出反应,而 Read 节点可以通过按下按钮或编辑器中的选项来触发。
因此,您只需在 Getter 节点前面添加一个 Inject 节点即可注入任何类型的消息。现在,您可以通过按 Inject 节点上的按钮来启动 Getter,也可以在那里设置间隔。