资讯中心

联系我们

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

如何通过SCPI指令查询双向直流电源输出序列历史记录的自动保存状态?

2026-01-15 09:30:47  点击:

要通过SCPI指令查询双向直流电源输出序列历史记录的自动保存状态,需结合电源的系统状态查询(System Status)事件日志(Event Log)序列控制(Sequence Control)相关指令。不同厂商的电源实现方式可能不同,以下是通用方法和常见厂商的示例:


1. 通用查询思路

关键指令分类

  1. 查询系统配置
    • 检查是否启用了数据记录(Data Logging)历史记录(History)功能。
    • 示例指令:
      scpiSYST:LOG:STAT?       ; 查询日志功能是否启用SYST:HIST:STAT?      ; 查询历史记录功能是否启用(部分电源支持)
  2. 查询序列控制状态
    • 检查序列输出完成后是否自动保存数据到内部存储器。
    • 示例指令:
      scpiSOUR:SEQ:SAVE:STAT?  ; 查询序列保存状态(厂商自定义指令)
  3. 查询事件日志
    • 若电源支持事件日志,可检查最近的操作记录(如序列启动/停止事件)。
    • 示例指令:
      scpiSYST:ERR:COUNT?      ; 查询错误队列中的事件数SYST:ERR:NEXT?       ; 读取下一条错误/事件记录
  4. 查询存储器状态
    • 检查内部存储器是否已满或是否配置了自动保存路径。
    • 示例指令:
      scpiMEM:STAT?            ; 查询存储器状态(部分电源支持)

2. 常见厂商的实现示例

示例1:Keysight(是德科技)电源

Keysight电源(如E36000系列)通常支持序列输出数据记录功能,但需确认具体型号是否支持历史记录自动保存。

scpi*RST                          ; 复位仪器SYST:REM                      ; 远程控制模式

; 查询数据记录功能状态
SYST:LOG:STAT?               ; 返回 "1"(启用)或 "0"(禁用)

; 查询序列保存配置(若支持)
SOUR:SEQ:SAVE:STAT?          ; 自定义指令(需参考手册)

; 查询最近事件(如序列完成事件)
SYST:ERR:COUNT?              ; 返回未读取的事件数
SYST:ERR:NEXT?               ; 读取事件(如 "Sequence completed")

示例2:Keithley(吉时利)电源

Keithley 2600系列电源支持序列模式事件触发记录

scpi*RSTSYST:REM

; 查询序列模式状态
SOUR:SEQ:STAT?               ; 返回 "1"(启用)或 "0"(禁用)

; 查询触发记录配置(若支持)
TRIG:LOG:STAT?               ; 查询触发日志是否启用

; 查询存储器使用情况
MEM:DATA:USED?               ; 返回已用存储空间(字节)

示例3:Chroma(致茂)电源

Chroma 62000P系列电源支持序列输出历史数据导出

scpi*RSTSYST:REM

; 查询历史记录功能状态
SYST:HIST:ENAB?             ; 返回 "ON" 或 "OFF"

; 查询历史记录保存路径(若支持)
SYST:HIST:PATH?              ; 返回存储路径(如 "C:DataHistory.csv")

3. 通用查询流程

  1. 复位仪器(可选):
    scpi*RST
  2. 进入远程控制模式
    scpiSYST:REM
  3. 查询相关功能状态
    • 尝试以下指令组合:
      scpiSYST:LOG:STAT?          ; 日志功能SYST:HIST:STAT?         ; 历史记录功能
      SOUR:SEQ:SAVE:STAT?     ; 序列保存状态(厂商自定义)
      MEM:STAT?               ; 存储器状态
  4. 解析返回值
    • 1/ON:功能已启用。
    • 0/OFF:功能未启用。
    • ERROR:指令不支持或功能不存在。

4. 常见问题解决

问题1:指令返回错误(如 -400

  • 原因:指令不支持或功能未实现。
  • 解决
    1. 查阅电源的编程手册,确认指令是否适用于当前型号。
    2. 尝试替代指令(如用 SYST:ERR:NEXT? 检查错误详情)。

问题2:无直接查询历史记录状态的指令

  • 原因:部分电源不提供自动保存状态查询,但支持导出历史数据。
  • 解决
    1. 通过文件系统指令检查是否存在历史文件:
      scpiMMEM:CAT? "C:Data"     ; 列出目录内容
    2. 手动触发导出并检查文件是否生成:
      scpiSYST:HIST:SAVE "C:DataHistory.csv"

问题3:需要权限访问历史记录

  • 原因:部分电源需先解锁或登录管理员账户。
  • 解决
    1. 输入管理员密码(如 Keithley 需 SYST:ACCS:USER "admin","password")。
    2. 重新尝试查询指令。

5. 完整示例(Keysight E36000)

scpi*RSTSYST:REM

; 查询数据记录功能状态
SYST:LOG:STAT?          ; 返回 "1"(启用)或 "0"(禁用)

; 若支持序列保存查询
SOUR:SEQ:SAVE:STAT?     ; 假设返回 "1"(自动保存已启用)

; 查询最近事件
SYST:ERR:COUNT?         ; 返回事件数(如 "0")
SYST:ERR:NEXT?          ; 返回 "No error" 或事件描述

6. 总结

查询目标推荐指令适用厂商
日志功能状态SYST:LOG:STAT?Keysight、Chroma
历史记录状态SYST:HIST:STAT?Chroma、部分 Keithley
序列保存状态SOUR:SEQ:SAVE:STAT?厂商自定义(需参考手册)
存储器使用情况MEM:DATA:USED?Keithley、Chroma
事件日志SYST:ERR:NEXT?通用

建议步骤

  1. 查阅电源的编程手册,确认支持的指令。
  2. 优先尝试 SYST:LOG:STAT? 和 SYST:HIST:STAT?
  3. 若无直接指令,通过文件系统或事件日志间接判断状态。

通过上述方法,可有效查询双向直流电源的输出序列历史记录自动保存状态。