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 3f404d4d0 Site checkin for project PLC4X: Jenkins Tools
3f404d4d0 is described below
commit 3f404d4d03488f778e359c39930d44968d72b2eb
Author: jenkins <[email protected]>
AuthorDate: Tue Jan 31 06:24:19 2023 +0000
Site checkin for project PLC4X: Jenkins Tools
---
users/protocols/profinet.html | 621 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 621 insertions(+)
diff --git a/users/protocols/profinet.html b/users/protocols/profinet.html
new file mode 100644
index 000000000..d7a3daea3
--- /dev/null
+++ b/users/protocols/profinet.html
@@ -0,0 +1,621 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type"
content="text/html; charset=UTF-8"/>
+ <title>PLC4X – </title>
+ <script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
+ <!--script src="../../js/popper.min.js" type="javascript"></script-->
+ <script src="../../js/bootstrap.bundle.min.js"
type="text/javascript"></script>
+ <!-- The tooling for adding images and links to Apache events -->
+ <script src="https://www.apachecon.com/event-images/snippet.js"
type="text/javascript"></script>
+ <!-- FontAwesome -->
+ <link rel="stylesheet" href="../../css/all.min.css" type="text/css"/>
+ <!-- Bootstrap -->
+ <link rel="stylesheet" href="../../css/bootstrap.min.css" type="text/css"/>
+ <!-- Some Maven Site defaults -->
+ <link rel="stylesheet" href="../../css/maven-base.css" type="text/css"/>
+ <link rel="stylesheet" href="../../css/maven-theme.css" type="text/css"/>
+ <!-- The PLC4X version of a bootstrap theme -->
+ <link rel="stylesheet" href="../../css/themes/plc4x.css" type="text/css"
id="pagestyle"/>
+ <!-- A custom style for printing content -->
+ <link rel="stylesheet" href="../../css/print.css" type="text/css"
media="print"/>
+
+ <meta http-equiv="Content-Language" content="en"/>
+
+</head>
+<body class="composite">
+<nav class="navbar navbar-light navbar-expand-md bg-faded
justify-content-center border-bottom">
+ <!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
+ <a href="https://plc4x.apache.org/" id="bannerLeft"><img
src="../../images/apache_plc4x_logo_small.png" alt="Apache PLC4X"/></a>
+ <button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#collapsingNavbar3">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ <div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
+ <ul class="navbar-nav w-100 justify-content-center">
+ <li class="nav-item">
+ <a class="nav-link"
href="../../index.html">Home</a>
+ </li>
+
<li class="nav-item active">
+ <a class="nav-link"
href="../../users/index.html">Users</a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link"
href="../../developers/index.html">Developers</a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link"
href="../../apache/index.html">Apache</a>
+ </li>
+ </ul>
+ <ul class="nav navbar-nav ml-auto justify-content-end">
+ <li class="nav-item row valign-middle">
+ <a class="acevent" data-format="wide" data-mode="light"
data-event="random" style="width:240px;height:60px;"></a>
+ </li>
+ </ul>
+ </div>
+</nav>
+<div class="container-fluid">
+ <div class="row h-100">
+
+
+
<nav class="col-sm-push col-md-2 pt-3 sidebar">
+ <div class="sidebar-sticky">
+ <ul class="nav flex-column">
+ <li
class="nav-item">
+ <a href="../../users/index.html"
class="nav-link">Section Home</a>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/download.html"
class="nav-link">Download</a>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/adopters.html"
class="nav-link">Adopters</a>
+ </li>
+
+
+
+
+ <li
class="nav-item">
+ <a href="../../users/commercial-support.html"
class="nav-link">Commercial support</a>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/gettingstarted.html"
class="nav-link">Getting Started</a>
+ <ul class="flex-column pl-4 nav">
+ <li class="nav-item">
+ <a href="../../users/getting-started/plc4go.html"
class="nav-link">Go</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/getting-started/plc4j.html"
class="nav-link">Java</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/using-snapshots.html" class="nav-link">Using
SNAPSHOTS</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/general-concepts.html"
class="nav-link">General Concepts</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/blogs-videos-and-slides.html"
class="nav-link">Blogs, Videos and Slides</a>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/protocols/index.html"
class="nav-link">Protocols</a>
+ <ul class="flex-column pl-4 nav">
+ <li class="nav-item">
+ <a href="../../users/protocols/ab-eth.html"
class="nav-link">AB-ETH</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/ads.html"
class="nav-link">ADS/AMS</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/bacnetip.html"
class="nav-link">BACnet/IP</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/canopen.html"
class="nav-link">CANopen</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/deltav.html"
class="nav-link">DeltaV</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/df1.html"
class="nav-link">DF1</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/ethernet-ip.html"
class="nav-link">EtherNet/IP</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/firmata.html"
class="nav-link">Firmata</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/knxnetip.html"
class="nav-link">KNXnet/IP</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/modbus.html"
class="nav-link">Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/opc-ua.html"
class="nav-link">OPC UA</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/plc4x.html"
class="nav-link">PLC4X (Proxy)</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/s7.html"
class="nav-link">S7 (Step7)</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/protocols/simulated.html"
class="nav-link">Simulated</a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/transports/index.html"
class="nav-link">Transports</a>
+ <ul class="flex-column pl-4 nav">
+ <li class="nav-item">
+ <a href="../../users/transports/tcp.html"
class="nav-link">TCP</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/transports/udp.html"
class="nav-link">UDP</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/transports/serial.html"
class="nav-link">Serial</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/transports/socketcan.html"
class="nav-link">SocketCAN</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/transports/raw-socket.html"
class="nav-link">Raw Socket</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/transports/pcap-replay.html"
class="nav-link">PCAP Replay</a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/integrations/index.html"
class="nav-link">Integrations</a>
+ <ul class="flex-column pl-4 nav">
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-calcite.html" class="nav-link">Apache
Calcite</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-camel.html" class="nav-link">Apache
Camel</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-edgent.html" class="nav-link">Apache
Edgent</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-iotdb.html" class="nav-link">Apache
IoTDB</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-kafka.html" class="nav-link">Apache
Kafka</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-nifi.html" class="nav-link">Apache
NiFi</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/apache-streampipes.html" class="nav-link">Apache
StreamPipes</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/eclipse-ditto.html" class="nav-link">Eclipse
Ditto</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/integrations/eclipse-milo.html" class="nav-link">Eclipse Milo
OPC UA Server</a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/tools/index.html"
class="nav-link">Tools</a>
+ <ul class="flex-column pl-4 nav">
+ <li class="nav-item">
+ <a href="../../users/tools/capture-replay.html"
class="nav-link">Capture Replay</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/tools/connection-pool.html"
class="nav-link">Connection Pool</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/tools/connection-cache.html"
class="nav-link">Connection Cache</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/tools/opm.html"
class="nav-link">Object PLC Mapping (OPM)</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/tools/scraper.html"
class="nav-link">Scraper</a>
+ </li>
+ <li class="nav-item">
+ <a href="../../users/tools/testing.html"
class="nav-link">PLC4X without a PLC and Unit Testing</a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/industry40.html"
class="nav-link">Industry 4.0 with Apache</a>
+ </li>
+
+
+ <li
class="nav-item">
+ <a href="../../users/security.html"
class="nav-link">Security</a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </ul>
+ </div>
+ </nav>
+ <main role="main"
class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
+ <div class="sect1">
+<h2 id="profinet">Profinet</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="connection_string_options">Connection String Options</h3>
+<div class="paragraph">
+<p>On linux as the Java execuatble won’t have permission to capture raw
packets, this needs to be enabled via:-</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sudo setcap cap_net_raw,cap_net_admin=eip
/usr/lib/jvm/jdk-19/bin/java</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The executable will change based on your jdk you are using.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;"/>
+<col style="width: 22.2222%;"/>
+<col style="width: 55.5556%;"/>
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Value</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock">Code</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div
class="content"><div class="paragraph">
+<p><code>profinet</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div
class="content"><div class="paragraph">
+<p>Profinet</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Maven
Dependency</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div
class="content"><div class="listingblock">
+<div class="content">
+<pre><dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-profinet</artifactId>
+ <version>{current-last-released-version}</version>
+</dependency></pre>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Default
Transport:</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div
class="content"><div class="paragraph">
+<p> <code>raw</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Compatible
Transports:</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div
class="content"><div class="ulist">
+<ul>
+<li>
+<p><code>raw</code> - Profinet uses a bunch of protocols, LLDP, PN-DCP, PNIO
over UDP or Profinet. It makes sense just to select the raw transport for
this.</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" colspan="3"><p
class="tableblock">Supported Operations</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>subscribe</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>Only the subscription service is currently supported.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" colspan="3"><p
class="tableblock">Options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>devices</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>(Required) Allows you to specify the devices you would like to communicate
to, their device access
+module (Taken from the GSD file) as well as a list of submodules.</p>
+</div>
+<div class="paragraph">
+<p>This parameter has the format</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[[{device-1},{device-access},({submodule-1},{submodule-2})],[{device-2},{device-access},({submodule-1},{submodule-2})],....]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For each available slot specified in the GSD file a submodule needs to be
in the connection string, however it can be left blank e.g.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[[{device},{device-access},({submodule-1},)]]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If there is no submodule configured.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>gsddirectory</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>The directory that is used to store any GSD files. This is used to lookup
the GSD for device found.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>sendclockfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>(Default 32) This is used to scale the frequency in which cyclic packets
are sent. Increasing this slows down communication</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>reductionratio</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>(Default 4) Is also used to scale the frequency. The formula to calculate
the overall cycle time is Cycle Time = SendClockFactor * Reduction Ratio *
31.23us</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>watchdogfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>Used to specify the maximum number of cycles that is allowed to be missed
by a device. An alarm is generated if this is exceeded</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p><code>dataholdfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>Specifies the number of cycles a device will keep its outputs in a non-safe
state when it hasn’t received a cyclic packet. This must be equal to or
be greater than the watchdog factor</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="connection_string">Connection String</h3>
+<div class="paragraph">
+<p>The Profinet driver uses the connection string</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>profinet:raw://{ip-address}:{port}?{options}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>An example of this connection string would be:-</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>profinet:raw://127.0.0.1?gsddirectory=/Profinet/GSD&devices=[[test-device-1,MOD_1,(SUBMOD_1,,SUBMOD_1,)],[test-device-2,MOD_1,(SUBMOD_1,,SUBMOD_1,)]]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Note the transport, port fields shouldn’t have to be changed</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="address_format">Address Format</h3>
+<div class="paragraph">
+<p>The format of address will be in the format.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>device.slot.id.module_name.channel.bit:format</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>An example would be</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>device-1.1.1.DIGITAL_INPUT.0.1:BOOL</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Note:-</p>
+</div>
+<div class="sect3">
+<h4 id="data_types">Data Types</h4>
+<div class="paragraph">
+<p>The following data types are supported</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>BOOL (boolean)</p>
+</li>
+<li>
+<p>SINT (int 8)</p>
+</li>
+<li>
+<p>USINT (uint 8)</p>
+</li>
+<li>
+<p>BYTE (uint 8)</p>
+</li>
+<li>
+<p>INT (int 16)</p>
+</li>
+<li>
+<p>UINT (uint 16)</p>
+</li>
+<li>
+<p>WORD (uint 16)</p>
+</li>
+<li>
+<p>DINT (int 32)</p>
+</li>
+<li>
+<p>UDINT (uint 32)</p>
+</li>
+<li>
+<p>DWORD (uint 32)</p>
+</li>
+<li>
+<p>LINT (int 64)</p>
+</li>
+<li>
+<p>ULINT (uint 64)</p>
+</li>
+<li>
+<p>LWORD (uint 64)</p>
+</li>
+<li>
+<p>REAL (float)</p>
+</li>
+<li>
+<p>LREAL (double)</p>
+</li>
+<li>
+<p>CHAR (char)</p>
+</li>
+<li>
+<p>WCHAR (2 byte char)</p>
+</li>
+<li>
+<p>STRING (utf-8)</p>
+</li>
+<li>
+<p>WSTRING (utf-16)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="some_useful_tips">Some useful tips</h3>
+<div class="paragraph">
+<p>The GSD file contains all the information of what the addresses will end up
being. The easiest approach is to use the browsing
+function of the Profinet driver to return a list of all available tags. Then
only the address of interest can be selected.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+</table>
+</div>
+</div>
+</div>
+ </main>
+ <footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
+ <div class="row justify-content-md-center" style="font-size: 13px">
+ <div class="col col-6 text-center">
+ Copyright © 2017–2023 <a
href="https://www.apache.org/">The Apache Software Foundation</a>.
+All rights reserved.<br/>
+ Apache PLC4X, PLC4X, Apache, the Apache feather logo, and
the Apache PLC4X project logo are either registered trademarks or trademarks of
The Apache Software Foundation in the United States and other countries. All
other marks mentioned may be trademarks or registered trademarks of their
respective owners.
+ <br/><div
style="text-align:center;">Home screen image taken from <a
+ href="https://flic.kr/p/chEftd">Flickr</a>, "Tesla
Robot Dance" by Steve Jurvetson, licensed
+ under <a
href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0 Generic</a>,
image cropped
+ and blur effect added.</div>
+ </div>
+ </div>
+ </footer>
+ </div>
+</div>
+
+<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="../../js/jquery.slim.min.js"></script>
+<script src="../../js/popper.min.js"></script>
+<script src="../../js/bootstrap.min.js"></script>
+<script type="text/javascript">
+ $('.carousel .carousel-item').each(function(){
+ var next = $(this).next();
+ if (!next.length) {
+ next = $(this).siblings(':first');
+ }
+ next.children(':first-child').clone().appendTo($(this));
+
+ for (let i = 0; i < 3; i++) {
+ next=next.next();
+ if (!next.length) {
+ next = $(this).siblings(':first');
+ }
+ next.children(':first-child').clone().appendTo($(this));
+ }
+ });
+</script>
+</body>
+</html>
\ No newline at end of file