labview的深入探索----文件系列之二进制文件

合集下载

文件二进制头读取-概述说明以及解释

文件二进制头读取-概述说明以及解释

文件二进制头读取-概述说明以及解释1.引言1.1 概述在计算机科学中,文件是存储信息的基本单位。

在操作系统中,每个文件都有一个二进制头(file header),它位于文件的最开始位置,用来存储文件的元数据和其他重要信息。

文件的二进制头是由一系列特定的字节组成的,这些字节可以被解释为文件的类型、大小、创建日期、作者等信息。

文件的二进制头在文件系统中起着非常重要的作用,它是识别和处理不同文件类型的关键。

通过读取文件的二进制头,我们可以快速确定文件的类型,并根据需要采取特定的操作。

文件的二进制头不仅仅包含文件的基本信息,它还可以用于校验文件完整性。

通过检查文件的二进制头,我们可以确保该文件未被篡改或损坏。

这对于保护文件的完整性和安全性非常重要。

要读取文件的二进制头,我们需要使用编程语言提供的相关函数或库。

不同的文件类型可能具有不同的二进制头结构和解析方式,因此我们需要根据文件类型选择相应的读取方法。

在本文中,我们将探讨文件二进制头的定义和作用,并介绍读取文件二进制头的方法。

我们将讨论常见文件类型的二进制头结构,并通过示例代码演示如何读取和解析文件的二进制头。

通过深入研究文件二进制头的相关知识,我们可以更好地理解文件的内部结构,对文件进行更准确和有效的处理。

加深对文件二进制头的理解也有助于我们在文件处理中遇到问题时能够迅速定位和解决。

在接下来的章节中,我们将进一步探讨文件二进制头的重要性以及具体的读取方法。

希望通过本文的阐述,读者能够对文件二进制头有更全面的认识,并在实际开发中能够灵活应用相关的知识。

1.2 文章结构文章结构部分内容:本文共分为三个主要部分:引言、正文和结论。

引言部分主要介绍了文件二进制头读取的背景和概述。

首先,简要介绍了文件二进制头的定义和作用,引起读者对这个话题的兴趣。

接着,给出了本文的结构,并说明了各个部分的内容概要。

最后,明确了本文的目的,即介绍文件二进制头的读取方法和强调其重要性。

虚拟仪器技术习题答案

虚拟仪器技术习题答案

习题答案第1章1. 如何弹出工具模板?答: 1.点击主菜单查看,在下拉列表中选择工具选板。

2.在前面板和流程图的任意空白处按住shift 点击右键。

2.如何进行前面板编辑区与流程图编辑区的切换。

答: 1.点击主菜单窗口,在下拉列表中选择显示程序框图或显示前面板。

2.直接使用快捷键ctrl+E 。

3.传统仪器和虚拟仪器各有何优点?虚拟仪器能否取代传统仪器?虚拟仪器具有传统独立仪器无法比拟的优势,但它并不否定传统仪器的作用,它们相互交叉又相互补充,相得益彰。

在高速度、高带宽和专业测试领域,独立仪器具有无可替代的优势。

在中低档测试领域,虚拟仪器可取代一部分独立仪器的工作,但完成复杂环境下的自动化测试是虚拟仪器的拿手好戏,是传统的独立仪器难以胜任的,甚至不可思议的工作。

4. 编写程序计算以下算式,写出计算结果,并写出四个以上所用控件或函数名称。

X 45542750201162412022854⨯+-+÷-⨯+,6252.73811253178÷-⨯++X 算式1前面板和运行结果算式1流程图算式2 前面板和运行结果算式2流程图第2章1. 简述NI ELVIS系统的基本组成。

答:NI ELVIS系统实际上就是将LabVIEW和NI 的DAQ数据采集卡相结合,综合应用得到一个LabVIEW非常好的教学实验平台。

它包括硬件和软件两部分。

硬件包括一台可运行LabVIEW的计算机、一块多功能数据采集卡、一根68针电缆和NI ELVIS教学实验操控工作台。

软件则包括LabVIEW开发环境、NIDAQ、可以针对ELVIS硬件进行程序设计的一系列LabVIEW API和一个基于LabVIEW设计虚拟仪器软件包。

2. 简述NI ELVIS系统中信号发生器的两种控制方式。

答:1.硬件面板控制。

硬件面板与软件控制切换按钮可控制面板控制指示灯的亮灭,仅在指示灯亮时,面板上的所有按钮才对发出的信号起作用。

波形选择按钮可控制发出的信号是正弦波信号、方波信号还是三角波信号。

解码labview读写二进制文件格式

解码labview读写二进制文件格式

解码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:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

LabVIEW的读取二进制文件

LabVIEW的读取二进制文件

LabVIEW的读取⼆进制⽂件LabVIEW的读取⼆进制⽂件“读取⼆进制⽂件”位于函数选板的“编程→⽂件I/O→读取⼆进制⽂件”,图标和接线端如图1所⽰。

图1 读取⼆进制⽂件图标和接线端读取⼆进制⽂件从⼆进制⽂件读取数据,读取的数据类型取决于指定⽂件的格式,其中输⼊和输出接线端说明如下。

data type:数据类型,指定读取的数据类型,包括⼤⼩信息。

prompt(Open existing file):对话框窗⼝(打开现有⽂件),指定⽂件对话框上出现的提⽰信息。

file(use dialog):⽂件(使⽤对话框),指定⽂件引⽤旬柄或绝对路径(相对路径⽆效),如果没有输⼊,则弹出⽂件对话框来选择⽂件。

count:计数,指定从⽂件中读取的数据数。

如果输⼊值为1,则读取整个⽂件;如果⼩于-1,则出错。

byte order:字节顺序,指定读取的字节顺序。

0表⽰⽹络顺序,在Mac OS或其他平台使⽤;1表⽰本地计算机顺序,速度快;2表⽰⽹络顺序,在Windows和Linux中使⽤。

refnum out:引⽤句柄输出,返回所读⽂件的⽂件引⽤句柄。

data:数据,从⽂件中读取的数据。

cancelled:取消,如果⽂件对话框被取消,则返回值为真。

matlab读取⼆进制数据⽂件的⽅法北京理⼯⼤学20981 陈罡matlab可以直接读取⼆进制数据⽂件,并且可以将其加⼊到矩阵中。

如果对c语⾔⼗分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof这些函数⾮常熟悉了,幸运的是在matlab中仍然可以使⽤这些函数来读⼊实验数据。

现在假定有⼀个数据⽂件叫data.dat,它的前⾯2k是存放参数的,我们做数据处理的时候需要跳过去,后⾯的数据是16位整数类型的,每组数据有512个。

现在要把该数据⽂件的所有数据读⼊⼀个nx512的矩阵中,n的个数不定,根据数据⽂件中的数据⽽定。

⽤.m脚本的⽅式编写如下:% deal data from specified data fileclear ;data_fname = 'data.dat' ; % 这⾥是⽂件名jump_distance = 2048 ; % 这⾥是跳过的字节数% 打开⽅式为⼆进制打开,其实'r'就⾏,matlab是默认⼆进制形式打开⽂件的file_id = fopen(data_fname, 'rb');% 从⽂件开始跳过jump_distance个字节fseek(file_id, jump_distance, 'bof');% 先⼿⼯构造⼀个1x512⼤⼩的矩阵raw_data = [1:1:512] ;while feof(file_id) == 0% 这就是⼤名顶顶的fread了,数据类型是int16,每次读⼊512个数% raw_array每次都是512x1的矩阵,ele_count为读⼊的数的个数(正常情况下应为512)[row_array, ele_count] = fread(file_id, 512, 'int16') ;if ele_count < 512 % elecount < 512代表数据不够,已经到了⽂件的结尾break ;else% 将512x1的row_array转置⼀下,变为1x512的矩阵row_array = row_array' ;% 然后,将row_array追加到raw_data中raw_data = [raw_data; row_array] ;endend% get off the first line [1:1:512]% 这⾥就是要把raw_data的第⼀⾏数据⼿⼯构造的那⾏数据给去掉,剩下的就都是⽂件中的数据了raw_data(1,:)=[] ; % 关闭⽂件fclose(file_id);% delete other usless vars% 这⾥是把⽤过的变量都删除掉,免得workspace⾥⾯乱七⼋糟的什么都有,这是个好习惯,呵呵。

LabVIEW深入探索之绝对时间、通用时间和相对时间

LabVIEW深入探索之绝对时间、通用时间和相对时间

LabVIEW 深入探索之绝对时间、通用时间和相对时间加入收藏2011-04-29 07:47转发分享 人人网 开心网 新浪微博 搜狐博客 百度收藏 谷歌收藏 qq 书签 豆瓣 淘江湖 Facebook Twitter Digg Yahoo!Bookmarks作为一种面向工程应用的编程语言,LV 提供了非常丰富的时间操作函数。

8.X 后又提出了 新的有关时间的数据类型,时间标识 (TIMESTAMP) 时间标识早期通常翻译成“时间戳”, 。

实际上是一种改进型的数值控件, 从时间标识控件所在的控件选板就可以初步判断出, 时间 标识就是特殊的数值控件。

一、时间标识的内存映射 要想真正了解一种数据类型, 首要的问题是要搞清楚该数据类型在内存中或者文件中是如何 存储的。

我们知道数值型控件可以选择控件所包含的数据类型, 比如双精度浮点数、 整型数、 32 位整型数、16 位整型数等等。

时间标识控件是不允许选择它所包含的数据类型的, 这说明时间标识所包含的数据类型是固 定的。

从帮助文件中,我们可以找到时间标识在内存中的存储方式--映射。

LabVIEW 将时间标识保存为一个含四个整数的簇,其中前两个带符号整数(64 位二进 制) 表示自 1904 年 1 月 1 日周五凌晨[01-01-1904 00:00:00]以来无时区影响的所 有秒数。

后两个不带符号整数(64 位二进制)表示小数秒部分。

LV 利用 16 个字节(128 位)表示时间信息,其中前 8 个字节(64 位)由两个 I32 构成, 表示从 0 时刻开始经历过的秒数。

后面 8 个字节为 U64 数据,表示秒的小数部分。

二、时间标识与双精度数之间的相互转换 在时间标识出现以前,经常用双精度数表示从 0 时刻经历过的秒数。

我们知道双精度数所 占的内存空间也是 8 个字节,与时间标识相同。

但是时间标识实际上是定点数,它的小数 点位置是确定的,因此实际上双精度数表示时间与时间标识相比,不如时间标识精确。

(完整word版)用matlab读取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

我和LabVIEW

当我开始在键盘上敲打出这句话的时候,我已经使用 LabVIEW 7 年了。

7 年的时间,就算天赋平平也可以积攒下一箩筐可供参考的经验了。

所以我打算利用今后的闲暇时间写一些这方面的东西,既可以同大家交流,也是作为自己这七年工作的总结。

还是在上大学的时候,有一次老师让编写一段软件,用来模拟一个控制系统:给它一个激励信号,然后显示出它的输出信号。

那时我就想过,可以把每一个简单的传递函数都做成一个个小方块,使用的时候可以选择需要的函数模块,用线把它们连起来,这样就可以方便地搭建出各种复杂系统。

后来,我第一次看到别人给我演示的LabVIEW编程,就是把一些小方块用线连起来,完成了一段程序。

我当时就感觉到,这和我曾经有过的想法多么相似啊。

一种亲切感油然而生,从此我对LabVIEW的喜爱就一直胜过其他的编程语言。

LabVIEW 的第一个版本发布于1986年,是在 Macintosh 机上实现的,后来才移植到了PC机上,并且LabVIEW 从未放弃过对跨平台的支持。

这也给 LabVIEW 带来了一些麻烦。

最明显的就是LabVIEW开发环境的界面风格。

它总是与一般的 Windows 应用程序有些格格不入:面板是深灰色的,按键钮是看起来别别扭扭的 3D 模样。

还有一些可能不太容易发现:比如对于整数的存储,LabVIEW即便是运行在x86系统上,采用的也是高地址位存高位数据(big-ending)。

这与我们习惯了的x86 CPU使用的格式正相反,这往往给编写存取二进制文件带来了不多不少的麻烦。

我接触过的最早的LabVIEW版本是4.0版,发布包是一个装有十几张三寸软盘的大盒子。

安装的时候要按顺序把软盘一个一个塞到计算机里。

尽管当时LabVIEW的界面不是很好看,但我还是非常喜欢它。

真方便呐!比如说要画一个开关,用 LabVIEW 一拖就行了。

如果要自己动手用 C 语言设计一个好看的开关,,那得费多少时间啊!我尤其喜欢它通过连线来编程的方式,尽管很多熟悉了文本编程语言的人刚开始时会对这种图形化编程方式非常不适应。

基于labview的实验

基于labview的实验

实验一利用LabVIEW控件进行结构化程序设计一、实验目标:1. 理解LabView的结构的基本概念2. 掌握LabView中特有的顺序结构和移位寄存器的基本使用方法3. 掌握LabView中公式节点的使用方法二、实验设备安装有LabVIEW的计算机。

三、实验要求和程序LabView中的结构中的For和While相当于别的语言中的各种循环语句,而顺序结构主要为了方便于进行和时间相关的编程。

本单元基本要求为循序渐进地学习和调试结构相关的内容,重点在于掌握LabView中进行循环和时间相关编程的方法。

1.使用For循环产生100个随机数。

在随机数产生的同时判定当前随机数的最大值和最小值。

有时称其为“流动的”最大值和最小值。

在前面板上显示流动最大值、最小值和当前的随机数。

循环中一定要包含Time Delay Express VI以便用户可以观看值随着For循环的运行而更新。

程序框图:前面板:2. 构建VI,每秒显示一个0到1之间的随机数。

同时,计算并显示产生的最后四个随机数的平均值。

只有产生4个数以后才显示平均值,否则显示0。

每次随机数大于0.5时,使用Beep.vi产生蜂鸣声。

【提示】虽然叙述简单,但实现不易,请注意:每秒产生一个随机数,我们可以使用用于定时的VI要计算最后四个数的平均,我们需要使用移位寄存器要注意顺序结构和移位寄存器的嵌套关系运行:当产生随机数小于4时:(平均值等于0)当产生随机数大于4:3、创建前面板有3个圆LED的VI。

运行程序时,第一个LED打开并保持打开状态。

1秒钟以后,第二个LED打开并保持打开状态;再过2秒钟,第三个LED打开并保持打开状态。

所有LED都保持打开状态3秒钟,然后程序结束。

(使用顺序结构)程序框图:前面板:实验二利用LabVIEW实现各种数学运算(数组,矩阵,代数)和字符串与逻辑运算一、实验目标:1. 理解LabView的数组和簇的基本概念2. 掌握数组的创建和使用3. 理解多态性的含义4. 掌握簇的创建和使用二、实验设备安装有LabVIEW的计算机。

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 字符串和文件

labview 字符串和文件
练习 5-2 字符串子集和数值的提取
目的:创建一个字符串的子集,其中含有某个数值的字符串显示,再将它 转换成数值。
第五章字符串和文件I/O 第五章字符串和文件I/O
部分字符串函数( 函数-字符串 字符串) 部分字符串函数 ( 函数 字符串 ) — 用于返回偏移地址开始的子字符串以 及字节数。第一个偏移地址是0。 及字节数。第一个偏移地址是 。
第五章字符串和文件I/O 第五章字符串和文件I/O
5-2文件的输入/输出(I/O)
文件I/O功能函数是一组功能强大、伸缩性强的文件处理工具。它们不仅可 以读写数据,还可以移动、重命名文件与目录。创建电子表格格式的、由可 读的ASCII文本组成的文件,以及为了提高读写速度和压缩率采用二进制的格 式写入数据。 可以采用下面三种文件格式存储或者获得数据: ASCII字节流——如果希望让其他的软件(譬如字处理程序或者电子表格 程序)也可以访问数据,就需要将数据存储为ASCII格式。为此,需要把所有 数据都转换为ASCII字符串。 l 数据记录文件——这种文件采用的是只有G语言可以访问的二进制格 式。数据记录文件类似于数据库文件,因为它可以把不同的数据类型存储到 同一个文件记录中。 l 二进制字节流——这种文件的格式是最紧凑、最快速地存储文件的格 式。必须把数据转换成二进制字符串的格式,还必须清楚地知道在对文件读 写数据时采用的是哪种数据格式。
返回前面板,执行该VI。数据数组产生以后,会出现一个 返回前面板,执行该VI。数据数组产生以后, VI 文件对话框提示输入新建文件的文件名。输入文件名,并 文件对话框提示输入新建文件的文件名。输入文件名, OK。 单击 OK。
第五章字符串和文件I/O 第五章字符串和文件I/O
练习 5-4 向文件添加数据

labview路径操作与文件IO

labview路径操作与文件IO

LabVIEW程序设计
LabVIEW程序设计
图 7-4 拆分路径和创建路径函数
LabVIEW程序设计
当前VI路径——给出了当前所运行VI的路径 拆分路径——拆分一次后导引到“第7章”文件夹 拆分路径——拆分二次后导引到“例子”文件夹 创建路径——创建一个新的第6章文件夹路径
图 7-5 拆分和创建路径
LabVIEW程序设计
LabVIEW程序设计
1.4 波形文件
波形文件是一种特殊的数据记录文件,它记录了发生波形的一些基本信息, 如波形发生的起始时间、采样的间隔时间等。
LabVIEW程序设计
1.5 数据记录文件
数据记录文件是一种特殊的二进制文件,只是在LabVIEW等G语言中这类 型的文件扮演着比较重要的角色,所以在这里为其建立了一个独立的类型。数 据记录文件只能被G语言,如LabVIEW读取,它以记录的格式存储数据,一个 记录中可以存放几种不同类型的数据,或者可以说一个记录就是一个“簇”。
LabVIEW程序设计
图 7-3 非确定性路径文件的查找
LabVIEW程序设计
路径的简单拆分
假如我们希望使用第7章的“文件常量引导的路径关系.vi”来打开第6章的 文件夹,那就需要进行路径的拆分或创建。LabVIEW中也提供了路径拆分 和创建的函数,具体操作为:
》函数》编程》文件I/O》拆分路径(创建路径)
图8-4 格式化文件函数接线端子
LabVIห้องสมุดไป่ตู้W程序设计
2.4 扫描文件函数
扫描文件文本中的字符串、数值、路径和布尔数据,使文本转换为数据类型, 返回重复的引用句柄及转换后的输出,该输出结果以扫描的先后顺序排列。该 函数不可用于LLB中的文件。 该函数可扫描文件中的所有文本。但是,该函数无法判断扫描开始的起点。如 需判断扫描开始的起点,可使用读取文本文件和扫描字符串函数。

labview使用技巧

labview使用技巧

本文为LabVIEW内部交流资料,来自网络,特此说明开发机上激活以后,如果开发机升级了或者换了或者增加新的配置了等等,难道要重新购买一套8.2吗?回答=更改了配置,那么lisence manager里的机器码肯定会变,所以需要重新向NI申请激活码激活.NI的IVI驱动的来源?回答=由于NI开发的IVI驱动程序库已经包含了仪器的Class Driver,因此,程序员只要按照IVI的规范开发自己仪器的Specific Driver,就可以实现仪器的互换性。

LV和CVI的专用驱动可以从NI的网站下载,源代码是用c编写的32位的DLL形式,这就保证驱动可以直接在你的开发环境中使用(LV,CVI,VC等)。

在运行过程中LabVIEW能否添加控件?回答=不能,只能在编辑状态是做。

不过可以事先多创建几个控件,然后隐藏。

再需要使用的时候使用属性节点来操作。

编写的LV的GPIB通讯程序,从示波器读取数据。

单独可以正常执行,但放置在一个事件结构的一个WHILE循环里时,运行程序后,程序会变得不相应,而且前面板不可控制。

回答=查看客户程序,GPIB程序并没什么问题,但是作为一个子程序放在事件结构里就会存在问题,而且子程序运行时,主界面默认的是不响应的。

如果要解决这个问题,需要选择事件结构编辑面板最下方有一个默认选项,用于设置是否在事件结构执行完成之前锁定前面板,默认为锁定,取消即可。

IVI的分类。

回答=因为所有的仪器不可能具有相同的功能,因此不可能建立一个单一的编程接口。

因此,IVI的驱动分为两类。

(1) 类驱动程序(Class Drive):它们是在特定类中编写仪器软件的标准接口。

这意味着软件开发者能重复使用他们的软件系统而不会由于低层硬件更改而被迫重新测试软件系统。

目前,IVI驱动程序库可用于下列几类仪器:示波器数字化仪表、开关多路复用器、数字万用表、任意波形发生器函数发生器等。

(2) 设备类驱动程序(Specific Drive):每种牌号和类型的仪器均有相应的专用驱动程序。

labview实验报告

labview实验报告

学院:电气工程学院班级:自112班姓名:何富裕学号:60实验一一.实验目的熟悉LabVIEW软件的基本编程环境。

二.实验内容创建并保存一个VI程序。

此VI要实现的功能是:随机生成一个数值,经过一定的运算过程,输出显示成为容积和温度值。

三.实验步骤1、选择File»New,打开一个新的前面板窗口。

2、从Controls»Numeric中选择 Tank放到前面板中。

3、在标签文本框中输入“容积”,然后在前面板中的其他任何位置单击一下。

字体改为“华文行楷”,字号:36。

4、把容器显示对象的显示范围设置为到。

使用文本编辑工具(Text Edit Tool),双击容器坐标的标度,使它高亮显示。

在坐标中输入 1000,再在前面板中的其他任何地方单击一下。

这时到之间的增量将被自动显示。

在容器旁配数据显示。

将鼠标移到容器上,点右键,在出现的快速菜单中选Visible Iterms»Digital Display即可。

5、从Controls»Numeric中选择一个温度计,将它放到前面板中。

设置其标签为“温度”,字体改为“华文行楷”,字号:36。

温度计的显示范围为0到100,同时配数字显示。

可得到如下的前面板图。

6、Windows»Show Block Diagram 打开程序框图窗口。

从功能模板中选择对象,将它们放到程序框图上,组成下图(其中的标注是后加的)。

7、该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。

8、乘法器和随机数发生器由Functions»Numeric中拖出,数值常数也可以这样得到。

9、用连线工具将各对象按规定连接。

创建数值常数对象的另一种方法是在连线时一起完成。

具体方法是:用连线工具在某个功能函数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择Create Constant,就可以创建一个具有正确的数据格式的数值常数对象。

LabVIEW数据记录和存储

LabVIEW数据记录和存储

LabVIEW数据记录和存储(三)—二进制文件(Binary File)LabVIEW程序设计札记2009-10-12 09:34:30 阅读326 评论2 字号:大中小在文件存储的逻辑上,二进制文件基于值编码,而不是字符编码,其占用空间小,读取/写入速度快,但是译码比较复杂,不利用数据共享。

根据具体编码方式的不同,二进制的使用方式也有所不同,如对bmp格式,规定了文件各个字节段/块的含义,只需要按照相应的编码方式进行解码就可以得到bmp文件的内容。

因此,使用记事本是无法查看bmp的内容的(无法解码bmp文件),只能使用专门的图像查看软件。

事实上,任何程序员都可以按照自己的方式自定义二进制文件的编码方式,并提供相应的解码模块将信息从二进制文件中提取出来即可。

与文本文件的读写方式类似,LabVIEW中的二进制文件的读写采用图10所示的两个函数完成:“Write To Binary File”和“Read From Binary File”。

这两个函数是多态函数,可以接受File Refnum和File Path两种输入。

其使用方式也与文本文件的两个VI类似,本文不再赘述,仅仅说明其特殊的参数和使用方法。

图10 File I/O选板图11所示为利用Write To Binary File.vi函数将一个数组以二进制文件存储。

首先,程序使用10次的FOR循环以产生0~9的数列并将其转换为U8类型的数组;然后将这个数组存入二进制文件中。

图11 使用Write To Binary File.vi函数如果计算该文件的大小,可以很容易的得到:10*1 Byte(U8)=10 Bytes,即10字节。

打开该文件的“属性”对话框,如图12所示,显示文件大小为14字节。

那么多余的4字节是怎么产生的呢?这与Write To Binary File.vi函数的“prepend array or string size (T)”参数有关,它表示当输入端的数据类型是数组或字符串时是否在文件头包含该数组的大小或字符串的长度,默认是True。

labview学习总结

labview学习总结

Block Diagram>Programming>Numeric>conversion>……….1.可以将长整型的十进制数转换为二进制数。

转换格式如下:。

2.正好与“1”相反。

3.将Boolean型(True of False)转换为(1,0)整型量。

4.将字符或字符串转换为相应的无符号ASCII码或ASCII码数组。

如下:5.正好与“4”相反。

6.将0-255之间的r,g,b数值组合转换成颜色。

7.正好与“6”相反。

8.不同类型数据间的转换。

Block Diagram>Programming>Array>……….9.返回矩阵的大小,若是一维矩阵,则返回矩阵的大小;若是二维的,则返回一个数组,分别表示每一维的大小。

如下:10.通过输入索引值在输入数组中返回所选择的元素或一维数组。

如下:输入数组为3X3(0-2,0-2),输入索引值2(第三列),则返回第三列。

11.通过输入索引值,用一维数组来取代原数组中的索引值那一列,返回一个新的数组。

如下:12.通过输入索引值,在原数组中输入一列或一行数组,返回一个新的数组。

若没有索引值,则自动在原数组最后输入一列或一行。

如下:13.通过输入索引值或需删除的数组长度,在原数组中删除一列或一行,返回一个新的数组和被删除的部分。

如下:输入length=2,则在原数组中删除最后2行,返回一个新的数组。

14.通过指定数组元素、行数和列数来初始化数组。

如下:15.将输入的数组或元素按照顺序合成为一个数组并输出。

如下:16.将数组转换为簇。

如下:17.正好与“16”相反。

18.将2维数组转换为实矩阵。

如下:19.正好与“18”相反。

20.将一维数组根据索引值分解为两个子数组。

如下:输入的索引值为n,则取原一维数组的前n个数组成一个子数组,原数组其余的数组成另一个子数组。

21.反转一维数组。

如下:22.通过输入索引值,旋转一维数组,如下:若输入的索引值为n,则输出的一维数组以原数组中的倒数第n个数为开头,顺序排下去。

LabVIEW文件操作介绍

LabVIEW文件操作介绍

图6-31
XML文件操作函数和存储内
图6-32
数据存储为XML文件格式
图6-33
存储的XML文件用IE浏览器打开
图6-34
读取XML文件
本章小结
文件的I/O操作用于在磁盘中保存数据或 读取数据。本章主要介绍了文本文件、电子表 格文件、二进制文件等LabVIEW中常用的文 件I/O类型并结合具体示例来说明相关文件I/O 函数的使用方法以及技巧。在选择数据的存储 方式时需要考虑实际需要来选择合适的文件类 型以提高使用效率。

每一个TDMS文件以三个不同层次来存储附加 信息:File、group和channel。
6.11 高速数据流文件(.tdms文件)

写TDMS文件示例
6.11 高速数据流文件(.tdms文件)

在TDMS File Viewer中查看文件内容
6.11 高速数据流文件(.tdms文件)

TDMS 文件读操作示例
小试身手

1. 文本文件和二进制文件的主要区别是什么?
2. 请说出下面这几种文件是文本文件还是二进 制文件:数据记录文件(Datalog Files), XML文件,配置文件,波形文件,LVM文件, TDMS文件。

小试身手

3. 有一个测量程序,采集 两路信号,每1s采集一次, 要求每采集一次,就将采 集结果写入文本文件尾部, 即使重新运行程序,仍能 保证数据添加到文件尾部, 而不会覆盖原有数据。格 式为a保留4位小数,b为整 数,如右图所示。
1.打开/创建/替换文件函数
图6-1
文件I/O子模板
2.关闭文件函数
图6-3 图6-2
关闭文件函数接线端子
打开/创建/替换文件函数接线端子
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 也有同样的选择项,保持二者一致就可以了,但是如果被其它编程语言读取或
者读取其他语言写的二进制文件,就要考虑大小端的问题,否则数据表现可能会。

相关文档
最新文档