针对 Agilent/Keysight 双向直流电源(如 N6700/N7900 系列),“序列延时时间”在 SCPI 语境下通常指 “序列步进之间的驻留时间(Dwell Time)”,即每个电压/电流点保持的时间。请注意:在 Keysight 电源的 List 模式中,没有名为 LIST:DELay的通用指令(该指令通常存在于信号源中),查询延时时间必须使用 LIST:DWELl 命令。
1. 核心查询指令:获取驻留时间(Dwell Time)
2. 指令详解与常见误区
为什么是 DWELl而不是 DELay?
LIST:DWELl(驻留):指序列模式(List Mode)中,输出停留在某个设定值上的持续时间。这是你通常想查询的“步进延时”。
OUTP:DEL:RISE/FALL(延迟):指通道开关的延迟(Turn-on/Turn-off Delay),用于多通道上电/下电排序,与序列内部步进无关。
TRIGger:DELay:指接收到触发信号后到开始动作的触发延迟,通常用于同步外部设备。
如果你误用了 LIST:DELay?,仪器会报错 -221. "Settings conflict"。
3. 完整查询流程(Python/PyVISA 示例)
以下代码演示如何安全地查询并解析序列的延时时间数组:
import pyvisa
rm = pyvisa.ResourceManager()
psu = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR') # 替换为你的地址
# 1. 查询驻留时间列表
dwell_string = psu.query('SOUR:LIST:DWELl? (@1)').strip()
# 返回值类似: "0.001.0.002.0.001"
# 2. 转换为浮点数列表
dwell_list = [float(x) for x in dwell_string.split(',')]
print(f"序列延时时间列表 (秒): {dwell_list}")
# 输出: [0.001. 0.002. 0.001]
# 3. 查询最小允许值(边界检查)
min_dwell = float(psu.query('SOUR:LIST:DWELl? MIN, (@1)'))
print(f"硬件最小驻留时间: {min_dwell} s")
# 4. 验证设置是否合法(可选)
if any(t < min_dwell for t in dwell_list):
print("警告:有步进延时小于硬件极限,实际输出可能被钳位!")
4. 特殊情况:查询“触发延迟”(Trigger Delay)
如果你的本意是查询“从收到触发信号到序列开始执行”的延迟(这在 Keysight 电源中不常见,通常默认为 0),指令如下:
/* 查询触发延迟(通常返回 0) */
TRIGger:DELay? (@1)