Borrar filtros
Borrar filtros

Timeout does not work for modbus (TCP/IP transport)

10 visualizaciones (últimos 30 días)
Vecta Matlab
Vecta Matlab el 26 de Mzo. de 2019
Editada: Enrico Segre el 26 de Oct. de 2022
m = modbus('tcpip', '192.168.15.25', 502, 'Timeout', 1)
m = modbus('tcpip', '192.168.15.25', 502)
Running the first command, I was expecting to get timeout error after 1 second, but I get timeout error after 20 seconds, same as running the second command.
m = modbus('serialrtu','COM3','Timeout',1)
Timeout works with 'serialrtu', but does not work with 'tcpip'.
Matlab 2018b
My IP address: 192.168.15.3
Subnet mask: 255.255.255.0
Could anyone help please? Thanks.
  1 comentario
Enrico Segre
Enrico Segre el 26 de Oct. de 2022
+1, and for me the timeout on creation is fixed to 120sec, which is even more annoying

Iniciar sesión para comentar.

Respuestas (1)

Enrico Segre
Enrico Segre el 26 de Oct. de 2022
Editada: Enrico Segre el 26 de Oct. de 2022
I pinpointed the problem in my installation (2021a) down to method createAndConnect() of /usr/local/MATLAB/R2021a/toolbox/instrument/instrument/+instrument/+interface/+modbus/+tcpip/Modbus.m. This method creates an object of class matlabshared.network.internal.TCPClient. As such, that does have a public property ConnectTimeout,which is neither passed as an argument, nor set in this constructor. I found that as a default, it has value Inf.
To reduce the timeout to for instance 2 seconds I can add a
obj.TcpIpObj.ConnectTimeout=2;
in createAndConnect(), after line 142 of Modbus.m in my version. This of course requires write access to the matlab installation, and obviously is an inflexible and unportable solution.

Categorías

Más información sobre Modbus Communication en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by