| Profil de haoboLV≠Louis Vuitton∷LabVIEW...BlogListesRéseau | Aide |
LV≠Louis Vuitton∷LabVIEW Style LifeLHB5883的LabVIEW感悟~ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
好东西要大家分享
|
15 décembre LabWindows/CVI2009 MeasurementStudio2009 Evaluation不多说了 CVI2009 ftp://ftp.ni.com/evaluation/cvi/pc/Full/nilwcvi2009.exe Real Time ftp://ftp.ni.com/evaluation/cvi/pc/toolkits/nilwcvi2009rt.exe Vision ftp://ftp.ni.com/support/softlib/vision/Vision%20Development%20Module/2009/VDM2009.zip Signal Processing ftp://ftp.ni.com/evaluation/cvi/pc/toolkits/cvi_spt_702.exe Profile ftp://ftp.ni.com/evaluation/cvi/pc/toolkits/nilwcvipf10.exe Database ftp://ftp.ni.com/evaluation/cvi/pc/toolkits/CVISQL210.exe PID ftp://ftp.ni.com/evaluation/cvi/pc/toolkits/CVIPID210.exe
MeasurementStudio2009 ftp://ftp.ni.com/evaluation/mstudio/pc/MStudio2009Eval.exe 不知道支不支持VisualStudio20105 décembre 流盘备忘录(7)-参考资料参考资料: Introduction to Streaminghttp://zone.ni.com/devzone/cda/tut/p/id/6355 PXI Express Specification Tutorialhttp://zone.ni.com/devzone/cda/tut/p/id/2876 PXI 系統中的資料串流架構http://zone.ni.com/devzone/cda/tut/p/id/6135 高速数据流盘处理:编程与标定http://zone.ni.com/devzone/cda/tut/p/id/6458 PCI Express简介http://zone.ni.com/devzone/cda/tut/p/id/10228 PXI Express 常見問答集http://zone.ni.com/devzone/cda/tut/p/id/6156 Streaming with PXIhttp://zone.ni.com/devzone/cda/tut/p/id/7700 Stream to Disk Using Win32 File IOhttp://zone.ni.com/devzone/cda/epd/p/id/5348 RF Record and Playback Reference Applicationhttp://zone.ni.com/devzone/cda/epd/p/id/5894 NI磁盘阵列产品使用的驱动http://digital.ni.com/public.nsf/allkb/5D08C51AF3C748BD86257560000F7E44 TDMS Direct Integration in NI-DAQmx Logginghttp://zone.ni.com/devzone/cda/tut/p/id/9574 TDMS 2.0 FAQhttp://zone.ni.com/devzone/cda/tut/p/id/9995 TDMS File Improvements in LabVIEW 2009 流盘备忘录(6)-程序架构并行执行 采集和保存大量数据对计算机内存和CPU占用率都很高,如果使用单循环顺序结构很容易将CPU超载,所以我们有必要使用数据队列。 NI的RF流盘例程:
一个比较合理的架构是使用采集-送入队列 同时并行取出队列-流盘,可以较为充分的利用双核CPU。 完成之后再提取数据进行处理。
对于使用DAQmx 9.0和LabVIEW2009平台,我们还有一个更优秀的选择:使用DAQmx TDMS2.0集成流盘
这个API的好处是效率更高编程更简单,而且占用系统资源更少,直接由DAQ DMA到硬盘。而且最高速度可达1.8GBS/s 需要注意这个VI在Log模式效率最高,但是还需要读取数据做其他处理的话要选Log and Read。
存好的文件就是标准的TDMS2.0文件。 2 décembre 流盘备忘录(5)-文件读取我们存好数据并不是大功告成了,我们还需要从流盘数据文件恢复各通道信号才能再做各种分析。 其中最关键的核心问题就是存盘的文件格式和数据解析。 上一篇我们已经解析了一个数据块的构成,这一篇我们来看看到底如何用LabVIEW实现: 这个在数据量较小时姑且还可以用一用,不过要想更灵活的解析出各个通道数据,还需要推导出采样在文件中的位置公式。 我们需要的参数有
我们需要得出的参数:
SamplePosition= { (SampleNum/SampleperChannel)*SampleperChannel*BoardNumber*ChannelNumber 数据块偏移 }*SampleByte
另外要注意的是偏移量最好用U64,I32最多能寻址2GB,大于2GB就会溢出。 有了这个公式再配合设置偏移量,就可以很方便的取出每个通道的数据了。
其他要注意的是如果使用Win32API,那么读取数据的高低位是Windows格式的Little Endian而不是LabVIEW通常的Big Endian。
流盘备忘录(4)-存盘API存盘接口 Windows写入文件有两种形式缓冲和非缓冲 http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx 缓冲模式是Windows自动分配缓冲区将数据分割到硬盘的每个簇大小以便写入,而非缓冲模式是有我们程序员进行缓冲区 的分配,可以任意指定大小。(这个任意并不是绝对的,必须要是硬盘簇的整数倍) XP系统默认的缓冲区应该不是很大,在Copy文件时效率比Windows7要低一些,而在我们操作巨型的文件时至少要4MB以上的缓冲区才能发挥出最大效能。 如下图所示,block size越大数据流盘速度就相对越快,读盘反而是缓冲区较小时效率较高。不过这张图使用的是RAMDISK,数据只能供参考,使用硬盘时可以再行测试。 在LabVIEW 2009里面支持非缓冲格式流盘的有TDMS,BINARY和Win32APIVIs三种
LabVIEW 2009 TDMS Lab VIEW 2009 Binary Win32API 这三种接口效率如何我们用RAMDISK分配一个内存盘以测试API本身的性能。
结果: TDMS 153.2MB/s LabVIEW2009 Bin 497MB/s Win32APIVIs 515.9MB/s 分析 因为三种API流盘的目标都是内存,数据量也相等,所以性能的差别应该是API本身造成的,观察CPU占用也可以看到TDMS最高,LabVIEW2009 bin和Win32基本持平,可见写入函数过于复杂也会影响存盘效率。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|