我正在尝试使用 PyVISA 在 GPIB 上控制仪器(非常旧的霍尔测量设备)。我知道它适用于labview,在那里我发现了哪些地址可以使用跟踪器执行什么操作以及一些基本命令,但没有任何乐趣。我被要求在 python 3 中编写数据采集和分析代码。
到目前为止,我已经能够识别地址:
import visa
rm = visa.ResourceManager()
print(rm.list_resources())
>>>('ASRL1::INSTR', 'GPIB0::3::0::INSTR', 'GPIB0::3::1::INSTR', 'GPIB0::3::3::INSTR', 'GPIB0::3::4::INSTR', 'GPIB0::3::5::INSTR', 'GPIB0::3::6::INSTR', 'GPIB0::3::7::INSTR', 'GPIB0::3::8::INSTR', 'GPIB0::3::9::INSTR', 'GPIB0::3::10::INSTR')
但是,当我尝试使用任何“wave”或实际上的测量命令字符串(找到跟踪 labview I/O)进行查询时,我总是遇到超时错误。
instr3_8 = rm.open_resource('GPIB0::3::8::INSTR')
instr3_8.query("*IDN?")
>>>VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
这是我尝试从仪器中读取的所有内容的结果。
(PyVISA 和 GPIB 与 Keithley 源仪表 IDN 查询一起工作,所以我知道后端正在工作。该仪器是 bio-rad HL 5200,对任何人都有用,我发现没有手册,几乎没有网上参考。)
这是读取磁铁位置的labview框图的图像。从那以后,我可以通过使用 pyvisa 编写来改变位置,但阅读仍然会超时,github 上的类似问题让我相信终止字符是错误的,但我还没有修复。