直流可编程电子负载 DCL8000 系列 SCPI 通信协议
直流可编程电子负载 DCL8000 系列 SCPI 通信协议
1.0 SCPI 协议概述
(1)本协议所有通信命令与数据均为 ASCII 字符,一个完整的命令串总是以规定的结束符 NL 结束,NL 为<CR><LF>的组合,其中<CR>为 0x0D,<LF>为 0x0A。本仪器在返回查询结果时总是用 NL 结束符来结束。例如:
发送:FETCH:CURRENT?<CR><LF>回传:1.000<CR><LF>
(2)命令格式可采用长格式或短格式的方式,且不区分大小写。短格式为只使用长格 式关键字的前 3 个或 4 个字母,如:CURR、VOLT 等均为短格式关键字。在关键字定义中, 每一个关键字的短格式字母以大写字母表示,以便于记忆。电子负载可接受Volt、volt、voltage、 VOLTAGE、volTAGE 等格式。但是,若关键字不完整,如:“VOL”、“curre” 等则属于非法的 未知命令。
(3)数据格式定义:
符号 | 说明 | 范例 |
NR1 | 整数,不含小数点 | 123、0123 |
NR2 | 整数或小数,可含小数点 | 123、12.3、0.123 |
Bool | 选项型 | 0 | 1、ON | OFF |
(4)协议通信中所有发送/回传的数据一律不带单位,仪器将根据参数类别自动固定其单位,具体详见各命令解释。
数据 | 默认单位 |
电压 | V |
电流 | A |
电阻 | Ω |
功率 | W |
时间 | ms |
(5)协议命令中使用的助记符号相关说明如下。
助记符 | 意义 |
[ ] | 方括号表示可以选择的项 |
< > | 尖括号用以代替命令的参数 |
| | 竖线符号表示可替代的参数 |
(6)当电子负载处于就地[Local]控制时,上位机只能读取电子负载的实时数据和状态,相关写操作是不被允许的。若上位机需要控制电子负载的运行,则必须将电子负载设置为远控[Remote]方式。电子负载处于远控且 Local 按键被锁定时,若约 10s 内未收到任何通信数据,则电子负载认为通信线路中断,自动解锁 Local 按键。
1.1 公用命令
公用命令以“*”开始,且必须位于行首,位于命令行中间的公用命令是非法的。
公用命令 | 说明 | 描述 |
*CLS | 清除事件 | 清除电子负载中的所有事件。 命令语法:*CLS |
*IDN? | 查询装置信息 | 命令语法:*IDN? 返回参数:<Company>,<Product>,< S/N >,< Version > |
<Company> 制造商 <Product> 产品型号 <S/N> 产品序列号 < Version> 软件版本号查询范例:*IDN? 回传范例:DINGCHEN,DCL8001,L20170001A,V1.00 | ||
*TRG | 总线触发 | 当电子负载触发源为非 EXTERNAL 方式时,这条命令将会产生一个触发信号,功能与 TRIG 命令相同。 命令语法:*TRG 相关命令:TRIG, TRIG:SORU |
*ESR? | 查询标准事件 | 命令语法:*ESR?返回参数:<NR1> Bitn 表示十六进制数据中的第 n 位。 |
Bit0 | 语法错误 |
Bit1 | 未知命令 |
Bit2 | 格式错误 |
Bit3 | 数值超限 |
Bit4 | 非法操作 |
1.2 子系统命令
设备支持以下子系统命令:
FETCh、STATus、EVENt、CONFigure、LOAD、TRIG、CURRent、VOLTage、RESistance、 POWer、TRAN、OCP、OPP、BATTery、CVCC、CVCR、CRCC、LED、LIST、TIMING、OVP、
EFFect 等。详见具体子系统应用说明。
1.2.1 FETCh 子系統
FETCh:CURRent?
说明: 回传实时电流值。
查询语法: FETCh:CURRent?
回传参数: <NR2>, [单位: A]
查询范例: FETCh:CURR?
回传范例: 1.000
FETCh:VOLTage?
说明: 回传实时电压值。
查询语法: FETCh:VOLTage?
回传参数: <NR2>, [单位: V]
查询范例: FETCh:VOLT?
回传范例: 12.000
FETCh:POWer?
说明: 回传实时电压值。
查询语法: FETCh:POWer?
回传参数: <NR2>, [单位: W]
查询范例: FETCh:POWer?
回传范例: 3.000
FETCh:TIME?
说明: 回传运行计时。
查询语法: FETCh:TIME?
回传参数: <NR2>, [单位: s]
查询范例: FETCh:TIME?
回传范例: 50
FETCh:IPP?
说明: 回传电流峰峰值。
查询语法: FETCh:IPP?
回传参数: <NR2>, [单位: A]
查询范例: FETCh:IPP?
回传范例: 0.003
FETCh:VPP?
说明: 回传电压峰峰值。
查询语法: FETCh:VPP?
回传参数: <NR2>, [单位: V]
查询范例: FETCh:VPP?
回传范例: 0.020
FETCh:MAXI?
说明: 回传 OCP 最大保护电流。
查询语法: FETCh:MAXI?
回传参数: <NR2>, [单位: A]
查询范例: FETCh:MAXI?
回传范例: 4.500
FETCh:MAXP?
说明: 回传 OPP 最大保护功率。
查询语法: FETCh:MAXP?
回传参数: <NR2>, [单位: W]
查询范例: FETCh:MAXP?
回传范例: 8.000
FETCh:XXXX?
说明: 回传时间测试、OVP 等模式下的上升/下降时间。
查询语法: FETCh:TRIS?
回传参数: <NR2>, [单位: ms]
查询范例: FETCh:XXXX?
回传范例: 40.000
FETCh:CAPacity?
说明: 回传电池放电累计电量。
查询语法: FETCh:CAPacity?
回传参数: <NR2>, [单位: AH/WH,取决于放电模式]
查询范例: FETCh:CAPacity?
回传范例: 3.250
FETCh:EFFect
说明: 回传负载调整率百分比。
查询语法: FETCh:EFFect?
回传参数: <NR2>, [单位: %]
查询范例: FETCh:EFF?
回传范例: 0.50
FETCh:DELTV
说明: 回传△V。
查询语法: FETCh:DELTV?
回传参数: <NR2>, [单位: V]
查询范例: FETCh:DELTV?
回传范例: 0.100
1.2.2 STATus 子系統
STATus:RUN?
说明: 回传电子负载运行状态。
查询语法: STATus:RUN?
回传参数: 0 | 1, [0 停止, 1 运行]
查询范例: STATus:RUN?
回传范例: 0
STATus:TRIG?
说明: 回传等待触发请求状态。
查询语法: STATus:TRIG?
回传参数: 0 | 1, [0 无等待, 1 等待触发]
查询范例: STATus:TRIG?
回传范例: 1
STATus:RESn?
说明: 回传第 n 个测试结果。列表模式每步对应一个测试结果,其他测试模式测试结果均为 RES1。
命令语法: STATus:RES<NR1>?
命令参数: 1~16
回传参数: 0 | 1, [0 Fail, 1 Pass]
查询范例: STATus:RES1?
回传范例: 1
1.2.3 EVENt 子系統
EVENt?
说明: 回传电子负载事件报告。
查询语法: EVENt?
回传参数: <NR1>, 事件代码如下所示:
事件代码 | |||
Bit0: | 联机失败 | Bit8: | 数据超限 |
Bit1: | 自检失败 | Bit9: | 数位超限 |
Bit2: | 极性错误 | Bit10: | 档位错误 |
Bit3: | 过压保护 | Bit11: | 非法操作 |
Bit4: | 过流保护 | Bit12: | 逻辑错误 |
Bit5: | 功率保护 | Bit13: | 读写错误 |
Bit6: | 过热保护 | Bit14: | 初始化错误 |
Bit7: | 欠压保护 | Bit15: | 测试结束 |
Bitn 表示十六进制数据中的第 n 位。
查询范例: EVENt?
回传范例: 8
1.2.4 CONFigure 子系統
CONFigure:VPRO
说明: 设置过压保护值。
命令语法: CONFigure:VPRO <NR2>?
命令参数: <NR2>,[单位: V]
查询范例: CONFigure:VPRO?
回传范例: 120.000
CONFigure:IPRO
说明: 设置过流保护值。
命令语法: CONFigure:IPRO <NR2>
命令参数: <NR2> ,[单位: A]
查询范例: CONFigure:IPRO?
回传范例: 15.000
CONFigure:PPRO
说明: 设置过功率保护值。
命令语法: CONFigure:PPRO <NR2>
命令参数: <NR2>,[单位: W]
查询范例: CONFigure:PPRO?
回传范例: 150.00
CONFigure:VON
说明: 设置带载电压值。
命令语法: CONFigure:VON <NR2>
命令参数: <NR2>,[单位: V]
查询范例: CONFigure:VON?
回传范例: 1.00
1.2.5 LOAD 子系統
LOAD
说明: 负载启/停控制。
命令语法: LOAD <Bool>
命令参数: <ON|OFF>
设定范例: LOAD ON
LOAD:SENSe
说明: 远端电压补偿开关。
命令语法: LOAD:SENSe <Bool>
命令参数: <ON|OFF>
设定范例: LOAD:SENSe ON
查询范例: LOAD:SENSe?
回传范例: OFF
LOAD:REMote
说明: 远程控制开关
命令语法: LOAD:REMote <Bool>
命令参数: <ON|OFF>
设定范例: LOAD:REMote ON
查询范例: LOAD:REMote?
回传范例: OFF
LOAD:RMLOCK
说明: LOCAL 键锁定
命令语法: LOAD:RMLOCK <Bool>
命令参数: <ON|OFF>
设定范例: LOAD:RMLOCK ON
LOAD:SHORt
说明: 短路测试开关。
命令语法: LOAD:SHORt <Bool>
命令参数: <ON|OFF>
设定范例: LOAD:SHORt ON
查询范例: LOAD:SHORt?
回传范例: ON
LOAD:PAUSe
说明: 测试暂停开关
命令语法: LOAD:PAUSe <Bool>
命令参数: <ON|OFF>
设定范例: LOAD:PAUSe ON
查询范例: LOAD:PAUSe?
回传范例: OFF
LOAD:ERCLS
说明: 告警事件清除。
命令语法: LOAD:ERCLS <Bool>
命令参数: <ON>
设定范例: LOAD:ERCLS ON
LOAD:CACLS
说明: 计算量清除。
命令语法: LOAD:CACLS <Bool>
命令参数: <ON>
设定范例: LOAD:CACLS ON
1.2.6 TRIG 子系統
TRIG
说明: 启动一次触发,触发源为 Manual 时才有效。
命令语法: TRIG <Bool>
命令参数: <ON>
TRIG:SOURce
说明:
触发源选择。MANual 为面板按键触发或通信触发方式,EXTernal 为外部触发方式。
命令语法: TRIG:SOURce <Bool>
命令参数: <MANual|EXTernal>
查询范例: TRIG:SOURce?
回传范例: MANUAL, [范围 MANUAL 或 EXTERNAL]
1.2.7 CURRent 子系統
CURRent
说明: 设置恒流值。
命令语法: CURRent <NR2>
命令参数: <NR2>,[单位: A]
查询范例: CURRent?
回传范例: 1.000
1.2.8 VOLTage 子系統
VOLTage
说明: 设置恒压值。
命令语法: VOLTage <NR2>
命令参数: <NR2> ,[单位: V]
查询范例: VOLTage?
回传范例: 5.000
1.2.9 RESistance 子系統
RESistance
说明: 设置恒阻值。
命令语法: RESistance <NR2>
命令参数: <NR2>,[单位:Ω]
查询范例: RESistance?
回传范例: 100.00
1.2.10 POWer 子系統
POWer
说明: 设置恒功率值。
命令语法: POWer <NR2>
命令参数: <NR2> ,[单位:W]
查询范例: POWer?
回传范例: 50.00
1.2.11 TRAN 子系統
TRAN:MODE
说明: 设置动态模式。
命令语法: TRAN:MODE <Bool>
命令参数: <CC|CV>
查询范例: TRAN:MODE?
回传范例: CC
TRAN:RUNWay
说明: 设置动态运行方式。
命令语法: TRAN:RUNWay <Bool>
命令参数: < CONT|PULSE|REVE>,[CONT 连续, PULSE 脉冲, REVE 翻转]
查询范例: TRAN:RUNWay?
回传范例: CONT
TRAN:LEVA
说明: 设置 A 段定值与 A 段定时。
命令语法: TRAN:LEVA <NR2>,<NR2>
命令参数: <A 段定值>,<A 段定时>,[单位:A 或 V(取决于动态模式), ms]
查询范例: TRAN:LEVA?
回传范例: 1.000,1000
TRAN:LEVB
说明: 设置 B 段定值与 B 段定时。
命令语法: TRAN:LEVB <NR2>,<NR2>
命令参数: <B 段定值>,<B 段定时>,[单位:A 或 V(取决于动态模式), ms]
查询范例: TRAN:LEVB?
回传范例: 3.000,1000
TRAN:RISE
说明: 设置上升斜率。,
命令语法: TRAN:RISE <NR2>
命令参数: <上升斜率>,[单位:A/us 或 V/us(取决于动态模式)]
查询范例: TRAN:RISE?
回传范例: 0.100
TRAN:FALL
说明: 设置下降斜率
命令语法: TRAN:FALL <NR2>
命令参数: <下降斜率>,[单位:A/us 或 V/us(取决于动态模式)]
查询范例: TRAN:FALL?
回传范例: 0.100
TRAN:REPeat
说明: 设置重复次数。
命令语法: TRAN:REPeat <NR1>
命令参数: <重复次数>,[单位:次]
查询范例: TRAN:REPeat?
回传范例: 100
1.2.12 OCP 子系統
OCP:STVAL
说明: 设置初始电流值。
命令语法: OCP:STVAL <NR2>
命令参数: <电流值>,[单位:A]
查询范例: OCP:STVAL?
回传范例: 0.100
OCP:STPVAL
说明: 设置步进电流值。
命令语法: OCP:STPVAL <NR2>
命令参数: <电流值>,[单位:A]
查询范例: OCP:STPVAL?
回传范例: 0.500
OCP:ENDVAL
说明: 设置截止电流值。
命令语法: OCP:ENDVAL <NR2>
命令参数: <电流值>,[单位:A]
查询范例: OCP:ENDVAL?
回传范例: 5.000
OCP:STIM
说明: 设置步近时间。
命令语法: OCP:STIM <NR2>
命令参数: <步近时间>,[单位:ms]
查询范例: OCP:STIM?
回传范例: 1000.00
OCP:MINVOL
说明: 设置截止电压。
命令语法: OCP:MINVOL <NR2>
命令参数: <截止电压>,[单位:V]
查询范例: OCP:MINVOL?
回传范例: 4.500
1.2.13 OPP 子系統
OPP:STVAL
说明: 设置初始功率值。
命令语法: OPP:STVAL <NR2>
命令参数: <功率值>,[单位:W]
查询范例: OPP:STVAL?
回传范例: 0.100
OPP:STPVAL
说明: 设置步进功率值。
命令语法: OPP:STPVAL <NR2>
命令参数: <功率值>,[单位:W]
查询范例: OCP:STPVAL?
回传范例: 1.000
OPP:ENDVAL
说明: 设置截止功率值。
命令语法: OPP:ENDVAL <NR2>
命令参数: <功率值>,[单位:W]
查询范例: OPP:ENDVAL?
回传范例: 3.000
OPP:STIM
说明: 设置步近时间。
命令语法: OPP:STIM <NR2>
命令参数: <步近时间>,[单位:ms]
查询范例: OPP:STIM?
回传范例: 1000.00
OPP:MINVOL
说明: 设置截止电压。
命令语法: OPP:MINVOL <NR2>
命令参数: <截止电压>,[单位:V]
查询范例: OPP:MINVOL?
回传范例: 4.500
1.2.14 BATTery 子系統
BATTery:MODE
说明: 设置电池放电模式。
命令语法: BATTery:MODE <Bool>
命令参数: <CC|CR|CP>, [恒流/恒阻/恒功率放电]
查询范例: BATTery:MODE?
回传范例: CC
BATTery:VALue
说明: 设置负载带载参数。
命令语法: BATTery:VALue <NR2>
命令参数: <带载参数>,[单位:A/Ω/W,取决于放电模式]
查询范例: BATTery:VALue?
回传范例: 1.000
BATTery:ENDVoltage
说明: 设置放电截止电压。
命令语法: BATTery:ENDVoltage <NR2>
命令参数: <截止电压>,[单位:V]
查询范例: BATTery:ENDV?
回传范例: 12.000
1.2.15 CRCC 子系統
CRCC:STVAL
说明: 设置组合模式的初始值。
命令语法: CRCC:STVAL <NR2>
命令参数: <恒阻值>,[单位:Ω]
查询范例: CRCC:STVAL?
回传范例: 10.000
CRCC:SWVAL
说明: 设置组合模式的切换值。
命令语法: CRCC:SWVAL <NR2>
命令参数: <恒流值>,[单位:A]
查询范例: CRCC:SWVAL?
回传范例: 2.000
1.2.16 CVCR 子系統
CVCR:STVAL
说明: 设置组合模式的初始值。
命令语法: CVCR:STVAL <NR2>
命令参数: <恒压值>,[单位:V]
查询范例: CVCR:STVAL?
回传范例: 3.000
CVCR:SWVAL
说明: 设置组合模式的切换值。
命令语法: CVCR:SWVAL <NR2>
命令参数: <恒阻值>,[单位:Ω]
查询范例: CVCR:SWVAL?
回传范例: 1.000
1.2.17 CVCC 子系統
CVCC:STVAL
说明: 设置组合模式的初始值。
命令语法: CVCC:STVAL <NR2>
命令参数: <恒压值>,[单位:V]
查询范例: CVCC:STVAL?
回传范例: 3.000
CVCC:SWVAL
说明: 设置组合模式的切换值。
命令语法: CVCC:SWVAL <NR2>
命令参数: <恒流值>,[单位:A]
查询范例: CVCC:SWVAL?
回传范例: 5.000
1.2.18 LED 子系統
LED:OPPV
说明: 设置 LED 操作点电压。
命令语法: LED:OPPV <NR2>
命令参数: <操作点电压>,[单位:V]
查询范例: LED:OPPV?
回传范例: 24.000
LED:OPPI
说明: 设置 LED 操作点电流。
命令语法: LED:OPPI <NR2>
命令参数: <操作点电流>,[单位:A]
查询范例: LED:OPPI?
回传范例: 2.500
LED:COEF
说明: 设置 LED 系数。
命令语法: LED:COEF <NR2>
命令参数: <系数>,[范围 0.1~0.4]
查询范例: LED:COEF?
回传范例: 0.100
1.2.19 LIST 子系統
LIST:STPNum
说明: 设置列表的总步数。
命令语法: LIST:STPNum <NR1>
命令参数: 1~16,[范围 1~16 步]
查询范例: LIST:STPNum?
回传范例: 3
LIST:REPeat
说明: 设置列表运行的重复次数。
命令语法: LIST:REPeat <NR1>
命令参数: 1~99999, [范围 1~99999 次]查询范例: LIST:REPeat?
回传范例: 10
LIST:RUNWay
说明: 设置运行方式。
命令语法: LIST:RUNWay <Bool>
命令参数: <CONT|TRIG|CONTERR|TRIGERR >
CONT 连续运行方式
TRIG 触发方式
CONTERR 连续运行,发生错误时停止
TRIGERR 触发方式,发生错误时停止
查询范例: LIST:RUNWay?
回传范例: CONT
LIST:STEPn
说明: 设置第 n 步的相应参数。
命令语法: LIST:STEPn <Bool>,<NR2>,<NR2>,<Bool>,<NR2>,<NR2>
命令参数: ①<CC|CV|CR|CP|OPEN|SHORt>,带载模式
②<NR2>,带载值, [单位:A/V/Ω/W]
③<NR2>,带载时间,[单位:ms]
④<OFF|CURR|VOLT|POWER>,检查类型
⑤<NR2>,检查上限值
⑥<NR2>,检查下限值
查询范例: LIST:STEP1?
回传范例: CC,1.000,1000.0,VOLT,4.500,5.500
1.2.20 TIMING 子系統
TIMING:MODE
说明: 设置时间测试的带载模式。
命令语法: TIMING:MODE <Bool>
命令参数: <CC|CV|CR|CP|OPEN>
查询范例: TIMING:MODE?
回传范例: CC
TIMING:VALue
说明: 设置时间测试的带载值。
命令语法: TIMING:VALue <NR2>
命令参数: <NR2>,[单位: A/V/Ω/W]
查询范例: TIMING:VALue?
回传范例: 1.00
TIMING:STTRIG
说明: 设置时间测试的起始触发源。
命令语法: TIMING:STTRIG <Bool>
命令参数: <CURR|VOLT|EXT>
查询范例: TIMING:STTRIG?
回传范例: VOLT
TIMING:STEDGE
说明: 设置时间测试的起始边沿。
命令语法: TIMING:STEDGE <Bool>
命令参数: <RISE|FALL>
查询范例: TIMING:STEDGE?
回传范例: RISE
TIMING:STLEV
说明: 设置时间测试的起始电平。
命令语法: TIMING:STLEV <NR2>
命令参数: <NR2>,[单位: A/V]
查询范例: TIMING:STLEV?
回传范例: 1.00
TIMING:ENDTRIG
说明: 设置时间测试的结束触发源。
命令语法: TIMING:ENDTRIG <Bool>
命令参数: <CURR|VOLT|EXT>
查询范例: TIMING:ENDTRIG?
回传范例: VOLT
TIMING:ENDEDGE
说明: 设置时间测试的结束边沿。
命令语法: TIMING:ENDEDGE <Bool>
命令参数: <RISE|FALL>
查询范例: TIMING:ENDEDGE?
回传范例: RISE
TIMING:ENDLEV
说明: 设置时间测试的结束电平。
命令语法: TIMING:ENDLEV <NR2>
命令参数: <NR2>,[单位: A/V]
查询范例: TIMING:ENDLEV?
回传范例: 1.00
1.2.21 OVP 子系統
OVP:VTRig
说明: 设置 OVP 测试的触发电平。
命令语法: OVP:VTRig <NR2>
命令参数: <NR2>,[单位: V]
查询范例: OVP:VTRig?
回传范例: 5.00
1.2.22 EFFect 子系統
EFFect:VRATE
说明: 设置负载效应测试的电源额定电压。
命令语法: EFFect:VRATE <NR2>
命令参数: <NR2>,[单位: V]
查询范例: EFFect:VRATE?
回传范例: 5.00
EFFect:IRATE
说明: 设置负载效应测试的电源额定电流。
命令语法: EFFect:IRATE <NR2>
命令参数: <NR2>,[单位: A]
查询范例: EFFect:IRATE?
回传范例: 2.00