EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

ModBus RTU/ASCII slave response delay


Author Message
Written on: 18. 03. 2024 [18:26]
walhi
Sergey Karpesh
Topic creator
registered since: 26.01.2016
Posts: 28
To debug projects, I made an emulator of Modbus RTU input/output devices. Now I'm facing problems when the new hardware refuses to work with the emulator. There is an assumption that this is due to the half-duplex operating mode of the RS485 and a short delay in turning off the transceiver transmission mode inside the PLC. Everything looks correct in the transport logs, I’ll try to look at the signals with a logic analyzer to confirm the theory. On factory devices, the “response delay” parameter is sometimes encountered. Is there a way to implement delay in openscada? I tried to wrap up the exchange through a TSP/IP loop in the “network gateway” mode over the network, but this gives a delay of less than a millisecond.
Written on: 19. 03. 2024 [00:08]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
What about this — http://oscada.org/wiki/Modules/Serial#Output_transports

NextReqMult — next request's multiplicator to the symbol time, 4 by default;


Learn, learn and learn better than work, work and work.
Written on: 19. 03. 2024 [13:36]
walhi
Sergey Karpesh
Topic creator
registered since: 26.01.2016
Posts: 28
In this case, the emulator is Scada. I changed the frame time, but completely forgot about the ability to specify additional parameters. Unfortunately, these options are not available for incoming transport. I tried to set the mode of operation with the RTS signal and the delay, the time is shown adequately in the logs, the USB RS485 adapter circuit allows you to perform this trick. However, the debugging stand is not working correctly yet.
Written on: 19. 03. 2024 [16:31]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
I have not had any problems in ModBus/RTU slave mode with whether hardware COM adaptors or USB->RS485, but for some USB->RS485 adaptors you may have high latency what must you to set big value of the symbol time, which obviously must be set on the master side also.

All those was wrote in the Notes part — http://oscada.org/wiki/Modules/Serial#Notes

So, when you do not want of linking with the milliseconds of the symbol time as a criteria of the frame end of ModBus/RTU, just use MosBus/ASCII for such high latency USB->RS485 adaptors.

Learn, learn and learn better than work, work and work.



16474