<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > LabVIEW中測試測量數據的存儲(2)

LabVIEW中測試測量數據的存儲(2)

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏
在分析TDM模型的優(yōu)劣勢之前,我想最好先羅列一下一些數據文件格式的技術(shù)要求。

NI軟件平臺上針對于測試測量的數據,有很多不同的文件格式,其中有幾種是支持TDM模型的。并不是說(shuō)這些文件都能滿(mǎn)足以下技術(shù)要求,我只是先羅列出來(lái):

本文引用地址:http://dyxdggzs.com/article/201701/337025.htm

1)寫(xiě)文件速度必須要快。很多情況下需要一邊采集數據一邊就把數據寫(xiě)到文件中,采集卡的速度已經(jīng)相當快了,這時(shí)候瓶頸常常是在寫(xiě)文件這個(gè)步驟上。相反,讀文件可能并沒(méi)有如此高的要求。

2)向文件追加(append)數據的時(shí)候,速度要快,這個(gè)時(shí)候不能讀取文件中的信息。這其實(shí)也是常用的一個(gè)use case,采集數據寫(xiě)入文件的動(dòng)作可能經(jīng)常要進(jìn)行(比如在一個(gè)循環(huán)中),往往又是往同樣的文件中寫(xiě)入信息。

3)寫(xiě)文件的速度不能與文件大小成正比。我們希望不管文件有多大,寫(xiě)文件的速度總是保持相對恒定,不能文件越大就寫(xiě)得越慢。

4)支持隨機的讀取。比如我想讀文件中某個(gè)位置的某些內容,不能要求把這個(gè)位置之前的所有數據都先讀出來(lái)(即讀到內存中)。

5)支持分別讀寫(xiě)描述性信息和原始數據。這是上一條的延伸,讀描述性信息(meta data)的時(shí)候不要求把原始數據(raw data)讀進(jìn)來(lái),同樣,讀原始數據的時(shí)候也不要求把描述性信息讀進(jìn)來(lái),否則,勢必影響讀文件的速度。

6)對讀文件的速度也有一定的要求。這個(gè)要求主要來(lái)自于搜索數據。無(wú)數浩瀚的數據,怎樣才能快速的找到用戶(hù)需要的數據,這一直是一個(gè)難題。

7)文件不能太大。存儲同樣的數據量,文件自然越小越好。

技術(shù)要求暫時(shí)就寫(xiě)這么多,其實(shí)總結起來(lái),無(wú)非兩點(diǎn):1)快;2)方便。我們對照TDM的數據模型,對于“快速”,暫時(shí)看得不明顯(以后可以談?wù)劄槭裁碩DMS文件可以達到“快速的要求”),但是說(shuō)它“方便”,還是可以理解的。

這個(gè)模型的設計完全是依照用戶(hù)的應用實(shí)例。首先,它是分層次的。比如說(shuō)我們需要測試汽車(chē)發(fā)動(dòng)機的各個(gè)指標。我們用8個(gè)通道的采集卡采集發(fā)動(dòng)機振動(dòng)的數據,8個(gè)通道分別采集8個(gè)部位的振動(dòng),存到文件中,作為一個(gè)組(group),組的名字就叫做“發(fā)動(dòng)機振動(dòng)”。我們還需要采集發(fā)動(dòng)機的進(jìn)氣管、排氣管壓力,又作為一個(gè)組。還要采集發(fā)動(dòng)機的溫度,可能也用8個(gè)通道的采集卡采集8個(gè)部位的溫度,每個(gè)部位的溫度數據作為一個(gè)通道(channel)存到文件中,8個(gè)通道作為一個(gè)組,叫做“發(fā)動(dòng)機溫度”等等。我們可能會(huì )采集多次,其他參數都不變,只是數據每次都附加在文件的后面。我們有很多的測試工程師,每個(gè)工程師做的測試分別存成一個(gè)TDM模型的數據文件??梢园l(fā)現,這樣的三層結構還是很清晰的。這就好比用LabVIEW些程序,VI大了,就不知道怎么管理了,那就多用幾層SubVI嘛。

其次,它具有描述性信息。比如可能需要把測試的日期、測試者的名字、測試的環(huán)境配置等信息寫(xiě)下來(lái)。有些描述性信息是針對“文件”這個(gè)層次的,比如測試者的姓名。有些信息可能針對“組”這個(gè)層次,比如采集的是“溫度”,單位是“攝氏度”。有些信息則可能針對“通道”,比如采集的是發(fā)動(dòng)機哪個(gè)部位的溫度等等。描述性信息比較利于他人閱讀文件,并且,在搜索文件數據的時(shí)候,可以派上大用場(chǎng),可以先利用這些描述性信息進(jìn)行定位。當然,這些信息最好能和“原始數據”(raw data)放在一起,要是放在兩個(gè)文件中,一是難以對應起來(lái),而是不利于維護。這也好比是寫(xiě)LabVIEW程序,你寫(xiě)的程序,別人也要能看到,沒(méi)太多的好辦法,就多寫(xiě)點(diǎn)注釋吧。

這樣的TDM模型也有其缺點(diǎn)。至少看起來(lái)有點(diǎn)復雜,同時(shí)有原始數據和描述性數據,還要實(shí)現那么多的技術(shù)要求,著(zhù)實(shí)有點(diǎn)困難啊。其次,這個(gè)模型寫(xiě)下來(lái)就固定了,一共就3個(gè)層次,說(shuō)到底在某個(gè)文件中也就2個(gè)層次,不能擴展,不像XML那樣方便。我有時(shí)候就想要把數據寫(xiě)到一個(gè)“通道”中,我還非得先造一個(gè)“組”出來(lái)(其實(shí)可以不寫(xiě),默認會(huì )造一個(gè)出來(lái),但是邏輯結構上不能缺少)。還有其他限制條件,比如原始數據必須寫(xiě)在“通道”這個(gè)層次,不能寫(xiě)在“組”這個(gè)層次等等。

總體來(lái)講,TDM數據模型利大于弊,比較適合測試測量領(lǐng)域的數據的存儲,是一套不錯的解決方案。



關(guān)鍵詞: LabVIEW測試測量數據存

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>