Apache PLC4X es un esfuerzo por crear un conjunto de bibliotecas para comunicarse con controladores lógicos programables (PLC) de grado industrial de manera uniforme. Estamos planeando enviar bibliotecas para su uso en:
PLC4X también se integra con otros proyectos de Apache, como:
Y trae utilidades independientes (Java) como:
También proporciona herramientas (Java) para usar dentro de una aplicación:
Dependiendo del lenguaje de programación, el uso variará; por lo tanto, vaya a Introducción en el sitio web de PLC4X para buscar el idioma de su elección.
NOTA: Actualmente, la versión de Java que admite la construcción de todas las partes de Apache PLC4X es al menos Java 19 (hemos probado todas las versiones hasta Java 21), sin embargo, es solo la interfaz de usuario de la herramienta Java la que requiere esto en este momento. Todos los demás módulos necesitan al menos Java 11.
Consulte la guía del usuario de PLC4J en el sitio web para comenzar a usar PLC4X en su aplicación Java: https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html
Actualmente, el proyecto está configurado para requerir el siguiente software:
JAVA_HOME
configurados para apuntar a eso.passive-mode
ADVERTENCIA: La generación de código utiliza una utilidad que requiere algunas configuraciones de VM adicionales. Cuando se ejecuta una compilación desde la raíz, la configuración en .mvn/jvm.config
se aplica automáticamente. Al crear solo un submódulo, es importante configurar los argumentos de 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
. En Intellij, por ejemplo, configúrelos en la configuración del IDE en: Preferencias | Construcción, ejecución, implementación | Herramientas de construcción | experto | Ejecutor: Opciones de JVM.
Una descripción más detallada está disponible en nuestro sitio web:
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
también necesitamos:Todos los requisitos son recuperados por la propia construcción.
PLC4Go
también necesitamos:Todos los requisitos son recuperados por la propia construcción.
PLC4Py
también necesitamos:PLC4Net
también necesitamos:Con esta configuración podrá construir la parte Java de PLC4X.
Al realizar una compilación completa, automáticamente ejecutamos una verificación de requisitos previos y fallamos la compilación con una explicación, si no se cumplen todos los requisitos.
Si no quiere molestarse en configurar el entorno en su sistema normal y tiene Docker instalado, también puede compilar todo en un contenedor Docker:
docker compose up
Esto construirá un contenedor Docker local capaz de construir todas las partes de PLC4X y ejecutará una compilación maven del directorio local dentro de este contenedor.
La compilación predeterminada ejecutará una compilación de lanzamiento local, por lo que también se puede usar para garantizar compilaciones reproducibles durante el lanzamiento.
De forma predeterminada, almacenará archivos localmente:
out/.repository
out/.local-snapshots-dir
La razón de esto es que, de lo contrario, los artefactos se empaquetarían con el artefacto de versión fuente, lo que daría como resultado un archivo zip de 12 GB o más. Sin embargo, guardarlo en el directorio target
principal haría que la compilación elimine el repositorio local cada vez que se ejecuta una mvn clean
. Sin embargo, el directorio out
está excluido por defecto del descriptor del ensamblado y, por lo tanto, no está incluido en el zim fuente.
Debe tener al menos Java 11 instalado en su sistema y conectividad con Maven Central (para descargar dependencias externas de terceros). Se requiere Maven 3.6 para compilar, así que asegúrese de que esté instalado y disponible en su sistema.
NOTA: Cuando se utiliza Java 21 actualmente, el módulo de integración Apache Kafka se excluye de la compilación ya que uno de los complementos que requiere ha demostrado ser incompatible con esta versión.
NOTA: Hay un conveniente Maven-Wrapper instalado en el repositorio; cuando se usa, descarga e instala Maven automáticamente. Si desea utilizar esto, utilice ./mvnw
o mvnw
en lugar del comando mvn
normal.
NOTA: Cuando se ejecuta desde sources-zip, es posible que mvnw
no sea ejecutable en Mac
o Linux
. Esto se puede solucionar fácilmente ejecutando el siguiente comando en el directorio.
$ chmod +x mvnw
NOTA: Si está trabajando en un sistema Windows
, utilice mvnw.cmd
en lugar de ./mvnw
en los siguientes comandos de compilación.
Construya archivos jar PLC4X Java e instálelos en su repositorio maven local
./mvnw install
Ahora puede construir aplicaciones Java que utilicen PLC4X. Los ejemplos de PLC4X son un buen lugar para comenzar y están disponibles dentro del directorio plc4j/examples
.
Los controladores Go
se pueden crear habilitando el perfil with-go
:
./mvnw -P with-go install
Los controladores Java
se pueden crear habilitando el perfil with-java
:
./mvnw -P with-java install
La implementación de C# / .Net
se encuentra actualmente en un estado work in progress
. Para poder construir el módulo C# / .Net
, actualmente necesita activar los perfiles with-dotnet
.
./mvnw -P with-dotnet install
La implementación de Python se encuentra actualmente en un estado algo sucio y aún necesita refactorización. Para poder construir el módulo Python, actualmente necesita activar los perfiles with-python
.
./mvnw -P with-python install
Para construir todo, el siguiente comando debería funcionar:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Únase a la comunidad PLC4X utilizando uno de los siguientes canales. ¡Estaremos encantados de ayudarte!
Suscríbete a las siguientes listas de correo:
Obtenga las últimas noticias de PLC4X en Twitter: https://twitter.com/ApachePlc4x
Existen múltiples formas en las que puede involucrarse con el proyecto PLC4X.
Estos son, entre otros:
Somos un grupo muy amigable, así que no tengas miedo de dar un paso al frente. Si desea contribuir a PLC4X, ¡eche un vistazo a nuestra guía de contribución!
Apache PLC4X se publica bajo la licencia Apache versión 2.0.