tft每日頭條

 > 科技

 > labview數據存儲不帶變量名

labview數據存儲不帶變量名

科技 更新时间:2024-11-25 11:55:07
背景

在軟件開發中,二進制文件格式相對于文本文件格式的缺點是,沒有文本文件通用性強、直觀,同時,在讀取文件數據時,用戶需要知道存儲數據的數據類型格式等,才可以準确還原文件内容,但是,二進制文件的優點也比較突出,如文件存取速度快、占用空間小,同時,也可有效保護自己的數據文件。

在上篇文章中已經詳細說了LabVIEW平台中文本文件的讀寫編程方法,這次通過例子再說下二進制文件的編程方法。

例1:入門例子

例子要求:将1至16共16個32位的整型數字以二進制文件的格式存儲到計算機的D盤上,文件名稱為“test1.bin”,存儲完成後,立即讀出該文件内容,并顯示到前面闆的數組控件上。

程序運行後界面如下圖所示:

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)1

實現代碼如下:

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)2

用For循環産生32位的整型數字1-16,讀寫二進制文件同讀寫文本文件的步驟相同,依照着打開文件、讀寫文件、關閉文件的順序執行。

對于“寫入二進制文件”函數的主要參數說明如下:

  • 待寫入的數據參數,其類型可以連接任意的數據類型,即可以将任意數據寫入二進制文件;
  • 是否預置數組或字符串的大小參數,表明當數據為數組或字符串時,LabVIEW是否将數據大小信息添加至文件開頭,當為真時,在寫入數據時,先寫入4個字節的數值,存儲了待寫入數據的大小,默認為真,此例該參數設為假,即文件的開頭未保存數組長度信息。
  • 字節順序,可以是大端、小端或主機字節順序,例子中使用的是大端序,其特點是最高有效字節占據最低的内存地址,默認是大端序。

本例字節順序使用的是大端序,存儲後文件内容以十六進制格式顯示如下,對于1-16之間的32位整型數字明顯看出,如對于數字1,低内存地上存儲的是數據的高位字節(00),而高内存地址上存儲的是數據的低位字節(01):

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)3

當以小端序存儲時,存儲後文件内容以十六進制格式顯示如下,其字節順序與大端序相反:

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)4

對于“讀取二進制文件”函數的主要參數說明如下:

  • 讀取文件的數據類型參數,必須給一個參數,該參數與寫入文件時數組類型完全一緻;
  • 讀取數據的個數,不接該參數時,隻讀取一個數值,為-1時,讀取所有的數據,本例為-1,表示讀取整個文件的數據,為其它值時,讀取相應個數的數據。
  • 字節順序,必須與寫入文件時字節順序完全一緻。
例2:實用例子

以上篇文章中的例子說明,模拟一個實際的數據采集與存取場景。在例子中産生一個正弦波形數據,然後将波形數據以二進制文件的格式存儲到計算機的D盤上,文件名稱為“test2.bin”,波形數據點數為500點,采樣頻率為1000Hz,正弦信号頻率10Hz,幅值為5,文件中不僅包含了每個采樣點的數據值,也包含了采樣間隔信息。同樣,在存儲完成後,立即讀出該文件内容,将波形數據顯示到前面闆的波形圖控件上。

先看下程序運行後的界面:

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)5

實現代碼如下:

labview數據存儲不帶變量名(LabVIEW中二進制文件的存儲與讀取方法)6

在文件中,調用了兩次“寫入二進制文件”函數,分别存儲采樣間隔dt和采樣數據Y。其中,在存儲Y時,與上例不同,這兒參數預置數組大小設為真,在讀取該文件時可以使用該值作為實際讀取Y元素的個數參數。

經分析,存儲後文件裡面的數據格式分别為:dt(4個字節,double型)、數組大小(4個字節,int32型)及數組Y(500個點的double型數組)。所以,在讀取波形數據時,也要按照這個格式進行讀取。例子中,調用了三次“讀取二進制文件”函數,分别讀取dt和數組大小和Y。

最後将dt和Y組合成一個波形數據輸出到波形圖控件上進行顯示即可。

結論

LabVIEW中讀取二進制文件時,文件中的數據順序、類型必須與存儲時完全一緻,才能正确讀出文件中的數據。

大家加關注并私信回複:LabVIEW007,可獲取該文章對應的LabVIEW原程序下載。

歡迎加關注,共同交流。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved