如下所示的程序,读取三项功率仪704地址的数据,循环只能执行一次,然后就报错了,错误信息如图,请问是什么问题啊,怎么解决?万分感谢
import serial
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import time
def sleeptime(hour, min, sec):
return hour * 3600 + min * 60 + sec
second = sleeptime(0, 0, 3)
master = modbus_rtu.RtuMaster(
serial.Serial('COM8', baudrate=19200, bytesize=8, parity='N', stopbits=1, xonxoff=0)
)
master.set_timeout(5.0)
master.set_verbose(True)
num=1
con=5
while num!=con:
data = master.execute(1, cst.READ_HOLDING_REGISTERS, 704, 1)
time.sleep(second)
num=num+1
首先你代码没贴全;
其次你这就是个串口读取程序,那么排查方法很多,可以用串口工具监视和模拟一下,看看设备是不是没问题;如果设备没问题,那么就检查一下你的程序,主要是接收那块为何只能接到一组数据;
以你目前漏出来这些代码,外人很难判断。