PCL818H数据采集卡应用及数据采集程序设计

PCL818H数据采集卡应用及数据采集程序设计


2024年6月5日发(作者:)

《机电技术》2008年第4期 计算机技术应用 

PCL8 1 8H数据采集卡应用及数据采集程序设计 

王育桥叶金虎 

(罗定职业技术学院机电工程系,广东罗定527200) 

摘要:PCL818H数掂采集卡具有数据采集、信号处理和输出的功能,通过调用数据采集卡驱动程序提供的函数, 

实现了对I/0口的访问和控制,用vC++编制数据采集程序,在Windows环境下调用驱动程序,实现了数据的高速采集 

与保存。 

关键词:PCL818H数据采集卡A/D转换触发方式ADO数据库 

中图分类号:TP312文献标识码:A文章编号:1672-4801(2008)04-04—03 

引言 

(6)本卡具有1个12位数模转换输出,1个 

PCL818H数据采集卡是一种高速、高性价比、 

8254定时/计数通道供用户使用。此外,还有1 

多功能可编程数据采集卡,在数据采集领域应用 

个l位数字通道,1个16位数字输出通道,信号 

广泛。为了实现对数据的高速采集与保存,本文 

全部TTL/DTL兼容。 

在前人研究与应刚的基础上,以Vi sual C++作为 

1.2 PCL818H数据采集卡寄存器和触发方式 

编程工具,用它提供的多种访问数据库的工具和 

编写PCL818H的程序的关键是使用板卡上的 

队 队 队 队 

方法,并调用数据采集卡驱动程序提供的函数, 

16个寄存器。PCL818H需要16个连续的PC机I/O 

们 H 

对PCL8 18H数据采集卡进行程序设计,完成对信 

空间地址,每个口地址与采集板内的寄存器相对 

号的处理和对数据的采集与保存。 

应。每个寄存器的地址是通过指定到板卡基地址 

1 PCL818H数据采集卡 

1.1 PCL818H数据采集卡介绍 

的偏移量。例如,BASE+O是这个板卡的基地址, 

PCL818H数据采集卡为ISA结构,能在IBM 

并且BASE+7表示基地址+7个字节。 

PC/XT/AT及其兼容机上使用,它不仅具有数据采 

如果板卡的基地址是400h,则BASE+7寄存器 

集的功能,还具有信号控制和输出的功能。能把 

的地址就是407h,结果如表1所示。 

模拟电信号转化为数字信号传递给计算机,也可 

表i I/O端口地址 

直接读取数字信号并接受计算机传来的数据或控 

I/O地址 作用 

制信号,将模拟或数字信号传递给外设。从放大 

A/D低4位和通道软件触发器 

电路输出一个电压范围在0~5V之间的信号,把 

A/D高8位和A/D扫描范围 

它接到PCL818H模拟输入通道0,采集卡对输入信 

MUX扫描通道 

号进行A/D转换后进入工控机,就可以实现对信 

D/I(D/O)的低字节(DO ̄7) 

号的采集 。 

D/I(D/O)的高字节(D8~15) 

与模数转换相关的主要性能有: 

PCL818H模拟输入的16个端口,可以构成l6 

(1)有16个单模模数转换输入通道和8个双 

个单端输入或者8对差分输入。根据需要,利用 

模的输入通道可供选择,转换形式为l2位逐步逼 

跳线可设置输入通道的工作方式。通过软件控制, 

近式,最高频率可大IOOKHz。 

可以对一个或多个通道进行操作。输入信号经放 

(2)增益±0.625,±1.25 ±2.5,±5, 

大电路后,由一个逐次逼近式转换器转换为12位 

±lOv,可由程序控制。 

数字信号。PCL818H提供了3种触发方式:软件触 

(3)各通道的增益控制代码单独存放于卡内 

发、时钟步进触发和外部信号触发。软件触发的 

RAM中。 

触发器是由软件控制的,当在软件寄存器中写入 

(4)开放转换可以由软件控制,卡内提供的 

数值后,A/D转换器就开始工作,这种方式适用于 

定时脉冲控制或外部触发源控制。 

低速A/D转换。时钟步进触发适用于转换速度要 

(5)模数转换结果书可以用查询方式,中断 

求很高的系统;PCL818H提供的8254定时/计数器 

方式或DMA方式提供给计算机。 

用来为A/D转换提供一个固定触发源;8254的计 

4 

m 

计算机技术应用 《机电技术》2008年第4期 

数器1和计数器2级联在一起提供了一个周期精 

确的触发脉冲;当需要一个固定且精确的采样频 

数 制。 

打开设备 

函数返回的值ErrCde如果为SUCCESS的话表 

示成功,不为SUCCESS的话就返回错误信息。其 

率时,可以用时钟步进触发,它比另外两种方式 

更灵活。把外部触发信号接在CN3的35脚,可以 

实现外部触发。当不需要周期采样时,可以使用 

中SUcCESS是预编译量。 

这种方式。外部信号的上升沿A/D转换开始。可 

ErrCde=DRV

Device Open(DeviceList[0]. 

以根据实际需要,选择合适的触发方式。一般情 

dwDeviceNum,(LONGfar*)&(DriverHand1e)) 

况下,模拟输入通道采用2种连接方式如图1所 配置输入通道范围 

示。前一种为单模输入,后一种是双模输入方式, 

lpAIContig.DasChan=intChannel//设置通道 

分为高压输入和低压输入。PCL818H采集卡的输 

ipAtCo,alS.DasGain=O//增益为O 

入,输出信号全采用20-pin的集中式连接插件, 

ErrCde=DRV AIConf i g(Dr i verHand l e,(LPT_ 

可用同样的扁平电缆连接,使用十分方便。 

AlConfig)&ptAIConfig))//配置模拟输入通道值 

读取电压值 

刊AID 

AiVol In.chan=lpAIContlg.DasChan// 

}嫩嚣 

电压输入通道 

AiVo!In.gain=lpAIConfig.DasGain// 

电压输入增益 

AiVolIn.Trig Mode=AiCtr Mode// 

触发模式 

图l PcL818H两种模拟量输入电路图 

2 VC+十数据采集程序设计及使用ADO技术访 

AiVol In.voltage=DRY

_

Get Address(voltage) 

问数据库 

//读人电压值 

2.1 VC++数据采集程序设计 

Err C de=DRY

AlVoltage In(Device Handle, 

Microsoft Vi sual C++以其易学、高效及功 

AiVol In) 

能强大等特点受到了众多用户的欢迎,在数据采 

返回值 

集和工业控制领域得到了广泛应用。尽管如此,但 

fn Get Va1ue=voltage 

其自身也存在不足。因其不具备直接对硬件I/O 

获取硬件设备(PCL818H)驱动端口号 

地址的访问能力,在工业控制中对计算机的底层 

DRV

Device Get Num Of List((SHORT far。) 

硬件进行访问以及利用各种接口板进行数据采集 

&gn Num Of Devices)) 

和控制时间,仅靠VC++自身无法解决,但通过调 

获取不包括COM和CAN的硬件设备列表 

用驱动提供的函数,就可以实现对I/O口的访问 

DRY Device Get List((DEVLIST far )& 

和控制。驱动支持高速的数据采集方案(如DMA、 

Device List[0] 

中断),而且采用双缓冲的技术,还支持事件驱动 

(SHORT)gn Num Of Dev ices,(SHORT far*)&n 

的工作方式,这些特点使VC++很方便的编制数据 

Out Entries)) 

采集程序…。首先在Windows环境下调用驱动程 

关闭设备 

序,要实现数据的读取,需要将一些库文件加到 

Err C de=DRY

Device Close((L0NG far ) 

程序中来。工程中添加一个Driver.h头文件,在 

&Driver Handle) 

这个头文件中定义了PCL818H的所有常量,全局 

此外,Visual C++提供了两种定时器。一般 

变量名,函数,数据结构,状态代码和消息,可 

常用的是系统计时器,它使用函数Set Timer进 

以直接在程序中调用。编写系统程序时,在菜单 

行初始化,应用程序响应Set Timer函数发送来 

工程一>设置->Link中添加库文件Adsapi32.1ib, 

的消息WM_TIMER。这个定时器是IBM PC硬件和 

这个文件中负责实现Driver.h中定义的数据的函 

ROM BIOS构造的定时器逻辑的一个相当简单的扩 

数读取。在这些函数中,最重要的是以下几个函 

展。PC的ROM初始化Inte18259定时器芯片来产 

5 

《机电技术》2008年第4期 计算机技术应用 

生硬件中断08H。这个中断有时称为“定时器滴答” 

中断。中断08H每隔54.925毫秒产生一次,或大 

约每秒18.2次。BIOS使用中断08H更新存于BIOS 

数据区的“时间”值。因此,这个定时器在Windows 

中的最大缺点是计时器的最大分辨率是55毫秒, 

其中ADO是较新的数据库访问技术,它是使 

用更加简单,更加灵活的对象模型。对于新工程, 

应该使用ADO作为数据访问接口。ADO提供如下访 

问数据库的方法: 

(1)连接到数据源。 

(2)定访问数据源的命令,同时可带变量参 

数或优化执行。通常涉及ADO的Command对象。 

(3)执行命令,例如一个SELECT脚本。 

也就是说应用程序每秒只能接收到l8个消息。此 

外,这个计时器消息的优先权太低,只有在所有 

的消息(除了消息wM—PAINT)被处理后才能被处 

理。因此函数Set Timer只能用于一般的定时, 

(4)如果此命令使数据按表中行的形式返回, 

如屏幕显示时间定时等,它远远不能满足实时数 则将这些行存储在易于检查、操作或更改的缓冲 

据采集的要求。而多媒体定时器(Multimedia 

中。 

Timer)。它使用自己单独的线程(Thread),来调 

(5)适当情况下,可以把缓存行的更改内容 

用一个自己的回调函数(Callback ̄unction)。 

写回数据库中,更新数据源。 

它的优先级很高,它每隔一定时间就发送一个消 

(6)提供常规方法检测错误,涉及ADO的 

息而不管其它消息是否执行完。此外,对于现在 

Error对象。 

的Intel CPU来说,它的最小定时精度通常都可 为了实现上面的功能,ADO编程模型提供了以 

以达到1毫秒,足够满足实时数据采集的定时精 

下基本元素:连接,命令,参数,记录集,字段, 

度要求 。 

错误,属性,集合,实现对数据库的访问。 

2.2使用ADO访问数据库 

3结论 

Visual C++是一种面向对象的可视化编程 

通过选择合理的触发方式,调用数据采集卡 

具,它提供了多种访问数据库的工具和方法。在 驱动程序提供的函数,就可以实现对I/0口的访 

Visual C++中,可以通过以下方式访问数据库 : 

问和控制,完成高速的数据采集,Visual C++提 

(1)ActiveX数据对象(ADO)。 

供的多种访问数据库的工具和方法,可对PCL818H 

(2)远程数据对象(RDO)。 . 

数据采集卡进行程序设计,完成对数据的采集与 

(3)数据访问对象(DAO)。 

保存。该方式在数据采集和工业控制领域具有较 

(4)ODBC直接连接到数据库。 

高的实用价值。 

参考文献 

[1]陈小忠,黄宁。赵小侠. 片机接口技术实用予程序[^f].北京:人民邮电出版社,2005,235—247. 

[2]龚建伟,熊光明.Visual C++/Turbo C串口通信编程与实践[M].北京:电子工业出版社,2004,237—244 

[33黄维通,姚瑞霞.Visual c++程序设计教程[M].北京:机械工业出版社,2004,190-198. 

[4]王育坚,Visual c++面向对象程序设计[M].北京:清华大学出版社,2003,384—399. 

[5]PCL-818HG User’S Manua1.Part No。2003818070 2rid Edition[J].Taiwan:June1994,3-78. 

[6]PCL-818HG User’S Manua1.Pm‘t No.2003000060 2rid Edition[J].Taiwan:September1994,2-25. 

作者简介:王育桥(1981年一),男,硕士,主要从事机电一体化方面的教学和研究工作。 

6 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1717550918a2740126.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信