无法使用python(visa)连接到万用表

时间:2018-11-13 07:17:12

标签: python serial-port visa

我正在尝试通过python与万用表安捷伦34401a通信。我使用签证库。我的资料很简单:

import visa
rm = visa.ResourceManager()
list_re = rm.list_resources()
print(list_re)
inst_v = rm.open_resource('ASRLCOM1::INSTR')
inst_v.write('SYSTEM:REMOTE')
inst_v.write('*CLS')
print( inst_v.query('*IDN?'))

在最后一行之后出现错误:

E:\soft\py\test>open.py
('ASRLCOM1::INSTR', 'ASRLCOM2::INSTR')
Traceback (most recent call last):
  File "E:\soft\py\test\open.py", line 8, in <module>
    print( inst_v.query('*IDN?'))
  File "E:\soft\py\lib\site-packages\pyvisa\resources\messagebased.py", line 569, in query
    return self.read()
  File "E:\soft\py\lib\site-packages\pyvisa\resources\messagebased.py", line 413, in read
    message = self._read_raw().decode(enco)
  File "E:\soft\py\lib\site-packages\pyvisa\resources\messagebased.py", line 386, in _read_raw
    chunk, status = self.visalib.read(self.session, size)
  File "E:\soft\py\lib\site-packages\pyvisa-py\highlevel.py", line 350, in read
    raise errors.VisaIOError(ret[1])
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.

如果我在控制台中手动编写每一行,我会看到:

>>> inst_v.write('SYSTEM:REMOTE')
(15, <StatusCode.success: 0>)

>>> inst_v.write('SYST:REM')
(10, <StatusCode.success: 0>)

这是什么意思,我的问题在哪里?我通过艾灸uport 1250(rs-232)与aglent连接。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您是否尝试过miniterm.py代码来查找设备的确切地址?我发现在设备之间来回通信和测试发送命令很有用。

miniterm.py on GitHub

查看是否可以获取有关设备的更多信息。您还可以打开调试以获取有关设备运行情况的更多详细信息。您还可以确认正确的波特率,停止位等。甚至可以测试CTS / DTR硬件控件(如果有)。它还可以确保您实际上正在获得对查询的数据答复。

RAH