欢迎来到天天文库
浏览记录
ID:36421944
大小:67.50 KB
页数:4页
时间:2019-05-10
《基于VisualBasic的数据采集卡控制技术4页》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于VisualBasic的数据采集卡控制技术詹根基(华东交通大学机电学院)【摘要】本文通过对美国NationalInstruments公司的数据采集卡进行具体的分析,介绍了基于VisualBasic软件,运用OCX(ActiveX控件)和DLL(动态连接库)开发了控制数据采集卡程序的方法。【关键词】数据采集卡,VisualBasicBasedonVisualBasicControlTechnologyofDataAcquisitionCardGenjiZhanHoukunGuoMechanicalandElectricalEngineerSchoolEastChinaJiaotong
2、UniversityAbstractThepaperanalyzesdataAcquisitioncard(DAQ)ofAmericanNationalInstrumentsCompanyLimitedindetail.ByapplicationofVisualBasic,ItintroduceshowtodevelopcontrolDAQprogrambyusingOCXandDLL.KeyWordsDAQVisualBasicOCXDLL1前言 在Windows98中,也许我们可以使用VisualC++,利用inp和outp的输入输出函数指令,达到和DOS模式下相同的缓冲器控制功
3、能。但在较高级的操作系统中(如Windows2000和WindowsXP),这种做法就不行了。这是因为由于Windows操作系统是一个受保护的系统。微软认为,如果随便就可以下达硬件控制命令,将会危害整个系统的稳定性。那如何开发硬件控制程序呢?VisualBasic本身的程序无法直接控制数据采集卡,但通过借助DLL或额外的OCX控件的协助。我们所写的控制程序代码就经过层层的转译,一直到数据采集卡上的缓冲器;而检测程序代码则通过相反的管道将状态返回到我们所写的程序里。在VisualBasic的程序中,如果使用DLL的方式通信,这些额外的DLL必须事先告诉VisualBasic编译器,通常这
4、些DLL被声明在模块中,以便VisualBasic知道如何建立和DLL的连接管道。至于使用OCX的部分,美国NationalInstruments公司在其光盘中备有OCX可以使用。在安装其光盘后,就会有这些必要的OCX存在。在VisualBasic工作环境中的【工程】
5、【部件】的方式加入就可以了。VisualBasic简单易学之外,开发控制程序的成本比起组态软件来说也比较低,而且通过ActiveX技术可以实现VB和Matlab的混合编程。Matlab是一种功能强大的数学软件,利用它附带的各种专业软件包可以实现多种学科的专业计算,大大增强开发软件的功能。比如,使用它的FFT()函数可以像
6、加法计算一样进行快速傅立叶变换,但是Matlab本身作为一种数学软件不便于编写专业的应用软件。OCX控件的方法使用上比较方便,可以按照属性、事件、方法等接口成员来操作OCX,但其性能的表现比DLL稍微差一些。使用OCX控件的方法,也会被系统转译成DLL动态连接库或直接控制驱动程序。所以使用DLL动态连接库的速度比较快,而且程序的灵活性也可以达到最大。本文着重介绍用DLL用于温度测量系统的方法。2系统配置:目前,数据采集和传输所用的计算机接口卡已基本标准化,诸如美国NationalInstruments等公司推出用于PC的数据采集卡和D/A数据输出卡,可通过PCI总线插槽直接置入PC机,
7、而且有完善的软件支持(该公司的LabView软件),特别适宜工业控制和实验室应用。2.1硬件:系统构成以研华IPC为主机,用作系统的操作平台;采用美国NationalInstruments公司E系列的数据采集卡作为过程输入通道,实现测量信号的输入信号的输出,使用温度计是三线式的电阻式温度传感器(Pt-100)。我们使用的是100oC和0oC时的电阻比值为1.3851,所以利用Pt-100的电压换算成实际温度的公式为TX=((VO/1.9952)-100)/0.3851示意图如下所示:图一2.2软件将NI的数据采集卡安装到计算机的PCI接口槽后,还必须为计算机安装NI特别为采集卡编写的一
8、套驱动采集卡所需要的驱动程序和和控制工具DLL。要使用DLL进行数据采集,必须在程序的工程中包含所需的DLL声明。NI-DAQ中已经有为VisualBasic声明好的模块可供使用,分别为nidaq32.Bas、nidex32.Bas、nidaqcns.Bas和nidaqerr.Bas。直接把DLL的函数声明的模块拷贝到项目的目录下这样,我们就可以调用这些DLL程序来达到监控的功能了。3软件的设计和开发3.1数据交换流程:通过OCX或是DLL控制
此文档下载收益归作者所有