问题标签 [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.
java - 多个请求值的无法解决的错误发送到 plc (apache.plc4x)
我是新来的,我的第一个问题是关于 PLC 值的请求,使用 Apache PLC4x。我想遍历 PLC 中所有可用的实际 I、Q 和 DB。因为我不想做到这一点,所以我遍历了一组数据库,但如果数据库无法访问,它只会打印出“错误处理消息”。
是否可以循环遍历所有实体?
通过尝试和错误,我找到了一些可访问的数据库,但无法遍历所有可用数据。
谢谢!
错误信息:
'''
testing - 通过 Bootstrap 配置 Netty EmbeddedChannel 的方法?
在 Apache PLC4X 项目中,我目前正在建立一个集成测试框架。PLC4X 的 Java 驱动程序大量使用 Netty。我们还构建了一大组所谓的“传输”,它们提供了 Netty 用于通信的 Channels。其中一种传输是使用 EmbeddedChannel 的“TestTransport”。我正在努力使这种传输在 Netty 的引导机制中工作。我尝试什么都没关系,我被卡住了。如果我不提供 EventLoop,Bootstrap 会抱怨没有 EventLoop。如果我通过覆盖“init”方法从 EmbeddedChannel 获取 EventLoop,EmbeddedChannel 会抱怨已经配置了 EventLoop。
不幸的是,在 Netty 的核心中,我需要调整的一切都是“私有的”、“包私有的”和“最终的”。随着 Java 的更新版本,许多邪恶的反射东西不再可能。
有没有办法使用 Bootstrap 机制配置 EmbeddedChannel,因为我不想拆开项目的核心并切换到 ChannelFactories 只是为了这个功能......而且我不想分叉很多Netty 代码只是为了完成工作。
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,我认为刮板只使用一个连接,所以我不知道错误在哪里。
apache-plc4x - plc4x 挂起查询
我们正在尝试使用plc4x
(plc4j-driver-s7
,版本 0.7.0)从 Siemens S7 PLC 查询数据。
这是一个非常简单的例子。当我运行它时,它在执行查询时无限期挂起。
我不能 100% 确定地址是否正确。我可以假设它会在地址未知的情况下引发错误吗?或者它也会挂起?非常感谢任何关于如何追踪这一点的提示。
非常感谢!
tcp - 如何使用 Apache NiFi 读取 Modubus TCP/IP 数据?
我在 Modbus TCP/IP 中有数据。我必须使用 Apache NiFi 读取可用数据。我不知道,必须准确使用哪个处理器(例如 GetTCP、ListenTCP、Plc4xSourceProcessor)。你能帮我解决这个问题吗?Apache NiFi 有什么可行性吗?
gateway - Apache PLC4X 是否可以替代 SCADA 系统中的网关?
我需要搜索和组织有关什么是 PLC4X、PLC4X 和旧系统的差异(例如:PLC 协议 - 网关 - 用户应用程序)的信息,但我发现的大部分内容都是关于如何使用 API。我想弄清楚:
- PLC4X 在 SCADA 系统中的确切作用是什么?网关?api?两个都?
- 如果PLC4X的角色只是统一API,需要支持PLC4X的网关吗?
- 将 PLC4X 应用于传统 SCADA 系统之前/之后有什么区别?
- PLC4X 可以防止数据遗漏吗?
如果你用上图回答我的问题,我会更容易理解。
apache-plc4x - 基于 TCP 的 Modbus RTU
我正在尝试使用 RTU over TCP 与 Modbus 从站通信,但它不起作用。我没有任何例外。程序似乎在等待响应并且没有抛出超时异常。
当我将 Modbus 从站更改为仅 TCP 时,它工作正常。我可以读取保持寄存器。PLC4X 是否支持基于 TCP 的 Modbus RTU?如果是,有什么例子吗?如果没有,您打算实施吗?
modbus - Plc4x 库 Modbus 串行 (RTU) 获取未检索数据
我正在尝试编写一个示例程序,以使用带有 apache plc4x 库的串行端口从 SHT20 温度传感器检索温度数据。
使用串行通信与设备建立连接。但它无法获取数据,而是连续打印以下警告消息。
调试器挂在下面的行:
以下日志连续打印。
使用 modpoll.exe 使用相同的 URL 数据(即波特率、stopBits 等),它可以工作并通过 RTU 返回数据。我不确定这里缺少什么。请在这里阐明一些观点。
apache-plc4x - plc4x 库中的字节序(大字节序/小字节序)支持
我想检查 plc4x modbus 库中是否支持 endianness(little endian/big endian) 以处理基于该的响应。如果存在,我找不到任何有关如何使用的文档或示例。
因此,如果可用,请在此处请求相同的一些链接。