1. 课程导入与平台全景
在电子研发与生产测试中,工程师经常需要同时操作示波器、信号源、频谱仪、万用表等多台仪器。如果每台仪器都靠手动按键、逐项记录,不仅效率低,而且难以保证测试条件一致、数据可追溯。Tektronix多仪器自动测试平台,就是把这些独立仪器通过标准接口连接起来,由上位机程序统一控制、统一采集、统一判定的一套软硬件协同系统。它的核心价值不是“让仪器动起来”,而是把测试条件、采集过程、结果判据固化成可重复执行的程序,使测试从“人工操作”转变为“可复现的自动化任务”。
理解这个平台,首先要区分三个层次:仪器层、连接层和控制层。仪器层是实际产生激励或进行测量的设备,例如AFG31000任意函数发生器、MDO3000混合域示波器、RSA306B频谱分析仪、DMM6500数字万用表。连接层负责把仪器与计算机连起来,常见方式包括USB、LAN(LXI)、GPIB以及串口,不同接口在带宽、延迟、布线成本和仪器兼容性上各有取舍。控制层则是运行在PC上的程序,通常使用Python、MATLAB、LabVIEW或C#等语言,通过VISA库向仪器发送SCPI命令,并读取返回数据。三层之间的关系可以用下面的平台全景图来理解。
从图中可以看到,平台并不是简单地把仪器堆在一起,而是形成了“软件发命令—总线传命令—仪器执行—数据回传—软件判定”的闭环。以一次典型的放大器增益测试为例:上位机先通过VISA向AFG31000发送:SOUR1:FUNC SIN和:SOUR1:FREQ 1e6,设置1 MHz、1 Vpp正弦波;再向MDO3000发送:CH1:SCALE 0.5和:MEAS:VPP? CH1,读取输出峰峰值;最后程序计算增益并写入CSV。整个过程不需要人工按键,测试条件由代码保证一致。
要开发这样的平台,通常遵循一条从“单机连通”到“多机协同”的路径。第一步是环境搭建:安装NI-VISA或PyVISA,确认计算机能识别仪器地址。在Python中可以用rm = pyvisa.ResourceManager()列出资源,再用inst = rm.open_resource('USB0::0x0699::0x0363::...::INSTR')打开设备。第二步是单机控制验证:发送*IDN?确认型号,发送*RST复位,再逐条测试关键SCPI命令,确保每条命令都能得到预期响应。第三步是封装仪器类:把示波器的“设置时基、设置通道、读取测量值”封装成函数,把信号源的“设置频率、幅度、波形”封装成函数,避免主程序里散落大量SCPI字符串。第四步是多仪器协同:按照“先配置激励、再等待稳定、后采集数据”的顺序组织测试流程,必要时加入time.sleep()或查询*OPC?等待仪器完成操作。第五步是数据管理与判定:把每次测试的仪器设置、原始读数、时间戳和判定结果写入结构化文件,便于追溯和复现。
在这套流程中,四类仪器的角色分工非常明确。信号源负责“给激励”,它决定了被测对象工作在什么频率、幅度和波形条件下;示波器负责“看时域”,它捕捉波形形状、幅度、时间参数和异常毛刺;频谱仪负责“看频域”,它发现谐波、杂散、边带和噪声等时域不容易暴露的问题;万用表负责“测静态量”,它以较高精度测量直流工作点、电阻和通断,适合慢速但要求准确的项目。四者不是互相替代,而是从不同维度共同描述同一个被测对象。例如测试一个射频放大器时,信号源提供载波,频谱仪测增益和杂散,示波器看包络和瞬态,万用表监测偏置电压,缺少任何一环都可能漏掉某类缺陷。
学习路径上,建议先掌握SCPI命令的基本语法和VISA通信机制,再选择一台仪器完成单机自动化,然后扩展到两台仪器的联动,最后再构建包含判定、记录和异常处理的完整测试程序。不要一开始就追求“大而全”的平台,而应从一个明确的测试任务出发,例如“测量低通滤波器的幅频响应”,逐步加入仪器、加入判据、加入报告。这样每增加一个模块,都能立即看到它对测试结果的影响,学习反馈更直接。
*IDN?确认仪器在线,再用*RST回到已知状态,然后只改一个参数、只读一个测量值,确认链路通畅后再编写完整流程。这样可以把“通信问题”和“测试逻辑问题”分开排查。