VI_ERROR_TMO (-1073807339)
VI_ERROR_TMO (-1073807339)
我正在使用 RS-232 端口与 KeithleyInstruments(SCPI 协议)通信,并且有一个 problem.I 可以发送写入命令,但是当我发送查询命令时,它*显示以下错误。
import visa
rm = visa.ResourceManager()
inst = rm.list_resources()
print inst
# print inst --> (u'USB0::0x05E6::0x2200::9060025::INSTR', u'ASRL1::INSTR', u'ASRL6::INSTR', u'ASRL7::INSTR', u'ASRL10::INSTR', u'GPIB0::16::INSTR')
keithleyInst= rm.open_resource('ASRL7::INSTR')
print keithleyInst.write("*rst")
print keithleyInst.write(":meas:temp?")
print keithleyInst.query(":meas:temp?")
Error:
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
查询是写入和读取的组合,因此您只需要查询,不需要写入。
如果删除额外的写入后仍然超时,请尝试设置一个非常长的超时,例如:
keithleyInst.timeout = 5000
给它 5 秒的响应时间。一旦你开始工作,你可以随时缩短它。
如果仍然没有响应,可能是仪器没有发送VISA期望的终止字符。
尝试使用终端程序或 National Instruments 的 Measurement & Automation 程序与仪器通信,以确定它正在发送什么终止字符(如果它正在发送任何内容)。
您可以通过
更改 VISA 期望的终止字符
keithleyInst.read_termination = '\r'
或类似的东西。
我正在使用 RS-232 端口与 KeithleyInstruments(SCPI 协议)通信,并且有一个 problem.I 可以发送写入命令,但是当我发送查询命令时,它*显示以下错误。
import visa
rm = visa.ResourceManager()
inst = rm.list_resources()
print inst
# print inst --> (u'USB0::0x05E6::0x2200::9060025::INSTR', u'ASRL1::INSTR', u'ASRL6::INSTR', u'ASRL7::INSTR', u'ASRL10::INSTR', u'GPIB0::16::INSTR')
keithleyInst= rm.open_resource('ASRL7::INSTR')
print keithleyInst.write("*rst")
print keithleyInst.write(":meas:temp?")
print keithleyInst.query(":meas:temp?")
Error:
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
查询是写入和读取的组合,因此您只需要查询,不需要写入。
如果删除额外的写入后仍然超时,请尝试设置一个非常长的超时,例如:
keithleyInst.timeout = 5000
给它 5 秒的响应时间。一旦你开始工作,你可以随时缩短它。
如果仍然没有响应,可能是仪器没有发送VISA期望的终止字符。
尝试使用终端程序或 National Instruments 的 Measurement & Automation 程序与仪器通信,以确定它正在发送什么终止字符(如果它正在发送任何内容)。
您可以通过
更改 VISA 期望的终止字符keithleyInst.read_termination = '\r'
或类似的东西。