3. 自动化测试环境搭建

自动化测试环境是后续所有脚本、数据采集与报表流程的物理与软件基础。环境搭建的核心目标只有一句话:让上位机能够以稳定、可复现、可寻址的方式,与示波器、函数发生器、频谱仪等仪器完成命令交互与波形/数据回传。本节围绕硬件连接、驱动与设备发现、OpenChoice 与 TekVISA 部署、网络规划与安全四个层面展开,并给出可直接参照的配置示例。

一、硬件连接与接口选择

泰克仪器常见的远程控制接口包括 USB Device(USBTMC)、LAN(LXI/VXI-11 或 HiSLIP)、GPIB 以及部分型号的 RS-232。选择顺序建议为:LAN > USB > GPIB。LAN 便于多机集中管理与远程访问,USB 即插即用适合单机台架,GPIB 则在老旧仪器或强实时场景中仍有价值。

物理连接时需注意三点:一是 USB 线缆长度不超过 5 m,超过时使用带供电的 USB Hub;二是 LAN 直连时使用交叉网线或支持 Auto-MDIX 的普通网线,并手动配置同网段静态 IP;三是 GPIB 链路总长度不超过 20 m,且每 2 m 线缆最多挂接 2 台设备,链路上设备数不超过 15 台。以 MSO54 示波器为例,其后面板 LAN 口默认支持 DHCP,若实验室无 DHCP 服务器,需在 Utility > I/O > LAN 中改为手动 IP,例如上位机 192.168.10.1/24,示波器 192.168.10.21/24,网关留空。

二、驱动安装与设备发现

Windows 上位机连接 USB 仪器时,需安装 USBTMC 驱动。TekVISA 安装包已内置该驱动,安装后可在设备管理器中看到 USB Test and Measurement Device (IVI) 条目。若使用 NI-VISA 与 TekVISA 共存,建议只保留一套 VISA 实现,避免 viFindRsrc 返回重复资源。

设备发现推荐使用泰克官方工具 OpenChoice Instrument Manager,它会扫描 USB、LAN、GPIB 三类接口并列出资源字符串。典型资源字符串格式如下:

USB::0x0699::0x0522::C012345::INSTR      # USB 连接的 MSO54
TCPIP0::192.168.10.21::inst0::INSTR      # LAN 直连(VXI-11)
TCPIP0::192.168.10.21::hislip0::INSTR    # LAN(HiSLIP,推荐)
GPIB0::5::INSTR                          # GPIB 地址 5 的仪器

发现失败时按以下顺序排查:确认仪器 I/O 页面已启用对应接口;用 ping 192.168.10.21 验证网络可达;在 Instrument Manager 中手动添加 IP 并点击 Test Connection;若返回 VI_ERROR_RSRC_NFOUND,多为防火墙拦截或 VISA 冲突。

三、OpenChoice 与 TekVISA 部署

TekVISA 是泰克提供的 VISA 实现,负责底层通信;OpenChoice 是上层数据采集与桌面分析套件,包含 Instrument Manager、OpenChoice Desktop 等组件。部署顺序应为:先装 TekVISA,再装 OpenChoice,最后安装编程环境(Python + PyVISA 或 MATLAB Instrument Control Toolbox)。

安装完成后验证环境是否可用,可运行以下 Python 示例(PyVISA 后端指向 TekVISA):

import pyvisa
rm = pyvisa.ResourceManager('C:/Windows/System32/visa32.dll')
scope = rm.open_resource('TCPIP0::192.168.10.21::hislip0::INSTR')
scope.timeout = 5000
print(scope.query('*IDN?'))
# 预期返回:TEKTRONIX,MSO54,C012345,CF:91.1CT FV:1.2.3

若 *IDN? 正常返回,说明 VISA 层、网络层与仪器命令层均已打通,可进入后续自动化脚本开发。

四、测试网络规划与安全设置

建议为测试仪器划分独立 VLAN 或独立交换机,与办公网隔离。地址规划示例:上位机 192.168.10.1/24,仪器地址段 192.168.10.21–192.168.10.60,保留 .1–.20 给网关与服务器。仪器侧关闭不必要的服务,仅保留 VXI-11、HiSLIP 与 HTTP(用于 Web 界面)。

安全方面:修改仪器默认密码;禁用 Telnet 与 FTP,改用 SCP 或 USB 导出;在交换机上限制仅上位机 MAC/IP 可访问仪器端口(VXI-11 用 111/1024,HiSLIP 用 4880);对关键测试脚本与波形数据设置只读归档目录,避免误覆盖。

自动化测试环境拓扑与部署链路 上位机 (Windows) IP: 192.168.10.1/24 TekVISA + OpenChoice PyVISA / Python 3.11 Instrument Manager visa32.dll 后端 测试交换机 / VLAN 10 端口: 4880 (HiSLIP) 端口: 111 / 1024 (VXI-11) MSO54 示波器 192.168.10.21 HiSLIP / VXI-11 AFG31000 函数发生器 192.168.10.22 VXI-11 USB 仪器 (USBTMC) USB::0x0699::0x0522::C012345 直连上位机 USB 口 LAN USB 直连 网络规划与安全要点 • 独立 VLAN 10,与办公网隔离 • 仪器地址段 192.168.10.21–60,静态分配 • 仅开放 HiSLIP(4880)、VXI-11(111/1024)、HTTP • 禁用 Telnet / FTP,改用 SCP 或 USB 导出 • 交换机 ACL 限制仅上位机 MAC/IP 可访问 • 修改仪器默认密码,启用只读归档目录 • 防火墙放行 visa32.dll 与 Python 进程 部署顺序 1. TekVISA 2. OpenChoice 3. Python + PyVISA

五、环境验证清单

完成上述配置后,建议按以下清单逐项确认,全部通过即可认为环境搭建完成:

检查项验证方法通过标准
物理连接查看仪器 LAN 指示灯 / 设备管理器链路灯常亮,无黄色感叹号
网络可达ping 192.168.10.21丢包率 0%,延迟 < 5 ms
VISA 资源Instrument Manager 扫描列出全部仪器资源字符串
命令通道Python 执行 *IDN?返回正确型号与序列号
数据回传读取 CURVE? 或 WFMOUTPRE?返回波形数据,无超时
安全策略端口扫描 4880/111/1024仅预期端口开放
建议将上述资源字符串、IP 地址、VISA 后端路径统一记录在 config.yaml 中,脚本通过配置文件读取,避免硬编码导致换机后无法运行。
TekVISA 与 NI-VISA 同时安装时,PyVISA 可能默认加载 NI 后端,导致找不到 TekVISA 资源。此时需在 ResourceManager 中显式指定 visa32.dll 路径,或卸载其中一套 VISA。