PyVISA超时错误——通过RS232(USB)与安捷伦34970A通信



这是我第一次尝试使用Pyvisa,以便使用RS232连接(使用USB端口)与Agilent 34970A通信。

这就是发生在我身上的事情,插入基本的第一行:

IN: import visa
IN: rm=visa.ResourceManager()
IN: print rm.list_resources()
(u'ASRL4::INSTR',)
IN: inst=rm.open_resource("ASRL4::INSTR")
IN: print inst.query("*IDN?")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:Anaconda2libsite-packagespyvisa-1.8-py2.7.eggpyvisaresourcesmessagebased.py", line 407, in query
    return self.read()
  File "C:Anaconda2libsite-packagespyvisa-1.8-py2.7.eggpyvisaresourcesmessagebased.py", line 332, in read
    message = self.read_raw().decode(enco)
  File "C:Anaconda2libsite-packagespyvisa-1.8-py2.7.eggpyvisaresourcesmessagebased.py", line 306, in read_raw
    chunk, status = self.visalib.read(self.session, size)
  File "C:Anaconda2libsite-packagespyvisa-1.8-py2.7.eggpyvisactwrapperfunctions.py", line 1582, in read
    ret = library.viRead(session, buffer, count, byref(return_count))
  File "C:Anaconda2libsite-packagespyvisa-1.8-py2.7.eggpyvisactwrapperhighlevel.py", line 188, in _return_handler
    raise errors.VisaIOError(ret_value)

pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.

每次我尝试读取值时都会发生此超时错误。我还加了一个更大的暂停时间,但什么都没有,我徒劳地等了几分钟。你知道这个问题吗?

您需要匹配您的波特率。在您的34970A或pyVisa的属性中。

签证的默认金额是9600。

https://buildmedia.readthedocs.org/media/pdf/pyvisa/master/pyvisa.pdf

这里有一个例子,如果你想把它改为115200,34970A上的最高波特率。

inst = rm.open_resource('ASRL4::INSTR')
inst.baud_rate = 115200

尝试将RS232设置协议更改为XON/XOFF。

相关内容

  • 没有找到相关文章