python实现modbus通信,主站->从站失败

modbus_tk部分模块正常使用,但是在主站给从站发送指令的时候提示没有发送函数:excute

代码:

ser = serial.Serial(port=self.port, baudrate=self.bound, bytesize=8, parity='N', stopbits=1)
self.master = modbus_rtu.RtuMaster(ser)
self.master.execute(slave_id, cst.WRITE_SINGLE_REGISTER, register_address, output_value=output_value)

报错:AttributeError: 'NoneType' object has no attribute 'execute'

为什么会出现这个问题。我是windows+python3.7.9。modbus1.1.2。是版本问题吗?
我看了RtuMaster类,里边确实没有excute函数,我不知道我查看的对不对,希望能人志士能指点一下。

望采纳


在modbus_tk中,RtuMaster类的execute()方法用于主站向从站发送指令。您提到的错误消息:

AttributeError: 'NoneType' object has no attribute 'execute'

说明在调用execute()方法时,self.master变量为None。这可能是因为初始化RtuMaster实例时出现了问题。

例如,可能没有指定串口设备名称,或者指定的串口设备名称不正确。请检查代码,确保初始化RtuMaster实例时传入了正确的参数。

另外,您提到的错误是在windows环境下使用python3.7.9和modbus1.1.2版本的库时出现的。可能需要检查一下系统环境和库版本,以确保代码能够正常运行。