问题标签 [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 回答
165 浏览

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

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

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

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

谢谢!


错误信息:

'''

0 投票
1 回答
111 浏览

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 代码只是为了完成工作。

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,我认为刮板只使用一个连接,所以我不知道错误在哪里。

0 投票
1 回答
160 浏览

apache-plc4x - plc4x 挂起查询

我们正在尝试使用plc4xplc4j-driver-s7,版本 0.7.0)从 Siemens S7 PLC 查询数据。

这是一个非常简单的例子。当我运行它时,它在执行查询时无限期挂起。

我不能 100% 确定地址是否正确。我可以假设它会在地址未知的情况下引发错误吗?或者它也会挂起?非常感谢任何关于如何追踪这一点的提示。

非常感谢!

0 投票
2 回答
818 浏览

tcp - 如何使用 Apache NiFi 读取 Modubus TCP/IP 数据?

我在 Modbus TCP/IP 中有数据。我必须使用 Apache NiFi 读取可用数据。我不知道,必须准确使用哪个处理器(例如 GetTCP、ListenTCP、Plc4xSourceProcessor)。你能帮我解决这个问题吗?Apache NiFi 有什么可行性吗?

0 投票
1 回答
172 浏览

gateway - Apache PLC4X 是否可以替代 SCADA 系统中的网关?

我需要搜索和组织有关什么是 PLC4X、PLC4X 和旧系统的差异(例如:PLC 协议 - 网关 - 用户应用程序)的信息,但我发现的大部分内容都是关于如何使用 API。我想弄清楚:

  1. PLC4X 在 SCADA 系统中的确切作用是什么?网关?api?两个都?
  2. 如果PLC4X的角色只是统一API,需要支持PLC4X的网关吗?
  3. 将 PLC4X 应用于传统 SCADA 系统之前/之后有什么区别?
  4. PLC4X 可以防止数据遗漏吗?

SCADA 中的 PLC4X

传统 SCADA 系统

如果你用上图回答我的问题,我会更容易理解。

0 投票
0 回答
179 浏览

apache-plc4x - 基于 TCP 的 Modbus RTU

我正在尝试使用 RTU over TCP 与 Modbus 从站通信,但它不起作用。我没有任何例外。程序似乎在等待响应并且没有抛出超时异常。

当我将 Modbus 从站更改为仅 TCP 时,它工作正常。我可以读取保持寄存器。PLC4X 是否支持基于 TCP 的 Modbus RTU?如果是,有什么例子吗?如果没有,您打算实施吗?

0 投票
0 回答
175 浏览

modbus - Plc4x 库 Modbus 串行 (RTU) 获取未检索数据

我正在尝试编写一个示例程序,以使用带有 apache plc4x 库的串行端口从 SHT20 温度传感器检索温度数据。

使用串行通信与设备建立连接。但它无法获取数据,而是连续打印以下警告消息。

调试器挂在下面的行:

以下日志连续打印。

使用 modpoll.exe 使用相同的 URL 数据(即波特率、stopBits 等),它可以工作并通过 RTU 返回数据。我不确定这里缺少什么。请在这里阐明一些观点。

0 投票
1 回答
52 浏览

apache-plc4x - plc4x 库中的字节序(大字节序/小字节序)支持

我想检查 plc4x modbus 库中是否支持 endianness(little endian/big endian) 以处理基于该的响应。如果存在,我找不到任何有关如何使用的文档或示例。

因此,如果可用,请在此处请求相同的一些链接。