数据采集、存储和传输
压缩机转速为 8k 转/分时,频率 133.33f Hz,若要分析到信号频率的 4 倍
频时,有经验公式得采样频率:
2.5 4 133.33 1.33
s
f
kHz。所要采集的振动
信号是
,x y
轴两个方向的信号, 故要使用采集卡的两个通道进行数据采集, 所以,
采样频率
s
f 应大于 2.66kHz。所以,采集卡的最高采样速率达到 3kHz 即可满足
转速为 8k 转/分的压缩机的振动信号采集。
中断采集:
在 LabView 中软件触发方式比较简单,但采样速度较低,在采集振动信号
时不能满足实际要求。 而采用中断触发方式可以实现数据的高速采集, 最高采样
速率可达 100kHz。
以下是 LabView 下采用中断触发方式实现数据高速采集时用到的几个关键
子 VI 的简单介绍:
DeviceOpen:打开指定的设备并返回一个驱动句柄,之后所有执行相应 I/O 操
作的子 VI 都应基于该句柄参数所获得的配置数据。该子 VI 必须在调用其他驱
动子 VI 之前调用。
AllocDSPBuf:为用户缓冲区分配参数 Count 指定大小的空间。该子 VI 的输出
用作 FAITransfer 子 VI 的输入,通过 MemoryType 参数可以选择以电压形式或
二进制形式显示数据。程序运行结束后, LabVIEW 自动释放此内存空间。
EnableEvent:通过指定相应的事件类型代码来使用或禁用一个指定的事件,并
通知由 DriverHandle 所指定的硬件设备。
MultiChannelINTSetup :开始多通道中断触发方式的 A/D 转换,并将采集到的
数据储存到内部缓冲区,该操作将一直进行,直到调用 FAIStop 子 VI 。该子 VI
运行时将自动调用 AllocINTBuf 子 VI ,分配 FAIINTStart.Count 参数所指定大小
的内部缓冲区。与用户缓冲区不同的是,在程序结尾需另外调用子 VI 释放此内
存空间。通过该子 VI 可以设置采样率、各通道增益代码、循环方式、是否使用
FIFO 缓存器等。
WaitFastAIOEvent :使程序进入等待状态,直到设定的事件发生(内部缓冲区
半满或全满, 等待结束 ,内部缓冲区全满) 或等待时间超出用户通过 Timeout 参数
设定的值。该子 VI 可以用来捕获内部缓冲区半满或全满事件。
BufferChangeHandler:将数据从内部缓冲区传送到用户缓冲区。该子 VI 能够
判断内部缓冲区当前的状态是半满还是全满, 从而执行不同的操作: 半满时, 从
内部缓冲区取出 1/2Count 数量的数据到用户缓冲区;全满时,不做任何传输操
作。要实现连续数据采集,程序中需要反复调用该子 VI 。此外,如果在
AllocDSPBuf 中选择的是以电压形式显示数据,该子 VI 还负责完成从原始数据
到电压值的转换。
ClearOverHandler:用来处理 FAI 采样缓冲区的溢出状态,并清除溢出标志。
即当采集数据的数量达到 FAIINTStart.Count 的值后归零,重新开始计数。
OverRun:显示缓冲区中的数据是否已被及时地传送出去; HalfReady:显示内部