我正试图用Pyvisa将一个Tektronix 1012B示波器连接到我的PC上。我使用的是Kubuntu20.04、PythonVersion3.9.7和PyVisaVersion1.11.3。我所做的工作如下:
>>> import pyvisa
>>> rm = pyvisa.ResourceManager()
>>> rm.list_resources()
('USB0::1689::870::C021027::0::INSTR')
>>> scope = rm.open_resource('USB0::1689::870::C021027::0::INSTR')
>>> scope.query("*IDN?")
但我得到了一条错误信息:
Traceback (most recent call last):
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa_py/protocols/usbtmc.py", line 256, in write
return self.usb_send_ep.write(data)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/usb/core.py", line 408, in write
return self.device.write(self, data, timeout)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/usb/core.py", line 989, in write
return fn(
File "/home/pierre/anaconda3/lib/python3.9/site-packages/usb/backend/libusb1.py", line 837, in bulk_write
return self.__write(self.lib.libusb_bulk_transfer,
File "/home/pierre/anaconda3/lib/python3.9/site-packages/usb/backend/libusb1.py", line 938, in __write
_check(retval)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/usb/backend/libusb1.py", line 602, in _check
raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa/resources/messagebased.py", line 638, in query
self.write(message)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa/resources/messagebased.py", line 197, in write
count = self.write_raw(message.encode(enco))
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa/resources/messagebased.py", line 157, in write_raw
return self.visalib.write(self.session, message)[0]
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa_py/highlevel.py", line 543, in write
written, status_code = self.sessions[session].write(data)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa_py/usb.py", line 179, in write
count = self.interface.write(data)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa_py/protocols/usbtmc.py", line 436, in write
bytes_sent += raw_write(data)
File "/home/pierre/anaconda3/lib/python3.9/site-packages/pyvisa_py/protocols/usbtmc.py", line 258, in write
raise ValueError(str(e))
ValueError: [Errno 110] Operation timed out
当我使用另一种示波器时,这个非常简单的代码工作得很好。当我在Windows下使用Pyvisa而不是Kubuntu时,它也能工作。
有人能帮我解决这个烦人的问题吗?
发布于 2022-05-19 16:43:53
在Tek的论坛上查看Tek的这个链接到一个帖子。他们建议使用pyvisa-py
本地Python后端。此命令指示使用pyvisa-py
后端
rm = visa.ResourceManager('@py')
而你的安装
pip install pyvisa-py
我没有Ubuntu机器在我的指尖,所以我不知道是否有软件包可从apt安装。
发布于 2022-05-23 12:38:15
在SUSE中连接我的TBS 1064会因写入权限而出现问题。这会导致像ask()
这样的请求超时。这很可能是由于udev/规则,虽然我没有弄清楚到底该怎么做才能使它始终正常工作。目前,必须为每个USB重新连接设置写权限(admin),但这样才能正常工作。其他设备没有这个问题,这只是linux问题。
https://stackoverflow.com/questions/72276333
复制相似问题