要使用SCPI指令查询双向直流电源输出电流序列的当前状态,需结合序列模式(List Mode)的相关指令,通过查询当前执行的序列点索引或状态寄存器来实现。以下是具体步骤和指令说明:
查询当前序列点索引:
SOURce:LIST:INDEx?
+1
(表示当前执行到第1个序列点)。
查询序列点参数:
SOURce:LIST:CURRent:DATA?
(
为序列点序号)
SOURce:LIST:CURRent:DATA1?
(查询第1点的电流值与时间)。
查询序列状态(部分型号支持):
STATus:OPERation:EVENt?
或
STATus:QUEStionable:EVENt?
+0
(无错误)或错误代码(如
-400
表示参数错误)。
初始化与复位:
SYSTem:REMote
:进入远程模式。
*RST
:复位设备(可选)。
配置序列参数:
SOURce:LIST:COUNt 3
:设置序列包含3个点。
SOURce:LIST:CURRent:DATA1 -5, 2
:第1点电流-5A,持续2秒。
SOURce:LIST:CURRent:DATA2 0, 1
:第2点电流0A,持续1秒。
SOURce:LIST:CURRent:DATA3 10, 3
:第3点电流10A,持续3秒。
启用序列模式:
SOURce:LIST:FUNCtion ON
:激活序列功能。
启动输出:
OUTPut:STATe ON
:开启输出,电源将按序列输出电流。
查询当前状态:
SOURce:LIST:INDEx?
:查询当前执行的序列点序号。
SOURce:LIST:CURRent:DATA?
:查询指定序列点的参数(如
SOURce:LIST:CURRent:DATA1?
)。
STATus:OPERation:EVENt?
:查询操作状态寄存器(判断序列是否正常运行)。
Keysight N6700系列:
SOURce:LIST:CURRent
直接定义序列点,如
SOURce:LIST:CURRent -5, 0, 10
(需结合时间参数)。
SOURce:LIST:GOTO 2
(跳转到第2点)。
ITECH IT6000系列:
LIST:CURR:DATA1 -5, 2000
(2000=200ms)。
LIST:JUMP:INDEx 2
(跳转到第2点)。
Chroma 62000P系列:
PROG:LIST:CURR:DATA
定义序列点,如
PROG:LIST:CURR:DATA1 -5, 2
(第1点-5A,2秒)。
错误处理:
SYSTem:ERRor?
。
-400
(参数超出范围)、
-107
(序列未启用时查询状态)。
自动化脚本示例(Python):
pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际IP地址# 配置序列power.write("SYST:REM")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:CURR:DATA1 -5, 2")power.write("SOUR:LIST:CURR:DATA2 0, 1")power.write("SOUR:LIST:CURR:DATA3 10, 3")power.write("SOUR:LIST:FUNC ON")# 启动输出power.write("OUTP ON")# 查询当前状态current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}")# 查询第1点参数data1 = power.query("SOUR:LIST:CURR:DATA1?")print(f"第1点参数: {data1.strip()}")power.close()