推荐厂家
暂无
暂无
摘要:本文描述了基于虚拟仪器思想在实际测控系统中的应用。通过选用多功能数据采集卡和信号调理电路组成自动测试系统,软件开发以专业测控工具LabWindows/CVI为平台,实现了数据采集、分析和处理。使整个测控系统既经济又便于操作,同时易于改进和功能扩展。同时,与基于传统的开发平台的测控系统进行了比较。 关键词:虚拟仪器;Labwindows/CVI;数据采集 1、引言 虚拟仪器是以一种全新的理念来设计和发展的仪器,它是20世纪90年代发展起来的一项新技术。虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种自动测试、过程控制、仪器设计、数据分析和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,其基本思想是在仪器设计或测试系统中尽可能用软件代替硬件,即“软件就是仪器”,它是在通用计算机平台上,根据用户需求来定义和设计仪器的测试功能,其实质是充分利用计算机的最新技术来实现和扩展传统仪器的功能,这种测试仪器的硬件功能软件化,给测试仪器带来了深刻的变化,因此虚拟仪器代表了当前测试仪器发展的方向之一。 2、虚拟仪器的特点和构成 2.1虚拟仪器的特点 与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性好等明显优点。 2.2虚拟仪器的构成 虚拟仪器的构建主要从硬件电路的设计、软件开发与设计两个方面考虑。 根据目前我们所完成的测试设备,硬件电路的设计一般是选择现有的各种不同功能的板卡以及信号调理板来搭建。所选用板卡的功能包括:高速数据采集和信号转换;信号输出与控制;数据的A/D转换。将具有一种或多种功能的板卡结合信号调理板组建起来,就能构成任何一种虚拟仪器。例如使用高速数据采集板卡和高速实时数据处理就能构成1台示波器、1台数字化仪或 1台频谱分析仪;使用数字量信号输入/输出板卡和实时数据处理就能构成1台函数发生器、1台信号源或1台控制器。 3、虚拟仪器在实际测控系统中的应用 3.1虚拟仪器在航空机载电子测控系统中的应用 测控系统在航空机载成件中起着举足轻重的作用,提高和完善测控系统的精度和测试能力对于整个飞机性能分析具有重要的意义。我们主要完成了基于虚拟仪器的各型继电器盒、各型开关盒测控系统的测试。使用数字采集板及工控机并在LabWindows/CVI开发平台中实现了对整个测试的电压采集、对各型继电器盒的逻辑状态及延时时间进行输出存储和分析。 3.1.1 测试系统组成 整个测控系统由美国NI公司的LabWindows/CVI8.0,研华的1块PCI_1751 48路数字量输入/输出板,2块PCI_1754 64路数字量输入板、2块PCLD_785B 24通道继电器输出板、6块PCLD_782 24通道光电隔离数字量输入板,1块PCL_818L 16通道A/D转换板、若干信号调理板及工控机组成。 测控系统的数据采集和处理采用虚拟仪器测量平台。测控部分主要作用是参与被测产品的控制、测试数据处理和量化,驱动测试数据显示;工控机通过数字量输出板,经继电器输出板变换为被测产品的模拟控制信号;从被测产品采集来的电气逻辑信号经光电隔离数字量输入板转换为数字量信号,通过数字量输入板输至工控机;另外,利用A/D转换板来显示电压;利用系统时钟来完成被测产品的时间继电器延时时间的测试。 3.1.2 基于虚拟仪器的航空机载电子系统测控平台 该平台整体系统采用美国国家仪器公司的虚拟仪器专用开发平台LabWindows/CVI系统。由于CVI在标准C语言(Ansi C)的基础上增加了仪器控制和工具函数库的虚拟仪器开发软件,它的集成化开发平台、交互式编程方法、丰富的面板功能和库函数使其自身功能更加强大,应用更加方便,界面完全能够虚拟真实实物进行设计,使得人机对话界面直观、友好。 由于测试的产品种类多,归属性强,因此系统测控平台的用户界面采用下拉菜单式,所需测试的产品一目了然,选用方便。 3.2基于虚拟仪器的测控平台在测控系统中的应用所使用的几个关键技术 3.2.1 通过采用系统时钟的方法提高软件测时时间 在测试过程中要获得延时继电器的时间,一种方法是采用定时器/计数器板专门进行计数,另一种方法是采用系统时钟进行计数。由于所需测试的时间为秒级,要求误差为20%,采用后一种方法完全能达到,一是可以节约成本,二是选购的计算机可不必多配置一个插槽,节省了空间。在程序中使用了以下函数来获取高精度时间,它的精度可以达到毫秒级。 3.2.2 在测控系统中运用了数据库管理技术 由于Lab Windows/CVI开发平台能够方便使用NI公司开发的SQL工具包,使得大量的测试数据能够以数据库的形式存储、查询。 在测控系统中,可以通过所设置的产品名称、件号、时间、测试结果、温湿度、试验者、质控者等字段来进行保存,完成了一套产品的履历记录,通过查询产品的件号、时间等就可以调出每个产品的测试记录,这样就解脱了人工管理的诸多不便,提高了工作效率。 3.2.3 调用ActiveX自动化编程技术并打印生成了Excel表格 ActiveX自动化是一种能将单个应用程序和其他应用程序结合在一起的方法。通过Lab Windows/CVI提供的ActiveX控件可以直接调用Excel程序,并使用这些控件提供的函数对从Excel表格进行操作,从数据库中读取测试数据,转换并填入单元格,最后自动生成产品正式履历表并进行打印。 3.3 基于虚拟仪器的测控平台与一般测控平台比较 采用LabWindows/CVI开发工具使得不同的信号可以统一在同一个程序里面实现方便的采集与保存。继电器盒测试系统以前有一个运用Visual C++开发的测试平台,和基于虚拟仪器的测控平台相比,它们在本系统中功能的实现和维护都存在很大的差距。 首先运用Visual C++开发的测试平台不如使用LabWindows/CVI开发的基于虚拟仪器的测控平台简单方便[url=http://www.dttjf.c
虚拟仪器技术将成为测试测量行业的主流 自二十世纪八十年代中期以来,虚拟仪器技术已结合了模块化硬件、开发软件和PC技术,从而使用户可通过软件来建立自定义的仪器。软件定义比厂商定义台式仪器功能的方式通测仪器有更大的灵活性,并且由于基于PC技术,所以能以更快的速度实现高级的功能。 如今在测试应用中使用虚拟仪器技术已成为主流。绝大多数测试行业已接受虚拟仪器技术的概念,或者倾向于采用虚拟仪器技术。例如,具有代表性的美国军方虽然不是技术趋势的领导者,但也在广泛地使用虚拟仪器技术。作为世界上最大的ATE(自动化测试设备)独立用户,美国国防部已在他们所推动的综合性仪器中采用了基于软件的仪器概念。在向国会提交的报告中,国防部指出:“在开发综合性仪器时,采用新近的商业化技术能实时地配置仪器以实现各种测试功能......单个综合性仪器可以代替多个独立仪器的功能,从而减小了后勤装备的体积并解决了设备过时的问题。”。综合性仪器和虚拟仪器技术具有商业化硬件和软件处理特性,把这两者结合起来能建立用户自定义的仪器。 目前,数千家大型的公司已经开始使用虚拟仪器技术。仅在生产检测中许多厂商已在关键性项目、大规模产品检测应用中使用虚拟仪器技术的硬件和软件。而在工业领域,虚拟仪器技术已被用于自动化石油钻探和提炼,生产中的机器控制,甚至是核反应堆的控制。 传统仪器和革新者的难题 正如ClaytonChristensen在同名的书中所描述的,传统仪器在此同时会遭遇“革新者的难题”。Christensen是这样描述这一现象的:新的具有突破性的技术会改变市场的前景并最终推翻市场领导者的地位。事实上,Christensen认为在市场领导者的地位被新技术推翻后就很难再领导市场了。在测试和测量领域中,传统仪器通过使用已有的架构来提高测量的性能并沿着这样方向不断进行革新。而在虚拟仪器技术出现的早期,由于它的测量性能比较低,因此在这种情况下,这些突破性技术对于传统仪器厂商并没有带来多大威胁,所以他们很大程度上忽视了虚拟仪器技术的存在。然而到了二十世纪八十年代的晚期和九十年代的早期,虚拟仪器技术开始应用于需要灵活性的测量中,而这些应用通过传统的方式是无法实现的。到了九十年代末和二十一世纪,随着PC处理器和商业化半导体的性能和精度的进一步提高,虚拟仪器技术的测量性能已比原来提高了许多。现在,虚拟仪器技术可以和传统仪器的测量性能相当,甚至超过它们,而且还具有更高的数据传输率、灵活性、可扩展性以及更低的系统成本。 为了证明在消费品市场中“革新者难题”这一原则,我们可以比较一下MP3和传统播放通测仪器媒介,如CD。开始的时候传统音频设备制造商并没有意识到MP3播放器的威胁——毕竟MP3降低了声音的质量,并且在播放时您还需要PC和专门的软件。而另一方面,CD播放器则容易使用并有专门的操作接口(按钮和旋钮)。然而由于MP3具有易于共享和便于携带的优势,所以尽管它有缺点,在诞生初期仍然被一些用户所推崇。随着时间的推移,MP3的质量已经可以接受并且播放MP3的软件也有了极大的发展。现在MP3已成为了主流,并且对传统的音频记录和播放行业造成了巨大的威胁。 尽管许多传统的播放器厂商最终通过开发出具有MP3功能的播放器以转向采用这一突破性技术(近来Sony推出了MP3W通测仪器alkman),但是新的市场已被先推出MP3技术的公司所领导。例如,Apple已占据了基于硬盘音乐播放器销售量的82%。 在测试测量市场,行业领导者安捷伦已同样开始采用虚拟仪器技术的概念。例如,安捷伦最近推出的产品包括一套基于以太网的“综合性仪器”以及能兼容PXI的任意波形发生器,而PXI是工业标准的虚拟仪器技术平台。近来安捷伦的JohnStratton也表示支持软件定义的综合性仪器概念:“和目前标准的采用机架解决方案相比,另一种方案是使用综合性仪器。综合性仪器采用软件算法和硬件模块来代替分离的测试单元。”。在最近召开的投资者大会上,安捷伦的首席运营官BillSullivan提出,“转向使用基于软件配置的模块化仪器,能让用户轻松地进行重复配置和重复使用,这将是测试和测量未来的发展方向”。 PC性能不断革新并降低了成本 在过去二十年里,PC的性能已提高了10,000倍,其它任何商业化技术都不曾有过这样高的性能增长。由于虚拟仪器技术采用PC处理器来进行测量分析,每次随着新一代PC处理器的出现,使用虚拟仪器技术就可以实现新的应用。例如,目前的3GHzPC可用来进行复杂的频域和调制分析以用于通信测试应用。使用1990年的PC(Intel386/16),65,000个点的FFT(快速傅立叶变换,用于频谱分析的基本测量)需要1100秒。而现在使用3.4GHz的P4计算机实现相同的FFT只需要约0.8秒。 与此同时,硬盘、显示和总线带宽也有类似的性能提高。新一代的高速PC总线PCIExpress能提供的带宽高达3.2GBytes/s,从而可以利用PC架构来实现超高带宽的测量。某些厂商声称高速内部总线将会让位给如以太网和USB这样的外部总线。尽管毋庸置疑这些外部总线适合某些特定的应用需求(如以太网适用于分布系统而USB易于进行桌面连接),但是同样也有高速的数据传输速率需求。例如,一个100MS/s的14位IF数字化仪能生成200MB/s的数据,这将高于千兆以太网的80MB/s带宽。基于这样的原因,您不会在市场看到有任何以太网的视频卡;甚至是千兆的网络也比PCIExpress慢30倍。实际上千兆以太网接口和其它外设是通过PCIExpress和CPU相连。虚拟仪器技术的基于软件的方式可以在应用软件中对总线进行抽象,从而利用所有这些总线——PCI,PCIExpress,USB和以太网。 许多传统仪器厂商采用在仪器中嵌通测仪器入PC的方式来解决这一问题。这些仪器通常有一个嵌入式仪器处理器和一个通过内部总线和仪器盒相连的标准PC主板。然而,这种方式就损失了PC技术的两个关键优势——一是像Dell这种桌面PC厂商的规模经济优势,二是能轻松地升级PC从而对测量性能进行大幅度的提高。大多数示波器的使用寿命为5到20年,而一台用了20年的PC早已没有了使用价值。此外,如图1所示,这些设备的功能还基本上是由厂商定义的——用户无法利用设备中的固件来自定义测量的功能。
1引言 计算机及其接口技术的发展和传统测试测量仪器系统暴露出来的不足,使得基于计算机的虚拟仪器设备越来越成为测试测量仪器的主导。虚拟仪器系统以其平台通用性、可扩充、易升级和高度的智能性获得了广泛的工业应用。在PC和工业控制计算机中插入基于PC总线(ISA,PCI)的数采板卡构成硬件系统,编写Windows系统平台的驱动程序和软面板实现软件功能,成为业界的主要解决方案。 但是在野战和恶劣环境下测试任务的实践过程中,我们发现基于PC或工控机的虚拟仪器暴露出很多问题,如:体积大,不便于携行;插卡式结构,接触易松动、不紧固;以机械硬盘为主要存储介质,抗震性能差等等。 以32位嵌入式微处理器和嵌入式操作系统为特征的嵌入式计算平台使计算进入了后PC时代。嵌入式系统的小体积、高可靠能够满足实现野战和恶劣环境下的便携虚拟仪器的需要。基于嵌入式计算平台,设计虚拟仪器系统成为构建测试系统的新思路。 通过构建基于PC104总线嵌入式计算平台,加入仪器卡及其功能程序,我们实现了针对雷达电子装备的多种测试仪器。构建基于嵌入式系统的虚拟仪器需要解决的技术问题集中在系统平台的构建、接口和驱动程序的设计以及软面板设计等方面。 2硬件系统组成 硬件系统包括嵌入式主板、仪器功能板、Flash存储介质(DOC或CF卡)、液晶显示屏、触摸屏和信号接口等。如图1所示。其中液晶显示屏、触摸屏实现人机交互,信号接口用于耦合测试信号、嵌入式主板作为控制和计算单元,仪器功能板实现具体仪器的功能。 部件按叠放的顺序依次为触摸屏、液晶显示屏、PC104主板、示波器卡、万用表卡功能板卡和嵌入式主板之间通过PC104总线以叠栈的方式实现机械和电气的互连。采用这种方式有如下好处: 1.电气接触高度紧密。电路板之间通过多排插针深入连接,比ISA和PCI的插槽连接要紧密得多。 2.机械结构牢固。电路板之间用四个螺柱紧紧相连,使得板卡之间的机械连接非常牢固,不会存在晃动现象。 3.PC104插针的电气特性与ISA完全兼容,PC104Plus插针的电气特性与PCI完全兼容,使得基于ISA或PCI总线设计的功能板卡可以从电原理上重用,有利于系统改造过程的平稳过渡。 摈弃硬盘而采用DOC或CF卡作为外存储介质也能大大提高系统抗震动和冲击能力。 采用如上所述的硬件系统能为小型、可靠的虚拟仪器系统提供硬件保障,但由此带来的系统存储容量小和资源受限等问题为软件系统的设计带来了困难。必须采用嵌入式操作系统,软件编程必须考虑体积小,效率高。 3软件系统设计 我们采用嵌入式Linux作为操作系统,在linux平台下编写仪器的驱动程序。利用TinyX和GTK+作为图形界面解决方案实现仪器软面板。 3.1.嵌入式linux系统 采用开源的linux系统,并通过编译选项裁减不需要的功能模块,得到大小为500K左右的内核模块。用busybox取代shell,在系统中加入glibc.o等库构建一个4M的Linux运行系统。关于嵌入式Linux系统的构建文献有详细的介绍和指导。 3.2.linux下的io编程 仪器卡的驱动程序采用端口读写来实现。Linux下对端口的操作方法在usr/include/asm/io.h中。由于端口读写函数是一些inline宏,所以在编写端口读写程序时只需要加入:#include不需要包含任何附加的库文件。另外由于gcc编译器的一个限制,在编写包含端口读写代码的程序时,要么打开编译器优化选项(使用gcc?O1或更高选项),要么在#include之前加上:#defineexternstatic 在读写端口之前,必须首先通过ioperm()函数取得对该端口读写的权限。该函数的使用如下: ioperm(from,num,turn_on) 如果turn_on=1,则表示要获取从from开始的共num个端口的读写权限。如ioperm(0x300,5,1)就表示获取从端口0x300到0x304共5个端口的读写权。最后一个参数turn_on表示是否获取读写权(turn_on=1表示获取,turn_on=0表示释放)。一般在程序的硬件初始化阶段调用ioperm()函数。 ioperm()函数需要以root身份运行或使用seuid赋予该程序root权限。 端口的读取使用inb(port)和inw(port)函数来完成,其中inb(port)读取8位端口,inw(port)读取16位端口。 对8位和16位端口的写操作分别用函数outb(value,port)和outw(value,port)来完成。其中各函数的第一个参数表示要写的数值,第二个参数表示端口地址。 宏inb_p(),outb_p(),inw_p()和outw_p()的作用与对应的上述四个端口读写函数一样,只是在端口操作后附加一定时间的延时以保证读写可靠。可以通过在#include前加上:#defineREALLY_SLOW_IO获得约4微秒的延时。 3.3.基于TinyX和Gtk+的软面板编程 仪器软面板的设计涉及linux下GUI的选择和编程,考虑到XWindows的成熟性和与桌面系统的一致性,我们选用精简的XWindows系统TinyX作为底层GUI解决方案。使用Gtk+1.2库作为控件集来开发仪器软面板程序。 基于TinyX和Gtk+库的图形界面开发方案使得软面板的开发与桌面环境下基于Gnome的开发比较接近,很多的桌面环境下的linux工具可以直接使用。 Gtk+图形库是GNOME桌面系统的底层基础,它包含比较完整的GUI控件集合(GtkWidgets)。基于面向对象的方法,GTK+用C语言实现了一套对象系统和消息及回调机制,并将整个图形控件集纳于对象框架中,使得控件集的扩充比较方便。 针对虚拟仪器领域的应用需求,可以构建常见的GUI单元的控件集。我们以GtkWidgets的形式开发了示波器,信号源等仪器的面板控件和一些关键的GUI单元控件。这些都有利于用户的二次开发和软件单元的重用。 4结论 基于嵌入式主板和嵌入式软件环境,我们给出一个构造虚拟仪器的通用解决方案。同时,通过构建基于TinyX和Gtk+库的GUI环境,再加上我们自主开发的一系列面板单元控件,我们提供了对虚拟仪器软面板开发的支持。 基于以上的方案,我们开发了集示波器、万用表和微波信号源等仪器功能于一体的雷达故障检测仪。 部队野战环境下的实践表明该系统机械结构牢固、可靠性高,携带使用方便。