{"categories":[{"label":"Hardware","url":"https://skillfed.io/packages/category/system-hardware"}],"enrichment":{"capability":"Pure Python library for reading and writing data to Siemens S7 PLCs over Ethernet, with support for synchronous and asynchronous operations.","skillfed_tags":["industrial-automation","siemens-plc","async-support"],"use_cases":["Read sensor data and device status from Siemens PLCs in real-time monitoring or data collection applications","Write control commands to PLCs from Python automation scripts or supervisory systems","Build async Python services that communicate with multiple PLCs concurrently without blocking","Discover and interact with PLCs on a network using PROFINET DCP and S7 routing","Integrate PLC communication into Python-based SCADA or industrial IoT platforms"],"what_it_does":"Python-snap7 is a pure Python implementation of the S7 protocol stack for communicating with Siemens S7 PLCs over Ethernet. As of version 3.0, it no longer wraps a C library; instead, the entire protocol stack (TPKT, COTP, and S7) is implemented in pure Python. This eliminates platform-specific shared libraries and makes installation straightforward across Windows, Linux, macOS, and ARM systems. The library provides both synchronous and asynchronous APIs for reading and writing PLC memory, with recent additions including tag-based read/write by symbolic name, multi-variable read optimization, S7 routing for remote PLCs, heartbeat monitoring with auto-reconnect, and PROFINET DCP network discovery.\n\nThe package targets industrial automation developers who need to interface Python applications with Siemens PLCs. It requires Python 3.10+ but has no external runtime dependencies, making it portable across diverse deployment environments. Version 3.1 adds AsyncClient for asyncio support, structured logging, and CLI tools.","worth_installing":"Yes. The library is actively maintained, production-stable (Development Status 5), has zero known vulnerabilities, and eliminates installation friction by being pure Python with no native dependencies. It is well-suited for industrial automation projects targeting Python 3.10+. The recent 3.1 release adds AsyncClient support and modern features. Install it if you need to communicate with Siemens S7 PLCs from Python."},"id":"python-snap7","links":{"html":"https://skillfed.io/packages/python-snap7","md":"https://skillfed.io/packages/python-snap7.md","pypi":"https://pypi.org/project/python-snap7/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-08-10","license_spdx":"MIT","license_treatment":"permissive","name":"python-snap7","python_support":"supports_current","summary":"Pure Python S7 communication library for Siemens PLCs"},"popularity":{"monthly_downloads":255247,"position":8481,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"3.1.2"}
