From 4e900b5ca7781179bc8652763cb4e2e970da6eee Mon Sep 17 00:00:00 2001 From: Al Mitchell Date: Mon, 30 Sep 2024 22:08:21 +0100 Subject: [PATCH 1/4] allow timeout to slaves on tcp clients --- pymodbus/client/base.py | 14 +++++++++----- pymodbus/client/tcp.py | 9 ++++++++- pymodbus/client/tls.py | 7 +++++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/pymodbus/client/base.py b/pymodbus/client/base.py index 655f010d4..e8fa35a2e 100644 --- a/pymodbus/client/base.py +++ b/pymodbus/client/base.py @@ -115,14 +115,18 @@ async def async_execute(self, request) -> ModbusPDU: except asyncio.exceptions.TimeoutError: count += 1 if count > self.retries: - self.ctx.connection_lost(asyncio.TimeoutError("Server not responding")) - raise ModbusIOException( - f"ERROR: No response received after {self.retries} retries" - ) + self.no_message_response_after_retries(self.retries) return resp - def build_response(self, request: ModbusPDU): + def no_message_response_after_retries(self, retries) -> None: + """Take action after a message has not been responded to after retries.""" + self.ctx.connection_lost(asyncio.TimeoutError("Server not responding")) + raise ModbusIOException( + f"ERROR: No response received after {retries} retries" + ) + + def build_response(self, request: ModbusRequest): """Return a deferred response for the current request. :meta private: diff --git a/pymodbus/client/tcp.py b/pymodbus/client/tcp.py index 0983f2c19..778e4c22a 100644 --- a/pymodbus/client/tcp.py +++ b/pymodbus/client/tcp.py @@ -7,7 +7,7 @@ from collections.abc import Callable from pymodbus.client.base import ModbusBaseClient, ModbusBaseSyncClient -from pymodbus.exceptions import ConnectionException +from pymodbus.exceptions import ConnectionException, ModbusIOException from pymodbus.framer import FramerType from pymodbus.logging import Log from pymodbus.transport import CommParams, CommType @@ -83,6 +83,13 @@ def __init__( # pylint: disable=too-many-arguments on_connect_callback, ) + def no_message_response_after_retries(self, retries) -> None: + """Take action after a message has not been responded to after retries.""" + #Just log exception - no other action needed on TCP connections. + raise ModbusIOException( + f"ERROR: No response received after {retries} retries - connection not closed" + ) + class ModbusTcpClient(ModbusBaseSyncClient): """**ModbusTcpClient**. diff --git a/pymodbus/client/tls.py b/pymodbus/client/tls.py index 0b4d6a44c..2d9ec71f3 100644 --- a/pymodbus/client/tls.py +++ b/pymodbus/client/tls.py @@ -6,6 +6,7 @@ from collections.abc import Callable from pymodbus.client.tcp import AsyncModbusTcpClient, ModbusTcpClient +from pymodbus.exceptions import ModbusIOException from pymodbus.framer import FramerType from pymodbus.logging import Log from pymodbus.transport import CommParams, CommType @@ -83,6 +84,12 @@ def __init__( # pylint: disable=too-many-arguments retries=retries, on_connect_callback=on_connect_callback, ) + def no_message_response_after_retries(self, retries) -> None: + """Take action after a message has not been responded to after retries.""" + #Just log exception - no other action needed on TLS connections. + raise ModbusIOException( + f"ERROR: No response received after {retries} retries - connection not closed" + ) @classmethod def generate_ssl( From f146b89e0426b90c4bda14b1d0de19f60b3ae200 Mon Sep 17 00:00:00 2001 From: jan iversen Date: Sat, 19 Oct 2024 20:09:54 +0200 Subject: [PATCH 2/4] Make it work. --- pymodbus/client/base.py | 25 ++++++++++++++----------- pymodbus/client/tcp.py | 9 +-------- pymodbus/client/tls.py | 7 ------- pymodbus/pdu/__init__.py | 7 ++----- test/sub_client/test_client.py | 13 +++++++------ 5 files changed, 24 insertions(+), 37 deletions(-) diff --git a/pymodbus/client/base.py b/pymodbus/client/base.py index e8fa35a2e..ee3b18252 100644 --- a/pymodbus/client/base.py +++ b/pymodbus/client/base.py @@ -11,7 +11,7 @@ from pymodbus.exceptions import ConnectionException, ModbusIOException from pymodbus.framer import FRAMER_NAME_TO_CLASS, FramerBase, FramerType from pymodbus.logging import Log -from pymodbus.pdu import DecodePDU, ModbusPDU +from pymodbus.pdu import DecodePDU, ExceptionResponse, ModbusPDU from pymodbus.transaction import SyncModbusTransactionManager from pymodbus.transport import CommParams from pymodbus.utilities import ModbusTransactionState @@ -50,6 +50,8 @@ def __init__( self.last_frame_end: float | None = 0 self.silent_interval: float = 0 self._lock = asyncio.Lock() + self.accept_no_response_limit = 3 + self.count_no_responses = 0 @property def connected(self) -> bool: @@ -115,18 +117,19 @@ async def async_execute(self, request) -> ModbusPDU: except asyncio.exceptions.TimeoutError: count += 1 if count > self.retries: - self.no_message_response_after_retries(self.retries) - + if self.count_no_responses >= self.accept_no_response_limit: + self.ctx.connection_lost(asyncio.TimeoutError("Server not responding")) + raise ModbusIOException( + f"ERROR: No response received of the last {self.accept_no_response_limit} request, CLOSING CONNECTION." + ) + self.count_no_responses += 1 + Log.error(f"No response received after {self.retries} retries, continue with next request") + return ExceptionResponse(request.function_code) + + self.count_no_responses = 0 return resp - def no_message_response_after_retries(self, retries) -> None: - """Take action after a message has not been responded to after retries.""" - self.ctx.connection_lost(asyncio.TimeoutError("Server not responding")) - raise ModbusIOException( - f"ERROR: No response received after {retries} retries" - ) - - def build_response(self, request: ModbusRequest): + def build_response(self, request: ModbusPDU): """Return a deferred response for the current request. :meta private: diff --git a/pymodbus/client/tcp.py b/pymodbus/client/tcp.py index 778e4c22a..0983f2c19 100644 --- a/pymodbus/client/tcp.py +++ b/pymodbus/client/tcp.py @@ -7,7 +7,7 @@ from collections.abc import Callable from pymodbus.client.base import ModbusBaseClient, ModbusBaseSyncClient -from pymodbus.exceptions import ConnectionException, ModbusIOException +from pymodbus.exceptions import ConnectionException from pymodbus.framer import FramerType from pymodbus.logging import Log from pymodbus.transport import CommParams, CommType @@ -83,13 +83,6 @@ def __init__( # pylint: disable=too-many-arguments on_connect_callback, ) - def no_message_response_after_retries(self, retries) -> None: - """Take action after a message has not been responded to after retries.""" - #Just log exception - no other action needed on TCP connections. - raise ModbusIOException( - f"ERROR: No response received after {retries} retries - connection not closed" - ) - class ModbusTcpClient(ModbusBaseSyncClient): """**ModbusTcpClient**. diff --git a/pymodbus/client/tls.py b/pymodbus/client/tls.py index 2d9ec71f3..0b4d6a44c 100644 --- a/pymodbus/client/tls.py +++ b/pymodbus/client/tls.py @@ -6,7 +6,6 @@ from collections.abc import Callable from pymodbus.client.tcp import AsyncModbusTcpClient, ModbusTcpClient -from pymodbus.exceptions import ModbusIOException from pymodbus.framer import FramerType from pymodbus.logging import Log from pymodbus.transport import CommParams, CommType @@ -84,12 +83,6 @@ def __init__( # pylint: disable=too-many-arguments retries=retries, on_connect_callback=on_connect_callback, ) - def no_message_response_after_retries(self, retries) -> None: - """Take action after a message has not been responded to after retries.""" - #Just log exception - no other action needed on TLS connections. - raise ModbusIOException( - f"ERROR: No response received after {retries} retries - connection not closed" - ) @classmethod def generate_ssl( diff --git a/pymodbus/pdu/__init__.py b/pymodbus/pdu/__init__.py index 2095a153c..60ba42e58 100644 --- a/pymodbus/pdu/__init__.py +++ b/pymodbus/pdu/__init__.py @@ -2,13 +2,10 @@ __all__ = [ "DecodePDU", "ExceptionResponse", + "ExceptionResponse", "ModbusExceptions", "ModbusPDU", ] from pymodbus.pdu.decoders import DecodePDU -from pymodbus.pdu.pdu import ( - ExceptionResponse, - ModbusExceptions, - ModbusPDU, -) +from pymodbus.pdu.pdu import ExceptionResponse, ModbusExceptions, ModbusPDU diff --git a/test/sub_client/test_client.py b/test/sub_client/test_client.py index 138f56771..9871b2a85 100755 --- a/test/sub_client/test_client.py +++ b/test/sub_client/test_client.py @@ -20,8 +20,8 @@ from pymodbus.client.mixin import ModbusClientMixin from pymodbus.datastore import ModbusSlaveContext from pymodbus.datastore.store import ModbusSequentialDataBlock -from pymodbus.exceptions import ConnectionException, ModbusException, ModbusIOException -from pymodbus.pdu import ModbusPDU +from pymodbus.exceptions import ConnectionException, ModbusException +from pymodbus.pdu import ExceptionResponse, ModbusPDU from pymodbus.transport import CommParams, CommType @@ -436,8 +436,9 @@ async def test_client_execute_broadcast(): transport = MockTransport(base, request) base.ctx.connection_made(transport=transport) - with pytest.raises(ModbusIOException): - assert not await base.async_execute(request) + # with pytest.raises(ModbusIOException): + # assert not await base.async_execute(request) + assert await base.async_execute(request) async def test_client_protocol_retry(): """Test the client protocol execute method with retries.""" @@ -477,8 +478,8 @@ async def test_client_protocol_timeout(): transport = MockTransport(base, request, retries=4) base.ctx.connection_made(transport=transport) - with pytest.raises(ModbusIOException): - await base.async_execute(request) + pdu = await base.async_execute(request) + assert isinstance(pdu, ExceptionResponse) assert transport.retries == 1 From d455a96280d155bb1e123401cb83385d546bdac8 Mon Sep 17 00:00:00 2001 From: jan iversen Date: Sat, 19 Oct 2024 22:09:10 +0200 Subject: [PATCH 3/4] Update client doc. --- doc/source/_static/examples.tgz | Bin 43531 -> 43527 bytes doc/source/_static/examples.zip | Bin 38344 -> 38343 bytes doc/source/client.rst | 8 ++++++++ 3 files changed, 8 insertions(+) diff --git a/doc/source/_static/examples.tgz b/doc/source/_static/examples.tgz index 4f876033739c3c857b035554c0edc56e54d563d1..d53e359e9ed75162b30dd937e0d4d11a192d8726 100644 GIT binary patch delta 41682 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 delta 41628 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 BSG)iK delta 3346 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 diff --git a/doc/source/client.rst b/doc/source/client.rst index ae4a8404e..9c24d59d8 100644 --- a/doc/source/client.rst +++ b/doc/source/client.rst @@ -166,6 +166,14 @@ The line :mod:`result = await client.read_coils(2, 3, slave=1)` is an example of The last line :mod:`client.close()` closes the connection and render the object inactive. +Retry logic for async clients +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If no response is received to a request (call), it is retried (parameter retries) times, if not succesfull +an exception response is returned, BUT the connection is not touched. + +If 3 consequitve requests (calls) do not receive a response, the connection is terminated. + Development notes ^^^^^^^^^^^^^^^^^ From 90cdcd43d8331d2116260ebb4f0051f7ec15c551 Mon Sep 17 00:00:00 2001 From: jan iversen Date: Sat, 19 Oct 2024 22:10:32 +0200 Subject: [PATCH 4/4] codespell. --- doc/source/client.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/client.rst b/doc/source/client.rst index 9c24d59d8..4343def75 100644 --- a/doc/source/client.rst +++ b/doc/source/client.rst @@ -169,7 +169,7 @@ The last line :mod:`client.close()` closes the connection and render the object Retry logic for async clients ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If no response is received to a request (call), it is retried (parameter retries) times, if not succesfull +If no response is received to a request (call), it is retried (parameter retries) times, if not successful an exception response is returned, BUT the connection is not touched. If 3 consequitve requests (calls) do not receive a response, the connection is terminated.