在 Agilent/Keysight 双向直流电源(如 N6700/N7900 系列)的 List(序列)模式下,SCPI 指令集不提供直接设置“步进时间与频率比值”的命令(如 LIST:RATIO或 LIST:DUTY)。
这是因为 List 模式本质是“阶梯波”,它由独立的电压/电流值和驻留时间(Dwell Time)组成,没有“频率”或“周期”的全局概念。你必须通过数学计算将你期望的“频率”或“占空比”转换为具体的驻留时间数值,然后使用 SOURce:LIST:DWELl命令进行设置。
1. 核心逻辑:从“比值”到“时间”的转换
假设你的需求是设置每个步进(Step)的持续时间(Dwell Time)占整个序列周期(Cycle Time)的比例(即占空比),或者设置步进速率(Step Rate),其转换关系如下:
2. 关键 SCPI 设置指令
在计算出具体的 Dwell_Time(单位:秒)后,使用以下命令进行设置:
指令 1:设置所有步进使用相同的驻留时间(Uniform Dwell)
这是最简单的情况,适用于所有步进时间比例相同(如生成方波)。
/* 设置通道1的序列驻留时间为 0.01 秒(10ms) */
SOURce:LIST:DWELl 0.01. (@1)
指令 2:设置每个步进不同的驻留时间(Variable Dwell)
如果你的“比值”在每个步进中不同(如生成 PWM 波形),必须传入一个与电压/电流列表长度完全一致的逗号分隔列表。
/* 设置一个 3 步序列的驻留时间:第1步 0.02s,第2步 0.005s,第3步 0.025s */
SOURce:LIST:DWELl 0.02. 0.005. 0.025. (@1)
指令 3:查询当前驻留时间(用于验证)
SOURce:LIST:DWELl? (@1)
3. 实战示例:生成一个 10Hz 方波(占空比 50%)
假设你想在通道 1 输出一个 0V 到 5V 的 10Hz 方波,占空比为 50%。
计算周期:T = 1 / 10Hz = 0.1 s
计算高电平(5V)驻留时间:Dwell_High = 0.1 * 0.5 = 0.05 s
计算低电平(0V)驻留时间:Dwell_Low = 0.05 s(对称方波)
完整的 SCPI 脚本如下:
/* 1. 进入 List 模式 */
SOURce:FUNCtion:MODE LIST, (@1)
/* 2. 定义电压序列:高电平 -> 低电平 */
SOURce:LIST:VOLTage 5. 0. (@1)
/* 3. 设置驻留时间(步进时间/周期 = 0.5) */
SOURce:LIST:DWELl 0.05. 0.05. (@1)
/* 4. 设置无限循环(连续输出) */
SOURce:LIST:COUNt INFinity, (@1)
/* 5. 开启输出并触发 */
OUTPut ON, (@1)
TRIGger:IMMediate (@1)
4. 重要限制与陷阱(Hardware Limitation)
在设置极短的驻留时间(对应高频率比值)时,必须查询硬件的最小驻留时间限制,否则设置会失败或波形失真。
查询最小驻留时间指令(用于边界检查):
SOURce:LIST:DWELl? MIN, (@1)
结论:没有“一键设置比值”的魔法指令。你必须先在外部控制器(PC/LabVIEW/Python)中执行 Dwell = Ratio * Period的计算,然后将计算结果通过 LIST:DWELl命令发送给电源。