1

我尝试通过以下方式对我的 LAB 仪器进行简单查询:

>>> import visa
>>> rm = visa.ResourceManager()
>>> viavi = rm.open_resource("TCPIP0::10.0.2.76::5001::SOCKET")
>>> print(viavi.query("*IDN?"))

结果是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python35\lib\site-packages\pyvisa\resources\messagebase
d.py", line 407, in query
    return self.read()
  File "C:\Program Files\Python35\lib\site-packages\pyvisa\resources\messagebase
d.py", line 332, in read
    message = self.read_raw().decode(enco)
  File "C:\Program Files\Python35\lib\site-packages\pyvisa\resources\messagebase
d.py", line 306, in read_raw
    chunk, status = self.visalib.read(self.session, size)
  File "C:\Program Files\Python35\lib\site-packages\pyvisa\ctwrapper\functions.p
y", line 1582, in read
    ret = library.viRead(session, buffer, count, byref(return_count))
  File "C:\Program Files\Python35\lib\site-packages\pyvisa\ctwrapper\highlevel.p
y", line 188, in _return_handler
    raise errors.VisaIOError(ret_value)
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before op
eration completed.

根据我到目前为止所学到的(从其他人的经验中)。此超时错误与线路终止(“\n”)有关。我怎么解决这个问题 ?

4

1 回答 1

2

我发现这都与 read_termination 有关。我的 LAB 仪器只是通过“\n”终止了它的响应。虽然我的脚本一直在寻找 '\r'。

于 2017-03-13T09:53:35.170 回答