blob: 923a0fcfbae5b4adab3b5b34c45e42c96f0dd7c8 [file] [log] [blame]
<!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 &#x2013; </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">
<strong class="nav-link">Section Home</strong>
</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/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="users">Users</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This part of the PLC4X website is dedicated to people wanting to use Apache PLC4X.</p>
</div>
<div class="paragraph">
<p>It will provide information on the features and how to use them as well as documentation on how to use the different integration modules.</p>
</div>
<div class="paragraph">
<p>Apache PLC4X allows you to communicate directly with your industrial Hardware, without having to retrofit it.</p>
</div>
<div class="paragraph">
<p>This is possible, as PLC4X implements drivers for the most common industrial communication protocols and uses these to access industrial hardware using a shared API.</p>
</div>
<div class="paragraph">
<p>Currently we support the following protocols:</p>
</div>
<div id="protocolCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/ab-eth.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/ab-eth-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>AB-ETH</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/ads.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/protocols/ads-ams.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>ADS/AMS</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/bacnetip.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/protocols/bacnet-ip.gif" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>BACnet/IP</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/canopen.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/protocols/canopen.gif" alt="CANopen logo">
</div-->
<div class="card-body">
<h5 class="card-title"><b>CANopen</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/deltav.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/deltav-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>DeltaV</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/df1.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/df1-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>DF1</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/ethernet-ip.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/ethernet-ip-logo.pngg" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>EtherNet/IP</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/firmata.html';" style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/protocols/firmata.gif" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>Firmata</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/knxnetip.html';"
style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/knxnetip-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>KNXnet/IP</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/modbus.html';"
style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/modbus-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>Modbus</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/opc-ua.html';"
style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/opc-ua-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>OPC UA</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/s7.html';"
style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/s7-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>S7 (Step7)</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='protocols/simulated.html';"
style="cursor:pointer;">
<!--div class="d-flex align-items-center justify-content-center h-100">
<img src="images/protocols/simulated-logo.png" alt="Card image cap">
</div-->
<div class="card-body">
<h5 class="card-title"><b>Simulated</b></h5>
</div>
</div>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#protocolCarousel" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#protocolCarousel" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<br/>
<br/>
<div class="paragraph">
<p>Besides providing access to devices using one of above protocols, Apache PLC4X also ships with integration modules for the following tools and frameworks.</p>
</div>
<div id="integrationCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-calcite.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_calcite_logo.svg" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache Calcite™</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-camel.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_camel_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache Camel™</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-edgent.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_edgent_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache Edgent™ (retired)</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-iotdb.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_iotdb_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache IoTDB™</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-kafka.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_kafka_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache Kafka™</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-nifi.html';" style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_nifi_logo.svg" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache Nifi™</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/apache-streampipes.html';"
style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/apache_streampipes_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Apache StreamPipes™ (incubating)</b></h5>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="col-md-12 col-lg-4">
<div class="card h-100 p-5 justify-content-center"
onclick="location.href='integrations/eclipse-ditto.html';"
style="cursor:pointer;">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="../images/integrations/eclipse_ditto_logo.png" alt="Card image cap">
</div>
<div class="card-body">
<h5 class="card-title"><b>Eclipse Ditto</b></h5>
</div>
</div>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#integrationCarousel" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#integrationCarousel" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<br/>
<br/>
<div class="paragraph">
<p>As last category of tools come modules that can be used in your applications:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="tools/connection-pool.html">Connection Pool</a> (Connection Pool for PLC connections)</p>
</li>
<li>
<p><a href="tools/opm.html">Object PLC Mapping (OPM)</a> (Object PLC Mapping - Like JPA for PLC data)</p>
</li>
<li>
<p><a href="tools/scraper.html">Scraper</a> (Util for automating fetching PLC data using a variety of triggers)</p>
</li>
<li>
<p><a href="tools/testing.html">Testing-Utils</a> (Want to build/test an application without having a PLC &#8230;&#8203; this is the tool for you)</p>
</li>
</ul>
</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 &#169; 2017&#x2013;2022 <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>