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 b2e3d73 Site checkin for project PLC4X: Jenkins Tools
b2e3d73 is described below
commit b2e3d738d197082ff090c095a91d2e5e96fab9b9
Author: jenkins <[email protected]>
AuthorDate: Wed Aug 12 11:47:55 2020 +0000
Site checkin for project PLC4X: Jenkins Tools
---
developers/infrastructure/ci.html | 3 +-
developers/infrastructure/vpn.html | 26 +---
images/code-generation-intro-s7-java.png | Bin 21137 -> 21064 bytes
images/code-generation-intro.png | Bin 12051 -> 12002 bytes
images/deltav-alarm.png | Bin 0 -> 12099 bytes
images/deltav-connect.png | Bin 0 -> 33141 bytes
images/deltav-data.png | Bin 0 -> 12136 bytes
images/deltav-sync.png | Bin 0 -> 13375 bytes
images/deltav-wrapper-packet.svg | 140 +++++++++++++++++++
images/driver-anatomy.png | Bin 16051 -> 15997 bytes
images/plc4x-architecture.png | Bin 24761 -> 24668 bytes
images/plc4x-branching-model.png | Bin 73259 -> 71478 bytes
images/plc4x-vpn-network.svg | 95 +++++++++++++
images/protocols-s7-osi.png | Bin 49183 -> 48965 bytes
images/s7-connect-request.svg | 216 ++++++++++++++++++++++++++++++
images/s7-data.svg | 106 +++++++++++++++
images/s7-disconnect-request.svg | 147 ++++++++++++++++++++
images/s7-interaction.png | Bin 0 -> 41144 bytes
images/s7-setup-communication-request.svg | 205 ++++++++++++++++++++++++++++
protocols/delta-v/index.html | 85 ++----------
protocols/s7/index.html | 101 ++------------
protocols/s7/s7comm.html | 38 +-----
22 files changed, 933 insertions(+), 229 deletions(-)
diff --git a/developers/infrastructure/ci.html
b/developers/infrastructure/ci.html
index 0bb7a94..1fc8a2f 100644
--- a/developers/infrastructure/ci.html
+++ b/developers/infrastructure/ci.html
@@ -254,7 +254,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: blockdiag 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 2fb7c28..882e26a 100644
--- a/developers/infrastructure/vpn.html
+++ b/developers/infrastructure/vpn.html
@@ -237,31 +237,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-vm.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/code-generation-intro-s7-java.png
b/images/code-generation-intro-s7-java.png
index 45ba2a5..fb495b0 100644
Binary files a/images/code-generation-intro-s7-java.png and
b/images/code-generation-intro-s7-java.png differ
diff --git a/images/code-generation-intro.png b/images/code-generation-intro.png
index 390a5e3..d6e5775 100644
Binary files a/images/code-generation-intro.png and
b/images/code-generation-intro.png differ
diff --git a/images/deltav-alarm.png b/images/deltav-alarm.png
new file mode 100644
index 0000000..599e32b
Binary files /dev/null and b/images/deltav-alarm.png differ
diff --git a/images/deltav-connect.png b/images/deltav-connect.png
new file mode 100644
index 0000000..b4be7b0
Binary files /dev/null and b/images/deltav-connect.png differ
diff --git a/images/deltav-data.png b/images/deltav-data.png
new file mode 100644
index 0000000..46d4140
Binary files /dev/null and b/images/deltav-data.png differ
diff --git a/images/deltav-sync.png b/images/deltav-sync.png
new file mode 100644
index 0000000..04d175a
Binary files /dev/null and b/images/deltav-sync.png differ
diff --git a/images/deltav-wrapper-packet.svg b/images/deltav-wrapper-packet.svg
new file mode 100644
index 0000000..9bd5f5a
--- /dev/null
+++ b/images/deltav-wrapper-packet.svg
@@ -0,0 +1,140 @@
+<?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 viewBox="0 0 896 400" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="6"
x="64" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="832" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="256" y="99">Header</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="114"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="24"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="24"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="24"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="42"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="48"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="42"
x="448" y="266">Payload</text>
+</svg>
diff --git a/images/driver-anatomy.png b/images/driver-anatomy.png
index 37013db..1ead93d 100644
Binary files a/images/driver-anatomy.png and b/images/driver-anatomy.png differ
diff --git a/images/plc4x-architecture.png b/images/plc4x-architecture.png
index 4891a28..df0910b 100644
Binary files a/images/plc4x-architecture.png and
b/images/plc4x-architecture.png differ
diff --git a/images/plc4x-branching-model.png b/images/plc4x-branching-model.png
index 6991709..95dd7a7 100644
Binary files a/images/plc4x-branching-model.png and
b/images/plc4x-branching-model.png differ
diff --git a/images/plc4x-vpn-network.svg b/images/plc4x-vpn-network.svg
new file mode 100644
index 0000000..4468d8d
--- /dev/null
+++ b/images/plc4x-vpn-network.svg
@@ -0,0 +1,95 @@
+<?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 viewBox="0 0 1216 444" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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-vm.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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="48"
x="96" y="103">internet</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="90" y="116">X.X.X.0/28</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="81" y="247">plc4x-iot-lab</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="81" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="258" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="246" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="204" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="407" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="72"
x="356" y="182">plc4x-vm.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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="508" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="660" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="401" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="356" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="553" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="508" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="705" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="660" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="857" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="812" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="1009" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="964" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="72"
x="1164" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="1116" y="326">committer-int</text>
+</svg>
diff --git a/images/protocols-s7-osi.png b/images/protocols-s7-osi.png
index 7fccd89..b01fa86 100644
Binary files a/images/protocols-s7-osi.png and b/images/protocols-s7-osi.png
differ
diff --git a/images/s7-connect-request.svg b/images/s7-connect-request.svg
new file mode 100644
index 0000000..71301db
--- /dev/null
+++ b/images/s7-connect-request.svg
@@ -0,0 +1,216 @@
+<?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 viewBox="0 0 896 360" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="6"
x="64" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="832" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="180"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="258"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="160" y="139">ISO TP Header Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="304" y="139">TPDU-Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="304" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="400" y="139">Signal CDT</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="400" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="126"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="544" y="179">Protocol Class</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="736" y="179">Parameter Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="108"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="160" y="219">Parameter Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="352" y="219">Parameter Value</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="544" y="219">Parameter Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="126"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="162"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="72"
x="160" y="259">Device Group</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="544" y="259">Parameter Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="162"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="72"
x="160" y="299">Device Group</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="304" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="400" y="306">Slot Number</text>
+</svg>
diff --git a/images/s7-data.svg b/images/s7-data.svg
new file mode 100644
index 0000000..9de60a2
--- /dev/null
+++ b/images/s7-data.svg
@@ -0,0 +1,106 @@
+<?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 viewBox="0 0 896 200" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="6"
x="64" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="832" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="180"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="258"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="160" y="139">ISO TP Header Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="304" y="139">TPDU-Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="304" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="400" y="139">Signal CDT</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="400" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="544" 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 0000000..b4b7d53
--- /dev/null
+++ b/images/s7-disconnect-request.svg
@@ -0,0 +1,147 @@
+<?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 viewBox="0 0 896 280" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="6"
x="64" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="832" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="180"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="258"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="160" y="139">ISO TP Header Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="304" y="139">TPDU-Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="304" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="400" y="139">Signal CDT</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="400" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="126"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="736" y="173">Parameter Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="192"
x="736" y="186">(Disconnect Additional Informati</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="160" y="219">Parameter Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="66"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="544" y="219">Parameter Data</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="108"
x="544" y="232">(Custom user data)</text>
+</svg>
diff --git a/images/s7-interaction.png b/images/s7-interaction.png
new file mode 100644
index 0000000..6664c3e
Binary files /dev/null and b/images/s7-interaction.png differ
diff --git a/images/s7-setup-communication-request.svg
b/images/s7-setup-communication-request.svg
new file mode 100644
index 0000000..65d275f
--- /dev/null
+++ b/images/s7-setup-communication-request.svg
@@ -0,0 +1,205 @@
+<?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 viewBox="0 0 896 440" xmlns="http://www.w3.org/2000/svg"
xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs id="defs_block">
+ <filter height="1.504" id="filter_blur" inkspace:collect="always"
width="1.1575" x="-0.07875" y="-0.252">
+ <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always"
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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="6"
x="64" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="448" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="12"
x="832" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="180"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="258"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="160" y="139">ISO TP Header Length</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="54"
x="304" y="139">TPDU-Code</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="78"
x="304" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="60"
x="400" y="139">Signal CDT</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="36"
x="400" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="168"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="138"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="544" y="179">Protocol Class</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="96"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="174"
x="160" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="150"
x="352" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="102"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="120"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="192"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="150"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="48"
x="544" y="299">Function</text>
+ <text fill="rgb(0,0,0)" font-family="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="168"
x="544" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="90"
x="736" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="256" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="84"
x="640" 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="sansserif" font-size="11"
font-style="normal" font-weight="normal" text-anchor="middle" textLength="48"
x="256" y="386">PDU Size</text>
+</svg>
diff --git a/protocols/delta-v/index.html b/protocols/delta-v/index.html
index c5494bb..b599591 100644
--- a/protocols/delta-v/index.html
+++ b/protocols/delta-v/index.html
@@ -157,24 +157,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">
@@ -226,26 +211,9 @@ This is done by sending a packet back to the originator,
but with a length of <c
</div>
<div class="sect3">
<h4 id="connecting_an_os_to_a_controller">Connecting an OS to a Controller</h4>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'seqdiag', 'seqdiag3'
executable in PATH; add it to the PATH or specify its location using the
'seqdiag' document attribute
-{
- Controller; OS;
-
- edge_length = 400;
- span_height = 18;
- default_fontsize = 12;
- activation = none;
-
- OS -> Controller [label = "Type 0x0003 (Connection Request)"];
- OS <- Controller [label = "Type 0x0004 (Connection Response)"];
-
- OS -> Controller [label = "Type 0x0002 Subtype 0x0501 (Version
Information)"];
- OS <-- Controller [label = "Ack"];
-
- OS <- Controller [label = "Type 0x0002 Subtype 0x0502 (Version
Information)"];
- OS --> Controller [label = "Ack"];
-}</pre>
+<img src="../../images/deltav-connect.png" alt="deltav connect" width="656"
height="364"/>
</div>
</div>
</div>
@@ -267,20 +235,9 @@ So these messages have the exact same id as the following
request being sent out
<div class="paragraph">
<p>But that is just an assumption.</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: no implicit conversion of nil into String
-{
- Controller; OS;
-
- edge_length = 400;
- span_height = 18;
- default_fontsize = 12;
- activation = none;
-
- OS -> Controller [label = "Type 0x0006 (Sync)"];
- OS <-- Controller [label = "Type 0x0006 (Sync)"];
-}</pre>
+<img src="../../images/deltav-sync.png" alt="deltav sync" width="656"
height="188"/>
</div>
</div>
</div>
@@ -292,20 +249,9 @@ So these messages have the exact same id as the following
request being sent out
<div class="paragraph">
<p>If the value of a subscribed value changes in the controller, a message
type <code>0x0002</code> with sub-type <code>0x0403</code> is sent.</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: no implicit conversion of nil into String
-{
- Controller; OS;
-
- edge_length = 400;
- span_height = 18;
- default_fontsize = 12;
- activation = none;
-
- OS <- Controller [label = "Type 0x0002 Subtype 0x0403 (...)"];
- OS --> Controller [label = "Ack"];
-}</pre>
+<img src="../../images/deltav-data.png" alt="deltav data" width="656"
height="188"/>
</div>
</div>
</div>
@@ -314,20 +260,9 @@ So these messages have the exact same id as the following
request being sent out
<div class="paragraph">
<p>In general it seems as if all sub-types regarding events and alarms start
with <code>0x03</code>.</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: no implicit conversion of nil into String
-{
- Controller; OS;
-
- edge_length = 400;
- span_height = 18;
- default_fontsize = 12;
- activation = none;
-
- OS <- Controller [label = "Type 0x0002 Subtype 0x030? (...)"];
- OS --> Controller [label = "Ack"];
-}</pre>
+<img src="../../images/deltav-alarm.png" alt="deltav alarm" width="656"
height="188"/>
</div>
</div>
</div>
diff --git a/protocols/s7/index.html b/protocols/s7/index.html
index 6c4e0bb..6983ce7 100644
--- a/protocols/s7/index.html
+++ b/protocols/s7/index.html
@@ -214,24 +214,9 @@ These are then handled by the individual protocol
sub-pages:</p>
<div class="paragraph">
<p>The hex-value behind each of these correlates to the first byte used in the
protocols messages to indicate the type of protocol.</p>
</div>
-<div class="listingblock">
+<div class="imageblock">
<div class="content">
-<pre>Failed to generate image: Could not find the 'seqdiag', 'seqdiag3'
executable in PATH; add it to the PATH or specify its location using the
'seqdiag' document attribute
-{
- === Connect ===
-
- Client -> "ISO TP" [label = "Connection Request"]
- Client <- "ISO TP" [label = "Connection Response"]
-
- === Higher Level Connect ===
-
- === Higher Level Communication ===
-
- === Disconnect ===
-
- Client -> "ISO TP" [label = "Disconnect Request"]
-
-}</pre>
+<img src="../../images/s7-interaction.png" alt="s7 interaction" width="448"
height="659"/>
</div>
</div>
</div>
@@ -262,42 +247,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">
@@ -328,24 +280,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">
@@ -367,31 +304,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 68292c3..ead41ef 100644
--- a/protocols/s7/s7comm.html
+++ b/protocols/s7/s7comm.html
@@ -134,43 +134,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">