LABVIEW中INI文件(簇的读取与写入)

合集下载

labview完整教程详细解答

labview完整教程详细解答

第一讲:认识L a b v i e w简介在开始菜单里找见点击打开,会出现如下界面:从File>>NewVI或者从右半部分中的New>>BlankVI都可以打开如下界面:上图中前图是虚拟仪器的前面板,是用户使用的人机界面,后面的是程序框图界面(即后面板)。

在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。

这些模板集中反映了该软件的功能与特征。

下面我们来大致浏览一下。

工具模板(ToolsPalette )该模板提供了各种用于创建、修改和调试VI程序的工具。

如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。

当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。

当从Windows菜单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。

图标名称功能1OperateValue(操作值)用于操作前面板的控制和显示。

使用它向数字或字符串控制中键入值时,工具会变成标签工具2Position/Size/Select(选择)用于选择、移动或改变对象的大小。

当它用于改变对象的连框大小时,会变成相应形状。

3EditText(编辑文本)用于输入标签文本或者创建自由标签。

当创建自由标签时它会变成相应形状。

4ConnectWire(连线)用于在流程图程序上连接对象。

如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。

5ObjectShortcutMenu(对象菜单)用鼠标左键可以弹出对象的弹出式菜单。

6ScrollWindows(窗口漫游)使用该工具就可以不需要使用滚动条而在窗口中漫游。

7Set/ClearBreakpoint(断点设置/清除)使用该工具在VI的流程图对象上设置断点。

LabVIEW下文件读写的数据处理程序设计

LabVIEW下文件读写的数据处理程序设计
数组 是 LabVIEW 常用 的 数 据类 型 之 一 , 由 数 据 类 型 、数 据 索引和数据组 成 , 常 用的 数 组 函数 有:Array Size 返 回输 入 数 组 的 元 素 个数 , Index Array 函 数 返回 输 入 数组 中 由 输 入 索 引 指 定 的一个元素。
技 Key wor ds: LabVIEW;Data r eading;wr iting and tr ansfor mation;Data pr ocessing
术 1 引言

实测数据的处理是完成现场测试工作后要进行的一项基
础性工作, 而实测数据一般是以文件的形式存储在存储设备上
新 的, 因此 依 托 LabVIEW 平台 进 行 数据 处 理 的 过 程 当 中, 经 常 会 涉及到数据文件的读写操作。LabVIEW 不仅提供了经典的信号
ቤተ መጻሕፍቲ ባይዱ
2 文件格式的选择
LabVIEW 提 供 的 文 件 I/O 功 能 函 数 可 以 读 写 以 下 三 种 格 式 的文 件:文 本 文 件 , 二 进 制 文 件 、数 据 记 录 文 件 和 测 试 数 据 文 件。其中文本文件的优点是容易使用和共享, 可以用字处理软 件或电子表格程序来读取或处理文本文件中的数据, 文本文件 的缺点是占用的磁盘空间较大, 存取速度慢, 不能随机地访问 其 中 的 某 个 数 据 而 且 对 于 数 值 可 能 会 损 失 一 些 精 度 。二 进 制 文 件的优点是存取速度快, 格式紧凑, 它使用固定的字节长度存 储数据, 因此节省了存储空间, 还可以随机的访问文件中任何 一个数据。数据记录(Datalog)文件也是二进制格式文件, 它以记 录序列的形式存放数据, 一个记录中可以存储几种不同类型的 数据, 但是各个记录的数据类型必须一致, 适合存储复杂结构

LabVIEW中的数据存储和数据库连接技术

LabVIEW中的数据存储和数据库连接技术

LabVIEW中的数据存储和数据库连接技术数据存储和数据库连接是LabVIEW中非常重要的技术,它们为LabVIEW开发者提供了方便快捷的数据处理和分析能力。

本文将详细介绍LabVIEW中的数据存储和数据库连接技术,包括数据文件的存储和读取、数据处理和分析、数据库连接和操作等方面。

一、数据文件的存储和读取在LabVIEW中,数据文件的存储和读取非常简便,可以使用各种文件格式进行保存和加载。

LabVIEW支持的常见文件格式包括文本文件(.txt)、电子表格文件(.xls、.xlsx)、二进制文件(.dat)等。

使用这些文件格式可以将数据方便地保存到本地硬盘,并在需要时进行读取和处理。

LabVIEW提供了丰富的文件I/O函数和工具,使得数据文件的存储和读取变得非常容易。

通过使用文件I/O函数,可以实现对数据文件的打开、读取、写入和关闭等操作。

同时,LabVIEW还提供了对文件属性和元数据进行访问和修改的功能,使得对数据文件的管理更加方便。

二、数据处理和分析LabVIEW作为一款强大的数据处理和分析工具,提供了丰富的函数和工具库,可以进行各种数据处理和分析操作。

无论是简单的数据过滤、平滑和插值,还是复杂的信号处理、频谱分析和图像处理,LabVIEW都可以提供相应的函数和工具来满足需求。

在LabVIEW中,数据处理和分析一般通过模块化的方式进行。

通过将不同的处理步骤封装成子VI(Virtual Instruments),可以实现对复杂数据处理和分析流程的模块化和重用。

这种方式能够提高开发效率和代码的可读性,使得数据处理和分析变得更加简单和易于维护。

三、数据库连接和操作LabVIEW提供了多种方式来连接和操作数据库,使得LabVIEW与各种数据库系统进行无缝集成。

在LabVIEW中,可以使用数据库连接工具包(Database Connectivity Toolkit)来实现对常见数据库系统(如MySQL、SQLite、Oracle等)的连接和操作。

LabVIEW(十):数组和簇

LabVIEW(十):数组和簇

LabVIEW(⼗):数组和簇★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★⼀、数组1、创建数组(1)、前⾯板右键>“数组、矩阵与簇”>数组。

(2)、前⾯板右键>(选择要添加的数组数据类型,⽐如创建数值数组)数值>将“数值输⼊控件”拖⼊数组中。

(3)、选中数组右键>表⽰法>”DBL(双精度)”或“I32(长整型)”等,根据需要修改。

2、查看数组⼤⼩:(前⽂已有赘述)选中索引框右键>⾼级>显⽰最后元素3、改变数组的维度选中索引框>“添加维度”或“删除维度”4、数组的初始化将数组的“数值输⼊控件”往下拖拉以显⽰更多元素,在输⼊控件中填⼊数值。

初始化完毕。

5、“数组⼤⼩”函数:返回数组每个维度中元素的个数程序框图右键>数组>数组⼤⼩>为“数组⼤⼩”创建显⽰控件>连接需要获得数组⼤⼩的数组。

6、“创建数组”函数:连接多个数组或向N维数组添加元素。

(1)、程序框图右键>数组>创建数组(2)、将“创建数组”向上/下拖动可显⽰更多输⼊端。

也即:选中“创建数组”右键>”添加输⼊”或”删除输⼊”。

(3)、可输⼊单个“数值输⼊控件”(在前⾯板中添加),也可以输⼊数组。

7、添加的数组:“创建数组”创建的显⽰控件。

(1)、选中“创建数组”右键>(勾选)连接输⼊:两个N维的数组连接之后仍是N维数组。

(2)、选中“创建数组”右键>(未勾选)连接输⼊:两个N维的数组连接之后是2N维数组。

8、“数组插⼊”函数:在n维数组中索引指定的位置插⼊元素或⼦数组。

(1)、程序框图右键>数组>数组插⼊。

(2)、将“数组插⼊”向上/下拖动可显⽰更多输⼊端。

但不像创建数组那样有快捷菜单。

(3)、要添加索引的位置:“数组插⼊”右键>创建>常量。

可省略此项,省略该项则添加到数组末尾。

labview ini文件的读写

labview ini文件的读写

Programmatically Read the Serial Number of a PXIe Chassis02/20/20110 Comm ents有时我们需要将PXI机箱的序列号与应用软件捆绑在一起(保护自己开发的软件),对于这样的问题一直没有办法将PXI机箱的序列号读出来。

为此曾多次请教NI AE目前似乎还没有办法解决。

现在有人提供了一种方法,可以实现将PXIe机箱的序列号读出。

至少这是一种解决问题的思路!作者:ZachAttackAdd CommentApplication Project ——template02/16/20110 Comm ents这里给出一个采用基本状态机构架的应用项目的模版,利用它可以很方便的创建自己的应用项目。

在Sub.vi文件夹中包含一个动态调用子vi(Call_Subvi.vi)在App.vi文件夹中包含一个App_Test.vi(可以修改为你的应用程序)在Controls文件夹中包含一个自定义的枚举控件(状态机用)Top Level VI.vi是本项目的引导程序,你可以修改图片和文字使其变成自己的Top vi。

运行Top Level VI.vi,参见下图。

作为你自己的项目时,只需修改图片和程序框图的字符串内容。

该程序运行完成后,自动关闭并导出应用程序界面。

参见下图。

点击上图中的[Quit]按键程序退出。

下载:LabVIEW 2009 SP1Add CommentRead data from a .INI file01/02/20110 Comm ents如何读.ini文件数据,这里给出了一个例子。

这个例子来自NI社区。

作者:TobyHexAdd CommentWrite data to a .INI file01/02/20110 Comm ents如何写.ini文件数据,这里给出了一个例子。

这个例子来自NI社区。

作者:TobyHexAdd CommentHexadecimal data into single-precision12/17/2010 0 Comm ents十六进制转为单精度数据String修改属性,选择16进制见下图其中,X——选择SGL数据类型选自NI论坛中的网友提问。

labview文件的输入输出

labview文件的输入输出
2.将一组随机信号数据加上时间标记存储为数 据记录文件,然后将存储的数据读出并显示在前 面板上。
2019SUCCESS
POWERPOINT
2019/6/3
2019SUCCESS
THANK YOU
2019/6/3
格式转换,因而需要花费额外的时间; 第三,不能随机地访问其中的某个数据,
(2)电子表格文件
仍然以ASCII码格式来存储数据,使Microsoft Excel等电子表格处理软件能直接读取这类数据文件
(3)二进制文件
存取速度最快、格式最为紧凑、冗余数据少
占用的空间要比文本文件小得多
不需要进行格式转换
无法被一般的字处理软件如Word读取,通用性较 差。
(4)数据记录文件
一种二进制文件
它把数据组织为具有相同结构的记录,每一行为一个记 录,每个记录都具有相同的数据结构。LabVIEW把每
一个记录作为一个簇写入文件 。
(5)波形文件
波形文件是一种特殊的数据记录文件,它记录了波形数 据特有的一些信息,如波形的起始时间、采样的间隔时 间等。
例 4 读文本文件。
二进制文件
1 写二进制文件(Write to Binary File) 二进制文件的数据可以是任何数据类型,譬如 数组或簇等复杂数据。新的数据可以追加到已有 文件尾,也可以覆盖原有的数据;如果输入的文 件不存在,则创建一个新文件。节点图标及连接 端口如下图:
2 读二进制文件(Read From Binary File) 从一个二进制文件中读取指定格式的数据,读 出时的数据格式必须与写入时的格式完全一致, 否则数据出现混乱。节点图标及连接端口如下图:
优点 :通用性强易共享,即文件的内容可以被 Microsoft Word 、 Microsoft Excel 甚 至

labview中数据的I0读写功能

labview中数据的I0读写功能

7.1 文件间路径的关系读、写文件(或VI)最关键的步骤就是要准确的定位文件所在的位置,或者说:是要知道被读、写文件的所在路径。

在LabVIEW开发环境中,文件常量子选板提供了许多有关路径的函数和VI,使用时在程序框图中选择:》编程》函数》文件I/O》文件常量参见下图。

图7-1 文件常量函数和内置VI在这个子选板中即包含了路径函数也包含了路径VI,对于它们的了解可以通过帮助文件也可以通过程序设计得到更直观的了解。

下面我们就通过一段程序来看看这些函数与所引导路径之间的基本关系。

7.1.1 文件常量与所引导的路径间关系文件常量选板提供的这些函数和内置VI与所引导路径关系我们通过一个VI来演示。

具体参见下图。

图7-2 文件常量与所引导路径之间的关系由上图可见,这些函数与内置VI给出了不同位置的路径,比如引导到vi.lib、引导到系统目录下等等。

有了这些路径关系,使用者就可以在程序设计中合理的使用这些函数和内置VI。

实际上,程序中最常用的是“当前VI路径”函数。

在前面的动态调用中已经看到过它的实际使用状况。

7.1.2 非确定性文件路径的引导使用上面所展示的函数和内置VI,所导引的路径都是指向某个确定性的文件位置。

有时候我们无法定位文件的确定性位置或希望保存文件在自定义的位置时,还可以通过“文件对话框”或“文件路径输入控件”来实现。

文件对话框在程序框图中选择:》函数》编程》文件I/O》高级文件函数》文件对话框文件路径输入控件在前面板中,选择:》控件》新式》字符串和路径》文件路径输入控件参见下图所示。

图7-3 非确定性路径文件的查找在保存某些文件和测试报告时,文件对话框更实用一些。

因为有更多对话参数可以设定和选择。

7.1.3 路径的简单拆分上面图7-2中,我们使用“当前VI路径”函数打开的是第7章文件夹的路径,因为“文件常量引导的路径关系.vi”就放置在第7章文件夹中。

现在,假如我们希望使用第7章的“文件常量引导的路径关系.vi”来打开第6章的文件夹,那就需要进行路径的拆分或创建。

LabVIEW字符串、数组、簇编程实验

LabVIEW字符串、数组、簇编程实验

一、实验目的
1、掌握创建和使用数组的方法
2、能够使用多种数组内部函数
3、掌握簇的创建和使用方法
4、学会使用内部函数处理簇
二、实验内容
1、字符串函数练习:如字符串的拆分、字符长度的计算、字符串的拼接、替换字符串和搜索字符串等;
2、计算一组随机数的最大值和最小值
提示:在程序框图中,放置一个For循环,设置循环次数为10次。

单击边框选择添加两个移位寄存器,分别初始化为0和1。

新建一个VI,在前面板上放置一个波形图标,用它来记录产生的随机数。

同时在前面板上放置两个数值显示控件“最大值”和“最小值”,用来显示随机数中的最大值和最小值。

放置随机数函数和最大最小值函数与程序框图中,其中最大最小值函数位于编程→比较→最大值与最小值。

然后连线。

3、构建VI,输出一个10行5列的二维数组。

第1行包含0~1范围内的5个随机数,第2行包含1~2范围内的随机数,以此类推,直到第10行包含9~10范围内的5个随机数。

4、设计VI,根据输入的3个考试成绩数组,计算得到一个簇数组包括平均成绩、成绩等级和班级排名。

每次的考试成绩对应一个数组,平均成绩是这样定义的:第一次考试占30%,第二次考试成绩占30%,期末考试占40%。

成绩等级按照平均成绩,以下表列出的标准来确定。

(提示:在确定成绩等级的时候用Case结构将会很方便。


平均成绩标准
三、实验结论及分析
1.。

NI-LABVIEW手册

NI-LABVIEW手册

LabVIEW TM LabVIEW 入门指南2009 年6 月373427F-0118全球技术支持及产品信息National Instruments Corporate总部11500 North Mopac Expressway Austin, Texas 78759-3504USA电话: 512 683 0100全球办事处澳大利亚 1800300800, 奥地利43662457990-0, 巴西551132623599,比利时 32(0)27570020, 波兰48223289010, 丹麦4545762600, 德国49897413130,俄罗斯74957836851, 法国0157662424, 芬兰358(0)972572511,韩国820234513400, 荷兰31(0)348433466, 加拿大8004333488,捷克共和国420224235774, 黎巴嫩961(0)1332828, 马来西亚1800887710,墨西哥018000100793, 南非270118058197, 挪威47(0)66907660, 葡萄牙351210311210, 日本0120-527196, 瑞典46(0)858789500, 瑞士41562005151, 斯洛文尼亚38634254200, 泰国6622786777, 台湾8860223772222, 土耳其902122793031, 西班牙34916400085,新加坡180********, 新西兰0800553322, 以色列97236393737, 意大利390241309277,印度918041190000, 英国4401635523545, 中国862150509800如需更多关于技术支持的信息,请查阅“技术支持和专业服务”附录。

如需对National Instruments 文档提出任何意见或建议,请登录National Instruments网站/info并输入代码feedback。

LabVIEW中的簇

LabVIEW中的簇
文件名:Cluster Exercise.vi 文件名:
2010-7-23
练习2: 练习 :簇元素的缩放
任务:簇中所含数据元素按不同比例缩放 任务:
i上修改,新程序另外保存 上修改,
2010-7-23
出错簇( 出错簇(Error Cluster) )
2010-7-23
簇功能介绍
组合成簇
Bundle功能:将独立元素组合成一个簇,或改变 功能:将独立元素组合成一个簇, 功能 一个簇中某几个元素的值 Bundle By Name功能:改变一个簇中某几个元素 功能: 功能 的值 两者区别:前者按次序连线,当原始的簇中次序 两者区别:前者按次序连线, 发生改变时,可能会出错; 发生改变时,可能会出错;后者则自动将连线作 相应的改变
2010-7-23
出错处理
程序执行时,LabVIEW自动找到所有错误:中断 程序,将出错的subVI或功能标以高亮,并显示对 话框 VI或功能以两种方式返回出错信息:数字代码 VI (功能),出错簇(VI) LabVIEW中,出错的处理也遵循数据流模式:出 错信息和数据一样可以在VI内进行传递
本讲结束
谢谢大家! 谢谢大家!
22:37 2010-7-23

2010-7-23
簇控制器, 簇控制器,簇指示器及常数簇
放置簇的壳(cluster shell) 放置簇的壳( ) 将数据对象(控制器或指示器)拖至数组壳内, 将数据对象(控制器或指示器)拖至数组壳内, 改变壳的大小 常数簇的创建:功能,或从前面板拖至框图程序 常数簇的创建:功能,
2010-7-23
为了了解程序执行过程中错误发生的部位,需要 为了了解程序执行过程中错误发生的部位, 出错信息. 操作( 出错信息.在I/O操作(文件,仪器控制,数据采 操作 文件,仪器控制, 集等) 集等)中,更加应该重视这一点

LABview中数据读取与处理程序word精品文档6页

LABview中数据读取与处理程序word精品文档6页

目录一.课程设计任务书 (1)二.摘要 (2)三.设计过程 (4)1.数据读取 (4)2.选择滤波器 (5)3.数据处理 (6)四.结论 (7)五.心得体会 (8)六.参考文献 (10)《虚拟仪器》课程设计任务书第 1 页二.摘要虚拟仪器技术是以计算机软硬件技术为核心,以自动控制技术、传感器技术、现代信号处理技术、现代网络技术、数值分析技术为支撑,以各专业学科为应用背景的现代测试技术。

它利用高性能的模块化集成概念和方法,结合软件设计平台高效、简便的程序编译功能,依据用户各类特殊需求创建出人机对话界面,实现并取代各类特殊、昂贵的测试仪器的功能,目前已经成为测试理论和应用实验研究的重要支撑。

LabVIEW是目前国际上唯一的编译型图形化编程语言,它是美国National Instruments(简称NI)公司推出的一个图形化软件开发环境。

Labview最大的优势在于测控系统的开发。

它不仅提供了几乎所有经典的信号处理函数和大理现代的高级信号分析工具,而且Labview程序还非常容易和各种数据采集硬件集成,可以和多种主流的工业现场总线通讯以及与大多数通用标准的实时数据库链接。

在Labview中使用“所见即所得”的可视化技术建立人机界面,使用图标表示功能模块,使用图标之间的连线表示各模块间的数据传递。

同时,LabVIEW继承了高级编程语言的结构化和模块化编程的优点,支持模块化与层次化设计,这种设计增强了程序的可读性。

LabVIEW使得不熟悉文本式语言编程的设计者能在测控领域建立计算机仪器系统——虚拟仪器。

本课程设计的主要内容是数据读取与处理。

基于虚拟仪器原理,采用LabVIEW软件平台,通过建立VI程序及对程序的调试,最终实现数据的读取与处理功能。

Labview是一种图形编程语言,只需要通过定义和链接各种功能模块的图标,就能建立起应用程序。

Labview支持与各种总线接口的通信连接,可实现数据的采集,数据的处理与分析,数据的显示等功能。

labview中数据的I0读写功能

labview中数据的I0读写功能

7.1 文件间路径的关系读、写文件(或VI)最关键的步骤就是要准确的定位文件所在的位置,或者说:是要知道被读、写文件的所在路径。

在LabVIEW开发环境中,文件常量子选板提供了许多有关路径的函数和VI,使用时在程序框图中选择:》编程》函数》文件I/O》文件常量参见下图。

图7-1 文件常量函数和内置VI在这个子选板中即包含了路径函数也包含了路径VI,对于它们的了解可以通过帮助文件也可以通过程序设计得到更直观的了解。

下面我们就通过一段程序来看看这些函数与所引导路径之间的基本关系。

7.1.1 文件常量与所引导的路径间关系文件常量选板提供的这些函数和内置VI与所引导路径关系我们通过一个VI来演示。

具体参见下图。

图7-2 文件常量与所引导路径之间的关系由上图可见,这些函数与内置VI给出了不同位置的路径,比如引导到vi.lib、引导到系统目录下等等。

有了这些路径关系,使用者就可以在程序设计中合理的使用这些函数和内置VI。

实际上,程序中最常用的是“当前VI路径”函数。

在前面的动态调用中已经看到过它的实际使用状况。

7.1.2 非确定性文件路径的引导使用上面所展示的函数和内置VI,所导引的路径都是指向某个确定性的文件位置。

有时候我们无法定位文件的确定性位置或希望保存文件在自定义的位置时,还可以通过“文件对话框”或“文件路径输入控件”来实现。

文件对话框在程序框图中选择:》函数》编程》文件I/O》高级文件函数》文件对话框文件路径输入控件在前面板中,选择:》控件》新式》字符串和路径》文件路径输入控件参见下图所示。

图7-3 非确定性路径文件的查找在保存某些文件和测试报告时,文件对话框更实用一些。

因为有更多对话参数可以设定和选择。

7.1.3 路径的简单拆分上面图7-2中,我们使用“当前VI路径”函数打开的是第7章文件夹的路径,因为“文件常量引导的路径关系.vi”就放置在第7章文件夹中。

现在,假如我们希望使用第7章的“文件常量引导的路径关系.vi”来打开第6章的文件夹,那就需要进行路径的拆分或创建。

labview数组和簇的应用教程

labview数组和簇的应用教程

:Document Type TutorialThis exercise is divided into parts. You are given the scenario for each part first. Refer to the end of this exercise for detailed implementation instructions for each part.1. Open the block diagram of the VI.In the following steps, you create a block diagram similar to the next figure.5. Iterate the Array.Add a to the right of the existing code.For LoopFor Loop For LoopAdd a second inside the first .array indicator For LoopWire the terminal to the interior border. This creates an auto-indexed input tunnel on both For Loops.1006. Multiply each element of the array by .Multiply For LoopAdd a function to the interior .x MultiplyWire the indexed input tunnel to the input of the function.Right-click the input and select from the shortcut menu.y Create»Constant100Enter in the constant.7. Round each element to the nearest whole number.Add a function to the right of the function.Round To Nearest MultipleMultiply Round To NearestWire the output of the function to the input of the function.8. Create a 2D array on the output of the For Loops to recreate the modified array.Wire the output of the function to the outer . This creates an auto-indexed output tunnel on both For Loops.Round To Nearest For LoopIntensity Graph9. Wire the output array to the indicator.10. Switch to the front panel.11. Save the VI.12. Enter values for Rows and Columns.13. Run the VI.Part 2: ImplementationModify Part 1 to accomplish the same goals without using the nested For Loops.Array Investigation Part 1.vi1. Open if it is not still open.2. Save the VI as Array Investigation Part 2.vi.3. Open the block diagram.Multiply Round to Nearest Remove For Loop 4. Right-click the border of the interior For Loop, containing the function and the function, and select .For Loop Remove For Loop5. Right-click the border of the remaining and select from the shortcut menu. Your block diagram should resemble the figure below.6. Save the VI.7. Switch to the front panel.8. Enter values for Rows and Columns.9. Run the VI.xNotice that the VI behaves the same as the solution for Part 1. This is because mathematical functions are polymorphic. For example, because the input of the Multiply function is a y Multiply xtwo-dimensional array, and the input is a scalar, the function multiplies each element in the array by the scalar, and outputs an array of the same dimension as the input.Part 3: ImplementationModify Array Investigation VI so that the VI creates a new array that contains the contents of the third row, and another new array that contains the contents of the second column.Array Investigation.vi1. Open located at the bottom of this pageArray Investigation Part 3.vi2. Save the VI as .3. Open the block diagram of the VI.In the following steps, you build a block diagram similar to that shown in the next figure.4. Retrieve the third row of data from Array using the Index Array function.Add the function to the block diagram.Index ArrayArray array Index ArrayWire to the input of the function.Tip: The Index Array function accepts an n-dimensional array. After you wire the input array to the Index Array function, the input and output terminal names change to match the dimension of the array wired. Therefore, wire the input array to the Index Array function before wiring any other terminals.index(row)Right-click the input of the Index Array function.Create»ConstantSelect from the shortcut menu.2Enter in the constant to retrieve the third row. Remember that the index begins at zero.Right-click the output of the function.subarray Index ArrayCreate»IndicatorSelect from the shortcut menu.Third RowName the indicator .5. Retrieve the second column of data from the Array using the Index Array function.Add another function to the block diagram.Index ArrayArray array Index ArrayWire to the input of the function.disable index(col)Index ArrayRight-click the input of the function.Create»ConstantSelect .1Enter in the constant to retrieve the second column because the index begins at zero.subarray Index ArrayRight-click the output of the function.Select .Create»IndicatorSecond ColumnName the indicator .6. Save the VI.7. Switch to the front panel.8. Enter values for Rows and Columns.9. Run the VI.1. Open a blank VI.Cluster Experiment.vi2. Save the VI as .In the following steps, you create a front panel similar to the figure below.top button3. Add a S to the front panel window.umeric4. Add a N indicator to the front panel window.Round LED5. Add a to the front panel.6. Rename the LED .Boolean 2Cluster numeric control, two toggle switches, and a slide control 7. Create a cluster named , containing a .Cluster ShellAdd a to the front panel.NumericAdd a control to the cluster.Vertical Toggle SwitchesAdd two to the cluster.Rename the Boolean toggle switches to Boolean 1.Horizontal Fill SlideAdd a to the cluster.Modified Cluster8. Create , containing the same contents as Cluster, but indicators instead of controls.ClusterCreate a copy of .Modified ClusterRelabel the copy .Modified Cluster Change to IndicatorRight-click the shell of , and select from the shortcut menu.9. Create , containing a and a .Small Cluster Boolean indicator numeric indicatorModified ClusterCreate a copy of .Small ClusterRelabel the copy .Delete the second toggle switch.Delete the horizontal fill slide indicator.Autosizing»Size to FitRight-click Small Cluster and select .SlideRelabel the numeric indicator to value.Resize the cluster as needed.Cluster, Modified Cluster, and Small Cluster10. Verify the cluster order of .Cluster Reorder Controls in ClusterRight-click the boundary of and select from the shortcut menu.1. Confirm the cluster order shown in the figure below.Click the button on the toolbar to set the cluster order and exit the cluster order edit mode.Confirm Right-click the boundary of and select from the shortcut menu.Modified Cluster Reorder Controls in Cluster Confirm the cluster orders shown in the figure below. should have the same cluster order as .Modified Cluster Cluster Click the button on the toolbar to set the cluster order and exit the cluster order edit mode.Confirm Right-click the boundary of and select from the shortcut menu. Click the button on the toolbar to set the cluster order and exit the cluster order Small Cluster Reorder Controls in Cluster OKedit mode. Confirm the cluster orders shown in the figure below.In the following steps, build the block diagram shown in the next figure.11. Add the from the Structures palette to the block diagram.While Loop Disassemble Cluster.Add the function to the block diagram.Unbundle Wire to the input of the to resize the function automatically.Cluster Unbundle function 13. Assemble Small Cluster.Add the function to the block diagram.Bundle Wire the function as shown in the figure above.Bundle 14. Assemble Modified Cluster.Add the function to the block diagram.Unbundle by Name Wire the to the function.Cluster Unbundle by Name Resize the function to have two output terminals.Unbundle by Name Select in the first node, and in the second node. If a label name is not correct, use the Operating tool to select the correct item.Numeric Boolean 1 Add the function to the block diagram.Increment Wire the output of the function to the input of the function. This function adds one to the value of .Numeric Unbundle By Name Increment Numeric Add the function to the block diagram.Not Wire the output of the function to the input of the function. This function returns the logical opposite of the value of Boolean.Boolean 1Unbundle By Name x Not。

簇(labview系列教程之八)

簇(labview系列教程之八)

簇(labview系列教程之⼋)08、簇簇簇是⼀种类似数组的数据结构,⽤于分组数据。

簇和数组有着重要的差别,其中⼀个重要差别是,簇可以包含不同的数据类型,⽽数组仅可以包含相同的数据类型。

例如,⼀个数组可以包含10个数字指⽰器,⼀个簇却可以包含⼀个数字控件,⼀个开关和⼀个字符串控件。

尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的⽅法同时访问其中部分或全部元素,⽽不是通过索引⼀次访问⼀个元素。

簇和数组的另⼀个差别是簇具有固定的⼤⼩。

簇通常⽤于将出现在框图上的有关数据元素分组管理。

因为簇在框图中仅⽤唯⼀的连线表⽰,所以对于减少连线混乱和⼦VI需要的连接器端⼦个数,使⽤簇有着积极的效果。

可以将簇看做是⼀捆连线,线缆中每⼀个连线表⽰簇的不同元素。

在框图上,只有当簇具有相同类型,相同元素数量和相同元素顺序时,才可以将簇的⼦端连接。

多态性应⽤于簇时,只需要簇具有同样顺序,同样数量的元素。

下⾯来向⼤家介绍簇的创建簇的创建框位于前⾯板中的控件→新式→数组,矩阵和簇→簇,如图:然后就可以往簇的框中添加各种类型的控件了,例如现在要建⽴⼀个学⽣的记录信息,包括学⽣的,学号,性别和年龄.这就需要在簇外壳⾥依次放⼊两个字符串输⼊控件,⼀个数字控件和⼀个布尔控件.如图:与数组的创建类似,簇也可以从程序框图中创建,先在程序框图上放置⼀个簇外壳,然后就可以在簇外壳⾥放置各种数据类型常数。

如图:簇对象的⼤⼩是可以调整的,右击簇边界,在弹出的快捷菜单中可以选择各种调节操作,如图:选择调整为匹配⼤⼩,即可缩⼩簇的边框,如图为调整后的结果:簇结构中的元素排列是按照它们放置的先后来排序的,它与簇元素的位置⽆关。

放⼊簇的第⼀个元素序号为0,第⼆个元素序号是1,依次向下排列。

如果删除了⼀个元素,序号将重新⾃动调整。

簇的排序很重要,它直接影响着后⾯将要介绍的“捆绑”以及“接触捆绑”函数的端⼝顺序,如果你想将⼀个簇与另⼀个簇连接,这两个簇的序和类型必须相同。

labview编程技巧-labview与INI文件

labview编程技巧-labview与INI文件

labvi‎ew编程技‎巧----labvi‎ew与IN‎I文件在WIN9‎5以前,WINDO‎W S还没有‎引入注册表‎的概念,WINDO‎W S是利用‎I NI文件‎来存储计算‎机相关配置‎的,在API里‎,WINDO‎W S提供了‎丰富的AP‎I函数来操‎作INI文‎件,LV里也专‎门有个子类‎别封装了这‎些API函‎数,使用非常方‎便。

LV使用I‎N I文件来‎存储配置,应用非常广‎泛,生成执行文‎档后也自动‎生成一个I‎N I文件。

LV主要在‎下列情况下‎使用INI‎文件:存储前面板‎或者前面板‎特定控件的‎默认值和当‎前值存储本次应‎用的运行结‎果供下一次‎启动是调用‎配置文件配置是非常‎重要的,比如一般的‎板卡都有1‎6个数字输‎出,外部接继电‎器来控制外‎部设备,继电器是比‎较容易损坏‎的,而通常16‎个继电器中‎是有备用的‎,如何在不改‎变软件和硬‎件的情况下‎把输出更改‎到另外的继‎电器上,这样,只需要简单‎地改动一下‎外部接线就‎可以了那,使用配置文‎件可以轻松‎实现。

INI文件‎结构很简单‎,装了多操作‎系统的人都‎知道,WINDO‎W S本身有‎个BOOT‎.INI[boot loade‎r]timeo‎u t=30defau‎l t=multi‎(0)disk(0)rdisk‎(0)parti‎t ion(1)\WINDO‎W S[opera‎t ing syste‎m s]multi‎(0)disk(0)rdisk‎(0)parti‎t ion(1)\WINDO‎W S="Micro‎s oft Windo‎w s XP Profe‎s sion‎a l" /noexe‎c ute=optin‎/fastd‎e tect‎下LV软件‎本身也利用‎了INI文‎件来保存配‎置。

[LabVI‎E W]er.tcp.port=3363er.tcp.enabl‎e d=TRUEer.tcp.acces‎s="+127.0.0.1"rstLa‎u nch=False‎Palet‎t eHid‎d denC‎o ntro‎l Cate‎g orie‎s_Loc‎a lHos‎t="Moder‎n;Syste‎m;Class‎i c;Contr‎o l Desig‎n& Simul‎a tion‎;.NET & Activ‎e X;Addon‎s;"Palet‎t eHid‎d denF‎u ncti‎o nlCa‎t egor‎i es_L‎o calH‎o st="Progr‎a mmin‎g;Measu‎r emen‎t I/O;Instr‎u ment‎I/O;Visio‎n and Motio‎n;Mathe‎m atic‎s;Signa‎l Proce‎s sing‎;Data Commu‎n icat‎i on;Conne‎c tivi‎t y;Contr‎o l Desig‎n& Simul‎a tion‎;Signa‎l Expr‎e ss;Addon‎s;"Setup‎="defau‎l t"Float‎e rLoc‎a tion‎s=Truefind.viLis‎t Flag‎s=4Error‎L istS‎i ze=0,0,379,486tteSt‎y le="Named‎I cons‎"vice0‎70=",Clean‎U pWir‎e,FlatS‎e quen‎c e"Chang‎e s_Ap‎p lyTo‎A ll=TruePageB‎o unds‎="398;181;884;636"ntFil‎e s.pathL‎i st="C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\examp‎l es\DAQmx‎\Analo‎g In\Measu‎r e Volta‎g e.llb\Acq&Graph‎Volta‎g e-Int Clk.vi;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\examp‎l es\DAQmx‎\Analo‎g In\Measu‎r e Volta‎g e.llb\Acq&Graph‎Volta‎g e-Ext Clk-Analo‎g Ref.vi;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\Local‎Setti‎n gs\Tempo‎r ary Inter‎n et Files‎\Conte‎n t.IE5\7M9NS‎8HF\chart‎%20rig‎h t%20to%20lef‎t[1].vi;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\windo‎w s_en‎v iron‎m ent_‎v aria‎b le_r‎e ader‎_writ‎e r\Windo‎w s Envir‎o nmen‎t Varia‎b le Reade‎r Write‎r.vi;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\MDI.llb\Simpl‎e MDI Demo.vi;D:\Contr‎o l 1.ctl;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\tree\Tree Sorte‎r.llb\Join.vi;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\notif‎i er.llb\Creat‎e Notif‎i er.vi;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\notif‎i er.llb\Wait On Notif‎i cati‎o n.vi;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\input‎D evic‎e s.llb\Acqui‎r e Input‎Data.vi"ShowB‎u ffer‎A lloc‎a tion‎s Arra‎y s=True3‎ShowB‎u ffer‎A lloc‎a tion‎s Clus‎t ers=TrueBuffe‎r Allo‎c atio‎n sStr‎i ngs=False‎ShowB‎u ffer‎A lloc‎a tion‎s Path‎s=False‎ShowB‎u ffer‎A lloc‎a tion‎s Scal‎a rs=False‎ShowB‎u ffer‎A lloc‎a tion‎s Vari‎a nts=False‎Buffe‎r Allo‎c atio‎n sOth‎e r=False‎NewDl‎g Rece‎n tMai‎n Temp‎l ates‎.pathL‎i st="C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\templ‎a tes\Frame‎w orks‎\Desig‎n Patt‎e rns\Produ‎c erCo‎n sume‎r Even‎t s.vit"NewDl‎g Boun‎d s="700;480"NewDl‎g Rece‎n tTem‎p late‎s.pathL‎i st=""lgLas‎t Sele‎c ted="8E4D3‎6AD-F776-4C48-97C6-C1D85‎E FE88‎9F"NewDl‎g Smal‎l=False‎NewDl‎g Coll‎a psed‎="77E35‎0A8-F9AA-43FF-85E2-45427‎9EBB9‎A7/Frame‎w orks‎3F7CF‎7A8-5E4D-4EDC-AA25-FA4A3‎26988‎E F 8E4D3‎6AD-F776-4C48-97C6-C1D85‎E FE88‎9F"Super‎S ecre‎t Priv‎a teSp‎e cial‎S tuff‎=True3‎color‎H isto‎r yIte‎m A=00000‎B FFRecen‎t File‎s.proje‎c tPat‎h List‎="C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\xcont‎r ol event‎s\xcont‎r ol event‎s\XCont‎r ol Event‎s Proje‎c t.lvpro‎j;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\examp‎l es\gener‎a l\xcont‎r ols\Dual Mode Therm‎o mete‎r\Simpl‎e Dual Mode Therm‎o mete‎r XCont‎r ol.lvpro‎j;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\examp‎l es\lvdsc‎\XCont‎r ols\Spinn‎e r\Spinn‎e r.lvpro‎j;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\Linke‎d_Lis‎t_Pro‎j ect\Linke‎d List\Linke‎d_Lis‎t_Pro‎j ect.lvpro‎j;D:\TEST\Untit‎l ed Proje‎c t 1.lvpro‎j;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\Scrip‎t ing_‎T ools‎_0.16.02\Scrip‎t ing Tools‎\Scrip‎t ing Tools‎.lvpro‎j;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\IconE‎d itor‎_85_V‎2.2\IconE‎d itor‎.lvpro‎j;C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\第一名_何‎凌_公司问‎题\第一名何凌公司问题\Src\VI compa‎n y.lvpro‎j"ectEx‎p lore‎r.Class‎i cPos‎i tion‎=143,53,543,415rHist‎o ryIt‎e mB=009A8‎574Recen‎t Path‎s="C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\sysin‎f o.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\semap‎h or.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\miscc‎t ls.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\GetTy‎p e.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\input‎D evic‎e s.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\Utili‎t y\notif‎i er.llb;C:\Progr‎a m Files‎\Natio‎n al Instr‎u ment‎s\LabVI‎E W 8.5\vi.lib\tree\Tree Sorte‎r.llb"LLBMg‎r_Act‎i vePl‎u gins‎=""gr_Re‎c entP‎a th="C:\Docum‎e nts and Setti‎n gs\Admin‎i stra‎t or\My Docum‎e nts\MDI.llb"rHist‎o ryIt‎e mC=00FF8‎242err=2rHist‎o ryIt‎e mD=00000‎F DCrHist‎o ryIt‎e mE=00310‎0DCrHist‎o ryIt‎e mF=00FFF‎F FFcolor‎H isto‎r yIte‎m G=00FF3‎D00rHist‎o ryIt‎e mH=000F0‎0DCcolor‎H isto‎r yIte‎m I=004AF‎F42color‎H isto‎r yIte‎m J=00C88‎E00rHist‎o ryIt‎e mK=00002‎5FFexoti‎c Cont‎r ols=TRUEvice0‎80=",Class‎B rows‎e r"rPriv‎a teSc‎r ipti‎n gFea‎t ureV‎i sibl‎e=TruerSecr‎e tPri‎v ateS‎p ecia‎l Stuf‎f=TruerPriv‎a teSc‎r ipti‎n gFea‎t ureS‎i chtb‎a r=Truent="0" 18nt="0" 18toolP‎a lett‎e Loc=494,22,645,100LVLib‎r aryT‎h emeC‎o lor=00669‎9FF件非常简单‎,是文本文件‎,可以用WI‎N DOWS‎记事本直接‎打开,组成结构是‎一个简单的‎树型结构,说明如下:[secti‎o n1]_sect‎i on1=VALUE‎_sect‎i on2=VALUE‎_sect‎i on3=VALUE‎[secti‎o n2]_sect‎i on2=value‎key2_‎s ecti‎o n2=value‎_sect‎i on2=value‎可以看出结‎构非常简单‎,每个INI‎文件又一个‎或者多个S‎E CTIO‎N组成,每个SEC‎T ION又‎一系列键和‎键值组成,值的类型可‎以是BOO‎L EAN ,DOUBL‎E,I32,U32,STIRN‎G,PA TH等‎等提供了一组‎节点来处理‎I NI文件‎:上排的是操‎作INI的‎节点,下排的是读‎取INI本‎身信息的节‎点操作INI‎节点包括:打开,读键值,写键值,删除键值,删除分类(SECTI‎O N),关闭。

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里面乱七八糟的什么都有,这是个好习惯,呵呵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档