前言
在数据采集和处理过程中,有些模拟信号的幅值和频率变化的速度是非常快的,如何将这些高速变化的模拟信号采集到计算机里进行处理便是一个需要解决的实际问题。由于数字数据传输速率等系统瓶颈的影响,使用常规的技术方法往往不能理想地解决上述实际问题。以PCI总线为代表的高性能局部总线的推出,为计算机的模拟输入通道采样频率的大幅度提高提供了坚实的技术基础。
PCI-1711数据采集卡
PCI-1711是12位的低损耗多功能采集卡卡,具有独特的电路设计和完善的数据采集与控制功能,支持即插即用,具有FIFO的高速缓存控制工程网版权所有,可灵活设定输入类型和范围控制工程网版权所有,具有16通道单端模/数输入、16通道数字I/O和2通道数模输出,采集速率可达100kHz,可编程的计数/计时器可作为A/D转换的速度触发,同时具有通道自动搜索功能。内部结构主要有单端模拟输入通道、模拟输出通道和触发源连接三部分。
库函数及其应用
&
结合Visual C++ 软件开发环境,PCI-1711采集卡的软件编程需要以下几个步骤。
(1)采集卡的注册。可以放在.cpp文件的开始位置,或者直接包含注册的库函数。
(2)采集卡的配置。在配置文件里,可以设置通道号和通道增益模式。
(3)采集卡的数据采集。这里要根据设置的通道号和采集模式来采集数据,同时选择触发模式和电压补偿。触发模式中,0为内触发模式,1为外触发模式。
(4)数据处理。用户可根据自己的需要将采集来的电压值进行处理,同时可在Visual C++的环境下,将采集处理后的数据通过友好的人机界面显示出来。
(5)释放采集卡。在Visual C++开发环境下,可用库函数提供的DRV_DeviceClose()函数将采集卡关闭。
应用中的注意事项
PCI-1711采集卡的信号线要尽可能远离电源线、发电机和具有电磁干扰的场所CONTROL ENGINEERING China版权所有,也要远离视频监视系统,因为它会对数据采集系统产生很大的影响。在现场试验中,如果信号线和电源线必须并行(比如在同一个电缆沟里),则两者之间必须保持适当的安全距离CONTROL ENGINEERING China版权所有,同时最好用屏蔽电缆,以确保信号安全准确地传输。
采集卡的每个通道的模拟量采集都有一个输入电压范围,超过了这一范围会造成采集卡A/D转换部分的烧毁,所以在采集模拟信号时,要保证被采集的信号在设定的量程范围内。
应用实例
下面是在Visual C++的环境下实现PCI-1711数据采集的一段程序。采样频率可以通过SetTimer()函数设定,采用内部触发方式。采集卡使用的五个步骤中,第一步在OnCtrStart()函数中实现,第五步在OnCtrStop(),第二步和第三步在Adinput()函数中实现,第四步为数据处理,根据用户不同的需要进行相应的处理,这里从略。
void CStable2View::OnCtrStart()
{
// TODO: 添加命令句柄代码
// Step 1:注册设备
if(ErrCde =DRV_DeviceOpen(DeviceList[gwDevice].dwDeviceNum,
(LONG far *)&DriverHandle)!=0)
return ;