国产呦萝小初合集密码

资讯中心

联系我们

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

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

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

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

一、核心查询指令

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

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

								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 指令设置)。


m wap