随着科学技术的发展,特别是Pc机的普及,对测控系统的设计要求越来越高。在国际上应用较广泛的一种组建测控系统的方法是:采用“虚拟仪器”来取代传统仪器.即利用数据采集卡、信号调理卡或其他计算机外围硬件进行信号的采集与检测,然后由计算机来实现对信号的处理、计算和分析以及测试结果的显示。但是,由于虚拟仪器设计语言LabvIEw的专用性,它只支持NI公司的产品,非NI公司的产品不可以直接使用LabVIEw进行开发。另外用VC,VB等文本编程语言开发测控系统用户界面缺乏灵活性,这两个主要方面导致虚拟仪器的应用受到很大的限制。而且成本昂贵。本文研究目的就是寻求一种通用而且简单的方法使用LabVIEw开发环境.把非NI公司的产品(即这里所指的普通数据采集卡)与Labview的完美结合起来。实现基于虚拟仪器的测控系统的设计。
1、驱动程序的设计
本文研究采用北京优采公司生产的uA20lD数据采集卡作为底层硬件,与Pc机组成PC—DAQ方式的虚拟仪器。按照驱动程序模型来分,可分为vxD(Vinual Device D而ver)式驱动程序,KMD(Kemel Mode Driver)式驱动程序以及wDM(Windows Driver Model)驱动程序,本文设计的平台是windowsxP,而且是在PCI总线的基础上进行设计.根据三种模型的特点采用wDM驱动程序是最理想的选择。windows下驱动程序开发语言通常采用两种方式,汇编语言和C,C++语言,并且结合第三方公司提供的驱动程序开发工具。目前使用最广泛的是WinDriver和Driverstudio。本文设计中采用了Driverstudio中的DriverWorks。
首先利用DriverWorks的驱动程序向导,生成驱动程序的基本框架,在生成框架过程中添加与设备紧密相关的信息。框架生成的详细步骤:打开Vc,出现DriverStudio在vC中嵌入的工具栏:单击按钮Launch DriverWorks Driver wizard打开向导的第一页,在第一页中填入T程名.以及在Pc机中的保存位置;在第二页中,选择wDM Driver;在第三页中,选择wDM功能驱动程序;在第四页中,在select Hardware Bus中选择PcI,出现PCI总线的各种设置。设置PcI vander ID为O“348等等;在第五页输人驱动程序类的类名和文件名。一般采用默认设置;在第六页中,主要是选择驱动程序处理的请求类型;在第七页中,选择IRP串行处理的类型和串行处理的函数;在第八页中,添加需要存储在系统注册表中的内容。当驱动程序开始运行,就将信息从注册表中读出,当驱动程序卸载后,就存入注册表;在第九页中,设置PcI设备类的信息;在第十页中,要添加自定义的10crI’L.驱动程序向导会自动生成与之相对应的派遣例程;在第十一页,I)一verWorks可以为驱动程序生成简单的应用程序,用于调试驱动程序;最后点击Finish,一个驱动程序的框架就完全产生.这也是一个完整的驱动程序。但是无法实现任何功能,接下来要作的T作就是完善这个框架,也就编写功能函数,主要就是完成不同IRP的处理工作。其中包括两个类,uA20lD和uA201DDevice,其中最主要的函数包括三个,分别是:OnStartDevice、Devicecontrol和startIo。
驱动程序的执行过程包括两个方面。一是驱动程序的硬件资源的分配;二是驱动程序控制硬件功能的实现。具体过程如图1、图2所示:
图1 驱动程序的资源的获取与分配
图2 驱动程序控制硬件
2、动态链接库的设计
动态链接库(Dynamic Link Library,简称DLL)是一个可执行的windows程序的一种函数形式。本文设计的用户界面程序是采用图形化语言LabVIEW设计的,因此LabVIEW专门提供了两个的节点函数CIN(code Interface Mode)和CLFN(call library Function Mode)来处理与C语言的接口问题,而对于不熟悉LabVIEw的人员来说很难开发cIN的程序。而且经过大量的实验证明采用CLFN。即编写动态链接库是最理想的选择。
在本文研究中,根据功能的不同把动态链接库的设计划分为打开和关闭设备、数据采集、模拟输出、数字I/0和定时,计数四大模块。首先,用户界面调用动态链接库*能函数,传递控制参数和数据。然后,功能函数根据参数不同,在调用具体的函数,具体函数把传递来的参数经过处理,调用DeviceIoControl向驱动程序发送参数.并从驱动程序中获得用户界面需要的数据,数据经过处理后传递给功能函数。最后,功能函数把数据返回用户界面。
3、用户界面设计
本文设计是在Pc机上采用虚拟仪器技术设计完成的,与设计传统仪器的操作控制面板完全不同。LabvIEw之所以会受到虚拟仪器设计者的青睐.很重要的原因就是因为它可以在很短的时间里开发出很完美的控制与显示面板,这些仿真的控件是其他编程语言所无法比拟的。控制界面的设计包括两个方面的设计,一一是控制面板的设计,另一个是后台流程图的设计。采集数据的处理与显示、模拟量的输出、数字量的输出与输人以及定时/技术功能等工作都是通过编写软件来实现。这正体现了虚拟仪器的“软件就是仪器”的设计思想。对于普通用户来说,采用图形化编成语言LabVIEW应该是设计控制界面的最佳选择。
4、远程测控的实现
要实现远程测控功能主要是要实现测控系统的网络功能,利用LabVIEW提供的网络通信节点,例如TCP/IP,Remote Data Acquisition(RDA),Internet Toolkit,VI Server,Front Panel Web
Publishing,Datasocket,Remote Panel等,加上一些高级编程技术和技巧,都可以实现网络测控。大多数用户都希望通过简单快捷的方式来实现网络测控功能,利用LabVlEw的远程面板
(Remote Panel)技术,不需要任何编程,只需要在LabVIEw中设置几个参数.就可以轻松解决这个问题。
Remote Panel技术,允许用户直接在本地(Client端)计算机上打开并操作位于远程(web server)计算机上的VI的前面板。IJabvIEw集成了Remote Panel技术,用户可以用极为简单的方式直接在本地(client端)计算机上打开并操作位于远程(web Server端)计算机上的vI的前面板。甚至可以将LabVIEw的前面板窗口嵌入到一个网页中并在网页中直接操作它。在LabvIEw中使用Remote Panel只需要两个步骤:
第一步,在hbvIEw web server端的计算机上开启LabVIEW Web Server服务。
第二步,在client端计算机上连接并运行Remote Panel。
完成web server端相应的配置后,就可以在client端的LabvIEw环境中运行一个Remote Panel了。Remote Panel还可以通过浏览器控制远端vI的前面板,只要在client端安装LabVIEW Run-Time Engine即可实现这个功能。
5、结束语
本文的创新之处是把非NI公司的数据采集卡与LabVlEW完美结合起来,实现基于虚拟仪器的测控系统的设计。设计思想是低一层的软件为高一层的软件提供接口,供高一层的软件使用,也就是驱动程序给动态链接库提供接口,动态链接库给用户界面提供接口,实现三者的完美结合。此外,利用LabVIEW强大的网络编程功能,实现了同一局域网内基于Remote Panel的web环境的网络测控。因此此系统在测试领域中将会有广阔的应用前景。
责任编辑:gt
-
LabVIEW
+关注
关注
1971文章
3654浏览量
323780 -
虚拟仪器
+关注
关注
22文章
775浏览量
87338 -
数据采集
+关注
关注
39文章
6114浏览量
113681
发布评论请先 登录
相关推荐
评论