27在LabVIEW中使用常量定义(精)
LabVIEW编程基础:全局变量的创建及使用
LabVIEW编程基础:全局变量的创建及使用同C语言类似,LabVIEW中的变量根据作用域的不同也分为两种类型,即局部变量和全局变量,前者仅能在当前VI程序中使用,而后者可以在多个文件中使用。
本篇文章介绍全局变量的创建及使用方法。
什么是全局变量全局变量用于在一个工程项目中的多个文件之间进行数据交互。
全局变量保存在一个VI文件中,但这种类型的VI文件和普通的VI文件不一样,它只有前面板,而无程序框图,在前面板上可以放置多个控件,对应着多个全局变量,即在一个VI文件中可以存储多个全局变量。
全局变量具有可读和可写的属性,在全局变量的右键菜单中可更改其读写属性。
全局变量的创建在LabVIEW中可以通过多种方式创建全局变量。
( 1 ) 方法1在LabVIEW编程环境中,选择菜单“文件”-->“新建...”,弹出新建文件对话框,如下图所示:在上图中选择全局变量,即可打开一个全局变量的VI程序,当然这个VI程序只有前面板,在前面板上放置你需要的变量控件,每个变量控件即可代表一个全局变量,如下图所示:在上图中放了两个控件,分别为数值型和布尔型的控件,其名称分别为“全局变量a”和“全局变量b”,并将这个VI保存为“MyGloableVar.vi”文件。
( 2 ) 方法2如果已经打开了一个普通的VI程序,可以在程序框图右键菜单的函数模板上创建,在函数模板中选择“编程”-->“结构”-->“全局变量”,如下图所示:将全局变量放到程序框图中后,双击该图标,通过这种方法同样可打开一个只包含前面板的VI全局变量程序,后续操作同第一种方法相同。
全局变量调用方法如果要在一个VI程序中使用全局变量,可通过下面三种方法将全局变量导入到当前VI的程序框图中:1. 由函数模板中的“选择VI…”子模板打开选择用户程序对话框,选择已经保存的全局变量VI程序,此时将在框图程序中显示全局变量的数据端口。
2. 如果已经打开了全局变量的VI文件,可拖动该VI文件前面板右上角的全局变量图标到当前程序框图中,此时将在框图程序中显示全局变量的数据端口。
Labview之如何创建通用属性节点和调用节点
Labview之如何创建通用属性节点和调用节点第一篇:Labview之如何创建通用属性节点和调用节点LV Nugget之如何创建通用属性节点和调用节点2011-01-01 07:34我们必须注意,LV中的数据都是以输入控件、显示控件和常量的方式存在的,通用控件的引用本身也是一种特殊的控件,这导致了许多初学者在使用通用引用时出现了问题。
NI论坛上有几个帖子就出现了这样的问题,我简单了回答了一下,但是网友无法理解,发邮件希望我给解答一下,在这里我一并回答这个问题。
帖子地址为:对于前面板中的控件,可以直接通过控件的快捷菜单创建它的引用、属性节点、调用节点、常量、局部变量等等,以多列列表框为例,直接利用控件的快捷菜单。
在程序框图中的控件的接线端子中,同样可以利用接线端子的快捷菜单,创建指向控件的引用、属性节点等,与控件的快捷菜单功能是相同的。
我们知道,对于前面板中的控件,直接创建它的属性节点和调用节点时,是不需要连接引用的,这是因为我们通过快捷菜单创建时候,LV自然知道创建的属性节点和调用节点是指向这个特殊控件的。
实际上,我们也可以通过控件的引用,间接创建这个控件的属性节点和调用节点,在应用控制函数选板中提供了很多与引用有关的操作,包括属性节点和调用节点。
箭头所示的属性节点和调用节点在使用时候必须连接控件的引用,也就是说这里的属性节点和调用节点是通用的,不指向任何特定控件的,只有连接一个引用的时候,它才会指向一个特定的控件或者特定的控件类型,指向特定的控件如下图所示,指向特定的控件类型则是我们将要重点讨论的。
红色框中所示的就是利用控件的引用和通用属性节点和方法节点,实现的功能是和框图左侧部分相同的。
如上图所示,如果简单的要使用控件的属性节点和方法节点,那么利用通用属性和通用调用方法似乎是没有意义的。
的确是这样,通用属性节点和调用方法更为重要的意义在于它和通用控件引用相结合。
请参考上面的帖子,为什么网友会出现那样的问题?从上面的图中,我们可以看出,网友已经成功地床架的多列列表框控件的引用。
labview功能介绍
LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。
LabVIEW是一种图形化编程语言,又称G语言。
其编写的程序称为虚拟仪器VI(Virtual Instrument),以.VI后缀。
LabVIEW模板:◆工具模板(Tools Palette)◆控件模板(Controls Palette)◆功能模板(Functions Palette)VI的组成:◆前面板(Panel)控制(Control),指示(Indicator),修饰(Decoration)。
将前面板中的控制和指示统称为前面板对象或控件。
◆框图程序(Diagram Programme)节点(Node),数据连线(Wire)节点有:功能函数(Functions),结构(Structures),代码接口节点(CIN),子VI(SubVI)。
数据端口有:控制端口和指示端口,节点端口。
LabVIEW编程又称为“数据流编程”。
◆图标/连接端口(Icon/Terminal)把VI作为一个SubVI在其它VI中调用。
常用术语:SubVI 子VI Chart 实时趋势图LLBs VI库Graph 事后记录图Objects 对象Functions 功能Panel 前面板Structures 结构Block Diagram 框图程序Cluster 簇Control 控制Bundle 打包Indicator 指示Unbundle 解包Control和Indicator 前面板对象或控件RefNum 枚举,标志号Palette 模板Local Variable 本地变量Functions Palette 功能模板Global Variable 全局变量Controls Palette 控件模板Constant 常量Tools Palette 工具模板Disable Indexing 无索引Terminal 端口Enable Indexing 有索引Wires 数据连线Read Local 本地读Bad Wires 错误数据连线Write Local 本地写Node 节点Read Global 全局读Attribute Node Write Global 全局写Property Node 属性节点Legend 图例Frame 框架Cursor 光标Channel 框架通道Bounds 边界范围Index 索引Data Acqisition(DAQ) 数据采集Shift Register 移位寄存器Label 标签运行VI1.运行VI(Run)2.连续运行VI(Run Continuously)3.停止运行VI(Abort Execution)4.暂停运行VI(Pause)调试VI1.单步执行单步(入),单步(跳),单步(出)2.设置端点3.设置探针4.显示数据流动画数据类型:基本数据类型:数字型(Numeric),布尔型(Boolean),字符串型(String)构造数据类型:数组(Array),簇(Cluster)其它数据类型:枚举(RefNum),空类型数组(Array):索引号从0开始一维数组(1D,列或向量),二维数组(2D,矩阵)组成:数据类型,数据索引(Index),数据创建:1.控制模板->Array & Cluster子模板2.根据需要将相应数据类型的前面板对象放入数组框架中使用:1.Array Size返回输入数组的长度2.Index Array返回输入数组由输入索引指定的元素3.Replace Array Element替换输入数组的一个元素4.Array Subset从输入数组取出指定的元素5.Reshape Array改变输入数组的维数6.Initialize Array初始化数组7.Build Array建立一个新数组8.Rotate 1D Array将输入数组的最后n个元素移至数组的最前面9.Sort 1D Array将数组按升序排列10.Reverse 1D Array将输入的1D数组前后颠倒,输入数组可以是任何类型的数组11.Transpose 2D Array转置输入的二维数组,也叫矩阵转置12.Search 1D Array搜索指定元素在一维数组中的位置13.Array Max & Min返回输入数组中的最大值和最小值14.Split 1D Array将输入的一维数组在指定的元素处截断,分成2个一维数组15.Interpolate 1D Array线性插值16.Threshold 1D Array一维数组阀值,是线性插值的逆过程17.Interleave 1D Arrays将从输入端口输入的一维数组插入到输出的一维数组中18.Decimate 1D Array将输入的一维数组分成数个一维数组,是Interleave 1D Arrays的逆过程簇(Cluster):类似于Pascal语言的record和C语言的struct组成:不同的数据类型创建:控制面板—>Array & Cluster子面板;向框架添加所需的元素;根据需要更改簇和簇中元素的名称使用:1.Unbundle解包。
虚拟仪器labview课件.ppt
第四章 变量、数组与簇
4.3.2 数组的使用
对一个数组进行操作,无非是求数组的长度、取出数组 中的元素、替换数组中的元素或初始化数组等各种运算。
通过Functions→Programming → Array子模板中各节点 完成。
第四章 变量、数组与簇
1.数组大小—Array Size函数 返回输入数组中的元素个数。
→
4.1.2 本地变量的使用
第四章 变量、数组与簇
本地变量有Write和Read两种属性。 当属性为Read时,可从本地变量中读出数据 当属性为Write时,可给本地变量赋值。
具体使用方法通控制和指示对象。
第四章 变量、数组与簇
例4.1.1 用一个布尔开关同时控制两个While循环。
第四章 变量、数组与簇
第四章 变量、数组与簇
第四章变量、数组和簇 4.1本地变量 4.2 全局变量 4.3 数组 4.4 簇
第四章 变量、数组与簇
4.1 本地变量 控制通过端口将数据传给其它节点; 指示将其它节点传过来的数据显示。 但端口是唯一的,一个控制或一个指示
只有一个端口。 而用户要经常要多次为控制赋值或从指
示中取数据,或从指示赋值或而从控制中取 数据。
如有关一个学生的信息有:学号、姓名、性别、年龄、成绩和 家庭地址等。如将这些项目分别定义为相互独立的简单变量,不 能反映它们之间的内在联系。而应当把它们组合成一个组合项, 这种数据结构就是簇。
上述数据的C语言结构描述: 上述数据的LabVIEW结构描述:
struct student { int num;
3.数组子集—Array Subset函数 选取数组或者矩阵的某个部分。
第四章 变量、数组与簇
labview系列教程(入门推荐_简明细致)
01、什么是labviewLabview概述虚拟仪器(virtual instrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
下面的框图反映了常见的虚拟仪器方案。
虚拟仪器的主要特点有:•尽可能采用了通用的硬件,各种仪器的差异主要是软件。
•可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
•用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft 公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
普通的PC有一些不可避免的弱点。
用它构建的虚拟仪器或计算机测试系统性能不可能太高。
目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。
每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。
这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。
VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
用到的Labview知识点: 属性节点、引用句柄、子VI、枚举、条件结构、连线板
用到的Labview知识点:属性节点、引用句柄、子VI、枚举、条件结构、连线板
首先创建三态的子VI:
1.在前面板添加“枚举”控件以及Bool引用句柄,创建布尔引用句柄方法为:先添加“控件引用句柄”,然后右键→选择VI服务器类→通用→图形对象→控件→布尔,并勾选“包括数据类型”;
2.在程序框图添加“属性节点”,并和Bool引用句柄连线;
3.添加“条件结构”,并同“枚举”类型连接,其中“枚举”类型的“编辑项”属性中添加三态:default,run,fault;
4.在每态条件结构中分别定义“数组常量”,然后添加“簇常量”,并在“簇常量”中添加两个“颜色盒常量”,然后将这个“簇常量”整体放入前面定义的“数组常量”,并同“属性节点”连线;
5. 程序框图如下图所示:
6.在前面板中对子VI进行连接线定义:前面板中右键子VI图标,选择编辑图标,此处选取自己喜欢的子VI图标,并勾选显示接线端,退出编辑后,继续右键子VI图标,选择“显示连线板”,开始选取子VI的连线板,这里选择前面板中的“枚举”和“bool引用句柄”这两个输入,至此子VI建立完成,前面板如下图所示:
子VI建立好后,就可以设计一个指示灯,试验一下三态LED的运行情况了,我添加的一个简单VI如下图,这里注意的是要创建指示灯的一个bool引用:
程序建立完成后,就可以运行了,试验结果表明此VI能很好的实现三态LED显示。
数值型控件和常量labview
一、数值型控件和常量1. 控件在LabVIEW的控件栏中有一栏是数值控件。
这一栏内的控件虽然在前面板上的外观各不相同,但是在框图中的端点都是数值类型的。
我们在使用这些数值控件时可以选择适合的界面所需的旋钮、仪表盘等。
还可以在数值型控件的属性对话框里设置它的数值类型、数值范围、格式和精度等,显示方法等等。
我们以最普通的数值控件为例,解释一下如何配置它的显示方式。
假如,我们的界面是 Windows 风格的,那么界面上所有的控件都应使用系统风格的控件,包括数值型控件。
如果这个控件用于表示时间,我们就需要对这个控件的显示方法进行高级的配置。
打开这个控件配置面板的格式与精度页,选择“Advanced editing mode”,就可以自己为控件设置显示方式了。
2. 常量如果是常量,在设置数值类型时通常会发现“Adapt to Source”(按照输入调整)项是被选中的,作为控件时这一项不能被选中。
此时如果在常量中输入一个正数,比如“34”,常量的类型会自动变为I32整型(蓝色),而输入“34.3”,常量的类型会自动变为DBL实数型。
如果一定要输入实数型34,可以输入34.0。
3. 不同表示法(Representation)的选择数值类型包括各种长度的整型、实数型和虚数型,其中I64和U64类型是LabVIEW 8.0新增加的。
选用短整型数值比选用长整型数值类型节约内存。
在大的数值数组中应尽量使用短类型数值以节约内存。
对于单个数值,它可以节约的内存十分有限,但是使用长整型数值可以避免数值越界引起的错误,所以还是应该使用长整型数值。
你可以自己做个试验:新建一个 VI,在 VI 上放置两个值为 300 的 I16 常量,然后相乘,看看他们的积是多少。
这种错误如果隐藏在一个大工程内,调试起来也是颇为费劲的。
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的使用教程
虚拟仪器技术实验指导书信息电子技术学院赵化启注意:在试验之前,首先创建一个以自己名字命名的目录,所有的练习程序都保存到该目录中。
补充练习所生成的VI,以“EX+练习序号.vi”命名,如EX01.vi等。
实验一 Labview软件VI的创建实验1.实验目的:(1)创建一个VI程序。
(2)创建一个VI程序模拟温度测量。
2.实验要求:(1)学会使用工具模板、控件模板、函数模板。
(2)了解控件的快捷菜单、属性。
学会如何使用帮助。
(3)理解不同的数据类型是通过颜色和线形来区分的。
3.实验器材:虚拟仪器综合实验平台(PC机等)4.实验内容及原理:虚拟仪器 (VI: Virtual Instrument) 是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统。
虚拟仪器是以特定的软件支持取代相应功能的电子线路,用计算机完成传统仪器硬件的一部分乃至全部功能,它是以具备控制、处理分析能力的软件为核心的软仪器。
使用者在操作这台计算机时,就象在操作一台他自己设计的仪器一样。
利用Labview软件可以实现VI的设计。
创建一个VI程序模拟温度测量。
假设传感器输出电压与温度成正比。
例如,当温度为70°F时,传感器输出电压为0.7V。
本程序也可以用摄氏温度来代替华氏温度显示。
本程序用软件代替了DAQ数据采集卡。
在程序面板使用编程→数值→随机数(0到1)来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。
5.实验步骤:●选择文件 >> 新建VI,打开一个新的前面板。
假如已关闭了所有的VI,则在LabVIEW的对话框中选择新建VI。
注意:若控件面板不可见,可选择菜单察看 >> 控件选板,使控件面板可见。
也可以在前面板的空白区域内单击鼠标右键的方法弹出快捷菜单,使控件面板可见。
●在菜单新式 >> 数值中选择温度计(或Express >> 数值显示控件 >> 温度计),并置于前面板上。
LabVIEW入门教程
2023-10-26
目录
• labview简介 • labview基础知识 • labview编程入门 • labview应用实例 • labview进阶技巧 • labview社区和资源
01
labview简介
labview是什么?
• LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程语言和开发环 境,由美国国家仪器(National Instruments,简称NI)公司开发。它被广泛用于数据采集、仪器控制、 实验室自动化和数据分析等领域。
2. 学习并应用设计模 式、面向对象编程等 先进理念,提高程序 的可维护性和可扩展 性。
3. 积极参与社区交流 和学习,分享经验和 解决方案,获取更多 的技能提升和成长机 会。
06
labview社区和资源
labview社区介绍
LabVIEW社区是全球最大的虚拟仪器 社区,为工程师和科学家提供了一个 交流和分享的平台。
丰富的仪器控制功能:LabVIEW提供了丰富的仪器控制 功能,可以轻松地与各种仪器进行通信和控制,包括数 据采集卡、仪器控制器、嵌入式系统等。
跨平台支持:LabVIEW支持多种操作系统和平台,包 括Windows、Linux和Mac OS等,使得它可以在不同 的系统和平台上运行。
图形化编程语言:LabVIEW使用图形化编程语言(G语 言),通过拖拽和连接图标来编写程序,使得编程更加 直观和易于理解。
要点三
LabVIEW实现
在LabVIEW中可以通过调用数字滤波 器函数块来实现数字滤波器的设计。 用户只需要输入需要处理的信号、选 择滤波器类型和设置滤波器参数, LabVIEW就可以自动完成对信号的滤 波处理。
实验二 LabVIEW数据操作
全局变量
通过全局变量可以在不同的VI之间进行数据交换, 一个全局变量的VI文件中可以包含多个不同数据类 型的全局变量。 LabVIEW中的全局变量是以独立的VI文件形式存在 的,这个VI文件只有前面板,没有程序框图,不能 进行编程。
2013-7-15
西北农林科技大学机电学院
11
注意
使用局部变量和全局变量时要避免竞争现象。 例如在程序不同的两个地方同时写同一个的对象的 局部变量或全局变量,就会产生竞争现象,这时变 量的值是无法预期的。 因此我们必须要注意程序的执行顺序,避免竞争现 象。
右击枚举类型的输入控件,从快捷菜单中选择编辑 项选项,打开如下图所示的枚举型选项编辑对话框。
2013-7-15
西北农林科技大学机电学院
6
时间类型是LabVIEW中特有的数据类型,用于输入 与输出时间和日期。
2.1.4 时间标识(Time Stamp)
2013-7-15
西北农林科技大学机电学院
28 57 2 1007 683 102 25 6 31 5 63
2013-7-15
178
253 1 381 7.2 8.1 32
22
西北农林科技大学机电学院
实验二 作业
11.利用华氏温度与摄氏温度的关系:华氏度=9×摄氏度 /5+32编写一个程序,求摄氏温度为32、0、-15时的华氏 温度。 12.输入一个数,判断其能否同时被3和5整除。 13.从键盘输入一个大写字母,要求改用小写字母输出。 14.输入一个数,判断这个数是否在10~100之间。 15.输入一个数,若此数大于0,则输出1,若此数小于0,则 输出-1,若此数等于0,则输出0。 16. 设圆半径为r=1.5,圆柱高h=3,求圆周长,圆面积,圆 球表面积,圆球体积,圆柱体积。 17. 输入三角形的三边长,求三角形的面积。 18.求方程 ax2 bx c 0 的根。a,b,c由键盘输出,设
labview完整教程详细解答
labview完整教程详细解答第一讲:认识L a b v i e w简介在开始菜单里找见点击打开,会出现如下界面:从File>>NewVI或者从右半部分中的New>>BlankVI都可以打开如下界面:上图中前图是虚拟仪器的前面板,是用户使用的人机界面,后面的是程序框图界面(即后面板)。
在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。
这些模板集中反映了该软件的功能与特征。
下面我们来大致浏览一下。
工具模板(T oolsPalette )该模板提供了各种用于创建、修改和调试VI程序的工具。
如果该模板没有出现,则可以在Windows菜单下选择ShowT oolsPalette 命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。
图标名称功能1OperateValue(操作值)用于操作前面板的控制和显示。
使用它向数字或字符串控制中键入值时,工具会变成标签工具2Position/Size/Select(选择)用于选择、移动或改变对象的大小。
当它用于改变对象的连框大小时,会变成相应形状。
3EditText(编辑文本)用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应形状。
4ConnectWire(连线)用于在流程图程序上连接对象。
如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。
5ObjectShortcutMenu(对象菜单)用鼠标左键可以弹出对象的弹出式菜单。
6ScrollWindows(窗口漫游)使用该工具就可以不需要使用滚动条而在窗口中漫游。
7Set/ClearBreakpoint(断点设置/清除)使用该工具在VI的流程图对象上设置断点。
LabVIEW软件编程规范标准
LabVIEW软件编程规一、制定编程规的意义项目开发中,经常存在多人共同开发同一程序的情况。
风格不一致,导致的结果是程序可读性差,难于维护。
为了避免这些问题,做为一个系统软件工程工作者,需要在工程项目开始之前有一套团队成员彼此遵守的开发规。
制定本编程规的目的是为了提高软件开发效率与所开发的软件的可维护性,提高软件的质量。
本规由程序组织结构、命名规则、注释规、程序健壮性、可移植性、错误处理以与软件的模块化规等部分组成。
二、编程规(1)程序组织结构对于大型程序来说,如果规划不得当,会导致开发期间移动和重命名文件操作占用额外的时间。
所以一般采用目录结构(管理磁盘文件)-摘自《 CRIO开发者指南》LabVIEW VI是根据其名称和路径进行关联,因此如果你移动或重命名子VI,关联就会遭到破坏,需要手动重新建立关联,适当管理磁盘上的文件会降低日后移动大量文件的风险,帮助开发人员很容易的找到文件,并决定在哪里保存新文件。
许多软件开发者已经规定好文件存储的位置,但是除经典的方法和结构外,以下方法更适合大型程序的开发工作。
1)将所有项目文件存储到一个单一目录;2)在其目录下创建包含文件逻辑群体的文件夹;3)根据预定的标准对文件进行分组;4)将程序划分为易处理的逻辑单元;5)使用具有逻辑性和描述性的命名规则命名 VI;命名VI,VI库以与目录的时候,尽量避免使用不被所有文件系统所接受的字符,比如“/”,“\”,“:” “~”。
文件名的命名要求表达出文件的容,要求文件名的长度不得少于5个字母。
6)将顶层VI与其他源代码区分开来;文件夹通常用来对文件进行分组、分类,因此可以针对不同的调用对子VI 进行分组、分类。
文件分组的原则是根据程序中文件的功能、类型以与分级层次来进行的。
实际上,磁盘管理真正体现了程序中文件和代码之间的关系。
避免在整个程序结构中使用一样的文件名。
因为在存中一次只能有一个给定的名字。
如果存中存在某个文件名的VI,而又试图去载入另外一个具有一样文件的VI,VI 会提示你是否替换已存在的VI。
定义常量的方法
定义常量的方法
定义常量的方法有以下几种:
1. 在代码中直接使用字面值:将常量的值直接写在代码中,不使用变量来表示。
例如:const int a = 10;。
2. 使用宏定义:使用宏定义来定义常量,在代码中使用宏名称来表示常量的值。
例如:#define PI
3.14。
3. 使用枚举(enum):使用枚举类型来定义常量,枚举类型中的每个成员都代表一个常量。
例如:enum Colors {RED, GREEN, BLUE};。
4. 使用命名空间:将常量定义在命名空间中,通过命名空间来访问常量。
例如:namespace MathConstants {const float PI = 3.14;}。
无论使用哪种方法来定义常量,常量的值都不能在程序运行过程中改变,它在定义时就被确定下来了。
常量的作用是为了提高程序的可读性和可维护性,增加代码的可靠性和安全性。
27在LabVIEW中使用常量定义(精)
在LabVIEW 中使用常量定义如下图所示,在 C 语言里,使用#define 来定义一个常数是非常基本的用法。
直接使用 数字,时间一长,就不只到这个数字是哪来的了。
而且,这种方法也便于修改在程序中多处使用的常量的值。
在 C++ —般是用const 来达到同样的目的。
匚回冈:划冲:1M :£:+. ■*:+** 4: KJ< 下耳":獸 V3 :K-K :J-Lj!:* 耳*» 耳:+■ H 冲斗:■:甘 M :*KH :(:1£K*:V 矗第 V^Tf.K 斗-K H :4: K*MI :V» 底 Jii 耳:上 h 沖二|. /W I PflFK T£ft_・ Aft5ERJU«C£ tv IP1FME TFfLERfiCFVCHAWCLNC T_EW«LED IV I PWa« UFtERFSOFtTRIOCER_W1_SOFT«RE匸晅凶if (vwllue)V^fim ,l|nn wnsorCtomected = VlFALSE ;chcdfrr (t ribuleVv*n Gi, chvinel Kane, RSNftVP_ATTR_S£KSOFLCOHKClEti. 0,阳 ifviiCh«kErr(・«2輙衲0503»67(1&);Si I [ru M Ruifhonly -1]图1: c 语言中的常量定义我以前在LabVIEW 中编程,还从没注意过这个问题。
一般哪里要用一个常数,直接就 放一个constant 在那里。
如图2。
! <1 > 眉nrvd.h:泄 |\ [(IVLSFECIFECERfOtBASE 4 IJ (IVLSPaiFlCLBRFWC^ 4 ?)t<ir itwles And Function^ .................... ..................... . ..... 电肖比 t*:富十+ 卄■肓底+ ¥:+ *VjJB <2> r»nrvd.c(3 senwrConfwctfrd)Error :r 就errcr :ziFUHCTIOWA*.(fillt"J*!e:Fiji .:( ic-ii;[I皿 ,I j:目;-4 — ....... . bb^ij'lielF:髯 KM +: K*洁事《 Mr|r* 时常 T 半£ 酉H :岀■卅:h-fcH *:* 4 *4f/x- ut :汕就匚 Inrirf-en* :n".⑴世3faZ370*90[ns 靈EEZZlr ■虽 Control 1xt[ Type …,匚叵区|►FP.Pj —-i------ 1I I图2:在LabVIEW 中使用常量的最普遍方法以前编写的LabVIEW 程序都比较小,一般是一个人开发的,所以这样写,也没有太大 的麻烦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在LabVIEW 中使用常量定义
如下图所示,在C语言里,使用#define来定义一个常数是非常基本的用法。
直接使用数字,时间一长,就不只到这个数字是哪来的了。
而且,这种方法也便于修改在程序中多处使用的常量的值。
在C++一般是用const来达到同样的目的。
图1:C 语言中的常量定义
我以前在LabVIEW中编程,还从没注意过这个问题。
一般哪里要用一个常数,直接就放一个constant在那里。
如图2。
图2:在LabVIEW 中使用常量的最普遍方法
以前编写的LabVIEW程序都比较小,一般是一个人开发的,所以这样写,也没有太大的麻烦。
现在编写的程序规模越来越大,最近做的一个项目,VI数量已经上千了,有4个人参与编程。
程序规模大了,不规范就很难维护。
所以开始考虑这个问题。
但是LabVIEW里面没有类似的功能,不知道为什么以前没人提意见?
下面提出几种不算太完美,但有所进步的解决方案。
一种简单的替代方法是使用type define control,自定义一个Ring control。
关于Type Def 的详细信息,可以参考《用户自定义控件中Control, Type Def. 和Strict Type Def. 的区别》。
把要使用的常数作为Ring的值,给他个有意义的文字标签。
在需要时用常数的地方,把这个带type define 的ring常数放上去,而不是直接放数值常量。
这样就解决了上面提到的一个问题:可以有自带的文字说明。
如图3所示。
图3:利用Type Def Ring 的解决方案
但是这样做还是有很多缺陷。
首先是统一修改数值的问题。
在自定义Ring中修改某一项的值,相关的常量不会跟着一起更新;还有一个缺陷是Ring control 不支持多个标签是用同一数值;另外Ring control 也没办法像C 语言中一样使用表达式定义值。
一个改进版的解决方案是使用Enum Type Def 把所有常量名字列出来,再写一个VI 用于得到常量的真实值,如图4所示。
这样解决了不同标签可以返回相同值的问题,也可以自动更新常量值,但是使用表达式还是不方便。
图4:利用Enum Type Def 和subVI
我目前在程序中使用的方法是,把所有要用到的常量,全部做成全局变量。
全局变量可以用Global ,但我喜欢用VI 全局变量。
就是把变量记载shift regisiter 中。
然后,用一个初始化的VI 负责在程序运行开始时初始化所有的全局变量。
这样,以后如果需要更改某一常数值,就只需改这一个VI就可以了。
不过,现在回想,还是用Global 好一些。
我以前测试过,Global 读写的速度比VI 要慢很多,所以我不喜欢Global 。
但是,常量值在程序中用的并不频繁,所以速度不是个问题。
但是数量很多,用VI 表示就不太合适了,每个常数都要创建一个VI 非常费事。
另一个缺点是如果在后面板换用一个常量,还要再拖另一个VI 上来,很麻烦。
用Global 会好一些,但还不是让我太满意。
要想有一个完美的解决办法,只能再造一个新东西了。
@#$%^&* (此处属公司机密,删去256字)。