推荐厂家
暂无
暂无
摘要:本文描述了基于虚拟仪器思想在实际测控系统中的应用。通过选用多功能数据采集卡和信号调理电路组成自动测试系统,软件开发以专业测控工具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
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环境,再加上我们自主开发的一系列面板单元控件,我们提供了对虚拟仪器软面板开发的支持。 基于以上的方案,我们开发了集示波器、万用表和微波信号源等仪器功能于一体的雷达故障检测仪。 部队野战环境下的实践表明该系统机械结构牢固、可靠性高,携带使用方便。
protues虚拟实验室 随着电子技术的不断发展, 电子类课程在高教中的地位日趋重要。而作为该类课程教学重要组成部分的实验教学,也越来越受到了人们的重视。它对于提高教学质量,培养学生的实际动手能力及创新思维能力具有无可比拟的作用。长期以来,高教研究者、工作者一直为此探索,并希望找到一个行之有效的方法。为此,人们借助现有的电子技术手段,建立了多种门类的实验平台(如电路分析实验室、模拟电子线路实验室、数字电路实验室、信号与系统实验室等),并在此平台上开设了相应的实验课程。尽管如此,这些措施并未达到预期的效果。特别是在电子技术高速发展的今天,这些方法及手段已经显得不再适宜,建立一套新的实验手段及方法已成为高教研究者、工作者的共识。 2 现有实验室存在的问题 目前,现有的电子类实验室大多存在以下问题: 1)不利于管理及维护。 现有电子类实验室种类多、如电路实验室、电子线路实验室、数字电路实验室、单片机实验室、微机原理实验室、ARM实验室(或嵌入式系统实验室)、信号系统实验室、数字信号处理实验室等;在每一类实验室中,设备种类多、数量大(如,各类信号源设备、各类测试仪器仪表、各种实验箱等)。种类繁多的设备,加上分批进行的学生实验,对于有限的师资力量而言,有效的管理工程制图桌及维护无疑成为十分艰巨的任务。 2)不利于保持实验室的先进性,也不利于保护前期的投资 由于现代电子技术的飞速发展,各种新设备、新器件层出不穷,这就往往造成这样一种现状,某一种实验设备可能刚到用户的手中就面临落后的,就更不用说在2-3年后被淘汰是多么的正常。因此,基于硬件设备手段建立的实验室面临着随时可能落后的现状,要想保护其前期投资更是难上加难。 3)不利于提高实验效果。 现有电子类实验室大多采取一种封闭式的实验教学模式,即在规定的课时时间内,学生在规定的场地内,进行规定的实验内容(由于实验设备能力的限制造成),这种封闭式的实验教学模式,一方面由于时间及场地的限制,往往造成学生不能有充够的时间深入了解及研究实验的内容,学生对实验的兴趣也被这些限制所扼杀。另一方面,固定式的验证实验内容也限制了学生的思维空间,扼杀了学生创新思维能力的培养。因此,其实验效果很难提高,这种做法实际上背离了现代实验教学改革中提出的“优化课内,强化课外”的实验教学意识。 4)实验内容彼此孤立,不利于培养学生“从概念到产品“认识的形成。 现有的各种电子类教学实验,基本是进行固定程式的验证式实验,实验所用的元器件,线路板已选好,学生所做的工作仅是对实验箱连连线,使用一下测试仪器、仪表,建立学生的相应概念而已。很难满足现代实验教学改革提出的三个实验层次即“基础性实验、综合性实验、创新性实验”的目标,目前的实验平台不能满足这样的训练,即:学生从有一个概念(或想法)开始,然后着手教学电梯模型电路原理图的设计、编写程序代码、调试、PCB设计,最后形成产品的整个开发过程的训练。学生通过传统实验手段所得到的训练是片面的、局部的,其对产品开发过程的认识并不深刻,这也是导致学生所学不能所用的根本原因所在。 5)不利于开展创新性研究。 开展创新性研究的前提是实验环境的丰富资源及其灵活可变性。但目前基于硬件的实验平台往往采取一种定式的实验或研究环境,即教师只能在有限的几种器件或线路实验板之上进行实验内容的设定或研究,学生也同样如此,这对于开展创新性研究极为不利。 6)不利于培养学生的实验兴趣及创新思维能力。 学生对某一课程实验的兴趣往往需要一段较长时间的培养才能产生,但现有的课程实验由于场地不能随时、随地对学生开放,并且开放的时间也非常有限,这就不能激发学生的实验兴趣,另外其创新思维能力的培养也受到同样的限制。 3 PROTEUS实验室建设的必要性 3.1 PROTEUS实验室概念 利用计算机仿真技术,在计算机网络平台上,学习电路分析、模拟电路、数字电路、嵌入式系统(单片机应用系统、ARM应用系统)、微机原理与接口技术等课程,并进行电路设计、仿真、调试等通常在相应实验室完成的实验。一个计算机网络硬件平台(或一台计算机)、一套电子仿真软件,再加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,即为虚拟实验室的本质。 Proteus实验室采用Proteus仿真软件和相应的硬件平台构成一个从虚拟到实际,从软件到硬件,从概念到产品的全过程设计的多功能实验平台。它主要用于电路分析、模拟电路、数字电路、嵌入式系统(单片机应用系统、ARM应用系统)等课程的实验、研究等。 3.2 PROTEUS仿真软件简介 Proteus是一种功能强大的电子设计自动化软件,提供智能原理图设计系统、SPICE模拟电路、数字电路及MCU器件混合仿真系统和PCB设计系统功能。其不仅可以仿真传统的电路分析实验、模拟电子线路实验、数字电路实验等,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统(单片机应用系统、ARM应用系统)的仿真实验,这也是其它任何仿真软件无力所及的。例如,其教学用数控车床支持单片机和周边设备,可以仿真51系列、8086、AVR、PIC、Motorola的68系列等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件等。在编译方面,它也支持Keil和MPLAB等多种编译器。 3.3 PROTEUS实验室的优点 Proteus实验室的主要优点总结如下: 1)多功能型实验室 其不仅可以仿真电路分析实验、模拟电子线路实验、数字电路实验,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统(单片机应用系统、ARM应用系统)的仿真实验,因此,它完全可以称之为一个多功能的实验平台。 2)开放型实验室 由于其硬件是基于网络平台的,如一个单位内的局域网、或企业网、或校园网(或单机板,基于一台PC)或Internet用户。因此其实验用户可以不受传统实验室的时间、空间、及实验内容的限制。用户可以跨越时间、空间及实验内容的约束,尽情释放自己的实验兴趣及创新思维;此外,这也使得设备的利用率得到最大的发挥。 3)先进型实验室 由于Proteus实验室主要由其Proteus仿真软件实现,其内置: ①万种以上的元器件(数字的、模拟的、交流的和直流的)及多达30多个元件库; ②多种现实存在的虚拟仪器仪表,如示波器、频谱分析仪,电压表、电流表、图表分析、逻辑分析仪、虚拟终端等。这些虚拟仪器仪表具有理想的参数指标,例如会计模拟实验室极高的输入阻抗、极低的输出阻抗,可尽可能减少仪器对测量结果的影响。 ③丰富的测试信号源用于电路的测试,这些测试信号包括模拟信号和数字信号。[co