先明确:在 N6705C+N6781A(Agilent/Keysight 双向直流电源)体系里,“输出记忆(Output Memory)触发动作的持续时间” 没有独立的 SCPI 叫 :OUTPut:MEMory:TRIGger:DURation? 这类命令。 但你要的 “触发后动作持续多久” 可以从两个层面查:
一、输出记忆(MEM)本身:触发后保持多久?
输出记忆(MEM)功能是: 触发条件命中 → 输出切换到记忆值并保持一段时间,然后恢复。
1. 设置 / 查询 “记忆输出保持时间”(核心)
SCPI(通道 1.双向通道):
scpi
:INST:SEL OUT1
:OUTP:MEM:DWELL? ; 查询:触发后记忆输出保持时间(秒)
:OUTP:MEM:DWELL 0.5 ; 设置:保持 0.5 秒
单位:秒(s)
典型范围:0.01 s ~ 3600 s
默认:通常 1 s
2. 查询当前记忆触发类型(你之前问过)
scpi
:OUTP:MEM:TRIG:TYPE?
; 返回:IMM / EXT / BUS / AUTO
3. 查询记忆触发是否已启动
scpi
:OUTP:MEM:STAT?
; 返回:ON(已启动)/ OFF
二、历史日志(ELOG/DLOG):触发事件持续了多久?
如果你要的是 **“触发条件命中时,该条件持续了多长时间”(比如过流持续多久),这属于事件日志(ELOG)或数据记录(DLOG)**,不是 MEM。
1. ELOG:保护 / 限值类触发(OVP/OCP/ 限值)持续时间
先查最近一次触发的开始时刻和结束时刻,再相减:
scpi
:ELOG:LAST:TIM? ; 最近一次触发的时间戳(秒,从开机起)
:ELOG:LAST:DUR? ; (部分固件)直接返回持续时间(秒)
若没有 :DUR?,则用两次时间戳相减:
scpi
:ELOG:LAST:TIM? ; 触发开始
:ELOG:LAST:END:TIM? ; 触发结束
2. DLOG:电压 / 电流采样触发的持续时间
scpi
:SENS:DLOG:TIME? ; 本次记录总时长(秒)
:SENS:DLOG:PER? ; 采样间隔(秒)
:SENS:DLOG:POIN? ; 采样点数 → 持续时间 = POIN × PER
三、完整示例(Python + VISA,查 MEM 保持时间)
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR')
# 1. 选双向通道
inst.write(':INST:SEL OUT1')
# 2. 查询记忆保持时间
dwell = inst.query(':OUTP:MEM:DWELL?')
print("记忆输出保持时间(秒):", dwell.strip())
# 3. 查询触发类型
trig_type = inst.query(':OUTP:MEM:TRIG:TYPE?')
print("触发类型:", trig_type.strip())
inst.close()
四、关键点总结(别搞混)
:OUTP:MEM:DWELL? → 触发后,记忆输出保持多久(你要的动作持续时间)
:OUTP:MEM:TRIG:TYPE? → 触发类型(IMM/EXT/BUS/AUTO)
ELOG/DLOG → 查触发条件本身持续了多久(不是输出动作时间)