资讯中心

联系我们

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

如何用SCPI指令实现双向直流电源输出电压与电流同步?

2025-12-12 10:33:42  点击:

要使用SCPI指令实现双向直流电源输出电压与电流的同步控制,需结合序列模式(List Mode)斜率控制(Slew Rate)触发同步机制,确保电压和电流按预设参数同步变化。以下是具体实现方法与指令示例:

一、核心思路

  1. 序列模式:预设一组电压和电流值,电源按顺序依次输出每个点的参数。
  2. 斜率控制:通过设置电压和电流的变化率(Slew Rate),确保两者同步平滑过渡。
  3. 触发同步:使用内部或外部触发信号启动序列,保证电压和电流同步开始变化。

二、实现步骤与指令示例

1. 定义电压和电流序列

使用SOURce:LIST:VOLTage:DATA#SOURce:LIST:CURRent:DATA#指令分别设置每个序列点的电压和电流值。部分电源支持同时设置电压和电流的复合指令(如SOURce:LIST:DATA#),需参考具体型号手册。

plaintextSOURce:LIST:COUNt 3                   ; 设置序列包含3个点SOURce:LIST:VOLTage:DATA1 0, 2        ; 第1点:0V,持续2秒
SOURce:LIST:VOLTage:DATA2 12, 2       ; 第2点:12V,持续2秒
SOURce:LIST:VOLTage:DATA3 0, 2        ; 第3点:0V,持续2秒

SOURce:LIST:CURRent:DATA1 0, 2        ; 第1点:0A,持续2秒
SOURce:LIST:CURRent:DATA2 2, 2        ; 第2点:2A,持续2秒
SOURce:LIST:CURRent:DATA3 0, 2        ; 第3点:0A,持续2秒

注意:部分电源(如Chroma 62000P系列)可能使用PROG:LIST:VOLT:DATA#PROG:LIST:CURR:DATA#指令,需参考具体型号手册。

2. 启用序列模式

通过指令启用序列功能,并禁用循环(若需单次执行):

plaintextSOURce:LIST:FUNCtion ON                ; 启用序列模式SOURce:LIST:CYCLe OFF                  ; 禁用循环

3. 设置电压和电流斜率(同步变化)

使用SOURce:VOLTage:SLEWSOURce:CURRent:SLEW指令分别设置电压和电流的变化率(单位:V/s或A/s),确保两者同步变化:

plaintextSOURce:VOLTage:SLEW 1000               ; 设置电压变化率为1000 V/sSOURce:CURRent:SLEW 1                  ; 设置电流变化率为1 A/s

启用斜率限制(部分电源需显式启用):

plaintextSOURce:VOLTage:SLEW:STATe ON           ; 启用电压斜率限制SOURce:CURRent:SLEW:STATe ON           ; 启用电流斜率限制

4. 触发序列启动

选择触发源(内部或外部)并启动序列:

plaintextTRIGger:SOURce IMMediate               ; 选择内部触发(软件触发)TRIGger:INITiate                        ; 发送触发信号,启动序列

外部触发示例(如TTL信号):

plaintextTRIGger:SOURce EXTernal               ; 选择外部触发源TRIGger:SLOPe POSitive                 ; 上升沿触发
OUTPut:TRIGger:DELay 0.1               ; 触发后延迟0.1秒输出(可选)

5. 启动输出

plaintextOUTPut:STATe ON                        ; 启用输出,等待触发

三、完整操作流程示例(Python脚本)

以下示例通过Python脚本实现电压和电流的同步序列控制:

pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 初始化与复位power.write("SYSTem:REMote")            # 切换至远程模式power.write("*RST")                     # 复位设备(可选)# 配置电压和电流序列power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:VOLT:DATA1 0, 2")power.write("SOUR:LIST:VOLT:DATA2 12, 2")power.write("SOUR:LIST:VOLT:DATA3 0, 2")power.write("SOUR:LIST:CURR:DATA1 0, 2")power.write("SOUR:LIST:CURR:DATA2 2, 2")power.write("SOUR:LIST:CURR:DATA3 0, 2")# 设置斜率(同步变化)power.write("SOUR:VOLT:SLEW 1000")power.write("SOUR:CURR:SLEW 1")power.write("SOUR:VOLT:SLEW:STAT ON")power.write("SOUR:CURR:SLEW:STAT ON")# 启用序列模式power.write("SOUR:LIST:FUNC ON")power.write("SOUR:LIST:CYCL OFF")# 启动输出(内部触发)power.write("OUTP ON")power.write("TRIG:INIT")# 查询当前状态(可选)current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}")power.close()

四、关键注意事项

  1. 斜率单位一致性:确保电压和电流的斜率单位(如V/s和A/s)与电源规格一致。
  2. 序列点匹配:电压和电流的序列点数量必须相同,否则可能导致同步失败。
  3. 触发时序:若使用外部触发,需确保触发信号与序列启动同步。
  4. 保护功能:跳转前确认电压和电流值未触发过压(OVP)或过流(OCP)保护。
  5. 厂商差异:不同厂商的电源可能使用不同的指令(如Chroma使用PROG:LIST,Keysight使用SOUR:LIST),需参考具体型号手册。