Docker 容器内的 pyModbusTCP 超时

问题描述 投票:0回答:1

我有类似的问题,如here。但效果仅限于 Docker 容器内的 pyModbusTCP 和 WAGO 750-8000。

我在 Docker 容器内初始化 Modbus 客户端:

mc = ModbusClient(host="192.168.100.1", port=502, debug=True, timeout=0.1)

当我尝试使用以下命令读取寄存器时:

mc.read_holding_registers(256, 50)

我收到超时错误:

Tx
[B9 AE 00 00 00 06 01] 03 01 00 00 32
timeout error

如果我增加超时(到 0.7 或更高),它就会起作用。至少有时候。

有趣的是,如果我在主机(Windows 10)上执行相同的 Python 代码,那么即使超时很短(0.01 秒),它也能工作。

还有: 使用不同的 Modbus 设备(较旧的 WAGO 750-832),它可以工作(在 docker 容器之外)。

任何想法,哪个组件可能配置错误?

python docker modbus pymodbustcp wago
1个回答
0
投票

所以事情与提到的库和软件无关。 问题是 WAGO 750-8000 Modbus 实施中的错误。修复附带固件更新。

© www.soinside.com 2019 - 2024. All rights reserved.