This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/plc4x-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new e23a87cc6 Site checkin for project PLC4X: Jenkins Tools
e23a87cc6 is described below
commit e23a87cc6ec853a29da995d9ac775bbcd6898bd8
Author: jenkins <[email protected]>
AuthorDate: Mon Jul 13 11:16:46 2026 +0000
Site checkin for project PLC4X: Jenkins Tools
---
plc4x/pre-release/users/protocols/s7.html | 109 ++++++++++++++++++++++++++++++
search-index.js | 2 +-
2 files changed, 110 insertions(+), 1 deletion(-)
diff --git a/plc4x/pre-release/users/protocols/s7.html
b/plc4x/pre-release/users/protocols/s7.html
index fc7e935e7..b1e3e0209 100644
--- a/plc4x/pre-release/users/protocols/s7.html
+++ b/plc4x/pre-release/users/protocols/s7.html
@@ -1581,6 +1581,115 @@ However we also implemented a shorter version, as above
version does have some u
</div>
</div>
<div class="sect1">
+<h2 id="_siemens_s7_200_s7_200_smart"><a class="anchor"
href="#_siemens_s7_200_s7_200_smart"></a>Siemens S7-200 / S7-200 Smart</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The S7-200 and the newer S7-200 Smart are lower-end controllers that behave
a little differently from the S7-300/400/1200/1500 family. They can still be
reached with the S7 driver over Ethernet (ISO-on-TCP), but they need a couple
of specific connection settings and use a different convention for addressing
their variable memory.</p>
+</div>
+<div class="paragraph">
+<p>This section collects what the community has found to work (see PLC4X
issues #1925 and #2641).</p>
+</div>
+<div class="sect2">
+<h3 id="_connecting"><a class="anchor" href="#_connecting"></a>Connecting</h3>
+<div class="paragraph">
+<p>Two things are important when connecting to an S7-200 (Smart):</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Disable the automatic controller-type detection by passing
<code>controller-type=S7_200</code>. The S7-200 does not answer the SZL/SSL
identification request the driver normally uses to auto-detect the CPU family,
so — as with the <code>LOGO</code> device mentioned above — the type has to be
provided explicitly.</p>
+</li>
+<li>
+<p>Provide the TSAP (Transport Service Access Point) values explicitly. The
S7-200 (Smart) expects both the local and the remote TSAP to be
<code>0x0200</code>, which is <code>512</code> in decimal. Set them with
<code>local-tsap=512</code> and <code>remote-tsap=512</code>; a non-zero TSAP
overrides the rack/slot based addressing.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>A minimal, working connection string therefore looks like this:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>s7://192.168.12.100?local-tsap=512&remote-tsap=512&controller-type=S7_200</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><code>remote-rack=0</code> and <code>remote-slot=0</code> are the defaults,
so they are optional, but may be added for clarity:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>s7://192.168.12.100?remote-rack=0&remote-slot=0&local-tsap=512&remote-tsap=512&controller-type=S7_200</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Both reading and writing have been confirmed to work against an S7-200
Smart with this configuration.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_addressing_the_v_variable_memory_area"><a class="anchor"
href="#_addressing_the_v_variable_memory_area"></a>Addressing the V (variable)
memory area</h3>
+<div class="paragraph">
+<p>The S7-200 keeps its user variables in a <code>V</code> (variable) memory
area, addressed in the Siemens tooling (STEP 7-Micro/WIN) as, for example,
<code>VW310</code>, <code>VD732</code> or <code>V350.0</code>. The S7 driver
does not have a dedicated <code>V</code> memory-area code.</p>
+</div>
+<div class="paragraph">
+<p>On the S7-200, however, the <code>V</code> area is simply an alias for
<code>Data Block 1</code> (<code>DB1</code>). Any <code>V</code> address can
therefore be read and written by addressing <code>DB1</code> instead, using the
normal data-block syntax described above:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 37.5%;">
+<col style="width: 37.5%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">S7-200 notation</th>
+<th class="tableblock halign-left valign-top">PLC4X address</th>
+<th class="tableblock halign-left valign-top">Meaning</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>VB100</code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>%DB1.DBB100:BYTE</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">single
byte at V100</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>VW310</code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>%DB1.DBW310:INT</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">16-bit
word at V310</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>VD732</code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>%DB1.DBD732:UDINT</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">32-bit
double word at V732</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>V350.0</code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>%DB1.DBX350.0:BOOL</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">single bit
V350.0</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The shorter data-block notation works as well, for example
<code>%DB1:732:UDINT</code> for <code>VD732</code>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>M</code> (flags/markers) memory area is addressed as usual, for
example <code>%M10.0:BOOL</code> or <code>%MW20:INT</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<img src="../../images/users/protocols/s7_note.png" alt="Note">
+</td>
+<td class="content">
+Native support for a dedicated <code>V</code> memory-area code may be added in
a future release. Until then, please use the <code>DB1</code> alias shown above.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_actors_participating_in_the_communication_process"><a class="anchor"
href="#_actors_participating_in_the_communication_process"></a>Actors
participating in the communication process</h2>
<div class="sectionbody">
<div class="paragraph">
diff --git a/search-index.js b/search-index.js
index 9f0940376..50c1d5e06 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1 +1 @@
-antoraSearch.initSearch(lunr,
{"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[0,68.352]],["name/1",[1,1.518]],["text/1",[]],["component/1",[2,0.398]],["title/2-1",[3,34.343,4,29.594]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[5,42.792]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[6,11.992,7,12.659,8,9.5,9,16.266,10,15.551,11,21.109,12,26.082,13,12.151]],["name/2-3",[]],["text/2-3",[]],["c
[...]
\ No newline at end of file
+antoraSearch.initSearch(lunr,
{"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[0,68.395]],["name/1",[1,1.517]],["text/1",[]],["component/1",[2,0.398]],["title/2-1",[3,34.379,4,29.628]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[5,42.829]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[6,12.012,7,12.68,8,9.519,9,16.29,10,15.575,11,20.97,12,26.115,13,12.139]],["name/2-3",[]],["text/2-3",[]],["co
[...]
\ No newline at end of file