资讯中心

联系我们

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

如何用SCPI将Keysight双向直流电源列表输出到文件并终止?

2026-06-12 09:56:08  点击:

  一、方案 1:开启 AUTO 自动保存,列表结束自动存文件 + 关输出(推荐全自动)

  1 前置配置:存储路径、格式、自动保存使能

  scpi

  *RST;*CLS

  !===== DLOG电压电流采样日志配置 =====

  MEM:DLOG:MED INT ! 存储介质 INT/USB

  MEM:DLOG:DIR "LIST_RUN" ! 自定义文件夹

  MEM:DLOG:FORM CSV ! BIN/CSV/ASC

  MEM:DLOG:AUTO 1 ! 开启序列结束自动保存DLOG

  !===== ELOG事件历史配置 =====

  MEM:ELOG:MED INT

  MEM:ELOG:DIR "LIST_RUN"

  MEM:ELOG:FORM CSV

  MEM:ELOG:AUTO 1 ! 事件记录自动保存

  !===== LIST时序抖动捕获(可选) =====

  SOUR:LIST:TIM:CLE

  SOUR:LIST:TIM:CAPT ON

  !===== 配置LIST结束动作:运行完成关闭输出 =====

  SOUR:LIST:END:OUT OFF ! LIST跑完直接切断输出

  ! 可选:SOUR:LIST:END:OUT HOLD 保持最后一步电压电流

  SOUR:LIST:END:OUT?

  2 加载 LIST 列表参数(举例阶梯电压)

  scpi

  ! 示例:3步列表,每步1秒

  SOUR:LIST:VOLT:DATA 5.10.15

  SOUR:LIST:CURR:DATA 2.2.2

  SOUR:LIST:TIME:DATA 1.1.1

  SOUR:LIST:COUN? ! 查询总步数

  3 启动列表运行

  scpi

  OUTP ON ! 打开通道输出

  SOUR:LIST:RUN ! 启动列表

  *WAI ! 上位机阻塞等待列表全部执行完毕

  执行逻辑全自动闭环

  LIST 一步步按时序运行;

  全部步数跑完 → 硬件自动关闭输出(END:OUT OFF);

  仪器自动把 DLOG (.dlog/.csv)、ELOG (.elog/.csv) 写入 INT:LOGLIST_RUN;

  无需人工干预保存指令。

  二、方案 2:无 AUTO 自动保存机型(如老 N6705B):跑完手动保存文件再关输出

  没有MEM:DLOG:AUTO时,缓存数据手动另存为仪器内文件,随后关闭输出:

  scpi

  *RST;*CLS

  ! 开启LIST内置采样缓存

  SOUR:LIST:DLOG:CLE

  SOUR:LIST:DLOG:DLOG ENAB

  ! LIST结束动作设为关输出

  SOUR:LIST:END:OUT OFF

  ! 加载列表波形

  SOUR:LIST:VOLT:DATA 3.6.9

  SOUR:LIST:CURR:DATA 1.1.1

  SOUR:LIST:TIME:DATA 0.5.0.5.0.5

  OUTP ON

  SOUR:LIST:RUN

  *WAI

  ! 1.手动将DLOG缓存保存为仪器内文件

  MEM:DLOG:SAVE "list_manual_run01"

  ! 2.手动保存ELOG事件缓存

  MEM:ELOG:SAVE "list_event_run01"

  ! 确认输出已关闭(双重校验)

  OUTP?

  三、关键进阶控制指令

  1 列表中途强制停止,立刻保存当前缓存文件

  测试中途需要中断、立刻落盘日志并关输出:

  scpi

  SOUR:LIST:STOP ! 终止列表运行

  OUTP OFF ! 强制关输出

  ! 保存当前不完整的采样缓存

  MEM:DLOG:SAVE "list_interrupt"

  MEM:ELOG:SAVE "event_interrupt"

  2 分片大列表:每段 LIST 结束存一个独立文件

  超长多段测试,分段运行分段归档:

  scpi

  ! 第一段

  SOUR:LIST:VOLT:DATA 1.2

  SOUR:LIST:TIME:DATA 1.1

  SOUR:LIST:RUN;*WAI

  MEM:DLOG:SAVE "seg1"

  ! 清空缓存再跑第二段

  SOUR:LIST:DLOG:CLE

  SOUR:LIST:VOLT:DATA 3.4

  SOUR:LIST:RUN;*WAI

  MEM:DLOG:SAVE "seg2"

  OUTP OFF

  3 读取已保存到仪器的文件(GPIB/LAN/ 串口通用)

  文件存好后,用MEM:DATA?把文件完整传输到 PC 本地磁盘:

  scpi

  FORM:DATA ASC

  ! 读取DLOG文件全部内容

  MEM:DATA? "INT:LOGLIST_RUNlist_manual_run01.csv"

  四、输出结束模式三种可选

  scpi

  SOUR:LIST:END:OUT OFF ! 推荐:跑完直接关输出

  SOUR:LIST:END:OUT HOLD ! 保持最后一步V/I不变

  SOUR:LIST:END:OUT ZERO ! 电压电流置0.输出不切断

  五、完整一键可复制指令块(全自动标准模板)

  scpi

  *RST;*CLS

  ! 存储与自动保存

  MEM:DLOG:MED INT

  MEM:DLOG:DIR "LIST_AUTO"

  MEM:DLOG:FORM CSV

  MEM:DLOG:AUTO 1

  MEM:ELOG:MED INT

  MEM:ELOG:DIR "LIST_AUTO"

  MEM:ELOG:FORM CSV

  MEM:ELOG:AUTO 1

  ! 时序抖动捕获

  SOUR:LIST:TIM:CLE

  SOUR:LIST:TIM:CAPT ON

  ! 列表结束关闭输出

  SOUR:LIST:END:OUT OFF

  ! 列表波形参数

  SOUR:LIST:VOLT:DATA 4.8.12

  SOUR:LIST:CURR:DATA 3.3.3

  SOUR:LIST:TIME:DATA 2.2.2

  ! 启动执行

  OUTP ON

  SOUR:LIST:RUN

  *WAI

  ! 校验状态

  OUTP?

  MEM:CAT? "INT:LOGLIST_AUTO"

  六、常见报错与排查

  -257:文件夹 / 文件名含特殊字符、长度超限

  -259:切 USB 时报错,U 盘非 FAT32 / 未识别

  -222:AUTO 1但未运行 LIST 就查询文件,无数据

  -113:机型无MEM:DLOG:AUTO,改用手动SAVE方案

  七、Python 程控示例(执行 + 等待 + 校验文件生成)

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::192.168.1.100::INSTR", timeout=60000)

  # 下发整套配置

  script = """

  *RST;*CLS

  MEM:DLOG:MED INT

  MEM:DLOG:DIR "LIST_AUTO"

  MEM:DLOG:FORM CSV

  MEM:DLOG:AUTO 1

  MEM:ELOG:AUTO 1

  SOUR:LIST:END:OUT OFF

  SOUR:LIST:VOLT:DATA 5.10

  SOUR:LIST:CURR:DATA 2.2

  SOUR:LIST:TIME:DATA 1.1

  OUTP ON

  SOUR:LIST:RUN

  *WAI

  """

  inst.write(script)

  # 校验输出已关闭

  out_state = inst.query("OUTP?").strip()

  print("通道输出状态(0=关闭):", out_state)

  # 列出生成的日志文件

  file_list = inst.query('MEM:CAT? "INT:LOGLIST_AUTO"')

  print("生成的列表日志文件:", file_list)

  inst.close()