Keysight N6705C/N7900/N6900 双向电源 文件存储周期 SCPI 完整方案
先区分两个极易混淆的概念:
DLOG:SAMP:PER:采样周期(电压电流数据点采集间隔,最小 20μs~ 最大 60s,仪器硬件原生配置)
文件归档存储周期:每隔 X 分钟 / 小时自动分文件保存日志(仪器无内置定时自动归档寄存器,无专属DLOG:SAVE:PER、ELOG:SAVE:PER指令)
一、1. 采样周期(数据采集间隔,可直接 SCPI 设置)
这是波形日志底层采集节奏,决定每个数据点的时间间隔,直接对应 DLOG 存储的数据密度。
核心指令
scpi
! 设置采样周期(单位:秒)
DLOG:SAMP:PER
! 查询当前采样周期
DLOG:SAMP:PER?
取值范围:20e-6 (20μs,50kHz) ~ 60 (60s)
示例
scpi
DLOG:SAMP:PER 0.01 ! 10ms采样周期 = 100Hz采样频率
DLOG:SAMP:PER 10 ! 10秒慢速巡检采样
配套:总记录时长 = 采样周期 × DLOG:POIN(总点数)
二、2. 定时分文件归档周期(每隔 N 时间保存一份独立日志文件)
仪器无原生定时自动存文件 SCPI,提供两种工业稳定实现方案:
方案 A:上位机 PC 定时器循环控制(99% 自动化测试首选)
Python/LabVIEW 脚本内部设置定时周期,周期触发执行保存→下载→清空缓存→重启采集,实现按时间切片分文件。
Python 定时归档模板(每 300 秒 / 5 分钟存一个 DLOG 文件)
python
运行
import pyvisa
import time
from datetime import datetime
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP::192.168.1.100::INSTR")
inst.timeout = 20000
# 基础DLOG配置
inst.write("INST:SEL 1")
inst.write("DLOG:FORM ASC")
inst.write("DLOG:SAMP:PER 0.1") # 100ms采样
inst.write("DLOG:TRIG:MODE IMM") # 连续自由采集
archive_interval = 300 # 归档周期:300秒=5分钟
try:
while True:
start_time = datetime.now().strftime("%Y%m%d_%H%M%S")
# 启动一轮采集
inst.write("DLOG:STAT ON")
time.sleep(archive_interval)
# 停止采集、保存仪器内文件
inst.write("DLOG:STAT OFF")
save_name = f'INT:/dlog/chan1_{start_time}.csv'
inst.write(f'DLOG:SAVE "{save_name}"')
# 下载到PC本地
local_path = fr"C:power_log{start_time}_chan1.csv"
inst.write(f'SYST:TRANSFER? "{save_name}"')
file_bin = inst.read_raw()
with open(local_path, "wb") as f:
f.write(file_bin)
print(f"已归档:{local_path}")
# 清空缓存,准备下一轮周期采集
inst.write("DLOG:CLE")
except KeyboardInterrupt:
inst.write("DLOG:STAT OFF")
inst.close()
方案 B:仪器内部计时器 + 状态轮询(无 PC 长脚本时)
利用仪器SYST:TIMER硬件计时器做计时基准,上位机高频轮询计时器状态,到达周期阈值执行保存。
开启硬件计时器
scpi
SYST:TIMER:RESET ! 计时器清零
SYST:TIMER:STAT ON ! 启动计时
SYST:TIMER? ! 读取已流逝秒数
上位机循环查询SYST:TIMER?,数值≥归档周期时执行DLOG:SAVE、重置计时器。
三、ELOG 输出限制历史的周期存储规则
ELOG事件式写入:无采样周期,保护触发瞬间单条写入;原生event.log持续追加,不会自动切分文件。
定时导出 ELOG 分文件:同样依靠上位机定时调用ELOG:EXPORT生成独立时间戳备份文件
scpi
! 定时导出指令(由PC定时循环下发)
ELOG:EXPORT "INT:/logs/elog_20260609_1430.csv"
查询 ELOG 容量(判断是否需要周期备份)
scpi
ELOG:CAP? ! 返回 最大条数,当前条数
四、保护触发模式下的存储周期逻辑(OVP/OCP 自动录波)
采样周期依旧由DLOG:SAMP:PER锁定;
触发后一次性记录预点数 + 后点数,单次触发生成 1 个文件;
多轮保护多次触发会生成多个独立文件,无时间自动切片,只能 PC 批量整理。 完整保护触发配置参考:
scpi
INST:SEL 1
DLOG:SAMP:PER 0.001 ! 1ms采样周期
DLOG:POIN 10000
DLOG:TRIG:MODE PROT
DLOG:TRIG:PRE 2000
DLOG:TRIG:PROT:ENAB ON
DLOG:STAT ON
五、关键限制汇总
没有 SCPI 指令可以让仪器独立后台定时自动存文件,归档周期必须依赖上位机时序控制;
唯一可硬件配置的周期是数据采样周期 DLOG:SAMP:PER;
ELOG 无采样参数,仅能定时导出备份;
单轮 DLOG 采集最长时长 = DLOG:POIN × DLOG:SAMP:PER,点数上限由机型内存决定(N6705C 最大 500M 读数)。
速查指令对照表
表格