问题标签 [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.
netty - Netty 可以自动处理请求的排队吗?
在 Apache PLC4X 项目 ( https://plc4x.apache.org ) 中,我们正在使用 Netty 实现工业 PLC 的驱动程序。这里通常有多种协议是分层的。有时一层需要我们将一条消息拆分为底层的多条消息。现在我们面临一个大问题:一个协议协商每个连接的最大数量的未确认消息。所以我们不能发送超过这个最大值的消息,否则接收者只会发送一个错误响应。
现在我们不需要在 encode 方法中将东西添加到“out”中,而是将它们添加到某种队列中并让一些 Netty 机制负责排空该队列...... Netty 中有这样的机制吗?如果没有,实现这一点的最佳方法是什么?
如果具有良好 Netty 洞察力的人可以加入我们的项目邮件列表 (dev@plc4x.apache.org) 也会很酷,因为我们还在为 Netty 开发一些非常酷的附加功能(以太网帧上的原始套接字传输和 IP 数据包上的一个base) ...我敢打赌,这两个项目都可以相互受益。
netty - Netty MessageToMessageCodec 解码方法只接收到 512byte 的大响应块
我正在研究 Apache PLC4X 项目,我们使用 Netty 实现工业 PLC 协议。一旦响应的大小超过 512 字节的限制,我们目前就会遇到解码响应的问题。
一旦响应的大小超过这 512 个字节,我们基于 MessageToMessageCodec 的协议层实现的解码方法就只接收一个 512 字节的大 ByteBuf。紧接着,该方法与数据包的其余部分一起再次调用。
如何处理这个问题的正确方法?
groovy - 为什么从 groovy 运行“python --version”时标准输出为空?
我目前正在为 Apache PLC4X 项目编写飞行前检查脚本。在那里我检查是否存在所需的第三方工具及其版本。
如果我在命令行上运行“python --version”,我会得到很好的响应。
但是,如果我在 Groovy 中运行它:
我只是得到一个空字符串。所有其他工具均未显示此行为。所有其他人在“输出”中都有控制台输出。
我怎样才能做我想做的检查?我究竟做错了什么?
java - 多个请求值的无法解决的错误发送到 plc (apache.plc4x)
我是新来的,我的第一个问题是关于 PLC 值的请求,使用 Apache PLC4x。我想遍历 PLC 中所有可用的实际 I、Q 和 DB。因为我不想做到这一点,所以我遍历了一组数据库,但如果数据库无法访问,它只会打印出“错误处理消息”。
是否可以循环遍历所有实体?
通过尝试和错误,我找到了一些可访问的数据库,但无法遍历所有可用数据。
谢谢!
错误信息:
'''
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?
apache-plc4x - plc4x 一次不能读取超过 9 个寄存器
我试图了解 plac4x java 实现中的地址系统。下面是plcs的读取代码示例:
我们的 PLC 管理 16 个寄存器,但是地址的正则表达式不允许有大于 9 的数量。是否可以改变这个?
此外,如果我尝试添加具有相同目的的其他字段,则不会发生读取:
非常感谢任何帮助。您能否告诉我在哪里可以找到有关此框架的更多信息?
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 页面中列出的步骤来构建和配置所有内容。有没有其他人遇到过这个问题?
apache-plc4x - 写入String类型数据提示【PlcRuntimeException: 尚未实现】
我需要向PLC写入字符串、实数、整数、字节数据,但是写入字符串数据时会提示我 StaticHelper.serializeS7String 怎样才能满足我的要求?
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 主机)时,我收到此错误:
和这个:
我不明白发生了什么。在这两种情况下这个错误是否相同?我该如何解决这个问题?任何帮助,将不胜感激。
apache-plc4x - PLC4X:作业抓取期间出现异常
我实际上正在开发一个从 19 个 PLC 西门子 S1500 和 1 个 modicon 读取数据的项目。我在本教程之后使用了刮刀工具:
但是当刮板工作一段时间时,我得到以下异常:
我已将预定时间更改为 1 到 100 之间,当刮板收到相同数量的消息时,我总是会遇到相同的异常。
我已经测试过使用 PlcDriverManager 而不是 PooledPlcDriverManager 是否可以解决,但同样的问题仍然存在。
在我的 pom.xml 中,我使用以下依赖项:
我尝试将版本更改为旧版本,例如 0.6.0 或 0.5.0,但问题仍然存在。
如果我使用 modicon (Modbus TCP),我也会在一段时间后得到这个异常。
任何人都知道为什么会发生这个错误?提前致谢。
编辑:使用刮板版本 0.8.0-SNAPSHOT 我继续遇到这个问题。
Edit2:这是我的代码,我认为问题可能是在我的刮刀中我打开了很多连接,当它达到 65526 条消息时它失败了。但是由于所有的处理都发生在 lambda 函数内部并且我使用的是 PooledPlcDriverManager,我认为刮板只使用一个连接,所以我不知道错误在哪里。