2. Anritsu 测试仪表远程控制接口配置
远程控制接口选型与物理连接
Anritsu 无线通信测试仪表(如 MT8821C、MS2090A、MG3710E 等)通常同时提供 LAN、GPIB 和 USB 三种远程控制接口。三者并非互斥,但同一时刻建议只启用一条主控通道,避免多通道并发写入造成命令队列冲突。选型时优先考虑上位机侧已有资源:现代 PC 普遍无 GPIB 卡,因此 LAN 是首选;若需与老旧测试系统兼容或要求确定性时延,则选 GPIB;USB 适合单机快速调试,但线缆长度和拓扑灵活性最差。
| 接口 | 典型物理层 | 地址/标识 | 适用场景 |
|---|---|---|---|
| LAN | RJ45,100/1000BASE-T | IP + 端口(常用 5025) | 多仪表组网、长距离、高吞吐 |
| GPIB | IEEE-488 24 芯 | 主地址 0–30 | 确定性时延、老旧系统兼容 |
| USB | USB-B / USB-C | VID/PID + 序列号 | 单机调试、即插即用 |
物理连接完成后,需在仪表端确认接口处于“远程使能”状态。以 LAN 为例,进入仪表的 System > Remote Interface > LAN,确认 IP 获取方式(DHCP 或静态)、子网掩码与网关;若使用静态 IP,需与上位机处于同一网段。GPIB 需在 Remote Interface > GPIB 中设置主地址,并确保与上位机 GPIB 控制器地址不冲突。USB 接口通常无需额外地址配置,但需确认仪表已识别为 USBTMC 设备。
若仪表同时连接 LAN 和 USB,部分型号会默认以最后建立的连接为主控通道。建议在正式测试前断开非使用接口,或在仪表设置中显式指定远程接口优先级。
上位机通信建立与 SCPI 交互验证
以下以 Python + PyVISA 为例,演示 LAN 接口的通信建立与基本 SCPI 交互。PyVISA 是仪器控制领域的通用抽象层,后端可切换为 NI-VISA、pyvisa-py 等。安装命令:pip install pyvisa pyvisa-py。若使用 NI-VISA 后端,需先安装对应驱动。
import pyvisa
# 1. 创建资源管理器
rm = pyvisa.ResourceManager()
# 2. 列出当前可见的 VISA 资源,确认仪表已被识别
resources = rm.list_resources()
print("可见资源:", resources)
# 3. 通过 TCP/IP 打开仪表,端口 5025 为 SCPI 原始套接字常用端口
# 若使用 GPIB,地址形如 "GPIB0::12::INSTR"
# 若使用 USB,地址形如 "USB0::0x0B5B::0x0110::...::INSTR"
inst = rm.open_resource("TCPIP0::192.168.1.100::5025::SOCKET")
# 4. 设置读写终止符,SCPI over socket 通常以换行结尾
inst.read_termination = "\n"
inst.write_termination = "\n"
inst.timeout = 5000 # 单位 ms
# 5. 查询仪表标识,验证双向通信
idn = inst.query("*IDN?")
print("仪表标识:", idn)
# 6. 查询错误队列,确认无历史错误
err = inst.query(":SYSTem:ERRor?")
print("错误队列:", err)
# 7. 关闭连接
inst.close()
运行后若 *IDN? 返回类似 Anritsu,MT8821C,6200123456,V1.02 的字符串,说明通信链路已建立。随后查询 :SYSTem:ERRor?,正常应返回 0,"No error"。若返回非零错误码,需根据错误信息排查命令拼写、参数范围或接口配置。
使用 SOCKET 端口 5025 时,部分 Anritsu 型号需在仪表端显式启用“SCPI Socket”服务。若连接超时,先检查仪表
Remote Interface > LAN > SCPI Socket 是否开启,再确认防火墙未拦截该端口。接口配置与验证流程
常见连接异常与排查要点
- 连接超时:确认仪表 IP 与上位机同网段,
ping通后再试;检查 SCPI Socket 是否启用,端口 5025 是否被防火墙拦截。 - 资源列表为空:PyVISA 后端未正确安装或未识别接口。LAN 需安装 pyvisa-py 或 NI-VISA;GPIB 需安装 GPIB 控制器驱动;USB 需确认 USBTMC 驱动已加载。
- 返回乱码或截断:读写终止符设置不一致。SCPI over socket 通常用
\n,GPIB 常用\r\n,需与仪表端设置匹配。 - 错误队列非零:根据
:SYSTem:ERRor?返回的错误码定位。常见如 -113“Undefined header”表示命令拼写错误,-222“Data out of range”表示参数超限。
验证通过的最低标准:
*IDN? 返回完整仪表标识字符串,且 :SYSTem:ERRor? 返回 0,"No error"。两项同时满足即可认为远程控制接口配置与 SCPI 交互正常。