Python SCPI避免固定延迟(同步问题)

Python SCPI避免固定延迟(同步问题),python,Python,我使用的是安捷伦4155C半导体参数分析仪。我遇到控制器/设备同步问题。我正在使用python PyVisa来向其写入SCPI命令。我还使用PyVisa的query命令直接从机器读取数据 问题是,正如许多人可能知道的,如果在系统完成所有操作之前向系统发送查询命令,系统会抛出超时/查询中断错误。我阅读了本手册()(特别是第10-12页),发现人们使用带有*CLS、*OPC、以及带有sleep命令的*ESR?命令的for循环手动检查所有操作是否完成 下面的代码是我试图运行的代码的一部分。手册中建议的

我使用的是安捷伦4155C半导体参数分析仪。我遇到控制器/设备同步问题。我正在使用python PyVisa来
向其写入
SCPI命令。我还使用PyVisa的
query
命令直接从机器读取数据

问题是,正如许多人可能知道的,如果在系统完成所有操作之前向系统发送查询命令,系统会抛出超时/查询中断错误。我阅读了本手册()(特别是第10-12页),发现人们使用带有
*CLS
*OPC
、以及带有sleep命令的
*ESR?
命令的for循环手动检查所有操作是否完成

下面的代码是我试图运行的代码的一部分。手册中建议的解决方案没有成为问题,因为我无法在不超时的情况下发送
*ESR?
查询命令

注意:超时错误会在
instr.query(“*ESR?”)
行中弹出

...
instr.write(":FORM:DATA ASC")

instr.write("*CLS")
instr.write("*OPC")
ESRvalue = 0

while (ESRvalue & 1) == 0:
    instr.query("*ESR?")
    time.sleep(0.01)

I_unicode_data = instr.query(":DATA? 'ID' ")

V_unicode_data = instr.query(":DATA? 'VD' ")

I_raw_data = I_unicode_data.encode('utf-8')

V_raw_data = V_unicode_data.encode('utf-8')
...

您可以尝试
instr.query(“:FORM:DATA ASC;*STB?”)
,该查询在操作完成后应返回。
*STB?
的值还应指示是否发生了错误。您可以尝试在操作完成时返回的
指令查询(“:FORM:DATA ASC;*STB?”)
*STB?
的值还应指示是否发生了某些错误。