Apache PLC4X 致力于创建一组库,用于以统一的方式与工业级可编程逻辑控制器 (PLC) 进行通信。我们计划将库用于:
- 爪哇
- 去
- C(未准备好使用)
- Python(尚未准备好使用)
- C# (.Net)(尚未准备好使用 - 已放弃)
PLC4X 还与其他 Apache 项目集成,例如:
并带来独立(Java)实用程序,例如:
- OPC-UA 服务器:使您能够使用带有 OPC-UA 的 PLC4X 与传统设备进行通信。
- PLC4X 服务器:使您能够与中央 PLC4X 服务器通信,然后中央 PLC4X 服务器通过 PLC4X 与设备通信。
它还提供了在应用程序内部使用的 (Java) 工具:
- 连接缓存:用于重用和共享 PLC 连接的框架的新实现
- 连接池:我们框架的旧实现,用于重用和共享 PLC 连接
- OPM:Object-Plc-Mapping:允许将 PLC 字段绑定到类似于 JPA 的 java POJO 中的属性
- Scraper:用于进行计划和重复数据收集的实用程序。
根据编程语言的不同,用法也会有所不同,因此请访问 PLC4X 网站上的入门指南查找所选语言。
注意:目前支持构建 Apache PLC4X 所有部分的 Java 版本至少是 Java 19(我们已经测试了 Java 21 之前的所有版本),但是现在只有 Java 工具 UI 需要此功能。所有其他模块至少需要 Java 11。
请参阅网站上的 PLC4J 用户指南,开始在 Java 应用程序中使用 PLC4X: https: //plc4x.apache.org/users/getting-started/plc4j.html
目前,该项目配置为需要以下软件:
- Java 11 JDK:用于一般运行 Maven 以及编译
JAVA_HOME
配置为指向它的 Java 和 Scala 模块。 - Git(即使在源代码发行版上工作时)
- (可选,用于运行所有测试)libpcap/Npcap 用于 Java 中的原始套接字测试或使用
passive-mode
驱动程序 - (可选,用于构建网站)Graphviz:用于生成文档中的图表
警告:代码生成使用的实用程序需要一些额外的 VM 设置。从根目录运行构建时,.mvn/jvm.config
会自动应用 中的设置。仅构建子模块时,设置 vm args: 非常重要--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 设置中设置这些设置:Preferences | 构建、执行、部署 | 构建工具| Maven | 运行器:JVM 选项。
更详细的描述可以在我们的网站上找到:
https://plc4x.apache.org/developers/preparing/index.html
所有需求均由构建本身检索
所有需求均由构建本身检索
- Python 3.7 或更高版本
- Python pyenv
- 点网 SDK 6.0
通过此设置,您将能够构建 PLC4X 的 Java 部分。
在进行完整构建时,我们会自动运行先决条件检查,如果未满足所有要求,则构建失败并给出解释。
如果你不想在普通系统上设置环境,并且已经安装了 Docker,那么你也可以在 Docker 容器中构建所有内容:
docker compose up
这将构建一个本地 Docker 容器,能够构建 PLC4X 的所有部分,并将运行该容器内本地目录的 Maven 构建。
默认构建将运行本地发布构建,因此它也可用于确保发布时的可重现构建。
默认情况下它将在本地存储文件:
- 下载的 Maven 工件将转到
out/.repository
- 部署的工件将转到
out/.local-snapshots-dir
这样做的原因是,否则这些工件将与源发布工件一起打包,从而产生 12GB 或更多的 zip 存档。但是,将其保存在主target
目录中将使构建在每次mvn clean
运行 a 时删除本地存储库。然而,该out
目录默认从程序集描述符中排除,因此它不包含在源 zim 中。
您的系统上必须至少安装 Java 11 并连接到 Maven Central(用于下载外部第三方依赖项)。构建需要 Maven 3.6,因此请确保它已安装并在您的系统上可用。
注意:当前使用 Java 21 时,Apache Kafka 集成模块被排除在构建之外,因为它所需的插件之一已被证明与此版本不兼容。
注意:存储库中安装了一个方便的 Maven-Wrapper,使用时,它会自动下载并安装 Maven。如果您想使用它,请使用./mvnw
或mvnw
代替普通mvn
命令。
注意:从 resources-zip 运行时,mvnw
可能无法在Mac
或上执行Linux
。通过在目录中运行以下命令可以轻松修复此问题。
$ chmod +x mvnw
注意:如果您正在使用Windows
系统,请在以下构建命令中使用mvnw.cmd
代替。./mvnw
构建 PLC4X Java jar 并将其安装在本地 Maven 存储库中
./mvnw install
您现在可以构建使用 PLC4X 的 Java 应用程序。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-sandbox
和with-python
配置文件。
./mvnw -P with-sandbox,with-python install
为了构建一切,以下命令应该起作用:
./mvnw -P with-c,with-dotnet,with-go,with-java,with-python,with-sandbox,enable-all-checks,update-generated-code install
使用以下渠道之一加入 PLC4X 社区。我们很乐意提供帮助!
订阅以下邮件列表:
- Apache PLC4X 开发人员列表:[email protected]
- Apache PLC4X 提交列表:[email protected]
- Apache PLC4X Jira 通知列表:[email protected]
另请参阅: https: //plc4x.apache.org/mailing-lists.html
在 Twitter 上获取最新的 PLC4X 新闻: https: //twitter.com/ApachePlc4x
您可以通过多种形式参与 PLC4X 项目。
这些是但不限于:
- 提供信息和见解
- 测试 PLC4X 并提供反馈
- 提交拉取请求
- 提交错误报告
- 在我们的邮件列表上积极沟通
- 推广项目(文章、博客文章、会议演讲)
- 文档
我们是一群非常友好的人,所以不要害怕向前迈出一步。如果您想为 PLC4X 做出贡献,请查看我们的 贡献指南!
Apache PLC4X 根据 Apache 许可证版本 2.0 发布。