我正在尝试使用 pyVisa 控制 USB 仪器 (Keithley 2450),但出现错误。我正在遵循 pyVisa website 上的简单示例
发送“服务请求”后遇到问题
keithley.wait_for_srq()
它抛出一个错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'USBInstrument' object has no attribute 'wait_for_srq'
看来使用该命令我无法通过 USB 进行通信。我该如何通过 USB 接口(interface)与我的仪器进行远程通信? 希望你能帮我。我是 Python 和 SCPI 新手。
最佳答案
我刚刚尝试了我的 Pyvisa,它也有同样的问题。我目前使用的是 Pyvisa 版本 1.8
。
我认为这是因为当您打开设备时,您使用了usb
接口(interface)而不是
gpib`接口(interface)。
如果你去wait_for_srq
的来源在pyvisa中,你可以看到它只属于GPIBInstrument
。
与wait_on_event
不同,它直接封装在 NI-VISA C 库中,这意味着该方法适用于所有类型的仪器(GPIBInstrument
、USBInstrument
)。
因此,您可能可以使用函数wait_for_srq
,并将event_type
设置为服务请求
(我没有从我这边尝试) .
需要注意的是,SRQ
(服务请求)是由 IEEE 488 标准定义的,它是专用于 GPIB 上的信令和控制的少数几条线路之一。这意味着 SRQ
只在 GPIB 接口(interface)中可用,但在 USB 中不可用。
关于Python:具有 USB 连接的 PyVisa -> wait_for_srq() 还是 wait_on_event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537927/