Apache PLC4X é um esforço para criar um conjunto de bibliotecas para comunicação com controladores lógicos programáveis (CLPs) de nível industrial de maneira uniforme. Estamos planejando enviar bibliotecas para uso em:
PLC4X também se integra a outros projetos Apache, como:
E traz utilitários independentes (Java) como:
Ele também fornece ferramentas (Java) para uso dentro de um aplicativo:
Dependendo da linguagem de programação, o uso será diferente, portanto, acesse o Getting Started no site do PLC4X para procurar a linguagem de sua escolha.
NOTA: Atualmente a versão Java que suporta a construção de todas as partes do Apache PLC4X é pelo menos Java 19 (testamos todas as versões até Java 21), porém é apenas a UI da ferramenta Java, que requer isso agora. Todos os outros módulos precisam de pelo menos Java 11.
Consulte o guia do usuário do PLC4J no site para começar a usar o PLC4X em sua aplicação Java: https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html
Atualmente, o projeto está configurado para exigir o seguinte software:
JAVA_HOME
configurados para apontar para isso.passive-mode
AVISO: A geração de código usa um utilitário que requer algumas configurações adicionais de VM. Ao executar uma compilação a partir da raiz, as configurações em .mvn/jvm.config
são aplicadas automaticamente. Ao construir apenas um submódulo, é importante definir os argumentos 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
. No Intellij, por exemplo, defina-os nas configurações do IDE em: Preferências | Construir, Execução, Implantação | Ferramentas de construção | Especialista | Corredor: Opções JVM.
Uma descrição mais detalhada está disponível em nosso site:
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
também precisamos:Todos os requisitos são recuperados pela própria construção
PLC4Go
também precisamos:Todos os requisitos são recuperados pela própria construção
PLC4Py
também precisamos:PLC4Net
também precisamos de:Com esta configuração você poderá construir a parte Java do PLC4X.
Ao fazer uma compilação completa, executamos automaticamente uma verificação de pré-requisitos e falhamos na compilação com uma explicação, se nem todos os requisitos forem atendidos.
Se você não quiser se preocupar em configurar o ambiente em seu sistema normal e tiver o Docker instalado, também poderá criar tudo em um contêiner do Docker:
docker compose up
Isso construirá um contêiner Docker local capaz de construir todas as partes do PLC4X e executará uma construção maven do diretório local dentro deste contêiner.
A compilação padrão executará uma compilação de lançamento local, portanto, também pode ser usada para garantir compilações reproduzíveis durante o lançamento.
Por padrão, ele armazenará arquivos localmente:
out/.repository
out/.local-snapshots-dir
A razão para isso é que, caso contrário, os artefatos seriam empacotados com o artefato de liberação de origem, resultando em um arquivo zip de 12 GB ou mais. No entanto, salvá-lo no diretório target
principal faria com que a compilação excluísse o repositório local sempre que um mvn clean
fosse executado. O diretório out
, entretanto, é excluído por padrão do descritor assembly e, portanto, não está incluído no zim de origem.
Você deve ter pelo menos Java 11 instalado em seu sistema e conectividade com o Maven Central (para baixar dependências externas de terceiros). O Maven 3.6 é necessário para compilar, portanto, certifique-se de que ele esteja instalado e disponível em seu sistema.
NOTA: Ao usar Java 21 atualmente, o módulo de integração Apache Kafka é excluído da construção, pois um dos plug-ins necessários provou ser incompatível com esta versão.
NOTA: Há um Maven-Wrapper conveniente instalado no repositório; quando usado, ele baixa e instala automaticamente o Maven. Se você quiser usar isso, use ./mvnw
ou mvnw
em vez do comando mvn
normal.
NOTA: Ao executar a partir de fontes-zip, o mvnw
pode não ser executável no Mac
ou Linux
. Isso pode ser facilmente corrigido executando o seguinte comando no diretório.
$ chmod +x mvnw
NOTA: Se você estiver trabalhando em um sistema Windows
, use mvnw.cmd
em vez de ./mvnw
nos seguintes comandos de construção.
Crie jars PLC4X Java e instale-os em seu repositório maven local
./mvnw install
Agora você pode construir aplicações Java que utilizam PLC4X. Os exemplos PLC4X são um bom lugar para começar e estão disponíveis no diretório plc4j/examples
.
Os drivers Go
podem ser criados ativando o perfil with-go
:
./mvnw -P with-go install
Os drivers Java
podem ser criados ativando o perfil with-java
:
./mvnw -P with-java install
A implementação C# / .Net
está atualmente em um estado work in progress
. Para poder construir o módulo C# / .Net
, atualmente você precisa ativar os perfis: with-dotnet
.
./mvnw -P with-dotnet install
A implementação do Python está atualmente em um estado um tanto sujo e ainda precisa de refatoração. Para poder construir o módulo Python, atualmente você precisa ativar os perfis: with-python
.
./mvnw -P with-python install
Para construir tudo o seguinte comando deve funcionar:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Junte-se à comunidade PLC4X usando um dos seguintes canais. Teremos prazer em ajudar!
Inscreva-se nas seguintes listas de discussão:
Receba as últimas notícias do PLC4X no Twitter: https://twitter.com/ApachePlc4x
Existem múltiplas formas nas quais você pode se envolver com o projeto PLC4X.
Estes são, mas não estão limitados a:
Somos um grupo muito amigável, então não tenha medo de dar um passo à frente. Se você gostaria de contribuir com o PLC4X, dê uma olhada em nosso guia de contribuições!
Apache PLC4X é lançado sob a licença Apache versão 2.0.