问题标签 [modbus-tcp]

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 投票
0 回答
1417 浏览

python - 使用 umodbus 模块的 Python ModBus 服务器

我想创建一个 modbus 服务器(本地主机:ip 地址:152.168.96.11 - 与系统相同)和 modbus 客户端(ip 地址:152.168.96.32)。我的客户端应用程序正在运行,我正在使用 umodbus 服务器应用程序创建 modbus 服务器应用程序。32 位数据交换(为测试目的读取或写入)。

我如何配置 python umodbus 服务器,服务器能够读取和写入数据到客户端 IP 地址

这是 umodbus 服务器应用程序 -

0 投票
1 回答
453 浏览

python - 如何使用 pymodbus 在 Raspberry Pi 3 中写入输入寄存器

我在这里有一个 python 代码来读取输入寄存器并且它正在工作,但它没有在 HMI Droid Studio 应用程序中显示寄存器。这是代码:

任何帮助表示感谢谢谢

0 投票
0 回答
141 浏览

java - 从 Altivar 变频器或 MODICON PLC 读取 Modbus 网络上的数据

告诉我是否可以直接从使用Modbus协议的设备中读取寄存器的值。我想用java语言实现读取寄存器并将它们输出到jsp页面。该程序是文凭项目和获得Java知识所必需的。有没有人尝试这样做?使用芒果无限自动化找到了库 modbus4j,但不知何故,一切都非常困难。预先感谢您的回答。

我必须添加一些信息。我将施耐德电动ATV 71变频器通过Modbus TCP连接到计算机(由于软件看到此设备而建立连接)。

下面是使用的代码示例。主机不同,因为设备在大学里,我不记得指示的地址。

} }

方法“master.isInitialized()”和“master.isConnected()”返回值“true”。设备中设置的地址为“1”。它还确认连接,因为在安装另一个 id 时会引发异常。

无论我设置什么班次,上面的代码总是返回“null”。

我还尝试了 EasyModbus 库并一直得到值“0”。

所以我相信有了这些信息,你可以帮助我。预先感谢您的回答。

0 投票
0 回答
1471 浏览

python - 带有传感器数据的 Python Modbus TCP 服务器

我目前正在学习 Python 并开始在 Raspberry Pi 3 上使用它。我已经设法将所有传感器数据读入变量(数据由 Arduino Nanos 网络读取,每个都有自己的传感器并在 NRF24L01+ 的帮助下传输)。

现在,我的大问题是将这些数据从 Raspberry 发送到使用 Modbus TCP 的 SCADA 系统。

有人可以指导我实现一个 Modbus TCP 服务器,该服务器用传感器的值填充保持寄存器吗?此外,SCADA 系统将写入一些保持寄存器,以便 Raspberry 建立一些设定点,因此 Raspberry 将读取这些特定寄存器。

提前致谢!

0 投票
1 回答
2453 浏览

python - 是否可以将 pyModbusTCP 用作 modbus 从站?

我正在阅读 pyModbusTCP,目的是编写在 Linux 上运行的 Modbus 从站。

[开始咆哮]:pyModbusTCP 使用术语“客户端”和“服务器”而不是“从/主”,所以文档有点混乱。[结束吐槽]

似乎他们在演示中所做的只是将库用作主设备,从远程从设备读取或写入。

是否可以将 pyModbusTCP 设置为 Modbus 从站,侦听端口并允许 Modbus 设备(PLC 等)连接并从/向该从站读取/写入值?

作为奖励,当远程主机读取或写入该从机时,是否可以自动执行 Python 函数(如事件)?

谢谢!

0 投票
1 回答
333 浏览

qt - 如何检索大于 Qt Modbus InputRegisters 的数据大小?

据我了解,范围QModbusDataUnit::InputRegisters是 0-65535,即unsigned short.

读取1个单位的方法inputregisters如下:

QModbusDataUnit readUnit(QModbusDataUnit::InputRegisters, 40006, 1);

该值将在回复中,即:int value = result.value(0);

我的问题是,如果我必须读取一个unsigned int比 . 范围大得多的值怎么办0 to 4,294,967,295

如何检索该值?

0 投票
1 回答
496 浏览

ruby - ModBus TCP communication using Ruby: failing to implement HelloWorld

I am able to communicate with a ventilation installation (Helios KWL EC 500 W which supports holding registers only, english description starts at 50% of the file) using the modpoll utility v3.4. But I failed to transfer the very first communication to Ruby and the rmodbus library v1.3.3.

With modpoll, I may request some temperature value with the command

and then read the data using

which outputs 8 16bit registers as stated as example in the Helios modbus documentation. As very first step, I tried to move the read part to Ruby. However, my Ruby code times out:

and throws the exception

What's wrong?

I am not sure if / how to use the parameters output by modpoll "address =180" and "start reference =1". Is "address" equivalent to "holding register #"?

0 投票
1 回答
1722 浏览

python - pymodbus“单位”参数是什么意思?

我有一些在 pymodbus 1.2 下编写的 modbus TCP 代码,相关代码是

result = modbus_client.read_holding_registers(40093, 3)

更新到 pymodbus 1.4.0 后,它无法工作,直到我将新的 unit 参数添加到函数调用中(示例中都有 unit=1):

result = modbus_client.read_holding_registers(40093, 3, unit=1)

pymodbus read_holding_registers()中的unit参数是什么意思?我似乎无法在任何地方找到解释。消息来源说“:param unit:此请求所针对的从属单元”,但我不明白这是什么意思,也不明白除了 1 之外的其他选择。

0 投票
1 回答
201 浏览

python - 如何摆脱 Python 代码中的 LoopingCall

我正在使用Modbuspymodbus 库中的服务器示例代码来制作数据转发器(读取一些串行数据,格式化然后将数据分配给 modbus 寄存器以供 Modbus 主设备读取)。我的问题是串行延迟(从 6 个不同的设备读取,每个设备有 5 秒的延迟,但它是随机的,它们不会同时发送数据)。在此示例中,他们使用 LoopingCall,这对我的计时不利。我如何摆脱它,所以我可以自己调用函数?

我试图摆脱:

并简单地调用:

但显然我错过了一些论点:

我的部分代码:

0 投票
3 回答
3273 浏览

arduino - modbus rtu over tcp(modbus tcp 网关)

是否可以使用 linux box 或 arduino 构建 modbus-RTU 以太网网关?

我有使用 modbus RTU 将 plc 从站连接在一起,我想通过 TCP 将其中一个连接到我的电脑作为主机。

我想知道我是否可以使用连接到路由器的 linux 机器(rasbery pi/raspbian)作为 modbus-to-tcp 转换器,方法是将 USB 端口通过管道连接到某个端口上的本地 ip,因为一个 plc 将连接到 modbus rtu到linux盒子的usb端口。管道命令将是这样的:

我的目标是使用 modbus 通过 linux 盒将 pc(与 linux 盒联网)连接到该 plc。