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