在测试过程中,示波器、数据采集、数字化仪等各种测试设备常被用来捕获波形,并对波形进行数字化处理,然后将捕获到的这些数据,以数据包的形式下载到PC上,并存储起来。这些数据包可能非常庞大,包含数千乃至数百万个测量结果。对于长期数据记录,数据文件可能达到数G。通过仪器总线传输这些数据文件会占用极长的时间,进而使测试的时间明显增加。
在是德科技的一些高性能程控系统电源中,也内置有高速、高分辨率数字化仪,也可轻松捕获浪涌电流、瞬变电压和电流的波形测量结果。就效果而言,这与前面提到的方法毫无二致。这些高性能你系统电源包括APS系列电源系统、N6700多路模块化电源、6800系列交流源和分析仪、66300系列手机测试电源等等。在构建测试系统的时候,工程师们通常会选择以ASCII格式传输数据,但我们推荐您最好以二进制格式传输数据。与ASCII数据相比,传输二进制数据实际需要传输的字节更少,因此可将传输时间缩短一半甚至更多。
下面的实例,就是我们完成的一项对比测试,现在我想把测试结果与大家分享。请注意,这些结果都是通过快速测试获得的,不能视为正式的测试数据。所以如果您发现我的方法有错误,欢迎予以指正。
首先介绍一下我的测试方法。我使用了N6700B模块化系统电源主机和N6781A SMU模块,并为此编写了一段程序。该程序将模块输出设置为5 V,然后执行一系列电压测量。测量点数和采样率分别设为最大测量点数(524288点)和最快采样率(200kSa/s)。在将数据从N6700B读取到PC之前,启动程序秒表开始计时;在读取结束后停止计时。将此操作重复执行20次并计算平均值。
通常我们会推荐使用Agilent VISA-COM IO程序库。VISA-COM程序库中的ReadIEEEBlock功能可以非常容易地阅读二进制数据。
下面的截屏显示了相关的循环和计算程序。此程序用VB语言编写,我使用LAN来与仪器进行通信。
图中没有显示出来的另一个重点是,我使用FORM REAL命令将数据格式设置为real格式。如果您使用的是ASCII,那么数据格式设置命令为FORM ASCII(这也是默认设置)。
您可以看到注释掉的ReadString命令(使用ASCII数据格式时换入的)。您还可以看到非常专业和有用的“I am on line”计数器,通过置入这个计数器,我可以知道程序在正确循环。
现在对比一下运行时间。在ASCII格式下,将全部524288个测量结果回读用了大约100秒。换成二进制格式,同样的操作用了不到5秒。如您所见,两者简直是天壤之别,如果您要从支持二进制格式的仪器回读大量数据,利用二进制数据传输的能力,可大幅度缩短数据传输的时间。
我还做了其它一些试验。将总测量点数降低到1000。读取二进制格式数据需要不到20ms,而读取ASCII格式的数据大约需要125ms。最后,将总测量点数设置为3个数据点进行测试。二进制格式的测量时间不到15 ms,ASCII格式的测量时间不到5 ms。因此您可以看到,随着回读的数据逐渐减少,ASCII格式需要的时间也逐渐缩短,追上甚至超过二进制格式。
这个试验说明,如果回读的测量点数据比较多,最好使用二进制格式,因为它可以为您节省大量时间。