Apache PLC4X ist ein Versuch, eine Reihe von Bibliotheken für die einheitliche Kommunikation mit speicherprogrammierbaren Steuerungen (SPS) in Industriequalität zu erstellen. Wir planen den Versand von Bibliotheken zur Verwendung in:
PLC4X lässt sich auch in andere Apache-Projekte integrieren, wie zum Beispiel:
Und bringt eigenständige (Java-)Dienstprogramme wie:
Es stellt auch (Java-)Tools zur Verwendung innerhalb einer Anwendung bereit:
Abhängig von der Programmiersprache unterscheidet sich die Verwendung. Schauen Sie daher bitte im Abschnitt „Getting Started“ auf der PLC4X-Website nach der Sprache Ihrer Wahl.
HINWEIS: Derzeit ist die Java-Version, die die Erstellung aller Teile von Apache PLC4X unterstützt, mindestens Java 19 (wir haben alle Versionen bis Java 21 getestet), derzeit ist dies jedoch nur für die Java Tool-Benutzeroberfläche erforderlich. Alle anderen Module benötigen mindestens Java 11.
Sehen Sie sich das PLC4J-Benutzerhandbuch auf der Website an, um mit der Verwendung von PLC4X in Ihrer Java-Anwendung zu beginnen: https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html
Derzeit ist das Projekt so konfiguriert, dass die folgende Software erforderlich ist:
JAVA_HOME
, die so konfiguriert sind, dass sie darauf verweisen.passive-mode
-Treibern WARNUNG: Die Codegenerierung verwendet ein Dienstprogramm, das einige zusätzliche VM-Einstellungen erfordert. Wenn Sie einen Build vom Root aus ausführen, werden die Einstellungen in der .mvn/jvm.config
automatisch angewendet. Wenn Sie nur ein Untermodul erstellen, ist es wichtig, die VM-Argumente festzulegen: --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
. In Intellij legen Sie diese beispielsweise in den IDE-Einstellungen unter: Einstellungen | fest Erstellen, Ausführen, Bereitstellen | Build-Tools | Maven | Runner: JVM-Optionen.
Eine ausführlichere Beschreibung finden Sie auf unserer Website:
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
benötigen wir außerdem:Alle Anforderungen werden vom Build selbst abgerufen
PLC4Go
benötigen wir außerdem:Alle Anforderungen werden vom Build selbst abgerufen
PLC4Py
benötigen wir außerdem:PLC4Net
benötigen wir außerdem:Mit diesem Setup können Sie den Java-Teil von PLC4X erstellen.
Wenn wir einen vollständigen Build durchführen, führen wir automatisch eine Prüfung der Voraussetzungen durch und lassen den Build mit einer Erklärung fehlschlagen, wenn nicht alle Anforderungen erfüllt sind.
Wenn Sie sich nicht die Mühe machen möchten, die Umgebung auf Ihrem normalen System einzurichten, und Docker installiert haben, können Sie auch alles in einem Docker-Container erstellen:
docker compose up
Dadurch wird ein lokaler Docker-Container erstellt, der alle Teile von PLC4X erstellen kann, und ein Maven-Build des lokalen Verzeichnisses in diesem Container ausgeführt.
Der Standard-Build führt einen lokalen Release-Build aus und kann daher auch verwendet werden, um reproduzierbare Builds bei der Veröffentlichung sicherzustellen.
Standardmäßig werden Dateien lokal gespeichert:
out/.repository
gespeichertout/.local-snapshots-dir
verschoben Der Grund dafür ist, dass die Artefakte andernfalls mit dem Quell-Release-Artefakt gepackt würden, was zu einem ZIP-Archiv mit 12 GB oder mehr führen würde. Das Speichern im target
würde jedoch dazu führen, dass der Build das lokale Repo jedes Mal löscht, wenn eine mvn clean
ausgeführt wird. Das out
-Verzeichnis ist jedoch standardmäßig vom Assembly-Deskriptor ausgeschlossen und daher nicht im Quell-ZIM enthalten.
Auf Ihrem System muss mindestens Java 11 installiert sein und eine Verbindung zu Maven Central bestehen (zum Herunterladen externer Abhängigkeiten von Drittanbietern). Zum Erstellen ist Maven 3.6 erforderlich. Stellen Sie daher sicher, dass es auf Ihrem System installiert und verfügbar ist.
HINWEIS: Bei der Verwendung von Java 21 ist derzeit das Apache Kafka-Integrationsmodul vom Build ausgeschlossen, da sich eines der benötigten Plugins als inkompatibel mit dieser Version erwiesen hat.
HINWEIS: Im Repo ist ein praktischer Maven-Wrapper installiert, der bei Verwendung automatisch Maven herunterlädt und installiert. Wenn Sie dies verwenden möchten, verwenden Sie bitte ./mvnw
oder mvnw
anstelle des normalen mvn
Befehls.
HINWEIS: Bei der Ausführung von „sources-zip“ ist mvnw
möglicherweise nicht auf Mac
oder Linux
ausführbar. Dies kann leicht behoben werden, indem Sie den folgenden Befehl im Verzeichnis ausführen.
$ chmod +x mvnw
HINWEIS: Wenn Sie auf einem Windows
-System arbeiten, verwenden Sie in den folgenden Build-Befehlen bitte mvnw.cmd
anstelle von ./mvnw
.
Erstellen Sie PLC4X-Java-JARs und installieren Sie sie in Ihrem lokalen Maven-Repository
./mvnw install
Sie können jetzt Java-Anwendungen erstellen, die PLC4X verwenden. Die PLC4X-Beispiele sind ein guter Ausgangspunkt und stehen im Verzeichnis plc4j/examples
zur Verfügung.
Die Go
-Treiber können durch Aktivieren des with-go
-Profils erstellt werden:
./mvnw -P with-go install
Die Java
-Treiber können durch Aktivieren des with-java
-Profils erstellt werden:
./mvnw -P with-java install
Die C# / .Net
Implementierung befindet sich derzeit in einem work in progress
Status. Um das C# / .Net
Modul erstellen zu können, müssen Sie derzeit die Profile „ with-dotnet
aktivieren.
./mvnw -P with-dotnet install
Die Python-Implementierung befindet sich derzeit in einem etwas unsauberen Zustand und muss noch überarbeitet werden. Um das Python-Modul erstellen zu können, müssen Sie derzeit die Profile with-python
aktivieren.
./mvnw -P with-python install
Um alles zu erstellen, sollte der folgende Befehl funktionieren:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Treten Sie der PLC4X-Community bei, indem Sie einen der folgenden Kanäle nutzen. Wir helfen Ihnen gerne weiter!
Abonnieren Sie die folgenden Mailinglisten:
Erhalten Sie die neuesten PLC4X-Neuigkeiten auf Twitter: https://twitter.com/ApachePlc4x
Es gibt verschiedene Formen, in denen Sie sich am PLC4X-Projekt beteiligen können.
Dies sind unter anderem:
Wir sind ein sehr freundlicher Haufen, also haben Sie keine Angst, nach vorne zu treten. Wenn Sie einen Beitrag zu PLC4X leisten möchten, schauen Sie sich unseren Beitragsleitfaden an!
Apache PLC4X wird unter der Apache-Lizenz Version 2.0 veröffentlicht.