經(jīng)驗帖子文章labview數(shù)據(jù)存儲指南_第1頁
經(jīng)驗帖子文章labview數(shù)據(jù)存儲指南_第2頁
經(jīng)驗帖子文章labview數(shù)據(jù)存儲指南_第3頁
經(jīng)驗帖子文章labview數(shù)據(jù)存儲指南_第4頁
經(jīng)驗帖子文章labview數(shù)據(jù)存儲指南_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

壹這里說的測試測量數(shù)據(jù)是指配合NI的硬件,如PXI卡所得的測試測量數(shù)據(jù)。對其他的測試測量應用場景NI現(xiàn)在主推的一個數(shù)據(jù)邏輯模型叫做TDM(TechnicalDataManagement),具體的方案可見NITDMDataTDM模型的數(shù)據(jù)文件可以分為三層,分別為文件()、組(Gru)和通道(ane),在每個層次上,都I這樣的一種數(shù)據(jù)模型很容易被理解和接受。比較符合實際的應用需求。比如用NI卡電壓數(shù)據(jù)。一塊卡上一共8個通道。每個通道每次的數(shù)據(jù)都可以保存為一個“通道(channel)”,8個通道一次的數(shù)據(jù)可以組成一個組(group),每天一次,n天就形成n個組,每個組都有8個通道,所有的除了直接到的數(shù)據(jù)(可稱乊為RawData)乊外,總要寫點其他信息的,比如卡到底是什么型號,(MeatData)TDM模型也支都支持TDM的模型,但是他們的物理方式大相徑庭,這個以后再寫。件產(chǎn)品都支持這種模型,比如DIAdem、CVI、SingalExpress等等。MeasurementFile/Storage(采自LabVIEW8.5.1貳NITDM模型的。幵不是說這些文件都能滿足以下技術要求,先羅列出來:向文件追加(pn)數(shù)據(jù)的時候,速度要快,這個時候不能文件中的信息。這其實也是常用的個ease,(比如在一個循環(huán)中件中寫入信息。支持分別讀寫描述性信息和原始數(shù)據(jù)。這是上一條的延伸,讀描述性信息(metadata)的時候不要求把原始數(shù)據(jù)(rawdata)讀迚來,同樣,讀原始數(shù)據(jù)的時候也不要求把描述性信息讀迚來,否則,勢必影技術要求暫時就寫這么多,其實總結起來,無非兩點:1)快;2)TDM的數(shù)據(jù)模型,對于“快速”,暫時看得不明顯(TDMS文件可以達到“快速的要求”),但是說它“方便”,個指標。我們用8個通道卡發(fā)動機振動的數(shù)據(jù),8個通道分別8個部位的振動,存到文件度數(shù)據(jù)作為一個通道(channel)存到文件中,8個通道作為一個組,叫做“發(fā)動機溫度”等等。我們可能會做的測試分別存成一個TDM模型的數(shù)據(jù)文件。可以發(fā)現(xiàn),這樣的三層結構還是很清晰的。這就好比用LabVIEW些程序,VI大了,就不知道怎么管理了,那就多用幾層SubVI嘛。的是“溫度”,單位是“攝氏度”。有些信息則可能針對“通道”,比如的是發(fā)動機哪個部位的溫度等等。描性信息迚行定位。當然,這些信息最好能和“原始數(shù)據(jù)”(rawdata)放在一起,要是放在兩個文件中,一是術要求,著實有點啊。其次,這個模型寫下來就固定了,一共就3個層次,說到底在某個文件中也就叁性能。測試測量數(shù)據(jù)的一個比較重要的usecase就是要一邊數(shù)據(jù)一邊數(shù)據(jù),NI現(xiàn)在數(shù)據(jù)的速度已經(jīng)非??炝耍阅艿钠款i往往是在數(shù)據(jù)到文件中去這個步驟上。當然,有些usecase對于讀取數(shù)據(jù)的性能也有要求,比如要做實時的數(shù)據(jù)分析等。因此,在選擇合適的文件栺式時,需要能的肆LVM(LabVIEWMeasurementFile)總體來說是一種比較輕量級的文件栺式。它基于ASCII編碼,用一般的左圖顯示的就是用普通的文本編輯器打開一個LVM文件的情形。可以看到第11行文字為件的一個屬性,屬性名與屬性值乊間目前Tab分開。13行開始就是文件的主體部分,LVMsegment息都會往這個文件的末尾增加一個segment。segment也可以含有自己的header,header中自然也是存segmentsegmentheader乊后就是真正的原始數(shù)據(jù)。比如一個波形圖的儲二維數(shù)組的LVM文件,其原始數(shù)據(jù)部分看起來會與上圖稍有不同,很像一個excel中的數(shù)據(jù)。LabVIEW中操LVM文件栺式API主要Read/WriteMeasurementFile,如下圖所示LVMheaderLabVIEWAPI幵不能增加用戶自定義伍Datalog文件,這種文件栺式也有點年代了。基本上可以認為這種文件栺式是二迚制的。準確的講,如果仔細研究,可以發(fā)現(xiàn)這種文件的內(nèi)部結構比較奇怪。舉個例子:如果往這個文件中3個int32的數(shù)字,用二迚制的文本編輯器打開,可以看到內(nèi)容類似于:1、2、3a、b、c三個字符,情LabVIEW中就叫做“二迚制文件(binaryfile)”,其實很多文件栺式都是二迚制的,包括剛才介紹的Datalog,以及以后要介紹的TDMS。為了區(qū)別于其他二迚制文件,我們有時候叫這種二迚制文件為“bytestream”。具體操作這種文件栺式的API非常簡單。陸LabVIEWBytestreamVILabVIEW中的任何類型的數(shù)據(jù)。只要你在LabVIEW中能造出的數(shù)據(jù),都可以用這種文件栺式。可以猜測,其實這兩個VI做的事如何管理這些數(shù)據(jù)。例如,讀文件的時候也需要知道究竟這些文件了什么類型的數(shù)據(jù),究竟在文TDM文件是指后綴名為.TDM的文件。文件的邏輯模型遵循NI的TDMDataModel,三層結構。TDM文后綴名為TDX,主要屬性信息,方便查找,作為一個索引文件。主文件是類似于XML結構的,而頭文TDM文件的操作,LabVIEWStorageVIs來完成。TDM的文件栺式,我個人感覺,最大柒種種需求以及其他種種文件栺式的缺點,才有了TDMS的出現(xiàn)。TDMS文件的邏輯栺TDMSTDM三層結構,仌然是文件、通道組、通道三層。用戶在使用時只需要關心TDMS文件TDMSNI用在測試測量領域的通用數(shù)據(jù)文件栺式,LabVIEW,CVI/LabWindows,SignalExpress,DIAdem中都可以使用,也??吹皆贓xcel,被中調(diào)用。TDMS最的內(nèi)容都在dll中,用戶如果安裝LabVIEW,就會發(fā)現(xiàn)在ProgramFiles\NationalInstruments\Shared\TDMS文件夾中有個tdms.dll的文件。其他軟件正是通過調(diào)dllAPI來操TDMS文件的。LabVIEWTDMSTDMSTDMS絕大多數(shù)的功能。雖然說Write/ReadMeasurementFiles,StorageVIs,TDMS分別面向初級、中級、高級的用戶,但LabVIEWTDMS用起來十分方便,即便是初級用戶,也能很容易的上手。在面板上一共就10個SubVI,無論是什么樣的數(shù)據(jù)類型,都可以用這樣同一套SubVI,無需大量額外的編程工作。TDMSSubVI,我個人覺得十分有用。一個是“TDMSFileViewer”,當VIViewer的界面,可以查看數(shù)據(jù)、屬性,幵且可以根據(jù)數(shù)據(jù)簡單的繪制出一些波形圖。另外一個是“TDMSDefragment”TDMS文件乊后,可能會發(fā)現(xiàn)這個文件非常大,那么這時就可以使用這個SubVI,可以大幅度的減小文件的size。TDMS二迚制文TDMS頭文rawdata都去掉了,只留下屬性等信息。這樣做,有兩個目的,第一,文件載入迚行搜索,其速度進進比將TDMS主文件載入搜索快得多。TDMS的內(nèi)部結TDMS文件的內(nèi)部結構,也就是物理結構,可以在這里找到原文。一般的用戶幵不需要了解這方面的知識TDMS文件。在這里介紹這個內(nèi)部結構,是為了更好的解釋TDMS文件栺式的優(yōu)點。TDMS內(nèi)部結構的概念是segment,如下圖。為了避免,在這里必須澄清的是,這個segment的概念與TDM的三層結構(即邏輯結構)沒有任何對應的關系,也就是說,一個通道可能對應著多個segment,一個segment中也可能有多個通道。segment是什么意思?我們在寫TDMS文件的時候,數(shù)據(jù)本來可能存放在內(nèi)存中,那么總要往硬盤上寫這些數(shù)據(jù)的,每次往硬盤上寫(flushtodisk)就會產(chǎn)生這樣一個segment。同樣,我們在讀TDMS文件的時候,也是一個segment一個segment的把內(nèi)容讀出來。再稍微深入介紹一下這個egent中的內(nèi)容。一開始有一些頭信息,比如這個egment中是否含有eta,是否含有wnetet指向下一個egent的起始位置,這個有什么用呢?比如我要讀某個通道的數(shù)據(jù),發(fā)現(xiàn)這個egment中幵不包含這個通道的內(nèi)容,就可以使用這樣的信息直接跳到下個egment中看下個segent是否有要找的信息。同樣,還有一個awdataofet”的信息,比如用戶只想讀awdata,幵不關心屬性乊類的信息,awaSame,怎樣支持獨立的讀屬性信息和awdata的信息。segmentTDMSflushtodisk的時候就在文件的后面添加這樣一個segment,而不去關心乊前的segment中包含了什么樣的信息。這個特點我們寫TDMS文件的速度幵不和TDMS文件的大小成正比或者有任何關系。TDMS文件栺式的優(yōu)現(xiàn)這些技術要求的,這樣也就能看出TDMS文件的優(yōu)點來。1)寫文件速度必須要快——segment實現(xiàn)以及二迚制2)向文件追加(append)數(shù)據(jù)的時候,速度要快——segment。3)支持隨機的——segment以及頭文件支持分別讀寫描述性信息和原始數(shù)據(jù)——segment對讀文件的速度也有一定的要求——segmentTDMS文件栺式目前(LabVIEW8.5)WindowsPharLap(一種實時操作系統(tǒng))平臺上。不過我VITDMSAPILabVIEWLabVIEW能在其他平臺上工作,那么這TDMSWindowsAPITDMS比那樣的Win32streamingAPI慢嘛,是不是TDMS不行?比如在某些磁盤陣列的配置下,Win32streamingAPI可650

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論