国产呦萝小初合集密码

资讯中心

联系我们

国产呦萝小初合集密码·(中国)官方网站
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@qihuisz.com

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

2026-01-04 09:23:58  点击:

要使用SCPI指令查询双向直流电源输出电流序列的频率和占空比,需根据设备支持的编程模式(如LIST或WAVE模式)选择对应的指令,具体如下:

1. 查询频率相关指令

若设备支持通过WAVE模式LIST模式设置电流序列的频率,通常使用以下指令结构:

  • WAVE模式(适用于动态波形编程):

    										scpiPROG:WAVE:FREQ?  ; 查询当前波形频率(单位:Hz)

    或通过步进参数间接计算频率:

    										scpiPROG:WAVE:SEGM?  ; 查询波形步数PROG:WAVE:COUN?  ; 查询循环次数
    PROG:WAVE:VOLT:DATA1? ; 查询单步电压/电流参数(含时间信息)

    频率计算
    若单步时间为 ( T_{text{step}} )(通过
    PROG:WAVE:VOLT:DATA#?  返回的第二个参数获取),总步数为 ( N ),循环次数为 ( C ),则频率为:
    [
    f = frac{1}{T_{text{step}} times N times C}
    ]

  • LIST模式(适用于静态序列编程):

    										scpiPROG:LIST:FREQ?  ; 查询列表模式频率(若设备支持直接设置)

    或通过步进时间计算:

    										scpiPROG:LIST:CURR:DATA1? ; 查询单步电流参数(含保持时间)

    频率计算
    若单步保持时间为 ( T_{text{hold}} ),总步数为 ( N ),则频率为:
    [
    f = frac{1}{T_{text{hold}} times N}
    ]

2. 查询占空比相关指令

占空比通常与脉冲波形LIST模式中的开关状态相关,需结合具体模式查询:

  • WAVE模式(脉冲波形)

    										scpiPROG:WAVE:DUTY?  ; 查询当前波形占空比(单位:%)

    或通过电压/电流参数计算:

    										scpiPROG:WAVE:VOLT:DATA1? ; 查询单步参数(含高电平时间)

    占空比计算
    若高电平时间为 ( T_{text{high}} ),周期为 ( T )(通过频率计算得到),则占空比为:
    [
    D = frac{T_{text{high}}}{T} times 100%
    ]

  • LIST模式(开关状态序列)

    										scpiPROG:LIST:CURR:DATA1? ; 查询单步电流参数(含开关状态)

    占空比计算
    若序列中高电流状态总时间为 ( T_{text{on}} ),总周期为 ( T_{text{total}} ),则占空比为:
    [
    D = frac{T_{text{on}}}{T_{text{total}}} times 100%
    ]

3. 通用查询指令

若设备支持通用测量功能,可直接查询输出电流的实时参数:

								scpiMEAS:CURR:DC?  ; 查询直流电流值(静态)MEAS:CURR:AC?  ; 查询交流电流值(动态,需结合示波器功能)

但需注意,此类指令通常无法直接返回频率和占空比,需通过外部计算或设备特定指令实现。

4. 示例指令序列

以下是一个完整的查询流程示例(假设设备支持WAVE模式):

								scpi; 1. 进入WAVE模式PROG:WAVE:INIT
; 2. 设置查询参数(若需)
PROG:WAVE:MODE CURR  ; 设置为电流模式
; 3. 查询频率
FREQ_VAL? = QUERY("PROG:WAVE:FREQ?")
; 4. 查询占空比
DUTY_VAL? = QUERY("PROG:WAVE:DUTY?")
; 5. 退出模式(可选)
PROG:WAVE:ABORT

实际代码(Python示例):

								pythonimport serialdef query_power_supply(port, command):    ser = serial.Serial(port, baudrate=9600, timeout=1)    ser.write(f"{command}n".encode())    response = ser.readline().decode().strip()    ser.close()    return response# 查询频率和占空比freq = query_power_supply("COM3", "PROG:WAVE:FREQ?")duty = query_power_supply("COM3", "PROG:WAVE:DUTY?")print(f"Frequency: {freq} Hz, Duty Cycle: {duty}%")

注意事项

  1. 设备差异:不同厂商的双向直流电源可能支持不同的SCPI指令集,需参考具体设备手册(如ITECH、Chroma等品牌)。
  2. 模式匹配:确保查询指令与当前编程模式(WAVE/LIST/BURST等)匹配。
  3. 单位确认:频率单位可能为Hz或kHz,占空比单位通常为%。
  4. 错误处理:若指令无效,设备可能返回错误码(如 -222 "Data Out Of Range" ),需结合手册排查。


m wap