回忆十多年前开发的自动测试系统
上周看到论坛的是德征文活动,突然想起十多年前我开发的自动测试系统,为提高生产效率发挥了很大作用。
在十多年前,因为公司产品上的要求,需要为一系列RF模块开发自动测试系统,用来提高生产效率。因为最开始测试时,都由生产员工通过人工进行测试,不但速度慢,效率低,而对测试人员的要求较高,容易出错。
使用自动测试系统后,不但加快了测试速度,提高了生产效率,而且测试记录也可以保存到数据库或文件中,每个模块的指标都可以进行跟踪和回溯,对产品管理的帮助很大。此外,还减少了测试过程中,因为测试人员误操作造成的仪表损坏,节约了很多成本(有段时间因为测试人员素质参差不齐损坏了不少仪表,而仪表的维护费用是很高的)。
当时开发的自动测试系统,主要使用到了信号源(Signal Generator)、频谱仪(Spectrum Analyzer)、网络分析仪(Network Analyzer)、噪声系数测试仪等仪表,具体型号有Agilent E4432/E8648信号源,Agilent PAS/ESA E4445频谱仪、Agilent E5062A等,加起来有十几种型号。在当时这都是非常不错的仪表,不过现在大多已经停产,有了更好的替换型号。
在开发自动测试系统时,网络还不是太流行,网络编程也比较复杂,所以没有使用网络接口进行编程(LXI)。也没有使用速度比较慢的RS232(有一个原因是有些仪表的RS232有故障),而是使用了当时最流行的GPIB接口。可能现在很多人都不清楚GPIB接口(General-Purpose Interface Bus,通用接口总线),它是一种仪表上专用的接口,最早由HP公司开发,叫做HP-IB接口(惠普接口总线),然后逐步演变为GPIB,并吸收到IEEE 488标准之中,成为仪表控制上的主要接口。它类似于以前计算机上的并口,使用GPIB专用线缆实现设备之间的通信和控制,GPIB线是可以级联的,一个总线上可以连接多台设备,组成自动测试系统,每台设备有一个不重复的GPIB地址。GPIB使用并行方式传输数据,最高速度可以达到8Mb/s。虽然这个速度现在看起来不快,但在二十年前还是不错的。
因为大部分计算机是没有GPIB接口的,所以还需要一个PCI转GPIB的接口卡,才能实现PC和仪表的通信。如果是笔记本,就需要一个USB转GPIB的接口卡,使用上和PCI转GPIB差不多。因为属于专用设备,所以GPIB的转换卡和线缆的价格都比较贵。而现在大部分仪表都可以通过以太网方式进行控制(LXI,LAN-based eXtensions for Instrumentation),不但极大降低了配件成本,而且速度更快,还可以实现远程控制和远程测试(GPIB线的有效通信距离通常只有几米远)。
GPIB和以太网属于物理层,而控制仪表还需要专用的指令。用于控制仪表的指令叫做SCPI指令(Standard Commands for Programmable Instruments),这也是由HP公司的HP-IB演变而来的。SCPI指令是一种文本指令,可以控制仪表完成各种操作,设置参数,是自动测试系统最基础的命令,它可以通过各种方式从主机发到仪表,包括了前面提到的GPIB、RS232、LAN等。每种仪表除了IEEE标准规定的基本指令外,还有很多专用指令。在LabView中集成了常用仪表的驱动,不用开发者在去研究底层的SCPI指令。而自己开发软件,就需要在仪表的编程手册中(Programmer’s Guide),去查找每个操作对应的指令,了解指令的用法,参数的使用等,非常麻烦。好在虽然SCPI指令很多,但是一般的测试系统常用的指令就一二十条,而且Agilent仪表的SCPI指令很有规律,通过指令的名称也很容易自动它的功能,不同仪表之间的指令也有较好的通用性。所以很快就能掌握。
开发自动测试系统,可以使用PC上常用的各种编程软件,如VC、VB、Delphi、Basic(DOS下,最早的例程都是Dos下Basic的)、VBA等,不过最专业的还是使用NI公司的LabView,它不但集成了很多仪表的驱动,还支持图形化编程,降低了编程难度。不过因为版权和经费限制等问题,再加上不是专门搞测试的没有时间去学Labview,所以我们没有使用LabView,而是使用了Delphi进行编程。开始还有点担心会遇到很多困难,但是很快就发现Agilent的仪表控制起来比想象的还容易,没有太多隐藏的问题,指令非常清晰,这一点上比日系的仪表方便多了,减少了很多调试时间。虽然自己编程没有LabView那样专业,其实效果也不错,也不用安装众多的驱动和库,使用上更加灵活轻便,此外用Delphi做界面和数据库很方便。
第一版的自动测试系统大概用了不到2个月就开发好了,很快就用在生产中。后续又增加了不少功能,还支持多种仪表(方便替换不同型号仪表,这个功能在生产上测试中特别需要)。到现在这套测试系统已经使用了十多年,上周去了解了一下(这期间因为一些原因也离开了原来的公司),它还在稳定的运行着,后来还衍生出好几个不同版本,用于其它产品的自动测试上。这个月公司有一个新的测试任务要启动,有几万个模块需要进行测试,虽然已经好几年没有做测试了,不过使用LXI方式编程,加上容易使用的Agilent仪表,相信很快就可以搞定
软件的运行界面
仪表管理界面
正准备开发的新自动测试系统,右下角是待测模块。
它使用了E5062A网络分析仪。在E5062A上有一个高分辨率的液晶屏,运行的是Win2000英文专业版系统,这在当时算很先进了。更早期仪表的显示屏分辨率很低,许多还是文本字符界面的,简陋多了。而后来的仪表就越来越高级,除了操作系统在升级,甚至还可以支持触屏操作。控制方式也从最早只有RS232、GPIB接口,到现在USB、Lan接口等,不但使用方便,速度也更快。
原来的测试系统现在不方便去拍,先拍一些其它还在使用的安捷伦仪表,有的旧仪表上甚至还有软驱。
最后值得一提的是德科技的仪表质量一直非常不错,从HP到安捷伦,到是德科技,虽然名称变了,但是品质没有变,很多仪表用了一二十年,到了淘汰时间还可以正常稳定的使用。有的仪表数字按键都失灵了,但是还可以在自动测试上很好的运行。公司偶尔还可以看到更老HP时代的仪表,除了指标差点,也能正常使用。