我正在尝试使用 PyVisa 使用其 FLEX 命令集来控制 Agilent 4156C。通信似乎工作正常,因为我可以使用 *IDN? 查询仪器?并读取状态字节。我还认为我现在正在正确设置电压扫描,因为当我执行 Python 脚本时,我在 4156 的屏幕上看不到任何错误。我的问题是,当我尝试使用 RMD 读取测量数据时?命令,仪器无响应,超时导致程序错误。这是我目前的程序:
import visa
rm = visa.ResourceManager()
inst = rm.open_resource('GPIB0::17::INSTR')
print(inst.query('*IDN?'))
inst.timeout = 6000
print(inst.write('US'))
print(inst.write('FMT 1,1'))
# Set short integration time
print(inst.write('SLI 1'))
# Enable SMU 3
print(inst.write('CN 3'))
# Set measurement mode to sweep (2) on SMU 3
print(inst.write('MM 2,3'))
# Setup voltage sweep on SMU 3
#print(inst.write('WV 3,3,0,0.01,0.1,0.01'))
print(inst.write('WV 3,3,0,-0.1,0.1,0.01,0.01,0.001,1'))
# Execute
print(inst.write('XE'))
# Query output buffer
print("********** Querying RMD **********")
print(inst.write('RMD? 0'))
print(inst.read())
print("********** Querying STB **********")
print(inst.query('*STB?'))
当我在写入'RMD? 0',或者如果我查询该命令。我觉得我遗漏了一些简单的东西,但无法在可用的 Agilent 或 PyVisa 文档中找到它。任何帮助将不胜感激。我正在使用 LabView 附带的标准 NI VISA(我提到这一点是因为我遇到了这篇文章)。