问题标签 [pymodbus3]

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 回答
3712 浏览

python - pymodbus 和 pymodbus3 模块有什么区别?

希望你过得很好!我最近开始使用 python 进行 modbus 通信。我想澄清我的几个疑问。

  1. 什么模块更适合使用 Python 实现 modbus - minimummodbus、pymodbus、pymodbus3 或其他。
  2. 我正在使用 python3.4但无法使用 pip 或任何方式安装 pymodbus 模块。所以我安装了 pymodbus3
  3. 在使用 pymodbus3 模块时,我能够使用以下代码编写线圈:

    /li>

读取线圈状态(功能 0x01):

它返回无。

或者写入注册和阅读也不起作用:

欢迎积极回应!

0 投票
1 回答
856 浏览

python - 尝试安装 pymodbus3 但找不到 Python 3.0 或更高版本

我已经安装了 Python 2.7、3.5.2 和 3.6。我尝试pymodbus3为 Python 3.5.2 安装。当我跑

我得到错误:

我还将 Python 3.5.2 添加到 Python 路径中。分析我的问题的下一步是什么?

编辑:

给我

所以我假设我必须为 python3 使用 pip?

0 投票
1 回答
3714 浏览

python - Pymodbus RTU 连接问题

我是 python 和 modbus 的初学者,我正在尝试用 pymodbus 控制连接到串行端口的风扇几个小时。使用制造商的专有软件,我能够控制风扇,因此连接本身可以工作。然而,我自己的代码没有。

根据手册,风扇设置为以下值:

模式:RTU

波特率:19200

平价:偶数

超时:1

从站 ID:247 (F7h)

数据位:8

我修改了Pymodbus 库示例中的 pymodbus 示例代码。这是我的代码:

读取和写入命令都会导致以下错误:

即使未插入电缆,我也会收到相同的消息。

有没有人有什么问题的建议?

0 投票
2 回答
976 浏览

client - Pymodbus 客户端 setValues 限制为 100 个寄存器

我在树莓派上使用 pymodbus 作为客户端来保存来自传感器的值,并通过 TCP 将它们提供给 modbus 主机。

一切都很好。我正在使用以下内容来设置数据存储。values = context[slave_id].getValues(register, address, count=350) 问题是当我尝试设置无法超过 [98] 列表值的值时。

如果我设置 count=5 我可以设置从 [0] 到 [4] 的值,但是当我按照您的预期设置 [5] 时它会引发错误。

当我尝试设置值 [99] 时,计数 = 350 时出现错误。

这表明它们的寄存器限制为 100 个。这个限制可以延长吗?

查看 store.py 我看不到任何限制,所以我对设置限制的位置有点困惑。

您的帮助将不胜感激。

干杯

0 投票
1 回答
103 浏览

python - MasterDriverAgent.agent 不调用 modbus 接口类

我们正在尝试在 VOLTTRON 中实现 MasterDriverAgent,它与本地网络中远程机器上的模拟 pymodbus 异步服务器通信。从 VOLTTRON 日志来看,代理似乎从未调用 modbus.py 接口类。总线上的最后一条消息与可扩展性测试有关,然后它就静默了。在每个刮擦间隔,它会显示一个心跳'context':None

我使用脚本更新了配置,scripts/update_master_driver_config.py但仍然在日志中收到有关不支持旧样式配置的消息。

这是我的 master_driver.agent 配置文件:

和我的设备配置文件:

我在设备配置文件中指定的位置也有注册表配置文件。

这是调试模式下 VOLTTRON 日志的输出(我省略了侦听器代理心跳)。

我觉得我在这里错过了一大块驱动程序框架,但现在已经碰壁了一段时间。我通常可以从日志中的错误消息中判断问题出在哪里,但在这种情况下没有提供任何信息。

Unhanded error in Deferred我可以使用基本的 TCP 服务器/客户端脚本在两台机器之间进行通信,也可以使用pymodbus示例异步服务器/客户端脚本(虽然我确实得到了MasterDriverAgent 并非如此)。

我的下一步可能是尝试实现一个基本的测试代理并在其中放置一个简单的 pymodbus 客户端,看看是否可以进行任何通信。或者.. VOLTTRON 中是否有经过测试可以与 MasterDriverAgent 通信并发布到总线的模拟设备?我认为这可能有助于我隔离问题。如果我的问题太模糊,我深表歉意,我试图尽可能具体。

如果您能帮助阐明这个问题,我将不胜感激。

0 投票
0 回答
297 浏览

python - pymodbus3 无法从 Modbus 设备读取

我遇到了 python pymodbus3 模块的问题。

我有一个 modbus 设备和这两个脚本:

pymodbus_tester.py

pymodbus3_tester.py

如您所见,除了 pymodbus 模块之外,它们几乎相同。

然而,这是我在启动它们时得到的(为简单起见合并启动):

在设备端,我在两种情况下都收到相同的请求并输出相同的响应,正如您从以下日志中看到的(有点):

pymodbus3 模块有问题吗?还是我用错了?

谢谢你,里卡多

0 投票
1 回答
1974 浏览

python - Pymodbus:我如何读取这个输入寄存器的各个位?

我有一个太阳能项目和实时监视器,它使用 EpSolar Tracer 充电控制器和 Raspberry Pi 通过 MODBUS 读取能量数据。

当它们是简单的整数时,我很容易读取输入寄存器,就像这样 -

..但我无法理解如何读取输入寄存器,其中每个单独的位代表不同的东西。特别是,我想读取一个包含 12 条不同信息的“充电状态”寄存器 -

看图片

当我读取这个寄存器 (0x3201) 时,我得到的只是数字 7。我将如何读取这个寄存器中的 12 个不同数据中的每一个?我想也许 7 是 0000000000000111 的十进制表示 - 但我不认为这是正确的。

对此的任何帮助将不胜感激!

马特

0 投票
0 回答
76 浏览

python - 如何使用 pymodbus 读取文件请求

实际上我正在使用 modbus 协议,我需要使用 pymodbus 库制作一个程序,但是我对这个协议知之甚少。我知道做一些基本的事情,例如:读取输入/保持寄存器,但我需要读取波形。在设备的文档中说我必须为文件 128 编写读取文件请求,然后从文件响应块中读取数据,但我不知道如何。如何使用 pymodbus 编写读取文件请求?我需要使用 write_register() 吗?我希望你能帮助我,对不起我的英语

0 投票
2 回答
567 浏览

crc - Python,在 pymodbus.utilities.computeCRC 中使用变量

我正在搜索几天,如果我使用了错误的搜索字符串,我很抱歉。

我想使用“pymodbus.utilities.computeCRC”来计算 CRC 值以与使用专有代码的 Modbus 设备进行通信,因此不能使用默认的“读取寄存器”功能。

正确的 CRC 是 0x34bb

问题是,它只适用于版本 1,将十六进制值直接提供给 computeCRC,但“变量”选项都不起作用。

输出:

  • 0x34bb
  • 0x2a9c
  • 0xdc0b
  • 0x9c0a
  • 0x5dca
0 投票
1 回答
80 浏览

python - 使用 PyModBus 在 SC2004MBS 上显示今天的日期

我打算在 Silicon Craft 2004 ModBus (SC2004MBS) 上显示今天的日期和时间。我尝试将值日期字符串左移并使用 write_registers() 函数传递给设备。代码如下所示:

使用 Twisted 回调调用代码块。输出确实在设备上显示了结果,但在显示屏上的每个字符之前都有一些不需要的字符。在此处输入图像描述