数据采集、存储和传输压缩机转速为8k转/分时,频率133.33fHz,若要分析到信号频率的4倍频时,有经验公式得采样频率:2.54133.331.33sfkHz。所要采集的振动信号是,xy轴两个方向的信号,故要使用采集卡的两个通道进行数据采集,所以,采样频率sf应大于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:显示内部缓冲区的状态:0表示无任何半区满;1表示前半区已满;2表示后半区已满。需要注意的是,该子VI和FAITransfer判断半满和全满的标准是采集到的数据数量是否达到FAIINTStart.Count的一半和FAIINTStart.Count,并不是内部缓冲区真正意义上的半满和全满。当然,如果将内部缓冲区的容量设置为与FAIINTStart.Count的值相等,这两者就是同一种情况。FAIStop:停止中断采集。FreeFAIBuffer:释放中断采集的内部缓冲区。DeviceClose:关闭由DeviceOpen打开的设备,在程序结尾需调用此子VI,以释放资源为下次操作做好准备。中断方式下数据采集并实时显示的前面板图如下所示:程序框图:文件存储:由于中断采集速度快,数据量大,直接将采集到的数据存入MySQL数据库总会出现问题,故使用数据存储文件(TDM文件)来存储数据。TDM文件将动态类型的信号数据存储为二进制文件,同时可以为每一个信号添加一些附加信息,如信号名称、单位和注释等,这些信息将会以XML的格式存储在扩展名为.tdm的文件中。而信号则存储在扩展名为.tdx的文件中,这两个文件在LabView中以引用的方式自动联系起来,用户只需对TDM文件操作就可以了。为了便于数据的存储和传输,将存储数据的TMD文件存储在本地数据库MySQL中。程序如下图所示:存储在文件中的数据信号在本地可以方便地进行读取,数据读取部分程序如下图所示:前面板:数据通讯:数据的通讯部分,先用一个客户端和一个服务器端简单地实现了数据的传输,传输过程中试用了TCP/IP传输协议。TCP/IP网络通过提供通用网络服务,使得具体网络技术对用户或应用程序透明,从而将具体通信问题从网络细节中解放出来,使网络应用更加灵活方便。在Labview中,可以直接调用TCP模块完成流程编写,不需要过多考虑网络的底层实现。服务器和客户端的前面板图如下所示,其中客户端以一个正选信号为例,在正常运行状态下服务器端能够侦听到客户端的信号并进行显示:程序框图:待解决的问题:数据的存储部分:如何实现数据定时存储到一个个文件中,并实现文件的自动编号。现在的做法只是将采集到的数据不断地写入一个指定的TDM文件中,这样随着文件的不断增大,加之中断采集速度较快,将文件存入MySQL数据库就会出现问题,也不便于数据的传输。本地数据浏览与采集系统的同步问题。现在是在同一个While循环框中进行,还未数据采集和本地浏览完全分开。数据通讯部分:现在只是以正选信号为例实验数据的通讯过程,还未将其用到本数据采集系统。