资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过SCPI指令查询Keysight双向直流电源列表模式是否支持步进时间累加?

2026-03-06 09:35:06  点击:

  要通过SCPI指令查询Keysight双向直流电源在列表模式下是否支持步进时间累加,需结合设备型号的编程手册,使用以下核心指令进行验证:

  一、核心查询指令

  查询列表模式是否启用

  scpi

  SOURce:LIST:FUNCtion?

  返回值:ON(启用)或 OFF(未启用)。

  作用:确认电源是否处于列表模式。

  查询步进时间控制方式

  若支持步进时间累加,需通过以下指令查询时间参数:

  scpi

  SOURce:LIST:STEP:TIME? # 查询当前步进时间(单位:秒)

  SOURce:LIST:STEP:TIME:ACCumulate? # 查询是否支持累加(部分型号可能支持)

  返回值示例:

  若支持累加,可能返回 ON 或累加模式标识(如 ACCUMulate)。

  若不支持,可能返回 OFF 或错误代码(如 -400 参数错误)。

  查询序列总步数与当前步数

  scpi

  SOURce:LIST:COUNt? # 查询序列总步数

  SOURce:LIST:ADVance:COUNter? # 查询当前步数

  作用:结合步进时间计算总运行时间,验证是否累加。

  二、验证步进时间累加功能

  设置列表模式并启用

  scpi

  SOURce:LIST:FUNCtion ON

  配置步进时间参数

  设置每步步进时间(例如1秒):

  scpi

  SOURce:LIST:STEP:TIME 1.0

  若支持累加,尝试启用累加模式(需参考手册确认指令):

  scpi

  SOURce:LIST:STEP:TIME:ACCumulate ON # 假设指令存在

  运行序列并观察时间行为

  启动序列:

  scpi

  INITiate:IMMediate

  查询当前步数和总运行时间(需通过其他指令或日志记录):

  scpi

  SOURce:LIST:ADVance:COUNter? # 当前步数

  # 总时间需通过步数×步进时间计算(若累加,时间应递增)

  三、厂商差异与指令扩展

  Keysight N6700系列:

  支持通过 SOURce:LIST:STEP:TIME? 查询步进时间,但需参考手册确认是否支持累加。

  示例指令:

  scpi

  SOURce:LIST:STEP:TIME:TRIGger:SOURce? # 查询触发源(可能间接关联累加功能)

  Keysight E36300系列:

  若支持列表模式,需通过 SOURce:LIST:STATe? 查询状态,但累加功能可能受限。

  四、错误处理与调试

  常见错误代码:

  -400:参数超出范围(如查询未启用的列表模式)。

  -350:指令语法错误(如拼写错误)。

  -107:序列未启用时查询状态。

  调试建议:

  先确认列表模式已启用,再查询步进时间参数。

  若指令返回错误,检查设备型号是否支持该功能(参考手册)。

  使用日志记录连续查询结果,分析步进时间是否递增。

  五、完整Python脚本示例(PyVISA)

  python

  import pyvisa

  # 连接电源

  rm = pyvisa.ResourceManager()

  power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际地址

  # 查询列表模式状态

  is_list_active = power_supply.query("SOURce:LIST:FUNCtion?").strip() == "ON"

  print(f"列表模式是否启用: {is_list_active}")

  if is_list_active:

  try:

  # 查询步进时间(假设支持)

  step_time = power_supply.query("SOURce:LIST:STEP:TIME?").strip()

  print(f"当前步进时间: {step_time}秒")

  # 尝试查询累加功能(需参考手册确认指令)

  # 以下为假设指令,实际可能不同

  is_accumulate = power_supply.query("SOURce:LIST:STEP:TIME:ACCumulate?").strip() == "ON"

  print(f"是否支持步进时间累加: {is_accumulate}")

  except pyvisa.VisaIOError as e:

  print(f"查询失败(可能不支持该功能): {e}")

  else:

  print("列表模式未启用,请先配置并启动序列。")

  # 关闭连接

  power_supply.close()