资讯中心

联系我们

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

如何用SCPI指令查询双向直流电源输出电压范围?

2025-12-16 09:24:11  点击:

使用SCPI指令查询双向直流电源的输出电压范围,需通过标准查询命令(QUERY)结合电压相关的参数(如VOLTageLIMitRANGe)实现。以下是具体步骤和指令示例,涵盖不同厂商设备的通用逻辑:

一、核心查询指令

1. 直接查询额定电压范围

多数双向直流电源支持通过MEASureSOURce子系统查询输出电压的额定范围(即设备硬件支持的最大/最小值):

plaintextSOUR:VOLT:RANGe?       ; 查询当前设置的电压范围(部分设备支持)SOUR:VOLT:LIMit:MAX?   ; 查询输出电压上限
SOUR:VOLT:LIMit:MIN?   ; 查询输出电压下限

示例响应

  • 若设备支持范围查询:+30,-30(表示±30V范围)
  • 若设备分开查询上下限:+30(上限),-30(下限)

2. 查询当前输出电压设置值

若需确认当前设置的输出电压(非硬件范围),使用:

plaintextSOUR:VOLT?             ; 查询当前输出电压设置值

示例响应+12.5(当前设置为12.5V)

3. 查询双向模式下的正负范围

双向电源通常支持正负电压输出,需明确查询正/负范围的指令:

plaintextSOUR:VOLT:POS:RANGe?  ; 查询正向电压范围(如0~+30V)SOUR:VOLT:NEG:RANGe?  ; 查询负向电压范围(如0~-30V)

示例响应

  • 正向:+30,0(0到+30V)
  • 负向:0,-30(0到-30V)

二、分步骤操作流程

  1. 建立设备连接
    通过VISA、TCP/IP、USB等接口连接电源,并发送识别查询(可选):

    plaintext*IDN?                ; 查询设备型号(确认支持双向功能)

    示例响应"Agilent,N6705B,0,1.04"(设备型号及固件版本)

  2. 查询电压范围参数
    根据设备支持情况,选择以下指令之一:

    • 通用方法(适用于多数设备):
      plaintextSOUR:VOLT:LIMit:MAX?SOUR:VOLT:LIMit:MIN?
    • 双向专用方法(如Keysight N6700系列):
      plaintextSOUR:VOLT:POS:RANGe?SOUR:VOLT:NEG:RANGe?
    • 简化方法(部分设备直接返回范围):
      plaintextSOUR:VOLT:RANGe?
  3. 解析响应数据
    根据设备返回的格式提取数值。例如:

    • 响应为+30,-30 → 范围:-30V至+30V
    • 响应为+30(仅上限) → 需结合MIN?查询下限,或查阅手册确认默认下限(如0V)。

三、厂商特定指令示例

1. Keysight(是德科技)N6700系列

plaintext*IDN?                   ; 确认设备型号SOUR:VOLT:POS:RANGe?   ; 查询正向范围(如0~+30V)
SOUR:VOLT:NEG:RANGe?   ; 查询负向范围(如0~-30V)

2. Chroma 62000P系列

plaintext*IDN?SOUR:VOLT:RANGe?       ; 查询双向范围(如-60~+60V)

3. ITECH(艾德克斯)IT6000系列

plaintext*IDN?SOUR:VOLT:LIMit:MAX?   ; 查询上限
SOUR:VOLT:LIMit:MIN?   ; 查询下限

四、完整Python脚本示例

以下脚本使用PyVISA库查询双向直流电源的电压范围,并处理常见响应格式:

pythonimport pyvisadef query_voltage_range(resource_address):    rm = pyvisa.ResourceManager()    try:        power = rm.open_resource(resource_address)        power.timeout = 2000  # 设置超时时间(毫秒)        # 查询设备标识        idn = power.query("*IDN?").strip()        print(f"设备型号: {idn}")        # 尝试通用查询方法        try:            max_volt = float(power.query("SOUR:VOLT:LIMit:MAX?").strip())            min_volt = float(power.query("SOUR:VOLT:LIMit:MIN?").strip())            print(f"电压范围: {min_volt}V 至 {max_volt}V")        except:            # 尝试双向专用查询方法            try:                pos_range = power.query("SOUR:VOLT:POS:RANGe?").strip()                neg_range = power.query("SOUR:VOLT:NEG:RANGe?").strip()                if "," in pos_range and "," in neg_range:                    pos_min, pos_max = map(float, pos_range.split(","))                    neg_min, neg_max = map(float, neg_range.split(","))                    print(f"正向范围: {pos_min}V 至 {pos_max}V")                    print(f"负向范围: {neg_min}V 至 {neg_max}V")                else:                    print("响应格式异常,请查阅手册")            except:                # 尝试简化查询方法                try:                    range_str = power.query("SOUR:VOLT:RANGe?").strip()                    if "," in range_str:                        min_volt, max_volt = map(float, range_str.split(","))                        print(f"电压范围: {min_volt}V 至 {max_volt}V")                    else:                        print("响应格式异常,请查阅手册")                except Exception as e:                    print(f"查询失败: {e}")    except Exception as e:        print(f"设备连接失败: {e}")    finally:        power.close() if 'power' in locals() else None# 使用示例(替换为实际设备地址)query_voltage_range("TCPIP0::192.168.1.100::inst0::INSTR")

五、注意事项

  1. 指令兼容性:不同厂商设备指令可能不同,需参考具体手册(如Keysight N6700手册第3章“SCPI Commands”)。
  2. 单位确认:部分设备可能返回毫伏(mV),需根据量程判断单位。
  3. 错误处理:若指令报错(如-420, "Query Unterminated"),检查指令拼写或设备是否支持该功能。
  4. 双向模式确认:确保设备已启用双向模式(部分设备需通过SOUR:FUNC:MODE BI指令设置)。