首页 > 解决方案 > 无法在 PyVisa 中读取

问题描述

我是在 stackoverflow 上写作的新手,我一直来这里查看解决方案,但我从未问过,但这一次我快疯了,我的工作依赖于它。

我需要通过 RS232 串行总线与一些使用 PyVisa 的设备进行通信,并且我已经设法发送消息,但我无法阅读。消息总是一样的:

File "c: \ Users \ User \ Desktop \ Study \ Pyvisa \ example.py", line 70, in <module>
    print (keithley.read ())
  File "C: \ Users \ User \ AppData \ Local \ Programs \ Python \ Python39 \ lib \ site-packages \ pyvisa \ resources \ messagebased.py", line 486, in read
    message = self._read_raw (). decode (enco)
  File "C: \ Users \ User \ AppData \ Local \ Programs \ Python \ Python39 \ lib \ site-packages \ pyvisa \ resources \ messagebased.py", line 442, in _read_raw
    chunk, status = self.visalib.read (self.session, size)
  File "C: \ Users \ User \ AppData \ Local \ Programs \ Python \ Python39 \ lib \ site-packages \ pyvisa_py \ highlevel.py", line 519, in read
    return data, self.handle_return_value (session, status_code)
  File "C: \ Users \ User \ AppData \ Local \ Programs \ Python \ Python39 \ lib \ site-packages \ pyvisa \ highlevel.py", line 251, in handle_return_value
    raise errors.VisaIOError (rv)
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.

我已经尝试使用 read_byte、read_termination、write_termination 以及我在互联网上看到的所有内容等等,但我没有取得任何进展。

我是 PyVisa 和 Python 的新手,但这不应该是问题。

我祈求你的无限智慧,因为我的头上再也没有头发可以扔给自己了。

我的代码很简单:

import pyvisa
rm = pyvisa.ResourceManager('@py')
rm.list_resources()
keithley = rm.open_resource('ASRL7::INSTR')

keithley.read_termination = '\r\n'
keithley.write_termination = '\r\n'

keithley.write("SYSTem:ZCHeck OFF") 

keithley.baud_rate= 9600
keithley.data_bits=8
keithley.stop_bits = pyvisa.constants.StopBits.one
keithley.parity = pyvisa.constants.Parity.none

keithley.write("READ?") 
keithley.read()  

错误来自 read()。

我最诚挚的问候!

标签: pythonpyvisa

解决方案


推荐阅读