解码labview读写二进制文件格式
LABVIEW字符格式说明

使用格式说明符格式化字符串、将数字转化为字符串,或在字符串中插入不显示的字符。
对于输出字符串的函数,例如格式化写入字符串和数组至电子表格字符串转换,格式说明符使用下列语法元素。
双括号( [] )中的是可选元素。
%[$][-][+][#][^][0][Width][.Precision || _SignificantDigits][{Unit}][<Embedded information>]Conversion Code其中Width是一个大于零的数,.Precision和_SignificantDigits是大于等于零的数。
对于扫描字符串的函数,例如,扫描字符串和电子表格字符串至数组转换,格式说明符使用下列语法元素。
%[Width]Conversion Code格式化写入字符串、格式化写入文件、扫描字符串和扫描文件函数可在格式字符串输入中使用多个格式说明符,每个格式说明符用于每个可扩展函数的输入或输出。
格式说明符语法元素下表列出了格式说明符的语法元素。
详细信息见格式说明符范例。
语法元素说明% 格式说明符的开始。
$(可选)使用格式函数时,该修饰符规定了显示变量的顺序。
包括代表变量顺序的位数,其后紧接该修饰符。
-(可选)使用格式化函数时,该修饰符在参数的宽度之内将参数靠左调整,而不是靠右调整。
+(可选)使用格式化函数时,即使是正数,该修饰符也包括符号。
^(可选)使用格式函数和e或g转换代码时,该元素将数格式化为科学计数法,其中指数为3的倍数。
#(可选)使用格式化函数时,该修饰符移除尾部的无效零。
如数值无小数部分,该修饰符会将有效数字精度之外的数值强制为零。
0(可选)使用格式化函数时,使用该修饰符,不带-修饰符,函数将用零而不是空格填充数值参数左边的多余空间,以达到最小宽度。
Width(可选)使用扫描函数时,如扫描字符串,Width元素规定了使用的字段的确切宽度。
LabVIEW处理参数时只扫描指定数量的字符。
labview的深入探索----文件系列之二进制文件

labview的深入探索----文件系列之二进制文件二进制文件是计算机文件中最常见的文件,它占用空间最小,适合于连续存储大量数据,同时它的存储格式基本和数据在内存中的存储格式一致或者类似,很多情况下,甚至是内存的映射,因此无论是存储还是读取都是速度最快的,同时,具有非常高的安全性,如果不知道数据的格式,很难分析出文件的格式.同文本文件一样,打开和关闭是完全相同的,不同的是写VI 和读VI.先看一个简单写的例子上面写的是U8 数组,我们知道,一个U8 对应一个字节,1024 个U8 数组对应的文件长度应该是1024=1K,但是实际文件长度是1028=4+1024,同理,下面的是I32 的数组,一个I32=4BYTE,所以文件长度应该是1024*4=4096,但是实际文件长度是4100=4+4*1024.可以看出,对一维数组,多出四个字节的长度,实际上是多出一个U32=4BYTE,代表的是一维数组的长度.原因在于WRITE BIN FILE VI,有一个选择项,如下图,表示是否写入数组长度或者字符串长度.如果取消写入数组或者字符串长度,则数组所占空间大小和二进制文件所占空间完全相同.之所以读写二进制文件速度是最快的,根本原因在于二进制文件的存储方式和数据在内存中的存储方式相似或者完全一致.WRITE BIN FILE VI 还有一个重要的输入选择项目,BYTE ORDER(字节次序),很多编程语言或者操作系统称之为大小端的问题.在所有的计算机系统,包括单片机中,都存在大小端的问题.简单地介绍一下.我们知道,一个整数U16 或者I16,有两个字节组成,比如整数0X1234,由字节0X12,和0X34 组成,那么,在内存中或者文件中,到底是0X12 在前还是0X34 在前那,在不同的操作系统和不同的编程语言中,这是有区别的,这就造成的数据的大小端的问题.对于我们自己的数据二进制文件,这个选择并不重要,因为LV 的读二进制VI 也有同样的选择项,保持二者一致就可以了,但是如果被其它编程语言读取或者读取其他语言写的二进制文件,就要考虑大小端的问题,否则数据表现可能会。
LABVIEW数据文件的存储与回放

LABVIEW数据文件的存储与回放
一、实验目的
(1)了解并掌握虚拟仪器中常用的数据文件格式和特点。
(2)掌握数据文件操作的基本步骤,学习灵活操作文件中数据的常用技巧和方法。
二、实验设备
1、安装有LabVIEW 7 Express计算机
2、安装有NI-DAQ 7的计算机
3、支持的数据采集设备(DAQ)(以NI公司提供的NI6014数据采集卡为例)。
三、实验任务描述
1、利用LabVIEW编程,设计出若干个子VI,利用它们分别完成不同类型数据的写入。
要求程序能够实现单个数据写入还是连续写入的切换功能。
2、设计主程序,主程序运行时首先弹出窗口请求输入数据保存格式,然后根据选择的格式运行不同的分支子程序,分支子程序采用SubPanel子面板的方法动态调用。
3、设计程序保存和读取二维或多维数组,要求保留维数信息。
(可使用头信息的方式或采用spreadsheet表单的数据格式保存)
四. 实验原理
完成LabVIEW程序,使其具备数据写入与读取功能,文件格式和数据类型能够在二进制和文本两种之间切换。
单独的实现方法可以参考任务书附带的范例。
五、实验程序
写二进制文件
读二进制文件
写文本文件
读文本文件。
(完整word版)用matlab读取labview存储的二进制

用matlab读取labview存储的二进制
在labview中,将N个double型数组(内部有9个数字)、N个double型数组(内部有4个数字)、N个double型数字、N个表示时间的字符串捆绑成簇后“Write To Binary File”写入二进制,得到data。
dat的二进制文件.
根据LabVIEW数据类型的定义方式,可以计算单个簇元素的大小是:4 Bytes(数组长度)+8 Bytes(double)*9+4 Bytes(数组长度)+8 Bytes(double)*4+8 Bytes(double)+4 Byte(4个字节表示字符串长度)+ 21 Bytes(string)=145 Byte。
Labview用“Write To Binary File”写入二进制默认采用大端方式,即big endian,最低位地址存放高位字节。
而matlab内部默认读二进制采用小端方式,即little endian,低位地址存放低位字节.故使用A = fread(fileID, sizeA, precision,skip,machineformat) 命令读入时,需将machineformat定义为‘ieee —be'.
其中machineformat可能的取值为
’n’ or 'native'字节排序,您的系统使用(默认)
'b' or 'ieee-be' 大端字节序排序 Matlab中文论坛
'l’ or 'i eee—le' 小端序。
LabVIEW文件操作介绍

1.打开/创建/替换文件函数
图6-1
文件I/O子模板
2.关闭文件函数
图6-3 图6-2
关闭文件函数接线端子
打开/创建/替换文件函数接线端子
3.格式化写入文件函数
图6-4
格式化文件函数接线端子
4.扫描文件函数
图6-5
扫描文件函数接线端子
6.3 常用文件类型
6.3.1 文本文件
文本文件是最常用的文件类型。 LabVIEW提供两种方式创建文本文件。 一种方式就是使用打开/创建/替换文件函数。
第六章 文件操作
6.1文件类型 6.2文件I/O函数
6.1 选择合适的文件类型
LabVIEW支持的文件类型
文本文件(Text Files) 表单文件(Spreadsheet Files) 二进制文件(Binary Files) 数据记录文件(Datalog Files) XML文件 配置文件(Configuration Files) 波形(Waveform)文件 基于文本的测量文件(.lvm文件) 数据存储文件(.tdm文件) 高速数据流文件文件(.tdms文件)
小试身手
1. 文本文件和二进制文件的主要区别是什么?
2. 请说出下面这几种文件是文本文件还是二进 制文件:数据记录文件(Datalog Files), XML文件,配置文件,波形文件,LVM文件, TDMS文件。
小试身手
3. 有一个测量程序,采集 两路信号,每1s采集一次, 要求每采集一次,就将采 集结果写入文本文件尾部, 即使重新运行程序,仍能 保证数据添加到文件尾部, 而不会覆盖原有数据。格 式为a保留4位小数,b为整 数,如右图所示。
LABVIEW字符格式说明

使用格式说明符格式化字符串、将数字转化为字符串,或在字符串中插入不显示的字符。
对于输出字符串的函数,例如格式化写入字符串和数组至电子表格字符串转换,格式说明符使用下列语法元素。
双括号( [] )中的是可选元素。
%[$][-][+][#][^][0][Width][.Precision || _SignificantDigits][{Unit}][<Embedded information>]Conversion Code其中Width是一个大于零的数,.Precision和_SignificantDigits是大于等于零的数。
对于扫描字符串的函数,例如,扫描字符串和电子表格字符串至数组转换,格式说明符使用下列语法元素。
%[Width]Conversion Code格式化写入字符串、格式化写入文件、扫描字符串和扫描文件函数可在格式字符串输入中使用多个格式说明符,每个格式说明符用于每个可扩展函数的输入或输出。
格式说明符语法元素下表列出了格式说明符的语法元素。
详细信息见格式说明符范例。
语法元素说明% 格式说明符的开始。
$(可选)使用格式函数时,该修饰符规定了显示变量的顺序。
包括代表变量顺序的位数,其后紧接该修饰符。
-(可选)使用格式化函数时,该修饰符在参数的宽度之内将参数靠左调整,而不是靠右调整。
+(可选)使用格式化函数时,即使是正数,该修饰符也包括符号。
^(可选)使用格式函数和e或g转换代码时,该元素将数格式化为科学计数法,其中指数为3的倍数。
#(可选)使用格式化函数时,该修饰符移除尾部的无效零。
如数值无小数部分,该修饰符会将有效数字精度之外的数值强制为零。
0(可选)使用格式化函数时,使用该修饰符,不带-修饰符,函数将用零而不是空格填充数值参数左边的多余空间,以达到最小宽度。
Width(可选)使用扫描函数时,如扫描字符串,Width元素规定了使用的字段的确切宽度。
LabVIEW处理参数时只扫描指定数量的字符。
LabVIEW中二进制文件的存储与读取方法

LabVIEW中二进制文件的存储与读取方法背景在软件开发中,二进制文件格式相对于文本文件格式的缺点是,没有文本文件通用性强、直观,同时,在读取文件数据时,用户需要知道存储数据的数据类型格式等,才可以准确还原文件内容,但是,二进制文件的优点也比较突出,如文件存取速度快、占用空间小,同时,也可有效保护自己的数据文件。
在上篇文章中已经详细说了LabVIEW平台中文本文件的读写编程方法,这次通过例子再说下二进制文件的编程方法。
例1:入门例子例子要求:将1至16共16个32位的整型数字以二进制文件的格式存储到计算机的D盘上,文件名称为“test1.bin”,存储完成后,立即读出该文件内容,并显示到前面板的数组控件上。
程序运行后界面如下图所示:实现代码如下:用For循环产生32位的整型数字1-16,读写二进制文件同读写文本文件的步骤相同,依照着打开文件、读写文件、关闭文件的顺序执行。
对于“写入二进制文件”函数的主要参数说明如下:l 待写入的数据参数,其类型可以连接任意的数据类型,即可以将任意数据写入二进制文件;l 是否预置数组或字符串的大小参数,表明当数据为数组或字符串时,LabVIEW是否将数据大小信息添加至文件开头,当为真时,在写入数据时,先写入4个字节的数值,存储了待写入数据的大小,默认为真,此例该参数设为假,即文件的开头未保存数组长度信息。
l 字节顺序,可以是大端、小端或主机字节顺序,例子中使用的是大端序,其特点是最高有效字节占据最低的内存地址,默认是大端序。
本例字节顺序使用的是大端序,存储后文件内容以十六进制格式显示如下,对于1-16之间的32位整型数字明显看出,如对于数字1,低内存地上存储的是数据的高位字节(00),而高内存地址上存储的是数据的低位字节(01):当以小端序存储时,存储后文件内容以十六进制格式显示如下,其字节顺序与大端序相反:对于“读取二进制文件”函数的主要参数说明如下:l 读取文件的数据类型参数,必须给一个参数,该参数与写入文件时数组类型完全一致;l 读取数据的个数,不接该参数时,只读取一个数值,为-1时,读取所有的数据,本例为-1,表示读取整个文件的数据,为其它值时,读取相应个数的数据。
labview进制转换

数字与字符、各数制之间的相互转换可以参考一下第一届程序竞赛中的计算器程序,里面基本上都涉及到了,最好自己动一下手,这样印象深一点。
可以直接用“Format Into String”,%b是指转换为二进制字符串,08是指8位,左边用0填充,然后再用字符串子集提取需要的位就行了。
另外,“Scan From String”和“Format Into String”这二个节点应用非常广泛灵活,大家可以好好了解一下它们的用法,双击可以找开编辑对话框,自带的帮助中有非常详细的说明。
PS,标题可以再改详细一点,比如“十六进制数字转换为二进制字符串的问题”在格式化写入字符串(1)中,我们讨论了数值转换为格式字符串.。
在格式化写入字符串(2)中,我们讨论了时间、日期转换为格式字符串。
今天我们讨论字符串转化为带格式的字符串以及其综合运用的问题。
一、特殊转义字符我们注意到在字符串函数选板中,LABVIEW提供了一些字符串常量。
使用过早期版本的朋友们肯定注意到了现在的字符串常量比早期版本多了很多,字符串常量见下图:上图中的空格常量就是后来加入的,空格常量与其它字符串常量不同。
空格常量实际上是一个内置的VI,我们打开它的程序框图看一下,程序框图如下图所示:容易看出,空格常量返回的是方式下的s。
如果选择HEX方式,则为0x20。
熟悉ASCII 表的朋友们一眼就可以看出,这正是空格的ASCII。
显然使用s表示空格比ASCII更容易理解、更容易使用。
s称作空格的转义字符。
我们再看看回车键常量、换行符常量、行结束符常量和制表符使用的什么形式的转义字符。
很明显,我们可以直接使用转义字符代替这些常量,在格式化字符串时,使用转义字符远比常量方便的多。
在LABVIEW中,制表符占用两个空格位置,这与编程语言有关,有些是4个甚至是8个空格,所以一般在格式字符串时,指定空格比TAB更不受编译环境的影响。
下表是常用的转义字符:我们之所以讨论这些转义字符,是因为在格式化写入字符串函数中,会经常使用转义字符来替代上述常用的字符串常量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解码labview读写二进制文件格式
一直觉得NI 很恶心,最近越发觉得恶心,竟知道骗钱,我花了2 周去探它该死的数据格式,问他们售后居然说不知道...还得我亲自动手...现在把数据格式写下来,为大家做点贡献吧...关于用matlab/vc 读二进制文件write to binary file 的数据NI 可以直接用这个函数把数据写下来,但是读取格式不告诉你,要你用它的软
件去读...读的方法:1) 用uchar 去读,将数据转置存储;2)用浮点去读,倒序;-------- 这些在网上可以查到,下面才是关键.... 对64 位数据:3)每个通道有21 个数据是头文件,即21*64bit 的头信息,可以不去管它,跳过; 4)除了头文件外,每个通道还有1-3 个字节的信息(不知道什么玩意儿),要跳过;具体来讲是这样,如果有6 个通道, 第一个通道存储了1 个字节,要扣除;第2,4,5 个通道多了2 个字节,要扣除;第3,6 通道多了3 个字节要扣除.但是必须从3 开始扣.即假如总共N 字节数据,则第一个通道读N-3 个,接下来2,4,5 要读N-4 个,剩下的3,6 要读N-5 个.只有这样才能正确的读取.不过要注意数据倒序的问题,实际的数据可能正好通道顺序相反.5)
剩下的就是编程的问题了,还有很多细节大家可以自己解决,再看怎么要内存最小,耗时最短...我是没有在NI 的说明文档里面找对相关的数据存储格式,这里是
6 个通道的举例,要是5 个通道又得慢慢试了...再来一句,NI 真恶心,其实没必要
保留数据格式...搞的人家都要用它的软件...tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。