Apache PLC4X est un effort visant à créer un ensemble de bibliothèques permettant de communiquer de manière uniforme avec des automates programmables (PLC) de qualité industrielle. Nous prévoyons d'expédier des bibliothèques pour une utilisation dans :
PLC4X s'intègre également à d'autres projets Apache, tels que :
Et apporte des utilitaires autonomes (Java) tels que :
Il fournit également des outils (Java) à utiliser dans une application :
En fonction du langage de programmation, l'utilisation sera différente, veuillez donc vous rendre dans la section Mise en route sur le site Web de PLC4X pour rechercher le langage de votre choix.
REMARQUE : actuellement, la version Java qui prend en charge la création de toutes les parties d'Apache PLC4X est au moins Java 19 (nous avons testé toutes les versions jusqu'à Java 21), mais seule l'interface utilisateur de l'outil Java l'exige pour le moment. Tous les autres modules nécessitent au moins Java 11.
Consultez le guide de l'utilisateur de PLC4J sur le site Web pour commencer à utiliser PLC4X dans votre application Java : https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html
Actuellement, le projet est configuré pour nécessiter les logiciels suivants :
JAVA_HOME
configurés pour pointer vers cela.passive-mode
AVERTISSEMENT : La génération de code utilise un utilitaire qui nécessite des paramètres de VM supplémentaires. Lors de l'exécution d'une build à partir de la racine, les paramètres du .mvn/jvm.config
sont automatiquement appliqués. Lors de la construction d'un sous-module uniquement, il est important de définir les arguments vm : --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
. Dans Intellij, par exemple, définissez-les dans les paramètres de l'EDI sous : Préférences | Construction, exécution, déploiement | Outils de construction | Maven | Exécuteur : Options JVM.
Une description plus détaillée est disponible sur notre site Internet :
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
nous avons également besoin de :Toutes les exigences sont récupérées par la construction elle-même
PLC4Go
nous avons également besoin de :Toutes les exigences sont récupérées par la construction elle-même
PLC4Py
nous avons également besoin de :PLC4Net
nous avons également besoin de :Avec cette configuration, vous pourrez construire la partie Java de PLC4X.
Lors d'une construction complète, nous effectuons automatiquement une vérification des prérequis et échouons la construction avec une explication, si toutes les exigences ne sont pas remplies.
Si vous ne voulez pas vous soucier de configurer l'environnement sur votre système normal et que Docker est installé, vous pouvez également tout créer dans un conteneur Docker :
docker compose up
Cela construira un conteneur Docker local capable de construire toutes les parties de PLC4X et exécutera une version maven du répertoire local à l'intérieur de ce conteneur.
La version par défaut exécutera une version locale, elle peut donc également être utilisée pour garantir des versions reproductibles lors de la publication.
Par défaut, les fichiers seront-ils stockés localement :
out/.repository
out/.local-snapshots-dir
La raison en est que sinon les artefacts seraient regroupés avec l'artefact de la version source, ce qui donnerait une archive zip de 12 Go ou plus. Cependant, l'enregistrer dans le répertoire target
principal entraînerait la suppression du dépôt local à chaque fois qu'un mvn clean
est exécuté. Le répertoire out
est cependant exclu par défaut du descripteur d'assembly et n'est donc pas inclus dans le zim source.
Vous devez avoir au moins Java 11 installé sur votre système et une connectivité à Maven Central (pour télécharger des dépendances tierces externes). Maven 3.6 est requis pour la construction, alors assurez-vous qu'il est installé et disponible sur votre système.
REMARQUE : lors de l'utilisation actuelle de Java 21, le module d'intégration Apache Kafka est exclu de la version car l'un des plugins dont il a besoin s'est avéré incompatible avec cette version.
REMARQUE : Maven-Wrapper est installé dans le dépôt. Lorsqu'il est utilisé, il télécharge et installe automatiquement Maven. Si vous souhaitez l'utiliser, veuillez utiliser ./mvnw
ou mvnw
au lieu de la commande mvn
normale.
REMARQUE : lors de l'exécution à partir de sources-zip, le mvnw
peut ne pas être exécutable sur Mac
ou Linux
. Cela peut facilement être résolu en exécutant la commande suivante dans le répertoire.
$ chmod +x mvnw
REMARQUE : si vous travaillez sur un système Windows
, veuillez utiliser mvnw.cmd
au lieu de ./mvnw
dans les commandes de build suivantes.
Créez des fichiers Java PLC4X et installez-les dans votre référentiel Maven local
./mvnw install
Vous pouvez désormais créer des applications Java qui utilisent PLC4X. Les exemples PLC4X sont un bon point de départ et sont disponibles dans le répertoire plc4j/examples
.
Les pilotes Go
peuvent être créés en activant le profil with-go
:
./mvnw -P with-go install
Les pilotes Java
peuvent être construits en activant le profil with-java
:
./mvnw -P with-java install
L'implémentation C# / .Net
est actuellement en work in progress
. Afin de pouvoir construire le module C# / .Net
, vous devez actuellement activer les profils : with-dotnet
.
./mvnw -P with-dotnet install
L'implémentation de Python est actuellement dans un état quelque peu sale et nécessite encore une refactorisation. Afin de pouvoir construire le module Python, vous devez actuellement activer les profils : with-python
.
./mvnw -P with-python install
Afin de tout construire, la commande suivante devrait fonctionner :
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Rejoignez la communauté PLC4X en utilisant l'un des canaux suivants. Nous serons heureux de vous aider !
Abonnez-vous aux listes de diffusion suivantes :
Recevez les dernières nouvelles de PLC4X sur Twitter : https://twitter.com/ApachePlc4x
Il existe plusieurs formes sous lesquelles vous pouvez vous impliquer dans le projet PLC4X.
Il s'agit, sans toutefois s'y limiter :
Nous sommes un groupe très sympathique, alors n'ayez pas peur de vous manifester. Si vous souhaitez contribuer à PLC4X, jetez un œil à notre guide de contribution !
Apache PLC4X est publié sous la licence Apache version 2.0.