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:
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.