ZX8533 SCPI 指令速查手册
适用机型:ZX8533A/S/MGT、ZX6538A/B | 版本:VER:3.1.11+(2026-10)| 表格中命令可点击复制
1. 快速上手
| 项 | 参数 |
|---|---|
| RS232 / USB CDC | 9600 8N1 起(系统设置可改波特率倍率),命令以
(LF)结尾,应答以
结尾 |
| GPIB / USBTMC | 标准 VISA 寻址,EOI 结尾 |
| RS485 | 走 Modbus RTU 协议栈,不走本手册的 SCPI 指令 |
| 大小写 | 不敏感;长短名等价(如 :FREQuency = :FREQ) |
| 多命令 | 一行内用 ; 分隔;; 后带 : 表示新根命令,不带表示同根 |
开机三连测:
*IDN? → ZXP,ZX8533A,ZB23098357,VER:3.1.11 (读到即通讯正常) :FREQ? → +1.00000E+03 (当前频率 1kHz) FETC? → +2.17034E-06,+4.24065E-04,+0,+0 (主参数,副参数,状态,Bin号)
2. 指令总表
2.1 公共命令(IEEE 488.2)
| 命令(点击复制) | 类型 | 功能 / 应答 |
|---|---|---|
| *IDN? | 查询 | 仪器识别:ZXP,型号,序列号,版本 |
| *RST | 设置 | 复位到出厂默认设置 |
| *TRG | 设置挂起 | 总线触发(需 :TRIG:SOUR BUS 且 INIT:CONT ON),测量完成后自动输出结果 |
| *OPC | 设置 | 登记"操作完成":所有挂起操作完成后置 ESR 的 OPC 位(bit0) |
| *OPC? | 查询挂起 | 等待所有操作完成才回 +1(详见第 3 章) |
| *WAI | 设置挂起 | 等待所有挂起操作完成(无应答) |
| *CLS | 设置 | 清空全部状态/事件寄存器和错误队列(轮询同步每周期必须调用,见 3.1) |
| *ESE <n> | 设置 | 写标准事件使能寄存器(0~255) |
| *ESE? | 查询 | 读 ESE,如 +1 |
| *ESR? | 查询 | 读标准事件寄存器(读后清零):+32=命令错误、+1=操作完成、+128=上电 |
| *SRE <n> | 设置 | 写服务请求使能寄存器 |
| *SRE? | 查询 | 读 SRE |
| *STB? | 查询 | 读状态字节(只读):bit4(16)=有数据MAV、bit7(128)=操作状态汇总 |
| *TST? | 查询 | 自检,恒回 +0 |
| *LRN? | 查询 | 整机设置快照(可回放的复合命令串) |
2.2 测量条件(频率/电平/速度/内阻/偏置)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :FREQ 100K | 设置 | 设测量频率 100kHz(支持 Hz/kHz/MHz 后缀、MIN/MAX) |
| :FREQ? | 查询 | +1.00000E+05 |
| :VOLT 0.5 | 设置 | 设电压电平 0.5V(5mV~2V,切入电压模式) |
| :VOLT? | 查询 | +5.00000E-01 |
| :CURR 10m | 设置 | 设电流电平 10mA(50uA~20mA,切入电流模式) |
| :CURR? | 查询 | +1.00000E-02 |
| :APER MED | 设置 | 测量速度 SHORt/MED/LONG/LONG2,可带平均次数 :APER MED,10 |
| :APER? | 查询 | MED, 1 |
| :RSOU 100 | 设置 | 输出内阻 30/100/LOWZ |
| :RSOU? | 查询 | 100 |
| :AMPL:ALC ON | 设置 | 电平自动调整 ON/OFF |
| :AMPL:ALC? | 查询 | 1/0 |
| :BIAS:STAT ON | 设置 | 偏置开关 ON/OFF |
| :BIAS:VOLT 2 | 设置 | 偏置电压(上限视偏流源:内部2V/外部10V/选件40V) |
| :BIAS:CURR 0.1 | 设置 | 偏置电流(IntBias 时静默无效) |
| :OUTP:HPOW INT | 设置写Flash | 偏流源 INT/OPT1/EXT(BiasOn 时拒绝) |
| :OUTP:DC:ISOL OFF | 设置 | DC 隔离 ON/OFF |
2.3 测量功能与量程
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :FUNC:IMP CPD | 设置 | 测量功能:CpD/CpQ/CsD/CsRs/LpD/LsQ/ZTD/RX/DCR 等(见 FuncTokTab) |
| :FUNC:IMP? | 查询 | cpd |
| :FUNC:IMP:RANG 100 | 设置 | 锁定量程 100Ω(设后自动关 AUTO;支持 kohm/mohm 后缀) |
| :FUNC:IMP:RANG:AUTO ON | 设置 | 自动量程 ON/OFF |
| :FUNC:SMON:VAC ON | 设置 | 源电压监控 ON/OFF |
| :FUNC:DEV1:MODE PERC | 设置 | 偏差模式 ABS/PERC/OFF(DEV2 同理) |
| :FUNC:DEV1:REF 100 | 设置 | 偏差参考值 |
| :FUNC:DEV1:REF:FILL | 设置 | 用当前测量值填充参考值 |
2.4 取数(核心)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| FETC? | 查询挂起 | 取最新测量:主参,副参,状态,Bin号(测量中会等新结果,见第3章) |
| FETC:IMP? | 查询挂起 | 同 FETC? |
| FETC:MPRES? | 查询挂起 | 多参数取数:4或6个参数+总合格位(空夹具检空开启且无件时全0) |
| FETC:SMON:VAC? | 查询挂起 | 源电压监控值(未开启回 +9.90000E+37) |
| FETC:IMP:AUTO OFF | 设置 | 关闭自动发送(每次测量后主动发数) |
| :FORM ASC | 设置 | FETCh 应答格式 ASC/HEX |
2.5 触发
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :TRIG:SOUR BUS | 设置 | 触发源 INT/EXT/BUS/HOLD |
| :TRIG:SOUR? | 查询 | INT |
| :TRIG | 设置 | 立即触发一次 |
| :TRIG:DEL 0.01 | 设置 | 触发延时(秒,最大60s) |
| :INIT:CONT ON | 设置 | 连续测量 ON/OFF |
| :INIT:IMM | 设置 | 立即初始化(配合 *TRG) |
2.6 校正(对齐 E4980A)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :CORR:OPEN | 设置挂起写Flash | 全点开路校正(夹具保持开路!校正完成才应答后续命令) |
| :CORR:SHOR | 设置挂起写Flash | 全点短路校正(夹具短路) |
| :CORR:OPEN:STAT ON | 设置写Flash | 开路校正数据启用 ON/OFF(SHOR/LOAD 同理) |
| :CORR:LENG 1 | 设置写Flash | 电缆长度 0/1/2/4 m(2m/4m 需 OEM 校准数据) |
| :CORR:LOAD:TYPE CPD | 设置写Flash | 负载校正的功能类型 |
| :CORR:SPOT1:FREQ 1K | 设置写Flash | 点频校正点 1~201(对齐E4980A):设 n 号点频率 |
| :CORR:SPOT1:STAT ON | 设置写Flash | 启用 n 号点(SPOT1~SPOT201) |
| :CORR:SPOT1:OPEN | 设置挂起写Flash | n 号点开路校正(SHOR/LOAD 同理) |
| :CORR:SPOT1:LOAD:STAN 100,0 | 设置写Flash | n 号点负载标准值 A,B |
| :CORR:SPOT1:FREQ? | 查询 | +1.00000E+03 |
| :CORR:USE:DATA? | 查询 | SPOT1~3 的开/短/负载数据(18 个数) |
| :CORR:DCR:OPEN | 设置 | DCR 开路校正(SHOR 同理) |
2.7 比较器(分档)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :COMP ON | 设置 | 比较器开关 |
| :COMP:MODE ATOL | 设置 | 模式 ATOL/PTOL/SEQ/DIR(切模式清空极限表) |
| :COMP:TOL:NOM 0.0001 | 设置 | 标称值 |
| :COMP:TOL:BIN1 -1,1 | 设置 | BIN1~BIN10 上下限(未设回 9.9E37) |
| :COMP:SEQ:BIN 0,1,2,3,4,5,6,7,8,9,10 | 设置 | SEQ 模式 11 个边界(需先 MODE SEQ) |
| :COMP:SLIM -0.01,0.01 | 设置 | 副参数极限 |
| :COMP:SWAP ON | 设置 | 主副参数交换 |
| :COMP:BIN:COUN:DATA? | 查询 | BIN1~9,AUX,OUT 共 11 个计数 |
| :COMP:BIN:COUN:CLE | 设置 | 清零分档计数 |
2.8 列表扫描(含川翔双频定制)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :LIST:MODE SEQ | 设置 | SEQ/STEP 扫描模式 |
| :LIST:FREQ 1K,10K,100K | 设置 | 最多 10 点频率表(VOLT/CURR/BIAS:VOLT 同构) |
| :LIST:BAND1 A,-1,1 | 设置 | BAND1~10 比较带:A/B/OFF,下限,上限 |
| :LIST:CLE | 设置 | 清空扫描表 |
| :LIST:TMOD DIR | 设置 | 川翔双频极限模式 PTOL/DIR(影响 MPLMT? 应答) |
| :LIST:TFR1 1K | 设置 | 川翔双频频率1(TFR2=频率2) |
| :LIST:FLMT:BIN1 -1.0E-6,+1.0E-6 | 设置 | 双频 C 极限 BIN1~3(SLMT=D 极限) |
2.9 多参数(MGT 固态电容)
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| :MPSET:LINE1 CPD,1K,1,ON | 设置 | 第1~6行测量条件:功能,频率,电平,开关 |
| :MPSET:LINE1? | 查询 | CpD,+1.00000E+03,+1.00000E+00,ON |
| :MPSET:LINE1:SPEED FAST | 设置 | 行速度 FAST/MED/SLOW |
| :MPSET:LINE1:LIM ABS | 设置 | 行极限模式 ABS/PERC |
| :MPSET:LINE1:DEL 0.001 | 设置 | 行延时(秒) |
| :MPSET:LINE1:OFFSET 0.0 | 设置 | 行补偿值(OFFS 短名也支持) |
| MPSET:OPEN | 设置 | 多参数开路清零(自动切多参数测量页) |
| MPSET:SHOR | 设置 | 多参数短路清零 |
| MPSET:OPE? | 查询 | 多参数开路清零数据(6 个值) |
| MPSET:OPSH ON | 设置 | 清零数据有效开关 |
| MPSET:OSW ON | 设置 | 补偿开关 |
| MPSET:FCHK ON | 设置 | 夹具检空开关(202610 新增,空夹具→显示NC/PIN9/数据全0) |
| MPSET:FCHK? | 查询 | 1/0 |
| MPSET:HOUT 8516GT | 设置 | Handler 输出模式 LPASS/LFAIL/APASS/8516GT |
| MPLMT ABS | 设置 | 极限模式 ABS/PERC(DIR 由 LIST:TMOD 设置) |
| MPLMT? | 查询 | ABS/PERC/DIR |
| :MPLMT:LINE1 100u,90u,110u | 设置 | 第1~6行极限:标称,下限,上限 |
| :MPLMT:LINE1? | 查询 | +1.00000E-04,+9.00000E-05,+1.10000E-04 |
2.10 系统/状态/文件/其他
| 命令 | 类型 | 功能 / 应答 |
|---|---|---|
| SYST:ERR? | 查询 | 读错误队列(读出即清):+0,"No error" 或 -102/-113(见第4章) |
| SYST:TIME? | 查询 | 9,57,12(时,分,秒;可 set) |
| SYST:DATE? | 查询 | 2026,10,13(可 set) |
| SYST:FSH 1 | 设置 | E4981A 频率偏移 -2%~+2% |
| :STAT:OPER? | 查询 | 操作事件寄存器(读后清):+16=测量完成、+1=校正完成 |
| :STAT:OPER:COND? | 查询 | 操作条件寄存器(只读):16=测量中、1=校正中 |
| :STAT:OPER:ENAB 16 | 设置 | 操作事件使能(轮询同步用,见 3.3) |
| :STAT:FOOT? | 查询 | 脚踏/Handler 触发握手(读后清) |
| :DISP:PAGE MEAS | 设置 | 切页面:MEAS/BNUM/BCO/LIST/MSET/CSET/LTAB/LSET/SYST/MPSET/MPLMT/MPDISP |
| :DISP:LINE "HELLO" | 设置 | 消息行显示(≤20 字符,仅文件列表页可见) |
| :MMEM:LIST? | 查询 | 内部文件列表 |
| :MMEM:LOAD:STAT 1 | 设置 | 载入 1 号文件(覆盖当前设置) |
| :MMEM:STOR:STAT 1 | 设置写Flash | 保存到 1 号文件 |
| :RS232:PRIN ON | 设置 | 测量结果自动发送(RS232/CDC) |
3. 取数与等待逻辑专题(上位机必读)
核心矛盾:测量要几十~几百 ms,上位机发取数命令时结果可能还没出来。本仪器提供 4 种同步方式,按上位机需求选择。记住一个前提:本机的 FETCh? 会等待一次"新"测量完成才应答(与 Keysight 标准不同——E4980A 的 FETCh? 直接回上次结果)。
3.1 场景一:*STB? 轮询(上位机首选,RS232 界面流畅的唯一正解)
本厂上位机实测在用的方式:取数后清一次状态,然后短读轮询状态字节,128(测量完成事件汇总位)出现即取数。带界面的上位机都应该用这种方式。
// 初始化一次即可
write(":STAT:OPER:ENAB 16
"); // 使能"测量完成"事件位
// 每个测量周期:
write("FETC?
"); readline(buf); // 取本次数据
write("*CLS
"); // ★关键:重新武装(清事件寄存器)
// 也可用 :STAT:OPER? 读一次代替*CLS
while (1) {
write("*STB?
"); readline(buf); // 每次几ms就返回,UI不卡
if (atoi(buf) & 128) break; // 128=新测量完成
sleep_ms(30); // 渐进退避可再放宽
}
// 跳出循环 = 有新数据 → 回到顶部 FETCH
为什么每周期要 *CLS(或读一次 :STAT:OPER?):事件寄存器是锁存的——置位后只能靠 *CLS 或 :STAT:OPER?(读后清)清除。不清的话 STB 的 128 位永远是 1,轮询逻辑直接失效。这是 IEEE 488.2 标准语义。
3.2 场景二:SRQ 事件驱动(GPIB/USBTMC,最高效)
// VISA 伪代码
viWrite(":INIT:CONT ON
*ESE 1
*SRE 32
"); // ESE.0=OPC, SRE.5=ESB
viEnableEvent(SRQ); // 注册SRQ回调
viWrite("*TRG
"); // 触发(测量完成自动上报)
// 测量完成 → 仪器 STB 上报 SRQ → VISA 回调被调用 → 回调里 FETCh? 取数
完全不轮询,最高效;RS232 没有 SRQ 线,用不了(串口就用 3.1)。
3.3 场景三:最简单——直接 FETCh?(入门/快速验证)
仪器内部会把 FETCh? 挂起,等当前测量完成后才应答。上位机只需注意读超时设置大于测量周期(快速档 ~50ms,慢速档可能数百 ms,建议超时 ≥2s 兜底)。
// C 伪代码(RS232/CDC 通用)
write(":FREQ 100K
"); // 设条件
write("FETC?
");
char buf[128];
readline(buf, timeout=2000); // 仪器自动等新测量完成后才回
// buf = "+2.17034E-06,+4.24065E-04,+0,+0"
注意:外触发(EXT)模式下如果迟迟没有触发信号,FETCh? 会一直等——上位机超时后按 ESC 或切页可解锁(202610 后固件已加固,不会死锁)。
3.4 场景四:*OPC? 阻塞式同步(脚本/工装最省事)
write(":CORR:SHOR
"); // 发起短路校正(慢操作)
write("*OPC?
"); // 仪器挂起,直到校正完成才回 +1
readline(buf, timeout=60000); // 校正很慢,超时给足
// 收到 +1 = 校正真的完成了
适用:测试工装、产线脚本等"代码越短越好、不在乎阻塞"的场景。串口上位机带界面的不要用这个——会卡 UI(用 3.1 的轮询)。
3.5 场景五:*OPC + *ESR? 事件查询(不挂起解析器)
write("*CLS
"); // 清事件
write("*ESE 1
"); // 使能 OPC 位
write(":CORR:OPEN
"); // 发起校正
write("*OPC
"); // 登记:完成后置 ESR bit0
// ... 上位机去干别的 ...
write("*ESR?
"); readline(buf); // 轮询事件寄存器
if (atoi(buf) & 1) { /* OPC=1, 校正完成 */ }
3.6 四种方式选择速查
| 上位机类型 | 推荐方式 | 总线 |
|---|---|---|
| 带界面的上位机(要流畅) | 3.1 *STB? 轮询 | 全部(RS232 唯一选择) |
| 多仪器/多线程(要高效) | 3.2 SRQ 事件 | 仅 GPIB/USBTMC |
| 脚本/工装(代码最短) | 3.3 FETCh? 或 3.4 *OPC? | 全部 |
| 不挂起解析器的事件式 | 3.5 *OPC+*ESR? 轮询 | 全部 |
4. 错误代码表(SYST:ERR?)
202610 起仪器内置 IEEE 488.2 标准错误队列:每条错误入队,SYST:ERR? 逐条读出(读出即清除),空队列回 +0,"No error",*CLS 清空队列。队列满(16 条)时丢弃最旧并置 ESR 的 QYE 位。
| 代码 | 文本 | 含义 / 触发场景 | E4980A 对照 |
|---|---|---|---|
| +0 | "No error" | 队列空 | 一致 |
| -102 | "Syntax error" | 语法错误:参数格式错、子命令名错、点号越界(如 SPOT202)等 | 一致(标准码) |
| -113 | "Undefined header" | 未定义的命令头(命令名打错,如 :BADCMD) | 一致(标准码) |
| -350 | "Queue overflow" | 输出缓冲写满(应答超长被截断时上报,原先是静默丢失) | 一致(标准码) |
① 屏幕消息行红字显示错误命令(前 10 字符);
② 错误队列(SYST:ERR? 可读详情);
③
*ESR? 的 CME 位(+32)置位(标准 488.2 汇总)。调试建议:上位机每条命令后不必查错;联调阶段在关键节点发一次 SYST:ERR? 即可。错误队列读空为止。
5. E4980A 兼容性说明
| 项 | 本机 | E4980A | 说明 |
|---|---|---|---|
| 点频校正范围 | SPOT1~201 | SPOT1~201 | 完全一致(202610 对齐) |
| FETCh? 语义 | 等新测量完成才应答 | 回最近一次结果 | 有意差异(产线 PLC 习惯);要新数据用 READ? 语义请改用 :TRIG + 轮询 |
| 错误码 | -102/-113/-350 | 同 | 标准码一致 |
| 应答数值格式 | %+12.5E | %+12.5E | 一致 |
| 长短名 | 短名=大写前缀(标准) | 同 | 中间长度缩写两边都不支持 |