问题标签 [pymodbus]

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 投票
3 回答
1590 浏览

python - 如何修复 PyModbus 无法通过 IME 使用 IF96015 接口解码响应错误

我有一个 PyModbus 在Raspberry PI 3b上运行。我有用于Nemo 96HD数字万用表的IF96015以太网接口。当我尝试使用 PyModbus 控制台通过 ModbusTCP 连接到它时,我可以询问它是否已连接并且它说“true”但我无法从中读取任何数据。

根据手册,第一个使用的地址是301,当我尝试阅读时,.Coil()我得到:

打开控制台:

检查连接:

尝试阅读线圈:

输出:


[注意]:

IF96015手册:

手册_1

手册_2

0 投票
0 回答
1099 浏览

pymodbus - 如何在pymodbus中实现带有自定义功能代码的消息?

我目前正在尝试实现具有自定义功能代码的 modbus 请求。实现基于这个例子:custom_message.py

该请求按预期工作。我可以在网络层看到正确的响应。但是我无法解析结果。Pymodbus 抛出以下错误:

该示例指出,在这种情况下,我必须:

如果您实现了当前未实现的新方法,则必须向 ClientDecoder 工厂注册请求和响应。

有没有一种优雅的方法可以在不修补库的情况下做到这一点?

0 投票
1 回答
755 浏览

python - 连接2个modbus slave pymodbus时出错

我正在研究pymodbus。尝试从多个单元(多个从站)读取数据它给了我数据,但是当其中的 1 个从站没有响应或关闭时,其他从站也会在一段时间后显示错误。请帮忙。谢谢

0 投票
2 回答
10628 浏览

python - Pymodbus 读取保持寄存器

我被指派在没有任何文件的情况下执行任务。我从 MODBUS 读取数据时遇到问题。这是我能够创建的脚本:

一切看起来都很好,但是计数器上的数据与脚本中的数据不同,例如:

这就是地址文档的样子”

0 投票
0 回答
942 浏览

python - Pymodbus 获取从机地址

我正在做一个项目,我将两个 MOXA 盒子连接到一个树莓派。我正在使用 pymodbus 连接到设备,并且连接了一些 LED,因此我可以写入线圈并点亮它们。

我正在使用下面的代码:

这会打开和关闭 LED,如果我增加第一个数字,它会点亮下一个等等。但是,问题是我无法访问从属单元及其线圈。

在管理面板中,我检查了“启用 Modbus/TCP 从站协议”,但我没有设备 ID,也没有从站设备的地址。从机通过以太网电缆连接到主机,主机通过另一条以太网电缆连接到网络。

我用谷歌搜索了我的大脑,但找不到在哪里拿到身份证?

0 投票
1 回答
282 浏览

python - Pymodbus – 监听 PLC 设备上的输入变化

我正在对 PLC 设备(Moxa ioLogik E1214)进行编程,并将 DI 端口连接到按钮,线圈连接到 LED 灯。这个想法是,当您按下按钮时,LED 应该会亮起。

如果您按住按钮直到读取输入功能执行,我已经让程序工作了。问题是我想设置一个时间范围(X 秒),如果在这个时间范围内按下按钮(而不是按住),灯应该切换。

代码如下:

如您所见,我为读取输入寄存器设置了超时。但是我怎样才能在这几秒钟内“监听”输入变化,而不必按住按钮直到读取输入寄存器功能执行?

提前致谢

0 投票
1 回答
648 浏览

python - 如何从功率计上的原始数据计算能量读数

我是物联网新手,我有一个施耐德功率计项目。我使用从寄存器读取电压原始数据,pymodbus但我不知道如何将其转换为正确的值。

原始数据[24206, 17242]来自寄存器地址3927-3928

这是我的代码:

出去:

寄存器

电压

生的

大家能告诉我怎么做吗?

谢谢。

0 投票
0 回答
208 浏览

python - 无法从 PLC 地址读取浮点值

我正在使用 PyModbus 库从 PLC 读取浮点值。我从中获得了正确的价值,str(decoder.decode_32bit_float())但未能将其放入变量var1中。它显示错误(在 中decode 32 bit float return unpack(string, handle)[0] struct.error: unpack requires a string argument of length 4)。提前致谢

0 投票
2 回答
1453 浏览

python - ModbusTcp读取第二次得到结果的原因是什么?

有时,当我第一次从 Modbus 设备读取时,我会立即收到错误响应,但当我再次尝试时,这会响应为预期结果。

这是第一次出现的错误信息:


这是 IPython 控制台中的简化代码段:


什么原因?


[更新]:

我激活了 ModbusClient 日志记录:

出去:

如您所见,在第一次尝试时出现错误,但在第二次尝试中,我得到了正确的结果。

0 投票
1 回答
779 浏览

python - pymodbus 读取仪表寄存器

我是 modbus 的新手,但我有一个小项目要做。我需要从能量计中读取一些值。我从网上找到的一些例子写了这个:

它似乎正在连接到仪表,因为这是我的输出:

我想从寄存器读取4001240014这是我拥有的 Modbusdbus 映射: Modbus 映射

我感谢您的帮助。问候,