资源描述
第2章数据类型和结构,2.1数值型数据2.2布尔型数据2.3字符串2.4数组和簇2.5波形数据2.6动态数据类型2.7局部变量和全局变量,2.1数值型数据,在前面板窗口中,数值型数据控件位于ALLControlsNumeric子面板中,其中包括数值输入/显示控件、时间标识/显示控件、垂直填充/指示滑动杆、垂直进度/刻度条、水平填充/指示滑动杆、水平进度/刻度条、旋钮、仪表、液管、温度计、带边框颜色盒等。,前面板窗口中,在对象上单击右键,弹出的快捷菜单中可以对数值对象进行多种不同的设置,包括显示栏、控件数据栏、格式精度栏和属性栏。“表示法”选项可以选择不同的数值类型。EXT/DBL/SGL:扩展/双/单精度浮点型I32/I16/I8:带符号长/字/字节整型V32/V16/V8:无符号长/字/字节整型CXT/CDB/CSG:扩展/双/单精度复浮点型,在右键快捷菜单中选择“Properties”,弹出属性对话框,对数值属性进行编辑。,1)外观用于指定对象元素是否可见label:标识前面板和程序框图中的对象Caption:对前面板对象作详细的说明Enabledstation:设置用户是否可以对该对象进行操作。Showradix:勾选复选框显示对象的基数。Showincrements/decrement:显示对象的增量和减量按钮。,2)数据范围为数值对象设置数据范围默认值:可在数值框中键入对象的默认值表示法:为数值数据设置表示法使用默认范围:数据范围:设置数据范围的最大值、最小值和增量范围外动作:当键入的数据超过设定的数据范围,设置处理数据的方式,3)格式与精度对数值对象改变格式与精度格式:位数和精度类型:隐藏无效零:时间格式:日期格式:高级编辑模式:,4)说明信息描述对象的目的并给出使用说明,返回,数值操作节点1)基本数值计算函数:加减乘除开方等一系列基本计算2)数据类型转换:不同数值类型之间的转换,如不同表示法精度之间的转换、与布尔量之间的转换、单位转换等3)复数:其中的节点用来进行复数操作,2.2布尔型数据,仪器设计时有一些控制按钮和指示灯之类的控件,这些控件的数据类型一般为布尔型程序设计过程中进行一些判断时也要用到布尔量布尔型数据的值为真和假,其数值表达式为1和0,前面板中,布尔型控件位于Allcontrolsbooleans,其中包括开关按钮、翘板开关、摇杆开关、指示灯、按钮、单选按钮等控件,在前面板窗口中的控件上单击右键,通过弹出的快捷菜单可以对空间进行设置,大部分菜单选项与数值对象的菜单相同,不同之处在于布尔控件的机械动作设置项机械动作设置主要针对开关、按钮之类的布尔控件,实际的机械开关和按钮在操作过程中有个一个时间间隔,机械动作设置实际上就是模拟实际开关设备的动作状态,布尔控件的右键快捷菜单中选择“属性”,弹出属性对话框,对控件的属性进行设置,1)外观指定对象元素是否可见、按钮的颜色等标签、标题、启用状态与数值属性对话框功能相同;颜色:设置对象处于真、假状态时的颜色显示布尔文本:勾选复选框显示用于指示布尔对象状态的文本,同时可以对开时文本和关时文本进行编辑,2)操作为布尔对象改变机械动作按钮动作:设置布尔对象的机械动作动作解释:描述选中的动作按钮所选动作预览:显示具有所选动作的按钮,可以测试按钮的动作指示灯:当预览按钮值为真时,指示灯变量,3)说明信息的内容与数值控件属性相同,布尔型对象的操作节点,位于子面板“FunctionsBoolean”中,与、或、异或、非、复合运算;与非、或非、同或、蕴含;数组元素与/或操作、数值至布尔数组转换、布尔值至(0,1)转换,示例,1、写一个VI判断两个数的大小,如右图所示:当AB时,指示灯亮。,2.写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随即数发生器产生。,3.给定任意x,求如下表达式的值,返回,2.3字符串,字符串在LabVIEW编程中会频繁的用到,因此LabVIEW封装了功能丰富的字符串函数用于字符串的处理,用户不需要再像C语言中一样为字符串的操作编写繁琐的程序。前面板上的字符串控件位于ALLControlsstring&path中,字符串控件包括输入控件、显示控件和下拉框。,右击输入控件,弹出快捷菜单字符串有四种显示样式:正常显示显示可打印字符控制字体,不可显示字符显示为小方框显示将所有不可显示字符显示为反斜杠密码显示将每个字符显示为*十六进显示将每个字符显示为十六进制的ASCII码,字符串操作函数位于程序框图函数的”ALLFuntionsString“中,字符串操作函数包括计算字符串长度、连接字符串、搜索替换字符串等操作字符串操作子选板中还包括一个ExpressVIbuildtext,对文本和参数化输入进行组合,创建输出字符串,字符串示例,基本字符串函数示例,表格和树形控件表格(Table)和树形控件在ControlsPalette的Modern-List&Table面板下。表格实际上就是一个字符串组成的二维数组。树形控件以树的形式显示多层内容,Windows的资源管理器就是用树形控件来显示文件目录的。,表格和树形控件示例,返回,2.4数组和簇,数组是相同类型元素的集合,由元素和维数两个参数定义。数组中的元素可以是任何基本数据类型,如数值型、布尔型、字符串型等。,数组操作函数1、数组大小:显示n维数组中每一维中成员数据的个数2、索引数组:得到n维数组的元素或字数组3、替换数组子集:替换数组索引出的元素或字数列,并构成和原数组大小、数据类型完全一致的新数列4、数组插入:5、删除数组元素:6、初始化数组:7、创建数组,数组示例,簇(Cluster)LabVIEW中的结构体变量,与数组类型相似,簇也是复合型数据类型。不同的是,同一数组中只能包含一种简单数据类型,而同一簇中则可以包含多种数据类型的元素。创建簇是要将不同类型的数据打包,访问其中的元素时要先将簇解包。在程序运行过程中,数组的长度可以自由改变,而簇的元素格式则是固定的。,在前面板控件中,簇位于ALLControlsArray&Cluster中,可以向簇框架中添加数值、布尔量、字符串和数组等簇中元素的次序按照加入的先后顺序排列,元素相同但排列不同的簇是不同类型的簇,可以通过右键快捷菜单中的”重排簇中控件“选项重新设定簇中元素的顺序,簇操作函数,1、解包函数(Unbundle)该函数将簇解开从而获得簇中各个元素的值。缺省情况下,它会根据输入的簇自动调整输出端子的数目和数据类型,并按照簇内部元素索引的顺序排列。,2、打包函数(Bundle)该函数用来为Cluster中各元素赋值。,3、按元素名称解包函数(UnbundleByName)普通的解包函数解包后只有将鼠标移到输出端子上才能看到输出元素的名称,程序的可读性不高。该函数可以根据名称有选择的输出簇内部元素。其中元素名称就是指元素的Label。,4、按元素名称打包函数(UnbundleByName)该函数通过簇内部元素名称来给簇内部元素赋值。参考簇是必须的,该函数通过参考簇来获得元素名称。,errorin和errorout簇对于系统错误,code都有预先的定义,可以通过选择Help-ExplainError打开错误解释框来查找该错误代码的更详细的解释。,簇示例,簇示例,返回,2.5动态数据类型,所谓动态数据类型指的是在编写程序时不限制具体的数据类型,而是根据程序运行是动态指定数据类型,这样在编写程序是可以从繁复的数据类型中转换中解脱出来不仅是ExpressVI,在LabVIEW7.1中很多函数和VIs都可以接受动态数据类型的输入,动态数据类型和其他类型之间的转换也非常方便。,2.6局部变量和全局变量,在很多情况下需要在同一VI的不同位置或在不同的VI中访问同一个控件对象,这时控件对象之间的连线就无法实现。这时候就需要用到局部变量或全局变量,通过局部变量或全局变量可以程序框图中的多个地方读写同一个控件。函数模板中的结构子模板(Functions-ALLFunctions-Structures)中,图标分别为,局部变量,局部变量只能在同一程序内部使用,每个局部变量都对应前面板上的一个控件,一个控件可以创建多个局部变量。读写局部变量等同于读写相应控件,局部变量,局部变量,创建局部变量有两种方法从函数选板的Structures子选板中选中LocalVariable节点前面板或程序框图中右击需要创建局部变量的控件选择Create-LocalVariable选项创建该控件的局部变量,局部变量,读写局部变量的方法与读写控件对象的方法完全一样,全局变量,通过全局变量可以在不同的VI之间进行数据交换,一个全局变量的VI文件中可以包含多个不同数据类型的全局变量。LabVIEW中的全局变量是以独立的VI文件形式存在的,这个VI文件只有前面板,没有程序框图,不能进行编程。,注意:,使用局部变量和全局变量时要避免竞争现象。例如在程序不同的两个地方同时写同一个的对象的局部变量或全局变量,就会产生竞争现象,这时变量的值是无法预期的。因此我们必须要注意程序的执行顺序,避免竞争现象,返回,练习,1.为第5章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23”,正常情况下输出空字符串。,2.对字符串进行加密,规则是每个字母后移5位,例如A变为F,b变为g,x变为c,y变为d,3.利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速油门*100,档位控制时速,时速档位*40,油量随VI运行时间减少。,
展开阅读全文