Apache PLC4X — это попытка создать набор библиотек для унифицированного взаимодействия с программируемыми логическими контроллерами (ПЛК) промышленного уровня. Мы планируем выпустить библиотеки для использования в:
PLC4X также интегрируется с другими проектами Apache, такими как:
И предоставляет автономные (Java) утилиты, такие как:
Он также предоставляет инструменты (Java) для использования внутри приложения:
В зависимости от языка программирования его использование будет различаться, поэтому перейдите в раздел «Начало работы» на веб-сайте PLC4X, чтобы найти выбранный язык.
ПРИМЕЧАНИЕ. В настоящее время версия Java, которая поддерживает сборку всех частей Apache PLC4X, — это как минимум Java 19 (мы протестировали все версии до Java 21), однако сейчас это требуется только для пользовательского интерфейса Java Tool. Для всех остальных модулей требуется как минимум Java 11.
Чтобы начать использовать PLC4X в своем приложении Java, см. руководство пользователя PLC4J на веб-сайте: https://plc4x.apache.org/plc4x/latest/users/getting-started/plc4j.html.
В настоящее время проект настроен на использование следующего программного обеспечения:
JAVA_HOME
настроенных так, чтобы указывать на это.passive-mode
. ВНИМАНИЕ: Для генерации кода используется утилита, которая требует некоторых дополнительных настроек виртуальной машины. При запуске сборки из корня автоматически применяются настройки в .mvn/jvm.config
. При сборке только подмодуля важно установить аргументы виртуальной машины: --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
. Например, в Intellij установите их в настройках IDE в разделе: Настройки | Сборка, выполнение, развертывание | Инструменты для сборки | Мейвен | Бегун: Параметры JVM.
Более подробное описание доступно на нашем сайте:
https://plc4x.apache.org/plc4x/latest/developers/preparing/index.html
PLC4C
нам также понадобится:Все требования извлекаются самой сборкой
PLC4Go
нам также понадобится:Все требования извлекаются самой сборкой
PLC4Py
нам также понадобится:PLC4Net
нам также понадобятся:Благодаря этой настройке вы сможете создать Java-часть PLC4X.
При выполнении полной сборки мы автоматически запускаем предварительную проверку и завершаем сборку с объяснением, если не все требования выполнены.
Если вы не хотите заморачиваться с настройкой среды в своей обычной системе и у вас установлен Docker, вы также можете собрать все в контейнере Docker:
docker compose up
Это создаст локальный контейнер Docker, способный собрать все части PLC4X, и запустит maven-сборку локального каталога внутри этого контейнера.
Сборка по умолчанию будет запускать локальную сборку выпуска, поэтому ее также можно использовать для обеспечения воспроизводимости сборок при выпуске.
По умолчанию файлы будут храниться локально:
out/.repository
out/.local-snapshots-dir
Причина этого в том, что в противном случае артефакты будут упакованы вместе с артефактом исходного кода, в результате чего получится zip-архив размером 12 ГБ или более. Однако сохранение его в основном target
каталоге приведет к тому, что сборка будет удалять локальное репо каждый раз, когда запускается mvn clean
. Однако каталог out
по умолчанию исключен из дескриптора сборки и, следовательно, не включен в исходный ZIM.
В вашей системе должна быть установлена как минимум Java 11 и подключена к Maven Central (для загрузки внешних сторонних зависимостей). Для сборки требуется Maven 3.6, поэтому убедитесь, что он установлен и доступен в вашей системе.
ПРИМЕЧАНИЕ. При использовании Java 21 в настоящее время модуль интеграции Apache Kafka исключен из сборки, поскольку один из необходимых ему плагинов оказался несовместим с этой версией.
ПРИМЕЧАНИЕ. В репозитории установлен удобный Maven-Wrapper, при использовании он автоматически загружает и устанавливает Maven. Если вы хотите использовать это, используйте ./mvnw
или mvnw
вместо обычной команды mvn
.
ПРИМЕЧАНИЕ. При запуске из исходного архива mvnw
может оказаться неисполняемым на Mac
или Linux
. Это можно легко исправить, выполнив в каталоге следующую команду.
$ chmod +x mvnw
ПРИМЕЧАНИЕ. Если вы работаете в системе Windows
, используйте mvnw.cmd
вместо ./mvnw
в следующих командах сборки.
Создайте JAR-файлы PLC4X Java и установите их в локальный репозиторий maven.
./mvnw install
Теперь вы можете создавать приложения Java, использующие PLC4X. Примеры PLC4X — хорошая отправная точка, они доступны в каталоге plc4j/examples
.
Драйверы Go
можно создать, включив профиль with-go
:
./mvnw -P with-go install
Драйверы Java
можно создать, включив профиль with-java
:
./mvnw -P with-java install
Реализация C# / .Net
в настоящее время находится в стадии work in progress
. Чтобы иметь возможность создать модуль C# / .Net
, вам в настоящее время необходимо активировать профили with-dotnet
.
./mvnw -P with-dotnet install
Реализация Python в настоящее время находится в несколько нечистом состоянии и все еще нуждается в рефакторинге. Чтобы иметь возможность собрать модуль Python, вам в настоящее время необходимо активировать профили with-python
.
./mvnw -P with-python install
Чтобы все построить, должна работать следующая команда:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code install
Присоединяйтесь к сообществу PLC4X, используя один из следующих каналов. Будем рады помочь!
Подпишитесь на следующие списки рассылки:
Получайте последние новости о PLC4X в Твиттере: https://twitter.com/ApachePlc4x.
Существует множество форм участия в проекте PLC4X.
Это, помимо прочего:
Мы очень дружная компания, так что не бойтесь сделать шаг вперед. Если вы хотите внести свой вклад в PLC4X, ознакомьтесь с нашим руководством по вкладу!
Apache PLC4X выпускается под лицензией Apache версии 2.0.