You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Linux下Pymodbus未请求却自动修改波特率致通信异常?

Modbus主站程序在Ubuntu下波特率异常导致通信不稳定

我有一个作为Modbus主站的Python3程序,启动ModbusSerialClient后读取从站寄存器,Windows下运行正常,但在Ubuntu环境中,ModbusSerialClient会自行修改波特率,导致通信不稳定。

已通过物理测量信号确认波特率确实发生了变化,且使用cu等命令行工具时波特率保持稳定。

初始化通信代码

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
...
try:
            self.client = ModbusClient(
                method = 'rtu'
                ,port= self.port
                ,baudrate=int(115200)
                ,parity = 'N'
                ,stopbits=1
                ,bytesize=8
                ,timeout=3
                ,RetryOnEmpty = True
                ,RetryOnInvalid = True
            )
            self.connection = self.client.connect()
            # Some delay may be necessary between connect and first transmission
            time.sleep(2)

其中Windows下self.port = "COM_X",Linux下self.port = "/dev/ttyS1"。

读取寄存器代码

rr = self.client.read_holding_registers(register_addr,register_block,unit=MODBUS_CONFIG_ID)
if(rr.isError()):
   logger.debug(rr)
else:
   # Proceed with the processing

出现的错误信息

Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 2 bytes (0 received)

使用的版本信息

  • pymodbus 3.1.0(2.5.3版本也存在该问题)
  • pyserial 3.5
  • python 3.8.10
  • kubuntu 22.04(Ubuntu下表现相同)

内容的提问来源于stack exchange,提问作者Ricard Molins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:41:22