<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Infrastructure</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>Recent changes to Infrastructure</description><language>en</language><lastBuildDate>Mon, 20 Sep 2021 19:12:35 -0000</lastBuildDate><atom:link href="https://forge.codesys.com/lib/cobolt/home/Infrastructure/feed" rel="self" type="application/rss+xml"></atom:link><item><title>Infrastructure modified by h-hermsen</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Mon, 20 Sep 2021 19:12:35 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com7f89353ad8ed9966b9e7c30211218ac0fefa2b90</guid></item><item><title>Infrastructure modified by h-hermsen</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -17,10 +17,9 @@
 **Information and guides**
 [Sparkplug™ information](General Sparkplug info) | [Preview how-to](Preview how-to) | [Setup a test system with Ignition Primary Host](Setup a test system with Ignition Primary Host) | [Add SparkplugB to an existing CODESYS project](Add SparkplugB to existing CODESYS project)

-
+[[section bgcolor=white color=black align=left]]
 ![SparkplugB Architecture](https://forge.codesys.com/prj/mqttsparkplugb/screenshot/mqtt%20sparkplug%20b%20architecture.png?raw)

-[[section bgcolor=white color=black align=left]]
 ## MQTT-Server

 This is maybe the simplest part of the Sparkplug infrastructure. Once you have an MQTT V3.1.1 compliant server up and running on hardware sized to manage all the expected traffic, configure the appropriate access controls for the level of risk of your application, and that's it!
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Mon, 20 Sep 2021 19:11:34 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com183437e8dfa86dacaf6aaca567ac64ab7689676d</guid></item><item><title>Infrastructure modified by h-hermsen</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -20,42 +20,42 @@

 ![SparkplugB Architecture](https://forge.codesys.com/prj/mqttsparkplugb/screenshot/mqtt%20sparkplug%20b%20architecture.png?raw)

-[[section bgcolor=lightgrey color=black align=left]]
+[[section bgcolor=white color=black align=left]]
 ## MQTT-Server

 This is maybe the simplest part of the Sparkplug infrastructure. Once you have an MQTT V3.1.1 compliant server up and running on hardware sized to manage all the expected traffic, configure the appropriate access controls for the level of risk of your application, and that's it!
 MQTT communicates over a single (inbound to the server) TCP port. This means every other node in the network need only have outbound firewall rules, which on most systems are allow all by default.
 If required, many Open Source MQTT Server implementations are available which offer multiple server instances for redundancy, high availability, and scalability. Sparkplug is able to take advantage of these MQTT features with no extra effort.

-[[section bgcolor=white color=black align=left]]
+[[section bgcolor=lightgrey color=black align=left]]
 ## MQTT Edge of Network Node (Edge)

 An MQTT Edge of Network Node (EoN) is any V3.1.1 compliant MQTT Client application that manages an MQTT Session and provides the physical and/or logical gateway functions required to participate in the Topic Namespace and Payload definitions of Sparkplug over MQTT. 
 In CODESYS context the EoN is instantiated once within a program on a PLC near the edge of the network. 
 Usually a single EoN instance per outgoing connection is necessary. The EoN node is responsible for any local protocol interface to existing legacy devices like other PLCs, RTUs, Flow Computers, Sensors, etc. and/or any local discrete I/O or any logical internal variables. 

-[[section bgcolor=lightgrey color=black align=left]]
+[[section bgcolor=white color=black align=left]]
 ## MQTT Enabled Device (a 'Sparkplug')
 This represents any device, sensor, or hardware that directly connects to MQTT infrastructure using a compliant MQTT 3.1.1 connection with the payload and topic notation as outlined in the Sparkplug specification. 
 **Note that it will be represented as an EoN node in the Sparkplug topic payload.**

-[[section bgcolor=white color=black align=left]]
+[[section bgcolor=lightgrey color=black align=left]]
 ## Device/Sensor

 The Device/Sensor represents any physical or logical device connected to the MQTT EoN providing any data, process variables or metrics. This can be seen as any data from PLCs, RTUs, Flow Computers, Sensors, etc. and/or any local discrete I/O or any logical internal variables. 

-[[section bgcolor=lightgrey color=black align=left]]
+[[section bgcolor=white color=black align=left]]
 ## SCADA/IIoT Host Node (Primary Node)

 The SCADA/IIoT Host Node is any MQTT Client application that subscribes to and publishes messages. 
 In typical SCADA/IIoT infrastructure implementations, there will be only **one** Primary SCADA/IIoT Host Node responsible for the monitoring and control of a given group of MQTT EoN nodes. Sparkplug does support the notion of multiple critical Host applications. This does *not* preclude any number of additional MQTT SCADA/IIoT Nodes participating in the infrastructure that are in either a pure monitoring mode, or in the role of a hot standby should the Primary MQTT SCADA/IIoT Host go offline.

-[[section bgcolor=white color=black align=left]]
+[[section bgcolor=lightgrey color=black align=left]]
 ## MQTT Application Node

 An MQTT Application Node is any non-primary MQTT SCADA/IIoT Client application that consumes the real-time messages or any other data being published with proper permission and security.We

-[[section bgcolor=lightgrey color=black align=left]]
+[[section bgcolor=white color=black align=left]]
 ## Roles and functions

 Function        | MQTT Broker | EoN Node | Device/Sensor | SCADA/IIot Host node | Application Node
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Mon, 20 Sep 2021 19:10:58 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comb6abb05859fb061c875ef188f88e15cb9f21d8a0</guid></item><item><title>Infrastructure modified by h-hermsen</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,12 +1,12 @@
 [[startpage]]
-[[section align=right]]
-
-@hermsen
-@i-campbell
-
+[[section bgcolor=darkgrey color=white align=right]]
 [[img src=https://forge.codesys.com/svn/prj,cfunit,code/trunk/www/logo_codesys_forge.png height=96p align=left]][[img src=https://forge.codesys.com/prj/mqttsparkplugb/screenshot/co5e%20sparkplug%20bolt%20logo%20round%20blue.png height=96p align=left]]

-[[section bgcolor=white color=black align=center]]
+[[members]]
+Sparkplug™ and the Sparkplug™ logo are trademarks of the Eclipse Foundation
+Copyright © 10/11/19 Eclipse Foundation, Inc. https://www.eclipse.org/legal/efsl.php
+
+[[section bgcolor=darkgrey color=white align=center]]
 # SparkplugB Infrastructure Definitions
 **This Page**
 [MQTT-Server](#MQTT-Server) | [EoN](#EoN) | [Sparkplug](#Sparkplug) | [Device/Sensor](#Device/Sensor) | [SCADA/IIoT Host Node](#SCADA/IIoT Host Node) | [MQTT Application Node](#MQTT Application Node) | [Roles and functions](#Roles and functions)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Mon, 20 Sep 2021 19:09:45 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com93c8e40e9434638277bb59aec3616b6325aeb0ca</guid></item><item><title>Infrastructure modified by h-hermsen</title><link>https://forge.codesys.com/lib/cobolt/home/Infrastructure/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;br/&gt;

    &lt;/p&gt;&lt;div class="markdown_content" style="clear: both; background-color: white; color: black; text-align: right;"&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="user-mention" href="/u/hermsen/"&gt;@hermsen&lt;/a&gt;&lt;br/&gt;
&lt;a class="user-mention" href="/u/i-campbell/"&gt;@i-campbell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="left" height="96p" src="https://forge.codesys.com/svn/prj,cfunit,code/trunk/www/logo_codesys_forge.png"/&gt;&lt;img align="left" height="96p" src="https://forge.codesys.com/prj/mqttsparkplugb/screenshot/co5e%20sparkplug%20bolt%20logo%20round%20blue.png"/&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: white; color: black; text-align: center;"&gt;

&lt;h1 id="sparkplugb-infrastructure-definitions"&gt;SparkplugB Infrastructure Definitions&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;This Page&lt;/strong&gt;&lt;br/&gt;
&lt;a class="" href="#MQTT-Server"&gt;MQTT-Server&lt;/a&gt; | &lt;a class="" href="#EoN"&gt;EoN&lt;/a&gt; | &lt;a class="" href="#Sparkplug"&gt;Sparkplug&lt;/a&gt; | &lt;a class="" href="#Device/Sensor"&gt;Device/Sensor&lt;/a&gt; | &lt;a class="" href="#SCADA/IIoT%20Host%20Node"&gt;SCADA/IIoT Host Node&lt;/a&gt; | &lt;a class="" href="#MQTT%20Application%20Node"&gt;MQTT Application Node&lt;/a&gt; | &lt;a class="" href="#Roles%20and%20functions"&gt;Roles and functions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;General Sparkplug info&lt;/strong&gt;&lt;br/&gt;
&lt;em&gt;Infrastructure&lt;/em&gt; | &lt;a class="" href="../Security"&gt;Security&lt;/a&gt; | &lt;a class="" href="../Messages"&gt;Messages&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Information and guides&lt;/strong&gt;&lt;br/&gt;
&lt;a class="" href="/lib/cobolt/home/General%20Sparkplug%20info/"&gt;Sparkplug™ information&lt;/a&gt; | &lt;a class="" href="../Preview%20how-to"&gt;Preview how-to&lt;/a&gt; | &lt;a class="" href="../Setup%20a%20test%20system%20with%20Ignition%20Primary%20Host"&gt;Setup a test system with Ignition Primary Host&lt;/a&gt; | &lt;a class="" href="/lib/cobolt/home/Add%20SparkplugB%20to%20existing%20CODESYS%20project/"&gt;Add SparkplugB to an existing CODESYS project&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="SparkplugB Architecture" src="https://forge.codesys.com/prj/mqttsparkplugb/screenshot/mqtt%20sparkplug%20b%20architecture.png?raw"/&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: lightgrey; color: black; text-align: left;"&gt;

&lt;h2 id="mqtt-server"&gt;MQTT-Server&lt;/h2&gt;
&lt;p&gt;This is maybe the simplest part of the Sparkplug infrastructure. Once you have an MQTT V3.1.1 compliant server up and running on hardware sized to manage all the expected traffic, configure the appropriate access controls for the level of risk of your application, and that's it!&lt;br/&gt;
MQTT communicates over a single (inbound to the server) TCP port. This means every other node in the network need only have outbound firewall rules, which on most systems are allow all by default.&lt;br/&gt;
If required, many Open Source MQTT Server implementations are available which offer multiple server instances for redundancy, high availability, and scalability. Sparkplug is able to take advantage of these MQTT features with no extra effort.&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: white; color: black; text-align: left;"&gt;

&lt;h2 id="mqtt-edge-of-network-node-edge"&gt;MQTT Edge of Network Node (Edge)&lt;/h2&gt;
&lt;p&gt;An MQTT Edge of Network Node (EoN) is any V3.1.1 compliant MQTT Client application that manages an MQTT Session and provides the physical and/or logical gateway functions required to participate in the Topic Namespace and Payload definitions of Sparkplug over MQTT. &lt;br/&gt;
In CODESYS context the EoN is instantiated once within a program on a PLC near the edge of the network. &lt;br/&gt;
Usually a single EoN instance per outgoing connection is necessary. The EoN node is responsible for any local protocol interface to existing legacy devices like other PLCs, RTUs, Flow Computers, Sensors, etc. and/or any local discrete I/O or any logical internal variables. &lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: lightgrey; color: black; text-align: left;"&gt;

&lt;h2 id="mqtt-enabled-device-a-sparkplug"&gt;MQTT Enabled Device (a 'Sparkplug')&lt;/h2&gt;
&lt;p&gt;This represents any device, sensor, or hardware that directly connects to MQTT infrastructure using a compliant MQTT 3.1.1 connection with the payload and topic notation as outlined in the Sparkplug specification. &lt;br/&gt;
&lt;strong&gt;Note that it will be represented as an EoN node in the Sparkplug topic payload.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: white; color: black; text-align: left;"&gt;

&lt;h2 id="devicesensor"&gt;Device/Sensor&lt;/h2&gt;
&lt;p&gt;The Device/Sensor represents any physical or logical device connected to the MQTT EoN providing any data, process variables or metrics. This can be seen as any data from PLCs, RTUs, Flow Computers, Sensors, etc. and/or any local discrete I/O or any logical internal variables. &lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: lightgrey; color: black; text-align: left;"&gt;

&lt;h2 id="scadaiiot-host-node-primary-node"&gt;SCADA/IIoT Host Node (Primary Node)&lt;/h2&gt;
&lt;p&gt;The SCADA/IIoT Host Node is any MQTT Client application that subscribes to and publishes messages. &lt;br/&gt;
In typical SCADA/IIoT infrastructure implementations, there will be only &lt;strong&gt;one&lt;/strong&gt; Primary SCADA/IIoT Host Node responsible for the monitoring and control of a given group of MQTT EoN nodes. Sparkplug does support the notion of multiple critical Host applications. This does &lt;em&gt;not&lt;/em&gt; preclude any number of additional MQTT SCADA/IIoT Nodes participating in the infrastructure that are in either a pure monitoring mode, or in the role of a hot standby should the Primary MQTT SCADA/IIoT Host go offline.&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: white; color: black; text-align: left;"&gt;

&lt;h2 id="mqtt-application-node"&gt;MQTT Application Node&lt;/h2&gt;
&lt;p&gt;An MQTT Application Node is any non-primary MQTT SCADA/IIoT Client application that consumes the real-time messages or any other data being published with proper permission and security.We&lt;/p&gt;
&lt;/div&gt;
    &lt;div class="markdown_content" style="clear: both; background-color: lightgrey; color: black; text-align: left;"&gt;

&lt;h2 id="roles-and-functions"&gt;Roles and functions&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;MQTT Broker&lt;/th&gt;
&lt;th&gt;EoN Node&lt;/th&gt;
&lt;th&gt;Device/Sensor&lt;/th&gt;
&lt;th&gt;SCADA/IIot Host node&lt;/th&gt;
&lt;th&gt;Application Node&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Relay Messages&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publish xDATA&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publish xBIRTH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publish DDEATH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last will NDEATH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read xCMD&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read xDATA&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publish xCMD&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publish STATE&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;last will STATE&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read STATE&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read xBIRTH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read xDEATH&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Wed, 11 Aug 2021 19:55:26 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com1be52a1fdcfddc3429362034cd861d3d88a1274e</guid></item></channel></rss>