资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过SCPI命令将双向直流电源历史记录直接导出到本地磁盘?

2026-06-09 09:49:17  点击:

  核心前提

  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 正常识别设备。

  速查指令对照表

  表格