资讯中心

联系我们

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

如何通过SCPI命令查询Keysight电源数据记录的触发历史记录?

2026-05-20 09:54:27  点击:

  Keysight 电源(以 N6705C/N6705B 为例)没有直接读取 “触发历史日志” 的 SCPI 命令,但可通过状态寄存器 + 数据记录元数据 + 文件导出三步实现触发历史追溯。以下是完整 SCPI 指令与实操流程:

  一、核心原理

  数据记录(Data Log)的触发事件会同步记录到:

  状态寄存器:触发事件发生时置位对应位;

  数据记录文件头:包含触发时间、触发源、触发类型;

  非易失存储:4GB 内存保存历史记录,可导出 CSV/BIN。

  二、SCPI 命令集(N6705C 适用)

  1. 查询触发状态(实时 / 最近一次)

  scpi

  *STB? ; 读取状态字节,bit7=1表示数据记录触发

  :STAT:OPER? ; 操作状态寄存器,bit3=数据记录运行,bit4=触发事件

  :STAT:QUES? ; 疑问状态寄存器,可查异常触发(如过压/过流)

  :DATA:LOG:TRIG? ; 查询最近一次触发源(返回:INT/EXT/MAN/BUS)

  :DATA:LOG:TIME? ; 查询最近一次触发时间(返回:YYYY,MM,DD,HH,MM,SS)

  2. 数据记录元数据查询(触发次数 / 配置)

  scpi

  :DATA:LOG:COUNT? ; 已记录触发次数(含历史)

  :DATA:LOG:SOUR? ; 当前触发源配置

  :DATA:LOG:COND? ; 触发条件(如电压>5V/电流>1A)

  :DATA:LOG:STAR? ; 记录开始时间

  :DATA:LOG:STOP? ; 记录停止时间(未停止则返回0)

  3. 导出触发历史数据(含时间戳)

  scpi

  :MMEM:DIR? ; 列出存储目录(默认:/LOG/)

  :MMEM:LIST? "/LOG/" ; 列出所有数据记录文件(*.csv/*.bin)

  :MMEM:LOAD:DATA? "/LOG/LOG001.csv" ; 读取指定文件内容(含触发时间戳)

  :MMEM:STOR:DATA "/LOG/TRIG_HIST.csv" ; 保存当前触发历史到文件

  4. 状态寄存器解码(关键)

  *STB? 返回值:128(0x80)= 数据记录触发事件

  :STAT:OPER? 返回值:

  8(0x08)= 数据记录正在运行

  16(0x10)= 数据记录触发事件发生

  三、实操步骤(Python+SCPI 示例)

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource('TCPIP0::192.168.1.100::INSTR') # 替换为仪器IP

  # 1. 查询最近一次触发信息

  print("最近触发源:", inst.query(':DATA:LOG:TRIG?'))

  print("最近触发时间:", inst.query(':DATA:LOG:TIME?'))

  # 2. 查询历史触发次数

  print("历史触发次数:", inst.query(':DATA:LOG:COUNT?'))

  # 3. 导出所有触发历史到本地

  inst.write(':MMEM:STOR:DATA "/LOG/TRIG_HIST.csv"')

  print("触发历史已保存到仪器/LOG/TRIG_HIST.csv")

  # 4. 读取状态寄存器确认触发事件

  stb = int(inst.query('*STB?'))

  if stb & 0x80:

  print("检测到数据记录触发事件")

  四、关键说明

  兼容性:N6705C/B 完全支持;E3600 系列仅支持基础触发查询,无历史导出。

  存储限制:最多保存5 亿条记录,4GB 内存满后自动覆盖旧数据。

  触发类型:支持内部定时、外部触发、手动触发、总线触发四类。

  五、替代方案(无直接日志时)

  若需长期追溯,建议:

  启用数据记录自动保存(每次触发生成独立文件);

  上位机通过轮询*STB?+ 时间戳自建触发日志库。