问题标签 [modbus-tk]

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 投票
2 回答
161 浏览

python - 是否可以并行运行以下 Web 查询?

我正在使用 Python 和modbus_tk 包来轮询nPLC。每次轮询大约需要 5 秒。是否可以并行运行这些,以便无需n*5几秒钟即可获取所有数据?

我当前的代码:

0 投票
0 回答
168 浏览

python - Modbus-tk CPU 负载降低

非常感谢您的回答

我在哪里可以找到这个文件?

...通过以下方式修改“modbus_rtu.py”后...

我正在使用 Raspbian,试图在这些文件中查找并替换代码:

但它并没有减少 CPU 负载。

干杯。

0 投票
2 回答
2339 浏览

python - 无法使用 Python 的 modbus_tk 连接到从站

我目前正在尝试开发一个使用 Modbus-RTU 协议的应用程序,我必须在 Python 2.7中使用modbus_tk 。

我应该使用来自另一个应用程序的代码位,该应用程序能够通过 modbus 与微控制器通信。当我运行以下代码时,它适用于该应用程序,但是当我在我的应用程序中运行相同的行时出现错误。

首先,我需要删除构造函数调用中的参数baudratebytesize等,因为它会出现如下错误:

但是当我们调用 to 时execute,又出现了一个错误,我还无法解决:

我找到的唯一文档是:https ://github.com/Nobatek/modbus-tk/tree/master/docs ,但我不太了解它。如果有人可以首先向我解释这个错误的真正含义,以及我应该在哪里查看,我们将不胜感激。非常感谢你 !

0 投票
0 回答
1046 浏览

python - 如何获取 modbus_tk master 的 IP?

我基于 modbus_tk(https://github.com/ljean/modbus-tk )编写了一个 slave.py(server )。然后,我用客户端工具连接slave,就OK了。现在,我想获得哪个主(客户端)访问我,我想获得源 IP 和端口。我在 TcpServer(server) 类 modbus_tcp.py 的函数 _do_run(self) 中找到关键点'client, address = self._sock.accept()'。我尝试了一些方法,但没有奏效。

奴隶.py

modbus_tcp.py

0 投票
3 回答
1897 浏览

python-3.x - MODBUS-tk 从主机中的从机读取浮点值

我创建了 modbus slave 来将数据写入寄存器。我能够从从端写入浮点值和整数值。

在 modbus master 中,我只能访问整数值,但不能读取浮点值。

我经历了这个https://github.com/ljean/modbus-tk/issues/72但这并没有解决我的问题。

对于读取的整数值,我可以使用下面的代码并读取值。

但是对于浮点值,我同时使用了上面和下面的代码。

我在读取浮点数时出错,

unpack 需要一个长度为 4 的字节对象

0 投票
1 回答
818 浏览

python - Python:modbus_tk 在从属模式下没有响应

我正在尝试使用 modbus_tk 库在 python 中制作 Modbus-RTU 从站。下面是我试图让它工作的基本代码。

代码运行后,我正在从另一个主机执行一些读取查询(我可以在主机进行查询的 com 端口上监视),但从机没有对查询做出任何响应。

其他信息

有什么我想念的吗?或任何建议。

0 投票
1 回答
3378 浏览

python - Modbus-tk RTU Slave 保持寄存器读取有符号整数

我使用 modbus-tk 创建了一个 modbus 从站,如下所示。我使用Simply modbus master 软件(http://www.simplymodbus.ca/RTUmaster.htm)作为master。如何设置从站以表示有符号整数而不是无符号整数。例如,当我发送 16 位数据时, (FC19) HEX 应该表示 -999 decimal ,但现在我得到 64537。

尝试使用此处的示例https://github.com/ljean/modbus-tk/blob/master/examples/tcpmaster_example.py。好像只对Master有效。

我得到了:

0 投票
1 回答
5539 浏览

python - 如何使用 modbus-tk RTU (Python) 设置简单的从机和主机

我想通过 Modbus 协议在 Raspberry PI(从机)和我的 PC(主机)之间建立通信。目前,我正在使用modbus-tk(python)来设置通信协议。

问题是主站无法从从站读取寄存器。我可以知道我的代码有什么问题吗?我很困惑。

我从 Slave 得到的错误是:
Handle request failed: Invalid CRC in request or Request length is invalid

我从大师那里得到的错误是:
ModbusInvalidResponseError

注意:目的是使用Master从slave读取数据。

这是奴隶的代码:

这是大师的代码:

这是我用来连接 Raspberry Pi 和我的 PC 的 USB-to-rs485 设备的数据表和图片:
https ://www.enika.cz/data/files/produkty/komponenty/mereni-a-规则/UT-890A%20User%20manual.pdf

https://c.76.my/Malaysia/ut-890-usb-to-rs485-converter-belco-1605-07-belco@2569.jpg

非常感谢您的帮助。

0 投票
2 回答
6539 浏览

modbus - 自动发现网络中 modbus 设备的从设备 ID

通过广播机制获得有效的ip范围后如何确定连接到网络的设备是否为modbus设备或如何自动发现连接到网关的modbus设备的slave id?

0 投票
0 回答
577 浏览

python - 在 Linux 路由器上的 python 中使用 Modbus RTU 写入多个寄存器失败

我目前正在尝试在商业路由器(来自 Ursalink 的 UR71)和 Modbus RTU(来自 Schneider Electric 的 ZBRN2)之间建立 Modbus 通信。

UR71 路由器在 Linux OpenWRT LEDE-17.01 上运行 Python 是 v2.7.13 Python 使用 modbus-tk 0.5.7 和 pyserial 3.4

我的应用程序需要 modbus 读取 (FC03) 和 modbus 多次写入 (FC16)

问题是我成功地将我的计算机(Windows 10)作为 modbus 主机运行,但是当我切换到 UR71 作为 modbus 主机时,FC16 不再工作并发送:

我制作了一个小示例应用程序向您展示:

Modbus初始化如下:

UR71RTU 包含串行配置:

这导致:

Windows 中的相同代码导致:

我无法弄清楚会导致问题的原因。

  • 我调查了超时(最多 10 秒)、inter_byte_timeouts 等,但如果它适用于 FC06,为什么它应该与 FC16 不同?
  • 我用 minimummodbus lib 测试过,问题是一样的,所以我不认为错误来自 modbus-tk lib

我的想法已经用完了,如果有人已经遇到过此类问题,我将不胜感激。也许Linux和Windows上的串行端口存在一些我现在不知道的差异(但为什么FC06可以工作?)?

此致