日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > LabVIEW數據記錄和存儲(五)—TDMS文件

          LabVIEW數據記錄和存儲(五)—TDMS文件

          作者: 時間:2017-01-09 來源:網絡 收藏
          TDMS(Technical Data Management Streaming)文件是NI主推的一種二進制記錄文件,它兼顧了高速、易存取和方便等多種優(yōu)勢,能夠在NI的各種數據分析或挖掘軟件之間進行無縫交互,也能夠提供一系列API函數供其它應用程序調用。
          TDMS的邏輯結構分為三層:文件(File)、通道組(Channel Groups)和通道(Channels),如圖 25所示,每一個層次上都可以附加特定的屬性(Properties)。程序員可以非常方便地使用這三個邏輯層次定義測試數據,也可以任意檢索各個邏輯層次的數據,這使得數據檢索是有序的、方便存取的。


          圖 25 TDMS文件的邏輯結構
          TDMS文件的內部結構(物理結構)如圖 25所示,實際上程序員無需了解該部分內容就可以利用相關的API函數進行TDMS文件的讀寫,因此這里只作簡單的介紹。TDMS內部結構的核心是segment,當數據被寫入到segment中時實際上是新建了segment。各個segment中包含的主要數據段的含義如下所示,更詳細的信息可以參考http://zone.ni.com/devzone/cda/tut/p/id/5696。
          • ToC Bitmask:這是一個32位的整型數據段,它表示該segment是否包含meta data、raw data。
          • Version number:表示segment的版本,這可以確保兼容一些舊的TDMS文件版本。
          • Next segment offset:表示下一個segment的偏移字節(jié)。
          • Raw data offset:表示Raw data的偏移字節(jié)。
          • Meta Data:三個層次的屬性存儲字段。
          • Raw data:實際的raw data存儲字段。
          這種物理結構也就決定了TDMS文件的隨機存取特性,當程序員只希望讀取raw data而并不關注屬性時,此時可以利用raw data offset直接獲得raw data信息而無需關注Meta Data信息。正如前面所述,往TDMS中添加信息時實際上是添加了新的segment,因此無需關心segment之前的內容是什么,也就確保了寫TDMS文件的速度與TDMS文件的大小無關,保證了高速存取。值得注意的是,TDMS物理結構中的segment與其三層次邏輯結構沒有任何關系。可能一個通道對應著多個segment,也可能一個segment中包含多個通道。當把數據寫入硬盤時就是產生一個segment,而把數據從硬盤中讀取出來時也就是把一個個的segment內容讀取出來。


          圖 25 TDMS文件的物理結構
          TDMS文件格式在LabVIEW、LabWindows/CVI、Signal Express和DIAdem中均可以使用,也可以在Excel或Matlab中被調用。在LabVIEW中,TDMS文件的操作函數在Programming>>File I/O>>TDM Streaming選板中,如圖 25所示。其使用方法比較簡單,這里只給出簡單的解釋,具體的實例可以參考LabVIEW自帶的Examples。
          • TDMS Open/Write/Read/Close:與文本文件和二進制文件的功能類似,程序員只需要牢記TDMS文件的三層次邏輯結構即可。
          • TDMS List Contents:列出TDMS文件的Groups和Channels名稱,或者根據指定的Group列出其包含的Channels的名稱。
          • TDMS Set Properties:設置TDMS文件、通道組或通道的屬性。
          • TDMS Get Properties:獲取TDMS文件、通道組或通道的屬性。
          • TDMS Flush:刷新所有TDMS文件在內存中的數據,即立即將所有的TDMS數據寫入硬盤(創(chuàng)建新的segments)。
          • TDMS Defragment:整理TDMS文件中的存儲碎片,當TDMS文件較大時,利用該函數可以提高數據存取的性能。
          • TDMS Create Scaling Information:將TDMS中的數據創(chuàng)建Scaling信息,當采集到原始數據需要使用如y=ax+b等線性、多項式或者各種傳感器的轉換關系時,可以使用該函數直接改變TDMS文件中某些通道的數據值(該改變是不可逆的,無法刪除Scaling信息)。
          • TDMS File Viewer:TDMS文件查看器,該VI可以非常直觀地以樹形方式列出TDMS文件中的屬性和數據,便于用戶查看。


          圖 25 TDMS函數選板
          當寫完TDMS文件之后,LabVIEW會自動生成兩個文件:*.tdms文件和*.tdms_index文件。前者為數據文件(或主文件),后者為索引文件(或頭文件)。二者最大的區(qū)別在于索引文件不含raw data信息,而只包含屬性等信息,這樣可以增加數據檢索的速度并且利于搜索TDMS文件。該文件是自動生成的,不需要程序員干預。
          LabVIEW 2009進一步改進了對TDMS格式的支持,從1.0版本升級到2.0版本,并且提高了對高速流盤應用的支持,以及對DAQmx的應用支持,比上一版本的TDMS文件至少有4倍以上速度的提升。當然,TDMS也有一些缺點。比如速度上并沒有win32 streaming API快,不支持刪除某個通道或通道組,以及只支持Windows操作系統(tǒng)和VxWorks、Phar Lap等實時平臺。總體而言,TDMS文件格式兼顧了速度、邏輯組織、易用性等多個因素,在數據存儲方面是一種非常不錯的選擇。


          評論


          技術專區(qū)

          關閉