Skip to content

yuanxiaoming8899/plc4x-cn

 
 

Repository files navigation

Maven中央 执照 Jenkins 构建状态 最后一次提交 推特 Java 平台兼容性 Go平台兼容性 C 平台兼容性 Python 平台兼容性


阿帕奇 PLC4X 徽标

工业物联网适配器

PLC4X的最终目标是创建一组库,允许统一访问任何类型的PLC


目录


关于阿帕奇 PLC4X

Apache PLC4X 致力于创建一组库,用于以统一的方式与工业级可编程逻辑控制器 (PLC) 进行通信。我们计划将库用于:

  1. 爪哇
  2. C(未准备好使用)
  3. Python(尚未准备好使用)
  4. 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

开发商

环境

目前,该项目配置为需要以下软件:

  1. Java 11 JDK:用于一般运行 Maven 以及编译JAVA_HOME配置为指向它的 Java 和 Scala 模块。
  2. Git(即使在源代码发行版上工作时)
  3. (可选,用于运行所有测试)libpcap/Npcap 用于 Java 中的原始套接字测试或使用passive-mode驱动程序
  4. (可选,用于构建网站)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

为了构建PLC4C我们还需要:

所有需求均由构建本身检索

为了构建PLC4Go我们还需要:

所有需求均由构建本身检索

为了构建PLC4Py我们还需要:

  1. Python 3.7 或更高版本
  2. Python pyenv

为了构建PLC4Net我们还需要:

  1. 点网 SDK 6.0

通过此设置,您将能够构建 PLC4X 的 Java 部分。

在进行完整构建时,我们会自动运行先决条件检查,如果未满足所有要求,则构建失败并给出解释。

使用 Docker 构建

如果你不想在普通系统上设置环境,并且已经安装了 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。如果您想使用它,请使用./mvnwmvnw代替普通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-sandboxwith-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 社区。我们很乐意提供帮助!

邮件列表

订阅以下邮件列表:

另请参阅: https: //plc4x.apache.org/mailing-lists.html

推特

在 Twitter 上获取最新的 PLC4X 新闻: https: //twitter.com/ApachePlc4x

贡献

您可以通过多种形式参与 PLC4X 项目。

这些是但不限于:

  • 提供信息和见解
  • 测试 PLC4X 并提供反馈
  • 提交拉取请求
  • 提交错误报告
  • 在我们的邮件列表上积极沟通
  • 推广项目(文章、博客文章、会议演讲)
  • 文档

我们是一群非常友好的人,所以不要害怕向前迈出一步。如果您想为 PLC4X 做出贡献,请查看我们的 贡献指南

许可

Apache PLC4X 根据 Apache 许可证版本 2.0 发布。

About

PLC4X 工业物联网适配器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 74.2%
  • Go 8.6%
  • Ruby 7.1%
  • C# 4.0%
  • C 3.6%
  • Python 1.7%
  • Other 0.8%