我正在研究pymodbus。尝试从多个单元(多个从站)读取数据它给了我数据,但是当其中的 1 个从站没有响应或关闭时,其他从站也会在一段时间后显示错误。请帮忙。谢谢
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.exceptions import ModbusIOException
from pymodbus.exceptions import ConnectionException
def length(x):
client = ModbusClient(method='rtu', port='/dev/ttyUSB0', timeout=2, stopbits = 1, bytesize = 8, parity='N', baudrate = 9600)
client.connect()
rr = client.read_holding_registers(address=1, count=4, unit=x);
decoder = BinaryPayloadDecoder.fromRegisters(rr.registers, Endian.Big, wordorder=Endian.Big);
a=str(decoder.decode_32bit_float());
c = int (float(a))
client.close()
print("length",c)
client = ModbusClient(method='rtu', port='/dev/ttyUSB0', timeout=2, stopbits = 1, bytesize = 8, parity='N', baudrate = 9600)
client.connect()
rr = client.read_holding_registers(address=7, count=4, unit=x);
decoder = BinaryPayloadDecoder.fromRegisters(rr.registers, Endian.Big, wordorder=Endian.Big);
b=str(decoder.decode_32bit_float());
d = int (float(b))
client.close()
print("speed",d)
print(x)
return c,d