双向直流电源的SCPI指令中通常不直接提供查询输出电流序列“当前时间”的功能,其时间相关指令多用于控制序列的定时参数(如每步持续时间、循环次数等),而非返回实时时间戳。若需实现类似功能,可通过以下两种方式间接获取或处理时间信息:
若设备支持在序列中为每一步设置持续时间(如
PROG:LIST:TIME
指令),且已知序列的起始时间,可通过累计各步的持续时间来估算当前步骤的时间位置。但这种方法需要额外记录序列的启动时间,且无法获取绝对时间戳。
示例指令(假设设备支持列表模式):
scpiPROG:LIST:TIME 1,1000 ; 设置第一步持续时间为1000个时间单位(如毫秒)PROG:LIST:TIME 2,2000 ; 设置第二步持续时间为2000个时间单位
在发送序列启动指令时记录系统时间:
PROG:WAVE:INIT
)前,通过编程语言(如Python的
time.time()
)记录当前系统时间。
使用外部设备提供时间戳:
SYSTem:TIME?
,但非所有设备均支持),可直接发送该指令获取时间。
部分高级双向直流电源可能提供专门的指令来查询序列的实时状态,包括时间信息。需查阅设备的用户手册或编程指南,确认是否存在类似以下指令:
PROG:LIST:STEP?
或
PROG:WAVE:STEP?
,返回当前正在执行的步骤编号。
PROG:LIST:STATus?
或
PROG:WAVE:STATus?
,返回序列的运行状态(如运行中、暂停、停止)及可能的时间信息。
示例查询(假设设备支持):
scpiPROG:WAVE:STEP? ; 查询WAVE模式当前步骤PROG:LIST:STATus? ; 查询LIST模式状态