资讯中心

联系我们

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

如何用SCPI指令查询双向直流电源输出电流序列的频率?

2025-12-24 09:48:27  点击:

若双向直流电源的电流序列通过列表模式(LIST Mode)编程实现,且频率由每个序列点的持续时间(dwell time)间接决定(例如固定点数下总时间=单点时间×点数,频率=1/总周期),可通过以下SCPI指令查询序列参数并计算频率:

一、查询序列点数量

指令

plaintextPROG:LIST:COUNt?

功能:返回序列中定义的步进点总数(N)。
示例
发送 
PROG:LIST:COUNt?,若返回 50,表示序列包含50个步进点。

二、查询序列点持续时间(关键参数)

指令

plaintextPROG:LIST:CURR:DATA<n>?

功能:返回第n个序列点的电流值与持续时间(I_n, T_n),其中T_n单位为秒(或电源支持的单位)。
示例
发送 
PROG:LIST:CURR:DATA1?,若返回 -5, 2,表示第1点电流为-5A,持续2秒。

三、计算频率(间接方法)

若序列以固定点数循环运行,且总周期为所有点持续时间之和,则频率可通过以下步骤计算:

  1. 查询所有点持续时间:遍历所有点(1到N),记录每个点的T_n

  2. 计算总周期

Ttotal=n=1NTn
  1. 计算频率

f=Ttotal1

示例
若序列有3个点,持续时间分别为2秒、1秒、3秒,则总周期为6秒,频率为 610.167Hz

四、特殊情况处理

  1. 若电源支持直接频率设置(如任意波形模式):
    • 查询指令可能为:
      plaintextPROG:ANYW:CURR:FREQ?
    • 功能:直接返回电流序列的重复频率(单位:Hz)。
  2. 若序列以连续触发模式运行**:
    • 需结合触发间隔(TRIG:DELay?)计算频率:
      [
      f = frac{1}{text{TRIG:DELay? 返回值}}
      ]

五、自动化脚本示例(Python)

pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 查询序列点数量power.write("SYST:REM")  # 确保远程模式count = int(power.query("PROG:LIST:COUNt?"))# 查询所有点持续时间并计算总周期total_time = 0for n in range(1, count + 1):    _, duration = power.query(f"PROG:LIST:CURR:DATA{n}?").split(",")    total_time += float(duration)# 计算频率frequency = 1 / total_time if total_time > 0 else 0print(f"序列频率: {frequency:.3f} Hz")power.close()

六、注意事项

  1. 指令兼容性:不同厂商设备可能使用不同指令(如Keysight可能用SOURce:LIST:CURRent:DATA?)。
  2. 单位确认:持续时间单位可能为毫秒(ms)或秒(s),需参考设备手册。
  3. 错误处理:若指令报错(如-400 Parameter Error),检查序列是否处于激活状态或参数范围是否超限。