This is an automated email from the ASF dual-hosted git repository.
git-site-role 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 b72485bb0 Site checkin for project PLC4X: Jenkins Tools
b72485bb0 is described below
commit b72485bb0062d6ddd96ccf0ef41efb4f2f4b2fd5
Author: jenkins <[email protected]>
AuthorDate: Fri Sep 16 14:23:49 2022 +0000
Site checkin for project PLC4X: Jenkins Tools
---
dependency-management.html | 2 +-
developers/infrastructure/ci.html | 3 +-
developers/infrastructure/vpn.html | 26 +---
images/deltav-wrapper-packet.svg | 139 +++++++++++++++++++
images/plc4x-vpn-network.svg | 94 +++++++++++++
images/s7-connect-request.svg | 215 ++++++++++++++++++++++++++++++
images/s7-data.svg | 105 +++++++++++++++
images/s7-disconnect-request.svg | 146 ++++++++++++++++++++
images/s7-setup-communication-request.svg | 204 ++++++++++++++++++++++++++++
protocols/delta-v/index.html | 19 +--
protocols/s7/index.html | 82 +-----------
protocols/s7/s7comm.html | 38 +-----
12 files changed, 918 insertions(+), 155 deletions(-)
diff --git a/dependency-management.html b/dependency-management.html
index 712439608..0395ca1d2 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -848,7 +848,7 @@
<tr class="b">
<td align="left">org.eclipse.jetty</td>
<td><a class="externalLink"
href="https://eclipse.org/jetty/jetty-util">jetty-util</a></td>
-<td>11.0.11</td>
+<td>11.0.12</td>
<td>-</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.eclipse.org/legal/epl-2.0">Eclipse Public License - Version
2.0</a>, <a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache Software License -
Version 2.0</a></td></tr>
diff --git a/developers/infrastructure/ci.html
b/developers/infrastructure/ci.html
index 5b3fe3d1e..2b4ea015c 100644
--- a/developers/infrastructure/ci.html
+++ b/developers/infrastructure/ci.html
@@ -265,7 +265,8 @@ However when building the <code>develop</code> branch some
additional steps are
</div>
<div class="listingblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'blockdiag', 'blockdiag3'
executable in PATH; add it to the PATH or specify its location using the
'blockdiag' document attribute
+<pre>Failed to generate image: blockdiag3 failed: ERROR: got unexpected token:
19,82-19,83: Op '->'
+
{
Start [shape = beginpoint];
Initialization [label = "Initialization"];
diff --git a/developers/infrastructure/vpn.html
b/developers/infrastructure/vpn.html
index 55f5e23d2..62cb1aa6c 100644
--- a/developers/infrastructure/vpn.html
+++ b/developers/infrastructure/vpn.html
@@ -248,31 +248,9 @@
<div class="paragraph">
<p>This VPN gateway is listening on port <code>vpn.plc4x.apache.org</code> on
port <code>444</code> and should it should be possible to connect to it via
OpenVPN.</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'nwdiag', 'nwdiag3'
executable in PATH; add it to the PATH or specify its location using the
'nwdiag' document attribute
-{
- network internet {
- address = "X.X.X.0/28"
-
- vpn.plc4x.a.o [address = "217.110.130.19"];
- plc4x-vm2.a.o [address = "62.210.60.247"];
- committer-a;
- committer-b;
- }
-
- network plc4x-iot-lab {
- address = "10.10.64.x/24"
-
- vpn.plc4x.a.o [address = "10.10.64.1"];
- F-FBs-40MC [address = "10.10.64.10"];
- S-S7-1212 [address = "10.10.64.20"];
- S-KTP-400 [address = "10.10.64.25"];
- WG-750-352 [address = "10.10.64.30"];
- BH-C6920-0030 [address = "10.10.64.40"];
- committer-int [address = "10.10.64.200"];
- }
-}</pre>
+<img src="../../images/plc4x-vpn-network.svg" alt="plc4x vpn network"
width="1216" height="444"/>
</div>
</div>
<div class="paragraph">
diff --git a/images/deltav-wrapper-packet.svg b/images/deltav-wrapper-packet.svg
new file mode 100644
index 000000000..2dae973dd
--- /dev/null
+++ b/images/deltav-wrapper-packet.svg
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 896 400'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ colwidth = 32
+
+ * Header\n(Constant = 0xFACE) [len = 16]
+ * Payload Length [len = 16]
+ * Type [len = 16]
+ * Message Id [len = 16]
+ * Sender Id [len = 16]
+ * Timestamp [len = 24]
+ * 0x80/0x00 [len = 8]
+ * 0x04 [len = 8]
+ * 0x00 [len = 8]
+ * Payload [len = 64]
+ * Checksum [len = 16]
+}</desc>
+ <path d='M 64 48 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='6'
x='64.0' y='42'>0</text>
+ <path d='M 88 64 L 88 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 112 64 L 112 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 136 64 L 136 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 160 64 L 160 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 184 64 L 184 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 208 64 L 208 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 232 64 L 232 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 48 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 280 64 L 280 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 304 64 L 304 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 328 64 L 328 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 64 L 352 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 376 64 L 376 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 400 64 L 400 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 424 64 L 424 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 48 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='448.0' y='42'>16</text>
+ <path d='M 472 64 L 472 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 496 64 L 496 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 520 64 L 520 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 544 64 L 544 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 568 64 L 568 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 592 64 L 592 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 616 64 L 616 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 48 L 640 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 664 64 L 664 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 688 64 L 688 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 712 64 L 712 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 736 64 L 736 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 760 64 L 760 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 784 64 L 784 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 808 64 L 808 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 48 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='832.0' y='42'>32</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='64' y='80'/>
+ <path d='M 64 80 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 80 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 120 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='256.0' y='99'>Header</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='114'
x='256.0' y='112'>(Constant = 0xFACE)</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='448' y='80'/>
+ <path d='M 448 80 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 80 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='640.0' y='106'>Payload Length</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='64' y='120'/>
+ <path d='M 64 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 160 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='24'
x='256.0' y='146'>Type</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='448' y='120'/>
+ <path d='M 448 120 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='640.0' y='146'>Message Id</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='64' y='160'/>
+ <path d='M 64 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 200 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='256.0' y='186'>Sender Id</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='192' x='64' y='200'/>
+ <path d='M 64 200 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 200 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 240 L 64 200' fill='none' stroke='rgb(0,0,0)'
stroke-dasharray='4'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='160.0' y='226'>Timestamp</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='192' x='256' y='200'/>
+ <path d='M 256 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='352.0' y='226'>0x80/0x00</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='192' x='448' y='200'/>
+ <path d='M 448 200 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 240 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='24'
x='544.0' y='226'>0x04</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='192' x='640' y='200'/>
+ <path d='M 640 200 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 240 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='24'
x='736.0' y='226'>0x00</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='768' x='64' y='280'/>
+ <path d='M 64 280 L 832 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 280 L 832 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 320 L 64 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 320 L 64 280' fill='none' stroke='rgb(0,0,0)'
stroke-dasharray='4'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='42'
x='448.0' y='306'>Payload</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='64' y='320'/>
+ <path d='M 64 320 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 320 L 448 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 360 L 64 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 360 L 64 320' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='48'
x='256.0' y='346'>Checksum</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='384' x='448' y='160'/>
+ <path d='M 448 160 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 832 200' fill='none' stroke='rgb(0,0,0)'
stroke-dasharray='4'/>
+ <path d='M 832 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='640.0' y='186'>Timestamp</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(255,255,255)'
width='768' x='64' y='240'/>
+ <path d='M 64 240 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 832 280' fill='none' stroke='rgb(0,0,0)'
stroke-dasharray='4'/>
+ <path d='M 832 280 L 64 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 280 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='42'
x='448.0' y='266'>Payload</text>
+</svg>
diff --git a/images/plc4x-vpn-network.svg b/images/plc4x-vpn-network.svg
new file mode 100644
index 000000000..f344ba548
--- /dev/null
+++ b/images/plc4x-vpn-network.svg
@@ -0,0 +1,94 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 1216 444'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ network internet {
+ address = "X.X.X.0/28"
+
+ vpn.plc4x.a.o [address = "217.110.130.19"];
+ plc4x-vm2.a.o [address = "62.210.60.247"];
+ committer-a;
+ committer-b;
+ }
+
+ network plc4x-iot-lab {
+ address = "10.10.64.x/24"
+
+ vpn.plc4x.a.o [address = "10.10.64.1"];
+ F-FBs-40MC [address = "10.10.64.10"];
+ S-S7-1212 [address = "10.10.64.20"];
+ S-KTP-400 [address = "10.10.64.25"];
+ WG-750-352 [address = "10.10.64.30"];
+ BH-C6920-0030 [address = "10.10.64.40"];
+ committer-int [address = "10.10.64.200"];
+ }
+}</desc>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='155'
y='162'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='307'
y='162'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='459'
y='162'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='611'
y='162'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='307'
y='306'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='459'
y='306'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='611'
y='306'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='763'
y='306'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104' x='915'
y='306'/>
+ <rect fill='rgb(0,0,0)' height='40' stroke='rgb(0,0,0)'
style='filter:url(#filter_blur);opacity:0.7;fill-opacity:1' width='104'
x='1067' y='306'/>
+ <path d='M 131 103 L 739 103 A2,4 0 0 1 739 111 L 131 111 A2,4 0 0 1 131
103' fill='rgb(0,0,0)' style='filter:url(#filter_blur)'/>
+ <path d='M 131 247 L 1195 247 A2,4 0 0 1 1195 255 L 131 255 A2,4 0 0 1 131
247' fill='rgb(0,0,0)' style='filter:url(#filter_blur)'/>
+ <path d='M 128 100 L 736 100 A2,4 0 0 1 736 108 L 128 108 A2,4 0 0 1 128
100' fill='rgb(185,203,228)' stroke='rgb(0,0,0)'/>
+ <path d='M 736 108 A2,4 0 0 1 736 100' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 128 100 L 736 100' fill='none' stroke='none'/>
+ <path d='M 432 35 L 432 100' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 128 244 L 1192 244 A2,4 0 0 1 1192 252 L 128 252 A2,4 0 0 1 128
244' fill='rgb(185,203,228)' stroke='rgb(0,0,0)'/>
+ <path d='M 1192 252 A2,4 0 0 1 1192 244' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 128 244 L 1192 244' fill='none' stroke='none'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='48'
x='96.0' y='103'>internet</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='90.0' y='116'>X.X.X.0/28</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='81.0' y='247'>plc4x-iot-lab</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='81.0' y='260'>10.10.64.x/24</text>
+ <path d='M 204 108 L 204 156' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='258.0' y='136'>217.110.130.19</text>
+ <path d='M 204 196 L 204 244' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='246.0' y='224'>10.10.64.1</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='152' y='156'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='204.0' y='182'>vpn.plc4x.a.o</text>
+ <path d='M 356 108 L 356 156' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='407.0' y='136'>62.210.60.247</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='304' y='156'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='356.0' y='182'>plc4x-vm2.a.o</text>
+ <path d='M 508 108 L 508 156' fill='none' stroke='rgb(0,0,0)'/>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='456' y='156'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='508.0' y='182'>committer-a</text>
+ <path d='M 660 108 L 660 156' fill='none' stroke='rgb(0,0,0)'/>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='608' y='156'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='660.0' y='182'>committer-b</text>
+ <path d='M 356 252 L 356 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='401.0' y='280'>10.10.64.10</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='304' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='356.0' y='326'>F-FBs-40MC</text>
+ <path d='M 508 252 L 508 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='553.0' y='280'>10.10.64.20</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='456' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='508.0' y='326'>S-S7-1212</text>
+ <path d='M 660 252 L 660 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='705.0' y='280'>10.10.64.25</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='608' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='660.0' y='326'>S-KTP-400</text>
+ <path d='M 812 252 L 812 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='857.0' y='280'>10.10.64.30</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='760' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='812.0' y='326'>WG-750-352</text>
+ <path d='M 964 252 L 964 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='1009.0' y='280'>10.10.64.40</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='912' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='964.0' y='326'>BH-C6920-0030</text>
+ <path d='M 1116 252 L 1116 300' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='72'
x='1164.0' y='280'>10.10.64.200</text>
+ <rect fill='rgb(255,255,255)' height='40' stroke='rgb(0,0,0)' width='104'
x='1064' y='300'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='1116.0' y='326'>committer-int</text>
+</svg>
diff --git a/images/s7-connect-request.svg b/images/s7-connect-request.svg
new file mode 100644
index 000000000..53bb7aeb7
--- /dev/null
+++ b/images/s7-connect-request.svg
@@ -0,0 +1,215 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 896 360'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ colwidth = 32
+
+ // ISO on TCP
+ * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
+ * Reserved (0x00) [len = 8, color = "#068D9D"]
+ * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
+
+ // ISO Transport Protocol
+ * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
+ * TPDU-Code\n(CR = 0xE0) [len = 4, color = "#AEECEF"]
+ * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
+ // ISO TP Header (Fixed Part)
+ * Destination Reference [len = 16, color = "#53599A"]
+ * Source Reference [len = 16, color = "#53599A"]
+ * Protocol Class\n(Class 0 = 0x00) [len = 8, color = "#53599A"]
+
+ // ISO TP Header (Variable Part / Parameters)
+ * Parameter Code\n(TPDU Size = 0xC0) [len = 8, color = "#53599A"]
+ * Parameter Length\n(1 = 0x01) [len = 8, color = "#53599A"]
+ * Parameter Value\n(TPDU Size 1024 = 0x0A) [len = 8, color = "#53599A"]
+
+ * Parameter Code\n(Calling TSAP = 0xC1) [len = 8, color = "#53599A"]
+ * Parameter Length (2 = 0x02) [len = 8, color = "#53599A"]
+ * Device Group\n(PG/PC = 0x01) [len = 8, color = "#53599A"]
+ * TSAP Id (0x00) [len = 8, color = "#53599A"]
+
+ * Parameter Code\n(Called TSAP = 0xC2) [len = 8, color = "#53599A"]
+ * Parameter Length (2 = 0x02) [len = 8, color = "#53599A"]
+ * Device Group\n(Others = 0x03) [len = 8, color = "#53599A"]
+ * Rack Number[len = 4, color = "#80DED9"]
+ * Slot Number[len = 4, color = "#80DED9"]
+}</desc>
+ <path d='M 64 48 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='6'
x='64.0' y='42'>0</text>
+ <path d='M 88 64 L 88 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 112 64 L 112 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 136 64 L 136 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 160 64 L 160 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 184 64 L 184 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 208 64 L 208 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 232 64 L 232 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 48 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 280 64 L 280 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 304 64 L 304 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 328 64 L 328 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 64 L 352 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 376 64 L 376 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 400 64 L 400 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 424 64 L 424 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 48 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='448.0' y='42'>16</text>
+ <path d='M 472 64 L 472 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 496 64 L 496 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 520 64 L 520 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 544 64 L 544 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 568 64 L 568 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 592 64 L 592 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 616 64 L 616 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 48 L 640 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 664 64 L 664 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 688 64 L 688 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 712 64 L 712 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 736 64 L 736 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 760 64 L 760 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 784 64 L 784 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 808 64 L 808 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 48 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='832.0' y='42'>32</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='64' y='80'/>
+ <path d='M 64 80 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 80 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 120 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='180'
x='160.0' y='106'>ISO on TCP Magic Number (0x03)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='256' y='80'/>
+ <path d='M 256 80 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 80 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='352.0' y='106'>Reserved (0x00)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='384'
x='448' y='80'/>
+ <path d='M 448 80 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 80 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='258'
x='640.0' y='106'>Packet Length (including ISO on TCP header)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='120'/>
+ <path d='M 64 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 160 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='160.0' y='139'>ISO TP Header Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='160.0' y='152'>(excluding length byte)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='96' x='256' y='120'/>
+ <path d='M 256 120 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 120 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='304.0' y='139'>TPDU-Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='304.0' y='152'>(CR = 0xE0)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='96'
x='352' y='120'/>
+ <path d='M 352 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='400.0' y='139'>Signal CDT</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='400.0' y='152'>(0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='448' y='120'/>
+ <path d='M 448 120 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='126'
x='640.0' y='146'>Destination Reference</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='64' y='160'/>
+ <path d='M 64 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 200 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='256.0' y='186'>Source Reference</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='160'/>
+ <path d='M 448 160 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 160 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='544.0' y='179'>Protocol Class</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='544.0' y='192'>(Class 0 = 0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='640' y='160'/>
+ <path d='M 640 160 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='736.0' y='179'>Parameter Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='108'
x='736.0' y='192'>(TPDU Size = 0xC0)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='200'/>
+ <path d='M 64 200 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 200 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 240 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='160.0' y='219'>Parameter Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='160.0' y='232'>(1 = 0x01)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='256' y='200'/>
+ <path d='M 256 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='352.0' y='219'>Parameter Value</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='352.0' y='232'>(TPDU Size 1024 = 0x0A)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='200'/>
+ <path d='M 448 200 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 240 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='544.0' y='219'>Parameter Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='126'
x='544.0' y='232'>(Calling TSAP = 0xC1)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='640' y='200'/>
+ <path d='M 640 200 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 240 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='162'
x='736.0' y='226'>Parameter Length (2 = 0x02)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='240'/>
+ <path d='M 64 240 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 256 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 280 L 64 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 280 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='72'
x='160.0' y='259'>Device Group</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='160.0' y='272'>(PG/PC = 0x01)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='256' y='240'/>
+ <path d='M 256 240 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 256 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 280 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='352.0' y='266'>TSAP Id (0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='240'/>
+ <path d='M 448 240 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 240 L 640 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 280 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='544.0' y='259'>Parameter Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='544.0' y='272'>(Called TSAP = 0xC2)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='640' y='240'/>
+ <path d='M 640 240 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 832 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 280 L 640 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 280 L 640 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='162'
x='736.0' y='266'>Parameter Length (2 = 0x02)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='280'/>
+ <path d='M 64 280 L 256 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 280 L 256 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 320 L 64 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 320 L 64 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='72'
x='160.0' y='299'>Device Group</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='160.0' y='312'>(Others = 0x03)</text>
+ <rect fill='rgb(128,222,217)' height='40' stroke='rgb(128,222,217)'
width='96' x='256' y='280'/>
+ <path d='M 256 280 L 352 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 280 L 352 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 320 L 256 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 320 L 256 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='304.0' y='306'>Rack Number</text>
+ <rect fill='rgb(128,222,217)' height='40' stroke='rgb(128,222,217)'
width='96' x='352' y='280'/>
+ <path d='M 352 280 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 320 L 352 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 320 L 352 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='400.0' y='306'>Slot Number</text>
+</svg>
diff --git a/images/s7-data.svg b/images/s7-data.svg
new file mode 100644
index 000000000..4d02613a8
--- /dev/null
+++ b/images/s7-data.svg
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 896 200'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ colwidth = 32
+
+ // ISO on TCP
+ * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
+ * Reserved (0x00) [len = 8, color = "#068D9D"]
+ * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
+
+ // ISO Transport Protocol
+ * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
+ * TPDU-Code\n(DATA = 0xF0) [len = 4, color = "#AEECEF"]
+ * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
+ * TPDU-NR/EOT [len = 8, color = "#53599A"]
+
+}</desc>
+ <path d='M 64 48 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='6'
x='64.0' y='42'>0</text>
+ <path d='M 88 64 L 88 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 112 64 L 112 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 136 64 L 136 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 160 64 L 160 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 184 64 L 184 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 208 64 L 208 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 232 64 L 232 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 48 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 280 64 L 280 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 304 64 L 304 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 328 64 L 328 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 64 L 352 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 376 64 L 376 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 400 64 L 400 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 424 64 L 424 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 48 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='448.0' y='42'>16</text>
+ <path d='M 472 64 L 472 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 496 64 L 496 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 520 64 L 520 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 544 64 L 544 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 568 64 L 568 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 592 64 L 592 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 616 64 L 616 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 48 L 640 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 664 64 L 664 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 688 64 L 688 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 712 64 L 712 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 736 64 L 736 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 760 64 L 760 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 784 64 L 784 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 808 64 L 808 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 48 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='832.0' y='42'>32</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='64' y='80'/>
+ <path d='M 64 80 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 80 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 120 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='180'
x='160.0' y='106'>ISO on TCP Magic Number (0x03)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='256' y='80'/>
+ <path d='M 256 80 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 80 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='352.0' y='106'>Reserved (0x00)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='384'
x='448' y='80'/>
+ <path d='M 448 80 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 80 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='258'
x='640.0' y='106'>Packet Length (including ISO on TCP header)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='120'/>
+ <path d='M 64 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 160 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='160.0' y='139'>ISO TP Header Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='160.0' y='152'>(excluding length byte)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='96' x='256' y='120'/>
+ <path d='M 256 120 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 120 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='304.0' y='139'>TPDU-Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='304.0' y='152'>(DATA = 0xF0)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='96'
x='352' y='120'/>
+ <path d='M 352 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='400.0' y='139'>Signal CDT</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='400.0' y='152'>(0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='120'/>
+ <path d='M 448 120 L 640 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 120 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='544.0' y='146'>TPDU-NR/EOT</text>
+</svg>
diff --git a/images/s7-disconnect-request.svg b/images/s7-disconnect-request.svg
new file mode 100644
index 000000000..cb2e0c866
--- /dev/null
+++ b/images/s7-disconnect-request.svg
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 896 280'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ colwidth = 32
+
+ // ISO on TCP
+ * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
+ * Reserved (0x00) [len = 8, color = "#068D9D"]
+ * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
+
+ // ISO Transport Protocol
+ * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
+ * TPDU-Code\n(DR = 0x80) [len = 4, color = "#AEECEF"]
+ * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
+ * Destination Reference [len = 16, color = "#53599A"]
+ * Source Reference [len = 16, color = "#53599A"]
+ * Reason [len = 8, color = "#53599A"]
+
+ // ISO TP Header (Variable Part / Parameters) (Optional)
+ * Parameter Code\n(Disconnect Additional Information = 0xE0) [len = 8,
color = "#53599A"]
+ * Parameter Length\n(1 ... 128) [len = 8, color = "#53599A"]
+ * Parameter Data\n(Custom user data) [len = 24, color = "#53599A"]
+
+}</desc>
+ <path d='M 64 48 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='6'
x='64.0' y='42'>0</text>
+ <path d='M 88 64 L 88 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 112 64 L 112 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 136 64 L 136 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 160 64 L 160 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 184 64 L 184 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 208 64 L 208 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 232 64 L 232 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 48 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 280 64 L 280 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 304 64 L 304 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 328 64 L 328 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 64 L 352 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 376 64 L 376 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 400 64 L 400 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 424 64 L 424 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 48 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='448.0' y='42'>16</text>
+ <path d='M 472 64 L 472 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 496 64 L 496 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 520 64 L 520 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 544 64 L 544 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 568 64 L 568 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 592 64 L 592 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 616 64 L 616 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 48 L 640 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 664 64 L 664 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 688 64 L 688 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 712 64 L 712 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 736 64 L 736 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 760 64 L 760 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 784 64 L 784 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 808 64 L 808 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 48 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='832.0' y='42'>32</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='64' y='80'/>
+ <path d='M 64 80 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 80 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 120 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='180'
x='160.0' y='106'>ISO on TCP Magic Number (0x03)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='256' y='80'/>
+ <path d='M 256 80 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 80 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='352.0' y='106'>Reserved (0x00)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='384'
x='448' y='80'/>
+ <path d='M 448 80 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 80 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='258'
x='640.0' y='106'>Packet Length (including ISO on TCP header)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='120'/>
+ <path d='M 64 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 160 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='160.0' y='139'>ISO TP Header Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='160.0' y='152'>(excluding length byte)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='96' x='256' y='120'/>
+ <path d='M 256 120 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 120 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='304.0' y='139'>TPDU-Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='304.0' y='152'>(DR = 0x80)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='96'
x='352' y='120'/>
+ <path d='M 352 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='400.0' y='139'>Signal CDT</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='400.0' y='152'>(0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='448' y='120'/>
+ <path d='M 448 120 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='126'
x='640.0' y='146'>Destination Reference</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='64' y='160'/>
+ <path d='M 64 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 200 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='256.0' y='186'>Source Reference</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='160'/>
+ <path d='M 448 160 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 160 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='544.0' y='186'>Reason</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='640' y='160'/>
+ <path d='M 640 160 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='736.0' y='173'>Parameter Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='192'
x='736.0' y='186'>(Disconnect Additional Informati</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='736.0' y='199'>on = 0xE0)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='200'/>
+ <path d='M 64 200 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 200 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 240 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='160.0' y='219'>Parameter Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='66'
x='160.0' y='232'>(1 ... 128)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='576'
x='256' y='200'/>
+ <path d='M 256 200 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='544.0' y='219'>Parameter Data</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='108'
x='544.0' y='232'>(Custom user data)</text>
+</svg>
diff --git a/images/s7-setup-communication-request.svg
b/images/s7-setup-communication-request.svg
new file mode 100644
index 000000000..e7400dd5f
--- /dev/null
+++ b/images/s7-setup-communication-request.svg
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg
xmlns:inkspace='http://www.inkscape.org/namespaces/inkscape'
preserveAspectRatio='xMidYMid meet' viewBox='0 0 896 440'
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg'>
+ <defs id='defs_block'>
+ <filter inkspace:collect='always' height='1.504' id='filter_blur'
width='1.1575' x='-0.07875' y='-0.252'>
+ <feGaussianBlur inkspace:collect='always' id='feGaussianBlur3780'
stdDeviation='4.2'/>
+ </filter>
+ </defs>
+ <title>blockdiag</title>
+ <desc>{
+ colwidth = 32
+
+ // ISO on TCP
+ * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
+ * Reserved (0x00) [len = 8, color = "#068D9D"]
+ * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
+
+ // ISO Transport Protocol
+ * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
+ * TPDU-Code\n(Data = 0xF0) [len = 4, color = "#AEECEF"]
+ * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
+ // ISO TP Header (Fixed Part)
+ * Destination Reference (0x??)[len = 16, color = "#53599A"]
+ * Source Reference (0x??)[len = 16, color = "#53599A"]
+ * Protocol Class\n(Class 0 = 0x00) [len = 8, color = "#53599A"]
+
+ // S7
+ 96-103: S7 Protocol Magic Byte (0x32) [color = "#6D9DC5"]
+ * Message Type (JOB = 0x01) [len = 8, color = "#AEECEF"]
+ * Reserved (0x0000) [len = 16, color = "#6D9DC5"]
+ * PDU Reference (0x??)[len = 16, color = "#6D9DC5"]
+ * S7 Parameters Length (8 = 0x08) [len = 16, color = "#6D9DC5"]
+ * S7 Data Length (0 = 0x00) [len = 16, color = "#6D9DC5"]
+
+ // S7 Parameters
+ * Function\n(Setup Communication = 0xF0) [len = 8, color = "#AEECEF"]
+ * Reserved (0x00) [len = 8, color = "#6D9DC5"]
+ * Max AMQ Caller [len = 16, color = "#80DED9"]
+ * Max AMQ Callee [len = 16, color = "#80DED9"]
+ * PDU Size [len = 16, color = "#80DED9"]
+
+ // S7 Data
+}</desc>
+ <path d='M 64 48 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='6'
x='64.0' y='42'>0</text>
+ <path d='M 88 64 L 88 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 112 64 L 112 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 136 64 L 136 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 160 64 L 160 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 184 64 L 184 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 208 64 L 208 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 232 64 L 232 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 48 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 280 64 L 280 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 304 64 L 304 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 328 64 L 328 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 64 L 352 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 376 64 L 376 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 400 64 L 400 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 424 64 L 424 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 48 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='448.0' y='42'>16</text>
+ <path d='M 472 64 L 472 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 496 64 L 496 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 520 64 L 520 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 544 64 L 544 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 568 64 L 568 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 592 64 L 592 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 616 64 L 616 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 48 L 640 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 664 64 L 664 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 688 64 L 688 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 712 64 L 712 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 736 64 L 736 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 760 64 L 760 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 784 64 L 784 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 808 64 L 808 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 48 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='12'
x='832.0' y='42'>32</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='64' y='80'/>
+ <path d='M 64 80 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 80 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 120 L 64 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='180'
x='160.0' y='106'>ISO on TCP Magic Number (0x03)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='192'
x='256' y='80'/>
+ <path d='M 256 80 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 80 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='352.0' y='106'>Reserved (0x00)</text>
+ <rect fill='rgb(6,141,157)' height='40' stroke='rgb(6,141,157)' width='384'
x='448' y='80'/>
+ <path d='M 448 80 L 832 80' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 80 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 80' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='258'
x='640.0' y='106'>Packet Length (including ISO on TCP header)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='64' y='120'/>
+ <path d='M 64 120 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 120 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 160 L 64 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='160.0' y='139'>ISO TP Header Length</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='160.0' y='152'>(excluding length byte)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='96' x='256' y='120'/>
+ <path d='M 256 120 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 120 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 256 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 160 L 256 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='54'
x='304.0' y='139'>TPDU-Code</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='78'
x='304.0' y='152'>(Data = 0xF0)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='96'
x='352' y='120'/>
+ <path d='M 352 120 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 120 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 352 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 352 160 L 352 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='60'
x='400.0' y='139'>Signal CDT</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='36'
x='400.0' y='152'>(0x00)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='448' y='120'/>
+ <path d='M 448 120 L 832 120' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 120 L 832 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 120' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='168'
x='640.0' y='146'>Destination Reference (0x??)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='384'
x='64' y='160'/>
+ <path d='M 64 160 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 160 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 200 L 64 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='138'
x='256.0' y='186'>Source Reference (0x??)</text>
+ <rect fill='rgb(83,89,154)' height='40' stroke='rgb(83,89,154)' width='192'
x='448' y='160'/>
+ <path d='M 448 160 L 640 160' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 160 L 640 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 160' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='544.0' y='179'>Protocol Class</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='96'
x='544.0' y='192'>(Class 0 = 0x00)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='192' x='64' y='200'/>
+ <path d='M 64 200 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 200 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 240 L 64 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='174'
x='160.0' y='226'>S7 Protocol Magic Byte (0x32)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='192' x='256' y='200'/>
+ <path d='M 256 200 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 200 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 256 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 256 240 L 256 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='150'
x='352.0' y='226'>Message Type (JOB = 0x01)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='384' x='448' y='200'/>
+ <path d='M 448 200 L 832 200' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 200 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 448 200' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='102'
x='640.0' y='226'>Reserved (0x0000)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='384' x='64' y='240'/>
+ <path d='M 64 240 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 240 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 64 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 280 L 64 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='120'
x='256.0' y='266'>PDU Reference (0x??)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='384' x='448' y='240'/>
+ <path d='M 448 240 L 832 240' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 240 L 832 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 280 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 448 240' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='192'
x='640.0' y='266'>S7 Parameters Length (8 = 0x08)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='384' x='64' y='280'/>
+ <path d='M 64 280 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 280 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 320 L 64 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 320 L 64 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='150'
x='256.0' y='306'>S7 Data Length (0 = 0x00)</text>
+ <rect fill='rgb(174,236,239)' height='40' stroke='rgb(174,236,239)'
width='192' x='448' y='280'/>
+ <path d='M 448 280 L 640 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 280 L 640 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 320 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 320 L 448 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='48'
x='544.0' y='299'>Function</text>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='168'
x='544.0' y='312'>(Setup Communication = 0xF0)</text>
+ <rect fill='rgb(109,157,197)' height='40' stroke='rgb(109,157,197)'
width='192' x='640' y='280'/>
+ <path d='M 640 280 L 832 280' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 280 L 832 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 320 L 640 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 640 320 L 640 280' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='90'
x='736.0' y='306'>Reserved (0x00)</text>
+ <rect fill='rgb(128,222,217)' height='40' stroke='rgb(128,222,217)'
width='384' x='64' y='320'/>
+ <path d='M 64 320 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 320 L 448 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 360 L 64 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 360 L 64 320' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='256.0' y='346'>Max AMQ Caller</text>
+ <rect fill='rgb(128,222,217)' height='40' stroke='rgb(128,222,217)'
width='384' x='448' y='320'/>
+ <path d='M 448 320 L 832 320' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 320 L 832 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 832 360 L 448 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 360 L 448 320' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='84'
x='640.0' y='346'>Max AMQ Callee</text>
+ <rect fill='rgb(128,222,217)' height='40' stroke='rgb(128,222,217)'
width='384' x='64' y='360'/>
+ <path d='M 64 360 L 448 360' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 360 L 448 400' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 448 400 L 64 400' fill='none' stroke='rgb(0,0,0)'/>
+ <path d='M 64 400 L 64 360' fill='none' stroke='rgb(0,0,0)'/>
+ <text fill='rgb(0,0,0)' font-family='sans-serif' font-size='11'
font-style='normal' font-weight='normal' text-anchor='middle' textLength='48'
x='256.0' y='386'>PDU Size</text>
+</svg>
diff --git a/protocols/delta-v/index.html b/protocols/delta-v/index.html
index a66ee109c..7ef6c5284 100644
--- a/protocols/delta-v/index.html
+++ b/protocols/delta-v/index.html
@@ -162,24 +162,9 @@ We are hereby assuming that the inner protocol is the
version of the DeltaV prot
<div class="paragraph">
<p>The general structure of such a wrapper packet seems to look like this:</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'packetdiag', 'packetdiag3'
executable in PATH; add it to the PATH or specify its location using the
'packetdiag' document attribute
-{
- colwidth = 32
-
- * Header\n(Constant = 0xFACE) [len = 16]
- * Payload Length [len = 16]
- * Type [len = 16]
- * Message Id [len = 16]
- * Sender Id [len = 16]
- * Timestamp [len = 24]
- * 0x80/0x00 [len = 8]
- * 0x04 [len = 8]
- * 0x00 [len = 8]
- * Payload [len = 64]
- * Checksum [len = 16]
-}</pre>
+<img src="../../images/deltav-wrapper-packet.svg" alt="deltav wrapper packet"
width="896" height="400"/>
</div>
</div>
<div class="paragraph">
diff --git a/protocols/s7/index.html b/protocols/s7/index.html
index 0ac7ee111..c27444f7b 100644
--- a/protocols/s7/index.html
+++ b/protocols/s7/index.html
@@ -267,42 +267,9 @@ Each message is called a <code>TPDU</code> (Transport
Protocol Data Unit):</p>
</div>
<div class="sect3">
<h4 id="connection_request_tpdu">Connection Request TPDU</h4>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'packetdiag', 'packetdiag3'
executable in PATH; add it to the PATH or specify its location using the
'packetdiag' document attribute
-{
- colwidth = 32
-
- // ISO on TCP
- * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
- * Reserved (0x00) [len = 8, color = "#068D9D"]
- * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
-
- // ISO Transport Protocol
- * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
- * TPDU-Code\n(CR = 0xE0) [len = 4, color = "#AEECEF"]
- * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
- // ISO TP Header (Fixed Part)
- * Destination Reference [len = 16, color = "#53599A"]
- * Source Reference [len = 16, color = "#53599A"]
- * Protocol Class\n(Class 0 = 0x00) [len = 8, color = "#53599A"]
-
- // ISO TP Header (Variable Part / Parameters)
- * Parameter Code\n(TPDU Size = 0xC0) [len = 8, color = "#53599A"]
- * Parameter Length\n(1 = 0x01) [len = 8, color = "#53599A"]
- * Parameter Value\n(TPDU Size 1024 = 0x0A) [len = 8, color = "#53599A"]
-
- * Parameter Code\n(Calling TSAP = 0xC1) [len = 8, color = "#53599A"]
- * Parameter Length (2 = 0x02) [len = 8, color = "#53599A"]
- * Device Group\n(PG/PC = 0x01) [len = 8, color = "#53599A"]
- * TSAP Id (0x00) [len = 8, color = "#53599A"]
-
- * Parameter Code\n(Called TSAP = 0xC2) [len = 8, color = "#53599A"]
- * Parameter Length (2 = 0x02) [len = 8, color = "#53599A"]
- * Device Group\n(Others = 0x03) [len = 8, color = "#53599A"]
- * Rack Number[len = 4, color = "#80DED9"]
- * Slot Number[len = 4, color = "#80DED9"]
-}</pre>
+<img src="../../images/s7-connect-request.svg" alt="s7 connect request"
width="896" height="360"/>
</div>
</div>
<div class="paragraph">
@@ -333,24 +300,9 @@ Each message is called a <code>TPDU</code> (Transport
Protocol Data Unit):</p>
</div>
<div class="sect3">
<h4 id="data_tpdu">Data TPDU</h4>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: no implicit conversion of nil into String
-{
- colwidth = 32
-
- // ISO on TCP
- * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
- * Reserved (0x00) [len = 8, color = "#068D9D"]
- * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
-
- // ISO Transport Protocol
- * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
- * TPDU-Code\n(DATA = 0xF0) [len = 4, color = "#AEECEF"]
- * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
- * TPDU-NR/EOT [len = 8, color = "#53599A"]
-
-}</pre>
+<img src="../../images/s7-data.svg" alt="s7 data" width="896" height="200"/>
</div>
</div>
<div class="paragraph">
@@ -372,31 +324,9 @@ Each message is called a <code>TPDU</code> (Transport
Protocol Data Unit):</p>
</div>
<div class="sect3">
<h4 id="disconnect_request_tpdu">Disconnect Request TPDU</h4>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: no implicit conversion of nil into String
-{
- colwidth = 32
-
- // ISO on TCP
- * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
- * Reserved (0x00) [len = 8, color = "#068D9D"]
- * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
-
- // ISO Transport Protocol
- * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
- * TPDU-Code\n(DR = 0x80) [len = 4, color = "#AEECEF"]
- * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
- * Destination Reference [len = 16, color = "#53599A"]
- * Source Reference [len = 16, color = "#53599A"]
- * Reason [len = 8, color = "#53599A"]
-
- // ISO TP Header (Variable Part / Parameters) (Optional)
- * Parameter Code\n(Disconnect Additional Information = 0xE0) [len = 8,
color = "#53599A"]
- * Parameter Length\n(1 ... 128) [len = 8, color = "#53599A"]
- * Parameter Data\n(Custom user data) [len = 24, color = "#53599A"]
-
-}</pre>
+<img src="../../images/s7-disconnect-request.svg" alt="s7 disconnect request"
width="896" height="280"/>
</div>
</div>
<div class="paragraph">
diff --git a/protocols/s7/s7comm.html b/protocols/s7/s7comm.html
index cbd74ecde..7b33419d1 100644
--- a/protocols/s7/s7comm.html
+++ b/protocols/s7/s7comm.html
@@ -139,43 +139,9 @@ As soon as a valid value was found the tool then output
the detected constant va
</div>
<div class="sect2">
<h3 id="structure_of_a_setup_communication_request">Structure of a Setup
Communication Request</h3>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'packetdiag', 'packetdiag3'
executable in PATH; add it to the PATH or specify its location using the
'packetdiag' document attribute
-{
- colwidth = 32
-
- // ISO on TCP
- * ISO on TCP Magic Number (0x03) [len = 8, color = "#068D9D"]
- * Reserved (0x00) [len = 8, color = "#068D9D"]
- * Packet Length (including ISO on TCP header) [len = 16, color = "#068D9D"]
-
- // ISO Transport Protocol
- * ISO TP Header Length\n(excluding length byte) [len = 8, color =
"#53599A"]
- * TPDU-Code\n(Data = 0xF0) [len = 4, color = "#AEECEF"]
- * Signal CDT\n(0x00) [len = 4, color = "#53599A"]
- // ISO TP Header (Fixed Part)
- * Destination Reference (0x??)[len = 16, color = "#53599A"]
- * Source Reference (0x??)[len = 16, color = "#53599A"]
- * Protocol Class\n(Class 0 = 0x00) [len = 8, color = "#53599A"]
-
- // S7
- 96-103: S7 Protocol Magic Byte (0x32) [color = "#6D9DC5"]
- * Message Type (JOB = 0x01) [len = 8, color = "#AEECEF"]
- * Reserved (0x0000) [len = 16, color = "#6D9DC5"]
- * PDU Reference (0x??)[len = 16, color = "#6D9DC5"]
- * S7 Parameters Length (8 = 0x08) [len = 16, color = "#6D9DC5"]
- * S7 Data Length (0 = 0x00) [len = 16, color = "#6D9DC5"]
-
- // S7 Parameters
- * Function\n(Setup Communication = 0xF0) [len = 8, color = "#AEECEF"]
- * Reserved (0x00) [len = 8, color = "#6D9DC5"]
- * Max AMQ Caller [len = 16, color = "#80DED9"]
- * Max AMQ Callee [len = 16, color = "#80DED9"]
- * PDU Size [len = 16, color = "#80DED9"]
-
- // S7 Data
-}</pre>
+<img src="../../images/s7-setup-communication-request.svg" alt="s7 setup
communication request" width="896" height="440"/>
</div>
</div>
<div class="paragraph">