Hi all,
Got an issue with some equipment I'm trying to get talking over modbus RTU, using a Red Lion DA10D. I have attached a couple of screenshots of the configuration settings.
I have several issues presenting, but the main one is that we appear to be receiving data once, timing out, and then having to re-establish the connection to receive more data.
I’ve created a very simple program which is just trying to read a single Modbus register one slave device into an internal block. The DA10D is set up as a modbus RTU master, slave timeout set to 6000ms, and the "ping holding register" value is set to the same address as the single register being read (I have also tried setting it to zero to disable it).
On the DA10D’s RX/TX indicators you see a repeated sequence: single green flash, one second pause, red flash immediately followed by green flash, 6 second pause, and repeat. Assuming I’m correct in saying that green is RX and red is TX, we’re seeing:
Transmit
(one second pause)
Receive and immediate transmit
(six second pause)
…and repeat. It’s as if the red lion transmits and waits for a response, which takes about a second to come. As soon as it gets a response, the red lion transmits again, but this time the slave doesn’t respond at all. Six seconds later the timeout expires and the red lion tries again, with the same results. When the Rx light flashes I do actually receive data, so I know that all of my wiring/comms settings/etc are working. If I set the timeout delay down low enough, it works enough to be largely functional, as the data will update every few seconds, but it's still not right.
I have adjusted the timeout setting and the behaviour is exactly the same, except that the six second pause obviously changes accordingly.
I have adjusted the minimum polling delay from 100ms to 500ms; the result is an extended delay between the Rx light and the subsequent Tx light, but regardless of this delay, the slave device never responds to the second Tx.
I have tried putting in a communication delay of 1-2 seconds; no change.
I have tried all the different poll modes for the block itself (Automatic, continuous, timed with various time settings from 500ms to 5000ms). No change to the observed behaviour.
I have tried changing baud rates on both devices and both of the RTU framing options; no change to the observed behaviour.
Anyone got any ideas as to what else I could try?
Got an issue with some equipment I'm trying to get talking over modbus RTU, using a Red Lion DA10D. I have attached a couple of screenshots of the configuration settings.
I have several issues presenting, but the main one is that we appear to be receiving data once, timing out, and then having to re-establish the connection to receive more data.
I’ve created a very simple program which is just trying to read a single Modbus register one slave device into an internal block. The DA10D is set up as a modbus RTU master, slave timeout set to 6000ms, and the "ping holding register" value is set to the same address as the single register being read (I have also tried setting it to zero to disable it).
On the DA10D’s RX/TX indicators you see a repeated sequence: single green flash, one second pause, red flash immediately followed by green flash, 6 second pause, and repeat. Assuming I’m correct in saying that green is RX and red is TX, we’re seeing:
Transmit
(one second pause)
Receive and immediate transmit
(six second pause)
…and repeat. It’s as if the red lion transmits and waits for a response, which takes about a second to come. As soon as it gets a response, the red lion transmits again, but this time the slave doesn’t respond at all. Six seconds later the timeout expires and the red lion tries again, with the same results. When the Rx light flashes I do actually receive data, so I know that all of my wiring/comms settings/etc are working. If I set the timeout delay down low enough, it works enough to be largely functional, as the data will update every few seconds, but it's still not right.
I have adjusted the timeout setting and the behaviour is exactly the same, except that the six second pause obviously changes accordingly.
I have adjusted the minimum polling delay from 100ms to 500ms; the result is an extended delay between the Rx light and the subsequent Tx light, but regardless of this delay, the slave device never responds to the second Tx.
I have tried putting in a communication delay of 1-2 seconds; no change.
I have tried all the different poll modes for the block itself (Automatic, continuous, timed with various time settings from 500ms to 5000ms). No change to the observed behaviour.
I have tried changing baud rates on both devices and both of the RTU framing options; no change to the observed behaviour.
Anyone got any ideas as to what else I could try?