基于Delphi虚拟振动测试分析系统的设计与实现
1虚拟测试分析系统的结构
开发的虚拟振动测试分析系统是基于数据采集卡的PC一DAQ结构。系统的结构如图1所示,由硬件和软件两大部分构成。
系统硬件的核心是一台PC机,1/0接口设备采用阿尔泰的PcI2006数据采集卡。软件部分支持windowsxP系统下的1/0接口仪器驱动程序,包括对vB、e++、nelphi以及LabVEIW的驱动程序,本系统使用Delphi编程语言运用其相应的驱动程序对该卡进行数据采集的编程。
2虚拟振动测试分析系统的软件设计
系统软件包括启动封面、大容量振动信号数据采集和振动信号数据回放及信号分析三个界面。软件设计流程图如图2所示。
2.1启动封面
运行软件显示“振动信号数据采集和信号分析系统”、设计者和单位,鼠标点击界面即可进人下一界面。
2.2连续大容量数据采集的编程
2.2.1如何管理PCI2006设备
由于PCIZoo6的驱动程序采用面向对象编程,要使用设备的一切功能,首先用CreateDevice函数创建一个设备对象句柄hDevice,有了这个句柄,就有了对该设备的绝对控制权。然后将此句柄作为参数传递给其他函数,如InitDevieeProAD可以使用hDeviee句柄以程序查询方式初始化设备的AD部件,ReadDevi-ceProAD函数可以用hDevice句柄实现对AD数据的采样读取,SetDevieeDO函数可用hDeviee句柄实现开关量的输出等。最后可以通过ReleaseDevice函数将hDeviee释放掉。
2.2.2用非空查询方式取得AD数据
用CreateDeviee函数创建设备对象,有了hDeviee设备对象句柄后,用InitDeviceProAD函数初始化AD部件,关于采样通道、采样频率等的参数的设置,可用这个函数的pPara参数结构体决定。只需要对这个pPara参数结构体的各个成员简单赋值,即可实现所有硬件参数和设备状态的初始化。然后用StartDevi-cePr0AD函数启动AD部件,开始AD采样,用ReadDe-viceProAD一NotEmPty函数反复读取AD数据以实现连续不间断采样。暂停和关闭设备时,执行St叩Devi-ceproAD函数,用ReleaseDevieeproAD函数关闭设备。
2.2.3用半满方式取得AD数据
实现参数初始化和启动AD部件后,开始采样,可调用GetDevstatusAD_Haif函数以查询AD的存储器FIFO的半满状态,如果达到半满状态,即可用ReadDe-viceProAD_Hair函数读取一批半满长度(或半满以下)的AD数据,接着再查询FIFO的半满状态,若有效再读取,就这样反复查询状态读取AD数据,即可实现连续不间断采样。用同样函数可暂停和关闭AD设备。
2.2.4用中断方式取得AD数据
用CreateDevice函数创建设备对象,同时调用CreatesystemEvent函数创建一个内核事件对象句柄hEvent赋给InitDevieelntAD的相应参数,它将作为接程,即这个线程在正常采集中不能有任何窗口等图形操作。只有这样,当用户进行任何窗口操作时,这个线程才不会被堵塞,可以保证正常连续的数据采集。那么如何将采集的数据显示在屏幕上呢?再开辟一个数据处理线程,也叫用户界面线程。最初,数据处理线程不做任何工作,而是在Win32API函数WaitForsing-leobject的作用下进人睡眠状态,此时它不消耗CPU任何时间,即可保证数据采集线程代码有充分的运行机会,当数据采集线程取得指定长度的数据到用户空间时,则再用Win32API函数setEvent将指定事件消息发送给数据处理线程,则数据处理线程即刻恢复运行状态,迅速对这批数据进行处理,如计算、在窗口绘制波形、存盘等操作。
相关文章
- 2024-02-26实现同一分析周期内两流路并行分析的技术改造
- 2024-07-31铁路客车提速轴承外圈非基准端面挡边平行度测量仪的研制
- 2022-04-27监控摄像机日夜及彩色黑白转换两用简析
- 2023-03-02智能化色谱分析软件的研究与应用探讨
- 2024-07-09多CCD拼接相机中图像传感器不均匀性校正



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。