背景

在软件开发中,二进制文件格式相对于文本文件格式的缺点是,没有文本文件通用性强、直观,同时,在读取文件数据时,用户需要知道存储数据的数据类型格式等,才可以准确还原文件内容,但是,二进制文件的优点也比较突出,如文件存取速度快、占用空间小,同时,也可有效保护自己的数据文件。

在上篇文章中已经详细说了LabVIEW平台中文本文件的读写编程方法,这次通过例子再说下二进制文件的编程方法。

例1:入门例子

例子要求:将1至16共16个32位的整型数字以二进制文件的格式存储到计算机的D盘上,文件名称为“test1.bin”,存储完成后,立即读出该文件内容,并显示到前面板的数组控件上。

程序运行后界面如下图所示:

labview数据存储不带变量名(LabVIEW中二进制文件的存储与读取方法)(1)

实现代码如下:

labview数据存储不带变量名(LabVIEW中二进制文件的存储与读取方法)(2)

用For循环产生32位的整型数字1-16,读写二进制文件同读写文本文件的步骤相同,依照着打开文件、读写文件、关闭文件的顺序执行。

对于“写入二进制文件”函数的主要参数说明如下:

本例字节顺序使用的是大端序,存储后文件内容以十六进制格式显示如下,对于1-16之间的32位整型数字明显看出,如对于数字1,低内存地上存储的是数据的高位字节(00),而高内存地址上存储的是数据的低位字节(01):

labview数据存储不带变量名(LabVIEW中二进制文件的存储与读取方法)(3)

当以小端序存储时,存储后文件内容以十六进制格式显示如下,其字节顺序与大端序相反:

labview数据存储不带变量名(LabVIEW中二进制文件的存储与读取方法)(4)

对于“读取二进制文件”函数的主要参数说明如下:

例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原程序下载。

欢迎加关注,共同交流。

,