微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 滚动轴承强化寿命试验的数据采集系统设计

滚动轴承强化寿命试验的数据采集系统设计

时间:05-24 来源:互联网 点击:

数据采集程序设计的关键问题是在实现连续采集的同时以固定时间间隔保存固定时间长度的振动数据。AC6622采集卡是在FIFO半满时产生一次中断,驱动接收中断后自动将2 kB数据保存在内部缓冲中,而后用户通过调用Read_A/D()函数读取内部缓冲中的采集数据。采集卡没有提供用户使用的中断源,要实现精确定时写入定量的数据到存储设备中,无法通过采集卡硬件中断实现。
实现定时数据存储有两种方案,第1种方案是利用Windows下提供直接使用的定时器函数控制数据采集卡定时自动保存数据。第2种方案是根据采样率一定情况下,每个采样点所用时间是固定的,通过查询采集卡读回数据的长度进行时间换算,进而通过控制每次读回数据的长度进行时间上的定时。
第1种方案虽然有编程简单,容易实现的优点,但是利用VC6++编程时,Windows下提供直接使用的定时器函数SetTimer()、KillTimer()和()nTimer()函数的定时精度只有55 ms,而且通过SetTimer()函数设置的常规定时器的定时事件是由消息引发的,而Windows是一个多任务的操作系统,在其消息队列中的定时器消息WM_TIMER的优先级很低,所以较难保证所发出的定时消息能及时得到响应和处理。此外Windows的工作方式为抢占式,其内部的时间管理函数并不能实现等间隔的时间控制。因此第1种方案只适用于定时精度不高的地方,这样就不能满足本系统精确定时的要求。
第2种方案在编程上较第一种方案稍复杂,通过查询采集卡读回数据的长度实现定时功能,而该方式的定时依赖于采集卡硬件自身的时钟系统,较第1种方案定时更加精确,在200 kHz的采样率下定时精度能达到5μs。因此文中采用第2种定时方案。系统流程框图,如图3所示。

数据定时方面,对于因调用Read_A/D()函数的时间间隔不能严格相等,导致Read_A/D()函数每次返回的数据长度可能会不相等,致使无法准确定时的问题。解决方法是开辟一个用户缓存区作为数据缓冲池,每次从数据缓冲池获取定长数据量。具体实现的部分代码如下


数据保存方面,因每秒钟需将大量浮点型数据写入文本文件所占用的时间远远超过了调用Read_A/D()函数允许的最长时间间隔,导致内部缓存溢出。于是提出将采样数据放到临时开辟足够大的用户缓存中,然后调用fwrite()函数一次性将用户缓存中的数据写入到文本文件中,具体实现的部分代码如下



通过以上关键技术能很好解决精确定时和多条通道数据实时采集。

3 试验结果
为防止出现因追加保存数据操作的时间过长而影响采集系统的实时性,所以每分钟采集数据保存一个文件。两次数据采集共持续了24天14时25分,占用209 GB的存储空间,如果使用普通的连续采集系统需要占用2 508 GB存储空间。应用文中设计的数据采集系统对ABLT-1型滚动轴承强化寿命试验机进行数据采集。采集结果如表3所示。

实际采集结果表明文中设计的采集系统能够较好地实现连续采集和定时数据存盘,并且较普通连续采集系统能节约更多存储空间,实现精确定时。文中设计的采集系统适用于需要长时间连续采集,精确定时存储和大量数据保存的数据采集工作。图4为系统单通道在50 kHz采样频率下所采集的滚动轴承振动信号波形图。

由上述结果看出,采集数据能实时准确记录滚动轴承振动信号,达到系统设计要求。

4 结束语
文中提出的基于工业PC机和数据采集卡的连续数据采集定时自动存储的采集系统,通过循环检测用户缓存是否装满以实现采集卡的定时数据保存功能,能实现精确定时并具有良好的实时性。该系统应用于滚动轴承强化寿命试验数据采集,能记录漫长失效过程的有效信息,且节约存储空间并降低采集系统成本。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top