Transaction Identfier, Protocol Identifier, and ADU. So the issue seems to be that only one device can be enabled and read throughout the whole node-red configuration.Īs far as I'm aware, this should all be within the modbus RTU stack, as it's simply two slave devices on the same network with the same configuration and different addresses, so not sure of the problem here? I'm hesitant to create an 'issue' on the node-red-contrib-modbus GitHub page until confirm that this is actually a bug. While receiving data from TCP/IP, Modbus TCP parser, you can parse the MBAP Header and extract the. However if I disable one tab, the other modbus-read works fine. This happens at random - sometimes slave 1 works and slave 101 doesn't, sometimes the other way around. To obtain the value of those registers, I sent this query message: Function 3 (4xxxx), offset: 16386, lenght: 16.
If I enable both tabs, slave 1 will communicate properly and slave 101 won't (it gets stuck in a loop of 'initialize -> reconnecting after 2000 msec'). First of all, I used the CAS Modbus Scanner to communicate with the Acuvim II and I can read all the registers that I need. Two node-red tabs, one with this flow for slave 101 (using a flex getter here but the same happens with a normal modbus-read node): Enabling both causes one of them to fail to work. I'm having an issue where setting up 'modbus-read' nodes for both only works if I have one slave set up. Transaction Identifier - It is used for transaction pairing, the MODBUS server copies in the response the.
I've confirmed that there are no wiring issues and all comms are good. MODBUS error such as watchdog error, etc. Submit the response, including the MODBUS TCP/IP prefix, as a single buffer for transmission on the connection, using send() Go back and wait for the next 6 byte prefix record. According to the Modbus specification, in the response. Both have the same settings, for RTU-BUFFERED: Generate the MODBUS TCP/IP prefix for the response, copying the ‘transaction identifier’ field from bytes 0 and 1 of the request, and recalculating the length field. I'm using the node-red-contrib-modbus node, with two slave devices with addresses 1 and 101.