LabWindows/CVI在风洞数据采集中的应用(08-100)
软件功能实现
主界面设计
LabWindows/CVI中带有用户界面编辑器,它提供了各种控件如:数字控件、字符串控件、波形图控件、Tab、Table等。利用自动代码生成工具可以帮助开发者快速建立用户界面及对应的回调函数。该程序主界面如图3。
图3
线程考虑
整个软件采用多线程模式,主线程用于管理用户界面,在主线程中创建一个单独的采集线程,用于采集和保存数据。这里主要用到了LabWindows/CVI提供的线程函数可以方便的创建、管理线程。
errorCode=CmtScheduleThreadPoolFunctionAdv(DEFAULT_THREAD_POOL_HANDLE,DAQThreadFunction, NULL, THREAD_PRIORITY_NORMAL, NULL,(unsigned int)NULL, NULL, (unsigned int)NULL, &DAQThreadID);该函数用于创建采集线程,DAQThreadFunction为自定义的线程函数,该函数用于实现数据采集及数据存储。
errorCode = CmtReleaseThreadPoolFunctionID (DEFAULT_THREAD_POOL_HANDLE, DAQThreadID);该函数用于释放线程。
数据采集
基于PXI+SCXI这种系统构架,在数据采集时,使用了PXI-6052E的一个通道来控制SCXI所有通道。考虑到通道数多,设置参数多,需要等待足够的时间采集等特点,这样在硬件初始化时会比较花时间,所以在采集程序中把初始化硬件没有放到线程函数里面,专门将该功能列出。这样保证了在点击开始采集后能在要求等待的时间后得到所需要的试验数据。
在该软件中使用了NI早期的数据采集卡驱动程序Traditional DAQ。使用了缓冲技术实现连续数据采集。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码