如果我搜索的时间足够长,我通常会先发帖找到答案。但今天是。。。我从Aliexpress买了一个带有MODBUS RTU连接的电能表,我正在试着读出它。我已经在网上试过很多东西了。这是能量计1的数据表我试过pyModbus和minimalmodbus。我的两个脚本: #!/usr/bin/env python3 from pymodbus.client.sync import ModbusSerialClient as ModbusClient client = ModbusClient(method=‘rtu’, port=‘/dev/ttyUSB0’, timeout=1, stopbits = 1, bytesize = 8, parity=‘N’, baudrate= 9600) client.connect() request = client.read_holding_registers(0x00,0x01,unit=2) print (request.registers)`和 #!/usr/bin/env python3 import time import minimalmodbus rs485 = minimalmodbus.Instrument(‘/dev/ttyUSB0’, 2) rs485.serial.baudrate = 9600 rs485.serial.bytesize = 8 rs485.serial.parity = minimalmodbus.serial.PARITY_NONE rs485.serial.stopbits = 1 rs485.serial.timeout = 1 rs485.debug = False rs485.mode = minimalmodbus.MODE_RTU print (rs485) print(rs485.read_register(0, functioncode=4,)) #Volts_A = rs485.read_float(0, functioncode=4, number_of_registers=4) #print (‘Voltage: {0:.1f} Volts’.format(Volts_A))似乎我可以读取数据(第一个脚本输出17942,第二个脚本输出17248)。但老实说,我不知道该怎么办。我也不明白那个代码。。。手册上说我必须发送一个Hi和一个Low地址,但是我该怎么做呢?0x00是六边形-我必须转换这个吗?怎么用?手动统计,我必须发送地址+功能代码+数据+crc-如何做到这一点,或是pymod/最小自动做到这一点?它现在如何正确的功能代码等?我完全糊涂了,如果有人能帮我,我会很高兴的。。。谢谢