Errors
S7 error handling and exception classes.
Maps S7 error codes to Python exceptions with meaningful messages.
- exception snap7.error.S7AuthenticationError(message: str, error_code: int | None = None)[source]
Raised when S7 authentication fails.
- exception snap7.error.S7ConnectionError(message: str, error_code: int | None = None)[source]
Raised when connection to S7 device fails.
- exception snap7.error.S7Error(message: str, error_code: int | None = None)[source]
Base exception for all S7 protocol errors.
- exception snap7.error.S7PacketLostError(message: str, error_code: int | None = None)[source]
Raised when a response PDU reference is ahead of expected (packet loss).
- exception snap7.error.S7ProtocolError(message: str, error_code: int | None = None)[source]
Raised when S7 protocol communication fails.
- exception snap7.error.S7StalePacketError(message: str, error_code: int | None = None)[source]
Raised when a response has an old/stale PDU reference number.
- exception snap7.error.S7TimeoutError(message: str, error_code: int | None = None)[source]
Raised when S7 operation times out.
- snap7.error.check_error(code: int, context: str = 'client') None[source]
Check if the error code is set. If so, raise an appropriate exception.
- Parameters:
code – error code number.
context – context in which is called.
- Raises:
S7ConnectionError – for connection-related errors
S7TimeoutError – for timeout errors
S7ProtocolError – for protocol errors
RuntimeError – for other errors (backwards compatibility)
- snap7.error.error_text(error: int, context: str = 'client') str[source]
Returns a textual explanation of a given error number.
- Parameters:
error – an error integer
context – context in which is called from, server, client or partner
- Returns:
The error message as a string.
- snap7.error.error_wrap(context: str) Callable[[...], Callable[[...], None]][source]
Decorator that parses an S7 error code returned by the decorated function.
- snap7.error.get_error_message(error_code: int) str[source]
Get human-readable error message for S7 error code.
- snap7.error.get_protocol_error_message(code: int) str[source]
Get human-readable error message for an S7 protocol-level error code.
These are the error codes found in USERDATA parameter sections and S7 header error_class/error_code fields. They are distinct from the higher-level client/ISO error codes.
- Parameters:
code – S7 protocol error code (e.g., 0xD401, 0x8104)
- Returns:
Human-readable error description, or a hex-formatted unknown message.