@@ -48,19 +48,20 @@ Connect to any S7 PLC::
4848No native libraries or platform-specific dependencies are required.
4949
5050
51- Version 4.0 -- New ``s7 `` Package (unreleased)
52- ===============================================
51+ Version 4.0 -- S7CommPlus & the ``s7 `` Package (unreleased)
52+ ============================================================
5353
5454.. note ::
5555
5656 Version 4.0 is **not yet released **. Installing with ``pip install python-snap7 ``
5757 gives you version 3.0, which uses the ``snap7 `` package shown above.
58- To try 4.0 early, install from the development branch (see below).
58+ To try 4.0 early, install from the development branch::
5959
60- Version 4.0 introduces the new ``s7 `` package as the standard entry point. It
61- works with **all supported PLC models ** (S7-300, S7-400, S7-1200, S7-1500),
62- adds S7CommPlus protocol support (required for S7-1200/1500 with PUT/GET
63- disabled), and automatically selects the best protocol::
60+ $ pip install git+https://github.com/gijzelaerr/python-snap7.git@master
61+
62+ **S7CommPlus protocol support ** -- the headline feature of 4.0. S7CommPlus is
63+ required for communicating with S7-1200 and S7-1500 PLCs that have PUT/GET
64+ disabled. python-snap7 now supports S7CommPlus V1, V2 (with TLS), and V3::
6465
6566 from s7 import Client
6667
@@ -69,32 +70,34 @@ disabled), and automatically selects the best protocol::
6970 data = client.db_read(1, 0, 4)
7071 client.disconnect()
7172
72- The ``s7.Client `` automatically tries S7CommPlus first ( for S7-1200/1500) and
73- falls back to legacy S7 when needed. The existing `` snap7 `` package continues
74- to work unchanged.
73+ The new ``s7 `` package is the recommended entry point for all new projects. It
74+ automatically tries S7CommPlus first (for S7-1200/1500) and falls back to legacy
75+ S7 when needed. The existing `` snap7 `` package continues to work unchanged.
7576
76- **Help us test! ** Version 4.0 needs more real-world testing before release. If
77- you have access to any of the following PLCs, we would greatly appreciate
78- testing and feedback:
77+ **Other new features in 4.0: **
7978
80- * S7-1200 (any firmware version)
81- * S7-1500 (any firmware version)
82- * S7-1500 with TLS enabled
83- * S7-300
84- * S7-400
85- * S7-1200/1500 with PUT/GET disabled (S7CommPlus-only)
86- * LOGO! 0BA8 and newer
79+ * **Command-line interface ** (``s7 read ``, ``s7 write ``, ``s7 info ``)
80+ * **Partner BSend/BRecv ** for peer-to-peer communication with S7-1500
81+ * **TCP socket optimization ** (TCP_NODELAY, SO_KEEPALIVE) for lower latency
82+ * **S7CommPlus area read/write ** for M, I, Q, counters, timers (not just DBs)
83+ * **Structured logging ** with PLC connection context for multi-PLC environments
8784
88- Please report your results -- whether it works or not -- on the
89- `issue tracker <https://github.com/gijzelaerr/python-snap7/issues >`_.
85+ **Experimental features ** (API may change):
9086
91- To install the development version::
87+ * **Multi-variable read optimizer ** -- merges scattered reads into minimal PDU
88+ exchanges with parallel dispatch
89+ * **S7 routing ** -- connect to PLCs on remote subnets via a gateway PLC
90+ * **Symbolic addressing ** -- read/write by tag name instead of raw addresses
91+ * **Live symbol browsing ** -- resolve tag names directly from the PLC
92+ * **TIA Portal XML import ** -- import symbol tables from TIA Portal exports
9293
93- $ pip install git+https://github.com/gijzelaerr/python-snap7.git@master
94+ **Help us test! ** If you have access to any Siemens S7 PLC, we would greatly
95+ appreciate testing and feedback. Please report results on the
96+ `issue tracker <https://github.com/gijzelaerr/python-snap7/issues >`_.
9497
9598
96- Version 3.0 -- Pure Python Rewrite
97- ====================================
99+ Version 3.0 -- Pure Python Rewrite (current release)
100+ =====================================================
98101
99102Version 3.0 was a ground-up rewrite of python-snap7. The library no longer wraps
100103the C snap7 shared library -- instead, the entire S7 protocol stack (TPKT, COTP,
0 commit comments