核心前提
Keysight N6705C / N7900 / N6900 双向电源没有一条 SCPI 指令能直接把仪器文件写入电脑本地磁盘;SCPI 仅能做到两类传输方案:
方案 A(最简):查询读取日志文本流,程序接收并写入本地文件(ELOG 保护限制历史首选)
方案 B:仪器内部导出临时文件 → SCPI 二进制文件读取 → PC 存盘(DLOG 波形大数据)
辅助旁路:先存 U 盘再拷贝,仅物理中转
一、方案 A:ELOG 输出限制历史(OVP/OCP)流式读取存本地
ELOG:DATA? 会一次性返回带文件头的全部限制历史文本,VISA 程序捕获返回字符串,直接写入 PC 本地 csv/txt。
1. SCPI 基础读取指令
scpi
*CLS
ELOG:HEAD? // 先读文件头(可选,可合并进数据)
ELOG:DATA? // 返回完整所有输出限制事件记录
2. Python 完整可运行示例(自动保存到电脑本地)
python
运行
import pyvisa
# 1. 连接仪器(LAN/USB/GPIB任选)
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP::192.168.1.20::INSTR")
inst.timeout = 10000 # 大日志加长超时
# 2. 读取完整限制历史(文件头+全部记录)
header = inst.query("ELOG:HEAD?")
log_content = inst.query("ELOG:DATA?")
# 3. 写入电脑本地磁盘(自定义路径)
save_path = r"C:test_poweroutput_limit_history.csv"
with open(save_path, "w", encoding="utf-8") as f:
f.write(header + "n")
f.write(log_content)
print(f"输出限制历史已保存至:{save_path}")
inst.close()
优势:无需仪器内部生成文件,一步读写;适合几百~几千条保护记录。
二、方案 B:DLOG 波形日志(限制触发采样)二进制文件下载存本地
DLOG 体积大,用仪器文件系统 +SYST:TRANSFER?二进制读取文件,PC 落地保存:
步骤 1:确认 DLOG 存储文件
scpi
DLOG:FILE:CAT? // 列出INT盘所有波形日志文件名
SYST:FILE:SIZE? "INT:/dlog/chan1_prot.csv" // 查看文件字节大小
步骤 2:SCPI 二进制读取文件到 PC 内存,程序写入本地
Python 二进制下载 DLOG 文件完整代码
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP::192.168.1.20::INSTR")
inst.timeout = 20000
# 仪器内日志路径
instrument_file = r"INT:/dlog/chan1_prot.csv"
# 电脑本地保存路径
local_save = r"C:test_powerdlog_protection_wave.csv"
# 二进制读取仪器文件
inst.write(f'SYST:TRANSFER? "{instrument_file}"')
raw_bin = inst.read_raw() # 读取完整二进制数据流
# 写入本地磁盘
with open(local_save, "wb") as f:
f.write(raw_bin)
print(f"DLOG波形文件已保存:{local_save}")
inst.close()
SYST:TRANSFER 指令规范
读文件:SYST:TRANSFER? "盘符:/路径/文件名" → 返回完整二进制流
写文件(PC 上传仪器):SYST:TRANSFER "INT:/xxx.bin",#<长度> 仅支持 INT:/ USB:/ RAM:/ 三类仪器盘符。
三、ELOG 先导出仪器内部文件,再下载(统一文件格式备份)
如果需要先在仪器生成标准 csv 日志文件,再下载:
仪器把 ELOG 保护历史导出为 INT 盘文件
scpi
ELOG:EXPORT "INT:/logs/limit_backup.csv"
用 SYST:TRANSFER 下载这个 csv 到电脑本地
python
运行
inst.write('SYST:TRANSFER? "INT:/logs/limit_backup.csv"')
data = inst.read_raw()
with open(r"C:backuppower_limit.csv","wb") as f:
f.write(data)
四、老款 E36xx 简易双向电源适配
无 ELOG:HEAD / ELOG:EXPORT,只能读取文本流:
scpi
STAT:EVEN? // 逐条故障限制事件
*ESR?
程序循环读取每条记录,拼接后写入本地 txt。
五、关键注意事项
不存在 “一条命令直接存 PC 硬盘”:SCPI 是仪器查询协议,仪器无法主动写入 PC 本地,必须上位机 VISA 程序接收数据落盘。
超大日志(上万 DLOG 点数):务必加长inst.timeout,防止读取中断;二进制模式比 ASCII 快数倍。
USB 中转备选(无编程时):
scpi
ELOG:EXPORT "USB:/limit_log.csv"
插 U 盘到仪器前面板 USB 口,拷贝到电脑。 4. 权限:LAN 通讯关闭电脑防火墙,仪器与 PC 同网段;Connection Expert 正常识别设备。
速查指令对照表
表格