通过SCPI命令查询双向直流电源的当前配置参数,需根据具体参数类型(如电压、电流、保护设置等)使用对应的查询指令。以下是详细步骤和示例:
一、核心查询指令分类
1. 基础输出参数
查询输出电压
scpiSOURce:VOLTage?
示例响应:+12.50000000E+00(表示当前电压为12.5V)
查询输出电流
scpiSOURce:CURRent?
示例响应:+2.00000000E+00(表示当前电流为2A)
查询输出状态(开/关)
scpiOUTPut:STATe?
示例响应:1(表示输出开启)或 0(表示输出关闭)
2. 保护设置参数
查询过压保护阈值
scpiVOLTage:PROTection:LEVel?
示例响应:+15.00000000E+00(表示过压保护阈值为15V)
查询过流保护阈值
scpiCURRent:PROTection:LEVel?
示例响应:+3.00000000E+00(表示过流保护阈值为3A)
查询保护功能启用状态
scpiVOLTage:PROTection:STATe? // 过压保护是否启用CURRent:PROTection:STATe? // 过流保护是否启用
示例响应:1(启用)或 0(禁用)
3. 测量参数(实际输出值)
查询实际输出电压
scpiMEASure:VOLTage?
示例响应:+12.48000000E+00(实际输出电压为12.48V)
查询实际输出电流
scpiMEASure:CURRent?
示例响应:+1.98000000E+00(实际输出电流为1.98A)
4. 模式与功能设置
查询工作模式(恒压/恒流)
scpiSOURce:FUNCtion?
示例响应:"VOLT"(恒压模式)或 "CURR"(恒流模式)
查询远程控制状态
scpiSYSTem:REMote?
示例响应:1(远程控制模式)或 0(本地控制模式)
二、操作步骤
连接设备
通过串口、USB、以太网等接口将电源与计算机连接,并配置正确的通信参数(如波特率、数据位等)。
发送查询命令
使用串口调试工具(如PuTTY、Tera Term)或编程语言(如Python)发送SCPI命令。
Python示例:
pythonimport serialser = serial.Serial('COM3', 9600. timeout=1)ser.write(b'SOURce:VOLTage?n') # 查询电压voltage = ser.readline().decode().strip()print(f"当前电压: {voltage}V")ser.close()
解析响应
电源返回的响应可能是ASCII字符串或二进制数据,需根据设备文档解析。
示例:响应 +1.23450000E+01 表示 12.345V。
三、注意事项
命令终止符
多数SCPI命令需以换行符(n)或回车符(r)终止,具体参考设备手册。
单位与格式
响应值可能包含科学计数法(如 E+00),需转换为实际数值。
部分设备支持单位查询(如 SOURce:VOLTage:UNIT?)。
设备差异
不同厂商的电源可能支持不同的SCPI子集。例如:
Keysight设备可能使用 SYSTem:LANGuage "SCPI" 确认语言模式。
Chroma设备可能支持 INSTrument:NSELect 1 选择仪器通道。
错误处理
若命令无效,电源可能返回错误代码(如 -100."Command error")。
查询错误队列:SYSTem:ERRor?。
四、扩展查询场景
查询所有支持命令
scpiSYSTem:CATalog?
示例响应:返回设备支持的SCPI命令列表。
查询设备信息
scpi*IDN?
示例响应:"Manufacturer,Model,SerialNumber,FirmwareVersion"。
查询配置保存状态
scpiSAVe:STATe?
示例响应:1(已保存配置)或 0(未保存)。