使用SCPI指令配置双向直流电源输出电压序列,需结合序列模式(List Mode)的配置指令,通过定义序列点参数实现电压按时间序列输出,以下是具体操作步骤与示例:
plaintextSOURce:LIST:COUNt
为序列点总数(如3表示3个点)。
plaintextSOURce:LIST:VOLTage:DATA ,
为序列点序号(从1开始,如
DATA1
表示第1点)。
为当前点的电压值(单位:V,如
-10
表示-10V)。
为当前点的持续时间(单位:秒或电源支持的单位,如
2
表示2秒)。
plaintextSOURce:LIST:VOLTage:DATA1 -5, 2 // 第1点:-5V,持续2秒SOURce:LIST:VOLTage:DATA2 0, 1 // 第2点:0V,持续1秒
plaintextSOURce:LIST:FUNCtion ON
plaintextSOURce:LIST:CYCLe OFF
初始化与复位
plaintextSYSTem:REMote // 进入远程模式*RST // 复位设备(可选)
配置序列参数
plaintextSOURce:LIST:COUNt 3 // 3个序列点SOURce:LIST:VOLTage:DATA1 -5, 2 // 第1点:-5V,2秒
SOURce:LIST:VOLTage:DATA2 0, 1 // 第2点:0V,1秒
SOURce:LIST:VOLTage:DATA3 10, 3 // 第3点:10V,3秒
启用序列模式
plaintextSOURce:LIST:FUNCtion ON
启动输出
plaintextOUTPut:STATe ON // 开启输出,电源将按序列输出电压
不同品牌电源的SCPI指令可能存在差异,需参考具体设备手册:
plaintextSOURce:LIST:VOLTage -5, 0, 10 // 3个点的电压值(需结合时间参数)
plaintextLIST:VOLT:DATA1 -5, 2000 // 2000=200ms
plaintextPROG:LIST:VOLT:DATA1 -5, 2 // 第1点:-5V,2秒
plaintextSOURce:LIST:INDEx?
1
表示第1点)。
plaintextSOURce:LIST:VOLTage:DATA1?
plaintextSYSTem:ERRor?
-400 Parameter Error
:参数超出范围(如电压值超过电源规格)。
-107 No Sequence Active
:序列未启用时查询状态。
pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际IP# 配置序列power.write("SYST:REM")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:VOLT:DATA1 -5, 2")power.write("SOUR:LIST:VOLT:DATA2 0, 1")power.write("SOUR:LIST:VOLT:DATA3 10, 3")power.write("SOUR:LIST:FUNC ON")# 启动输出power.write("OUTP ON")# 查询当前点验证current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}") # 应输出: 当前序列点: 1power.close()
SOURce:LIST:COUNt
返回的总点数。
-5V
)。