import serial
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
def main():
master = modbus_rtu.RtuMaster(serial.Serial(port="COM9",
baudrate=38400, bytesize=8, parity='N', stopbits=1))
master.set_timeout(5.0)
master.set_verbose(True)
red = master.execute(1, cst.READ_HOLDING_REGISTERS, 64012, 1)
# 这里可以修改需要读取的功能码
print(red)
if name == "main":
main()
返回:
回溯(最近调用最后):文件“D:\WorkSpace\Test\main.py”, 第 20 行,在 main() 文件“D:\WorkSpace\Test\main.py”中,第 15 行,在 main red = master.execute(1, cst.READ_HOLDING_REGISTERS, 64012, 1) # 这里可以修改需要读取的功能码文件 “D:\WorkSpace\Test env\lib\site-packages\modbus_tk\utils.py”,行 39、在新建excpt文件 “D:\WorkSpace\Test env\lib\site-packages\modbus_tk\utils.py”,行 37、在新的ret = fcn(*args, **kwargs)文件中 “D:\WorkSpace\Test env\lib\site-packages\modbus_tk\modbus.py”,行 356、在执行response_pdu = query.parse_response(response)文件 "D:\WorkSpace\Test env\lib\site-packages\modbus_tk\modbus_rtu.py", 第 60 行,在 parse_response 中引发 ModbusInvalidResponseError("Invalid CRC 响应”) modbus_tk.exceptions.ModbusInvalidResponseError: 无效的 CRC 响应