在 Agilent/Keysight 双向直流电源(如 N6700/N7900 系列)中,实现序列输出循环(即让序列无限重复执行)的核心逻辑是:将序列的重复次数(Count)设置为“无限(INFinity)”,并确保触发系统处于正确的状态。
以下是实现这一功能的完整 SCPI 指令流程(以通道 1 为例)。
1. 核心指令:设置无限循环
使用 SOURce:LIST:COUNt命令将重复次数设置为 INF。
/* 关键指令:设置序列无限循环 */
SOURce:LIST:COUNt INFinity, (@1)
返回值说明:
如果查询该状态(SOURce:LIST:COUNt? (@1)),电源会返回 INF或 9.9E+37(表示正无穷大)。
如果设置为一个具体的数字(如 10),则序列只会执行 10 次后自动停止。
2. 完整的“启动无限循环”脚本
仅设置 COUNT INF是不够的,必须配合模式切换、触发和输出使能。请按以下顺序发送指令:
3. 如何停止无限循环?
由于序列处于“无限”状态,它不会自动停止。你必须发送中止命令:
/* 强制停止序列输出(Abort) */
ABORt (@1)
/* 或者直接关闭输出(会跳回预置电压) */
OUTPut OFF, (@1)
注意:发送 ABORt后,电源的输出会立即停止在当前步的值(或根据 TERMinate:LAST设置跳转),但 LIST:COUNt的设置仍然保持为 INF。如果你再次触发(TRIG:IMM),它会重新开始无限循环。
4. 高级配置:连续触发(Auto-Re-Initiate)
如果你的应用场景需要在序列结束后自动重新等待外部触发(而不是自动循环),则不应使用 LIST:COUNt INF,而应使用触发子系统的高级模式:
/* 设置序列只执行1次 */
SOURce:LIST:COUNt 1. (@1)
/* 设置触发系统为“连续等待”模式 */
INITiate:CONTinuous ON, (@1)
/* 发送一次触发,之后每次收到外部触发(如GPIB *TRG)都会自动执行一遍序列 */
TRIGger:IMMediate (@1)
5. 常见问题排查(FAQ)
总结:记住黄金指令 SOURce:LIST:COUNt INFinity, (@1),配合 TRIGger:IMMediate启动,即可实现序列的永动循环。