资讯中心

联系我们

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

如何通过SCPI命令设置Keysight电源数据记录的触发重复次数?

2026-05-20 09:57:05  点击:

  Keysight N6705C 的 Data Logging(数据记录)本身没有专门 “触发重复次数” 的 SCPI 参数,但可以用两种思路实现 “最多触发 N 次就停” 的效果:

  用 :DATA:LOG:COUNT? 做软件计数(最常用)

  用 Digitizer 或 List 模式的触发次数间接控制

  下面给你完整 SCPI 命令和示例(以 N6705C 为主)。

  一、数据记录(Data Log)相关 SCPI

  1. 开启 / 停止数据记录

  scpi

  :DATA:LOG:STAR ; 开始记录

  :DATA:LOG:STOP ; 停止记录

  2. 查询当前已触发 / 已记录次数

  scpi

  :DATA:LOG:COUNT? ; 返回:整数,已完成的记录段数(每触发一次生成一段)

  3. 设置触发源与条件

  scpi

  :DATA:LOG:TRIG:SOUR INT ; 触发源:INT/EXT/MAN/BUS

  :DATA:LOG:TRIG:COND VOLT,GT,5.0 ; 举例:V>5V 触发

  4. 没有直接的 “重复次数” 寄存器

  官方 SCPI 手册里 :DATA:LOG: 子系统不存在 :REP / :COUNT / :NUM 这类设置项,只能上位机自己记次数。

  二、实现 “触发 N 次自动停止”(推荐方案)

  思路:

  启动记录

  循环查询 :DATA:LOG:COUNT?

  达到设定次数 → 发 :DATA:LOG:STOP

  示例 SCPI 流程(伪代码)

  scpi

  :DATA:LOG:TRIG:SOUR INT

  :DATA:LOG:TRIG:COND VOLT,GT,5.0

  :DATA:LOG:STAR

  LOOP:

  :DATA:LOG:COUNT?

  → 读回 cnt

  IF cnt >= 10 THEN ; 设重复 10 次

  :DATA:LOG:STOP

  BREAK

  ENDIF

  GOTO LOOP

  Python + pyvisa 示例

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP0::192.168.1.100::INSTR")

  N = 10 # 想要的触发重复次数

  inst.write(":DATA:LOG:TRIG:SOUR INT")

  inst.write(":DATA:LOG:TRIG:COND VOLT,GT,5.0")

  inst.write(":DATA:LOG:STAR")

  while True:

  cnt = int(inst.query(":DATA:LOG:COUNT?"))

  print("已触发次数:", cnt)

  if cnt >= N:

  inst.write(":DATA:LOG:STOP")

  print("达到次数,停止记录")

  break

  inst.close()

  三、如果你是要 “Digitizer 触发次数”(示波器)

  Digitizer 有 触发重复 / 采集次数 设置:

  scpi

  :DIG:TRIG:COUN 10 ; 采集 10 次触发后停止

  :DIG:TRIG:COUN? ; 查询当前次数

  但这是示波器采集,不是 Data Logging。

  四、小结(直接可用)

  Data Logging:无 SCPI 直接设置触发重复次数 → 上位机读 :DATA:LOG:COUNT? 自闭环控制

  关键命令:

  scpi

  :DATA:LOG:STAR

  :DATA:LOG:STOP

  :DATA:LOG:COUNT?

  :DATA:LOG:TRIG:SOUR

  :DATA:LOG:TRIG:COND