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

Delta PLC与Linux电脑Modbus RTU通信断电后无响应问题求助

Delta PLC与Linux电脑Modbus RTU通信断电后无响应问题求助

我有一台Delta PLC和一台Linux电脑,一直采用Modbus RTU方式连接通信,之前用下面这段代码运行完全正常:

from pymodbus.client import ModbusSerialClient
import struct
client = ModbusSerialClient(port='/dev/ttyUSB0', baudrate=9600, timeout=1)

if client.connect():
    print("Connected to modbus device!")
    
    register = int(input("Enter your register: "))
    response = client.read_holding_registers(address=register, count=8)
    high_word = response.registers[0]
    response_2 = client.read_holding_registers(address=register + 1, count=8)
    low_word = response_2.registers[0]
    
    combined_value = (low_word << 16) | high_word
    combined_value_2 = (high_word << 16) | low_word
    signed_value = struct.unpack('i', struct.pack('I', combined_value))[0]
    print(high_word, low_word)    
    print(combined_value)
    print(signed_value)

但经历一次长时间断电后,不管我怎么操作,代码都会报错。现在的报错信息如下:

Connected to modbus device!
Enter your register: 6096
No response received after 3 retries, continue with next request
Traceback (most recent call last):
  File "/home/admin/plc_monitoring/read.py", line 9, in <module>
    response = client.read_holding_registers(address=register, count=8)
  File "/home/admin/plc_monitoring/venv/lib/python3.9/site-packages/pymodbus/client/mixin.py", line 114, in read_holding_registers
    return self.execute(no_response_expected, pdu_reg.ReadHoldingRegistersRequest(address=address, count=count, dev_id=slave))
  File "/home/admin/plc_monitoring/venv/lib/python3.9/site-packages/pymodbus/client/base.py", line 186, in execute
    return self.transaction.sync_execute(no_response_expected, request)
  File "/home/admin/plc_monitoring/venv/lib/python3.9/site-packages/pymodbus/transaction/transaction.py", line 120, in sync_execute
    raise ModbusIOException(txt)
pymodbus.exceptions.ModbusIOException: Modbus Error: [Input/Output] No response received after 3 retries, continue with next request

我已经尝试了以下操作,但都没有解决问题:

  • 用WPL Soft重新向PLC写入程序
  • 换用主电脑运行程序
  • 更换了通信线缆

更奇怪的是,Modbus Poll工具还能正常和PLC通信,但我的Python代码就是无法获取响应,实在找不到问题所在,有没有大佬能帮忙排查一下?

备注:内容来源于stack exchange,提问作者Karanveer Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:33:07