使用SCPI指令获取双向直流电源的测量值(如电压、电流、功率等)需通过查询(Query)指令实现,具体步骤如下:
双向直流电源通常支持以下测量值查询指令:
| 测量类型 | SCPI指令 | 说明 |
|---|---|---|
| 电压 |
MEASure:VOLTage[:DC]?
|
查询直流电压(单位:伏特V) |
| 电流 |
MEASure:CURRent[:DC]?
|
查询直流电流(单位:安培A) |
| 功率 |
MEASure:POWer[:DC]?
|
查询直流功率(单位:瓦特W) |
| 电阻 |
MEASure:RESistance?
|
查询负载电阻(单位:欧姆Ω) |
| 多参数查询 |
MEASure:SCALar:ALL?
|
一次性查询所有标量测量值(电压、电流、功率等) |
确保电源已通过GPIB、RS-232、LAN或USB连接至控制器(如PC),并确认SCPI通信正常。例如:
pythonimport pyvisarm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 示例:LAN连接power_supply.query("*IDN?") # 查询设备标识,验证通信
查询电压:
scpiMEAS:VOLT:DC?
示例响应:
+12.34567890
(单位:V)
查询电流:
scpiMEAS:CURR:DC?
示例响应:
-1.23456789
(单位:A,负值表示反向电流)
查询功率:
scpiMEAS:POW:DC?
示例响应:
-15.23456789
(单位:W,负值表示电源吸收功率)
scpiMEAS:SCAL:ALL?
示例响应:
+12.34567890,-1.23456789,-15.23456789
(格式:电压,电流,功率)
部分电源支持配置测量范围或分辨率:
scpiSENS:VOLT:DC:RANG 20 ; 设置电压量程为20VSENS:CURR:DC:RES 0.001 ; 设置电流分辨率为1mA
pythonimport pyvisa# 1. 连接设备rm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 2. 查询单个测量值voltage = power_supply.query("MEAS:VOLT:DC?")current = power_supply.query("MEAS:CURR:DC?")power = power_supply.query("MEAS:POW:DC?")print(f"电压: {voltage.strip()} V")print(f"电流: {current.strip()} A")print(f"功率: {power.strip()} W")# 3. 查询多参数(一次性获取)all_values = power_supply.query("MEAS:SCAL:ALL?")v, i, p = all_values.split(',')print(f"多参数查询 - 电压: {v} V, 电流: {i} A, 功率: {p} W")# 4. 关闭连接power_supply.close()
mV
、
mA
),需查阅手册。
-1.23A
),需在代码中正确处理符号。
-400
或
Invalid Query
),检查:
MEAS:VOLT?
vs
MEAS:VOLT:DC?
)。
INITiate:CONT OFF
+
TRIGger:SOUR IMM
)减少延迟。
scpiMEAS:VOLT:DC? (@1) ; 查询通道1电压MEAS:CURR:DC? (@2) ; 查询通道2电流
| 品牌 | 电压查询指令 | 电流查询指令 | 多参数查询指令 |
|---|---|---|---|
| Keysight |
MEAS:VOLT:DC?
|
MEAS:CURR:DC?
|
MEAS:SCAL:ALL?
|
| ITECH |
MEAS:VOLT?
|
MEAS:CURR?
|
MEAS:MULT?
|
| Chroma |
MEAS:VOLT:DC?
|
MEAS:CURR:DC?
|
FETCH:SCAL?
|
| Rigol |
MEAS:VOLT?
|
MEAS:CURR?
|
MEAS:ALL?
|
关键点:优先测试标准指令(如
MEAS:VOLT:DC?
),若不支持再查阅设备手册的专用指令。