问题标签 [apache-plc4x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1282 浏览

netty - Netty 可以自动处理请求的排队吗?

在 Apache PLC4X 项目 ( https://plc4x.apache.org ) 中,我们正在使用 Netty 实现工业 PLC 的驱动程序。这里通常有多种协议是分层的。有时一层需要我们将一条消息拆分为底层的多条消息。现在我们面临一个大问题:一个协议协商每个连接的最大数量的未确认消息。所以我们不能发送超过这个最大值的消息,否则接收者只会发送一个错误响应。

现在我们不需要在 encode 方法中将东西添加到“out”中,而是将它们添加到某种队列中并让一些 Netty 机制负责排空该队列...... Netty 中有这样的机制吗?如果没有,实现这一点的最佳方法是什么?

如果具有良好 Netty 洞察力的人可以加入我们的项目邮件列表 (dev@plc4x.apache.org) 也会很酷,因为我们还在为 Netty 开发一些非常酷的附加功能(以太网帧上的原始套接字传输和 IP 数据包上的一个base) ...我敢打赌,这两个项目都可以相互受益。

0 投票
1 回答
107 浏览

netty - Netty MessageToMessageCodec 解码方法只接收到 512byte 的大响应块

我正在研究 Apache PLC4X 项目,我们使用 Netty 实现工业 PLC 协议。一旦响应的大小超过 512 字节的限制,我们目前就会遇到解码响应的问题。

一旦响应的大小超过这 512 个字节,我们基于 MessageToMessageCodec 的协议层实现的解码方法就只接收一个 512 字节的大 ByteBuf。紧接着,该方法与数据包的其余部分一起再次调用。

如何处理这个问题的正确方法?

0 投票
1 回答
717 浏览

groovy - 为什么从 groovy 运行“python --version”时标准输出为空?

我目前正在为 Apache PLC4X 项目编写飞行前检查脚本。在那里我检查是否存在所需的第三方工具及其版本。

如果我在命令行上运行“python --version”,我会得到很好的响应。

但是,如果我在 Groovy 中运行它:

我只是得到一个空字符串。所有其他工具均未显示此行为。所有其他人在“输出”中都有控制台输出。

我怎样才能做我想做的检查?我究竟做错了什么?

0 投票
1 回答
165 浏览

java - 多个请求值的无法解决的错误发送到 plc (apache.plc4x)

我是新来的,我的第一个问题是关于 PLC 值的请求,使用 Apache PLC4x。我想遍历 PLC 中所有可用的实际 I、Q 和 DB。因为我不想做到这一点,所以我遍历了一组数据库,但如果数据库无法访问,它只会打印出“错误处理消息”。

是否可以循环遍历所有实体?

通过尝试和错误,我找到了一些可访问的数据库,但无法遍历所有可用数据。

谢谢!


错误信息:

'''

0 投票
1 回答
436 浏览

apache-plc4x - Plc4x addressing system

I am discovering the Plc4x java implementation which seems to be of great interest in our field. But the youth of the project and the documentation makes us hesitate. I have been able to implement the basic hello world for reading out of our PLCs, but I was unable to write. I could not find how the addresses are handled and what the maskwrite, andMask and orMask fields mean.

Please can somebody explain to me the following example and detail how the addresses should be used?

0 投票
1 回答
376 浏览

apache-plc4x - plc4x 一次不能读取超过 9 个寄存器

我试图了解 plac4x java 实现中的地址系统。下面是plcs的读取代码示例:

我们的 PLC 管理 16 个寄存器,但是地址的正则表达式不允许有大于 9 的数量。是否可以改变这个?

此外,如果我尝试添加具有相同目的的其他字段,则不会发生读取:

非常感谢任何帮助。您能否告诉我在哪里可以找到有关此框架的更多信息?

0 投票
1 回答
265 浏览

apache-kafka - Plc4x v. 0.8.0 Kafka 连接器在推送新连接器时返回“null”

我最近将 Plc4x Kafka Connect 插件从版本 0.5.0 更新到 0.8.0,方法是从 Plc4x 的Github 页面克隆源代码并使用 Maven 构建它,完全按照自述文件中的说明。构建源代码后,我收到了一个 uber JAR,其中包含 Kafka Connect 插件的所有必需库和依赖项。然后,我创建一个连接器配置文件,该文件类似于 Plc4x 的Github 页面中的示例:

然后我将配置推送到 REST 接口:

REST 接口现在响应:

这就是我卡住的地方。我相信这个错误与 config.json 文件中的以下行有关:

因为当我使用不同的连接器类时,例如:

一切正常,我可以成功地将我的连接器配置推送到 REST 接口。Plc4x 0.5.0 版本也没有出现这个问题。我已经解压了包含所有依赖项的 uber JAR,并验证了 Plc4xSourceConnector 类确实存在。我不知道我做错了什么,因为我正在按照他们的 Github 页面中列出的步骤来构建和配置所有内容。有没有其他人遇到过这个问题?

0 投票
1 回答
73 浏览

apache-plc4x - 写入String类型数据提示【PlcRuntimeException: 尚未实现】

我需要向PLC写入字符串、实数、整数、字节数据,但是写入字符串数据时会提示我 StaticHelper.serializeS7String 怎样才能满足我的要求?

0 投票
1 回答
226 浏览

docker - 使用 Docker 构建 PLC4X 时如何解决此错误

当我尝试使用 Docker 构建 PLC4X 时,出现错误。我尝试从 Linux 系统和 Virtual Box 中的 Linux(托管在 Windows 机器中)构建它,在这两种情况下我都收到错误。

使用 Linux 机器时,我收到此错误:

步骤 20/36:运行 ./mvnw -P with-sandbox、with-boost、with-dotnet、with-python、with-proxies、with-logstash com.offbytwo.maven.plugins:maven-dependency-plugin:3.1。 1.MDEP568:go-offline -DexcludeGroupIds=org.apache.plc4x,org.apache.plc4x.examples,org.apache.plc4x.sandbox ---> 运行在 58f0d82652e1 /bin/sh: 1: ./mvnw: Permission拒绝命令'/bin/sh -c ./mvnw -P with-sandbox,with-boost,with-dotnet,with-python,with-proxies,with-logstash com.offbytwo.maven.plugins:maven-dependency- plugin:3.1.1.MDEP568:go-offline -DexcludeGroupIds=org.apache.plc4x,org.apache.plc4x.examples,org.apache.plc4x.sandbox' 返回非零代码:126

在 Linux 上使用虚拟机(Windows 主机)时,我收到此错误:

在此处输入图像描述

和这个:

在此处输入图像描述

我不明白发生了什么。在这两种情况下这个错误是否相同?我该如何解决这个问题?任何帮助,将不胜感激。

0 投票
1 回答
131 浏览

apache-plc4x - PLC4X:作业抓取期间出现异常

我实际上正在开发一个从 19 个 PLC 西门子 S1500 和 1 个 modicon 读取数据的项目。我在本教程之后使用了刮刀工具:

PLC4x刮刀教程

但是当刮板工作一段时间时,我得到以下异常:

在此处输入图像描述

我已将预定时间更改为 1 到 100 之间,当刮板收到相同数量的消息时,我总是会遇到相同的异常。

我已经测试过使用 PlcDriverManager 而不是 PooledPlcDriverManager 是否可以解决,但同样的问题仍然存在。

在我的 pom.xml 中,我使用以下依赖项:

我尝试将版本更改为旧版本,例如 0.6.0 或 0.5.0,但问题仍然存在。

如果我使用 modicon (Modbus TCP),我也会在一段时间后得到这个异常。

任何人都知道为什么会发生这个错误?提前致谢。

编辑:使用刮板版本 0.8.0-SNAPSHOT 我继续遇到这个问题。

Edit2:这是我的代码,我认为问题可能是在我的刮刀中我打开了很多连接,当它达到 65526 条消息时它失败了。但是由于所有的处理都发生在 lambda 函数内部并且我使用的是 PooledPlcDriverManager,我认为刮板只使用一个连接,所以我不知道错误在哪里。