第3章 编辑程序代码 联系客服

发布时间 : 星期五 文章第3章 编辑程序代码更新完毕开始阅读dfa92e0c6c85ec3a87c2c59f

第三章 编辑程序代码

本章主要介绍LabVIEW代码创建和编辑,与其他文本类的编程语言一样,LabVIEW有自己的数据类型、逻辑结构和运算函数。但作为以图标为最小单位的编程语言,LabVIEW的程序设计方法有着自己独特的风格。

用户在前面板创建的所有的控件对象(控制件和显示件)都自动的在代码窗口产生相应的数据变量图标,以便通过代码对控件对象的属性和行为进行控制。控件对象上的标签与数据变量图标的标签是一致的,同时变量图标的颜色代表着自身的数据类型。

3.1LabVIEW的数据类型

LabVIEW的数据类型按其功能可以分为两类即常量和变量,变量又分为控制类变量和显示类变量。按其特征基本上也可以分为两大类,数字量类型和非数字量类型,并用不同的图标来代表不同的数据类型。原则上数据是在相同的数据类型的变量之间进行交换的,但LabVIEW同时拥有自己的数据类型转换机制,这也提供了一种程序的容错机制。

3.1.1LabVIEW的数字量数据类型

1.单字节整数类型:以8位二进制代码表示的整数(8-bit)。包含有符号的单字节整数类型(取值范围是0 ~ 255)和无符号的单字节整数类型(取值范围是-128~ 127)两种,分别以蓝色线框图标和来表示。

2.双字节整数类型:以16位二进制代码表示的整数(16-bit)。包含有符号的双字节整数类型(取值范围是0 ~ 65,535)和无符号的双字节整数类型(取值范围是–32,768 ~ 32,767)两种,分别以蓝色线框图标和来表示。

3.长整数类型:以32位二进制代码表示的整数(32-bit)。包含有符号的长整数类型(取值范围是0 ~ 4,294,967,295)和无符号的长整数类型(取值范围是–2,147,483,648 ~ 2,147,483,647)两种,分别以蓝色线框图标和来表示。

4.单精度浮点数类型:LabVIEW以32-bit IEEE标准格式存储单精度浮点数,分为实数单精度浮点数类型和复数单精度浮点数类型(正数取值范围是1.40e-45 ~ 3.40e+38,负数的取值范围是-1.40e-45 ~- 3.40e+38,取值范围对复数的实数部分和虚数部分均有效)。分别以橙色线框图标和来表示。

5. 双精度浮点数类型:LabVIEW以64-bit IEEE标准格式存储双精度浮点数,分为实数双精度浮点数类型和复数双精度浮点数类型(正数取值范围是4.94e–324 ~1.79e+308,负数的取值范围是-4.94e–324 ~-1.79e+308,取值范围对复数的实数部分和虚数部分均有效)。分别以橙色线框图标和来表示。

6.扩展精度的浮点数类型:分为实数扩展精度的浮点数类型和复数扩展精度的浮点数类型。该数据类型的精度和占用内存的大小根据不同的操作系统而异。在Windows 和Linux平台中的取值范围是:正数取值范围是6.48e–4966 ~1.19e+4932,负数的取值范围是-6.48e–4966 ~-1.19e+4932,取值范围对复数的实数部分和虚数部分均有效。分别以橙色线框图标和来表示。

上述6种数据类型,随着精度和取值范围的不断扩大,相应的变量和常量占用的内存也是不断增大的。因此一般在设计程序时,在满足变量取值范围的前提下,尽可能的选用比较

小的数据类型。当然有些情况下变量的取值范围是不能确定的,这时可以取较大的数据类型以保证程序的安全性。

以上给出数据类型的图标都是控制量图标,相应显示量图标与控制量图标的不同之处在于显示量图标的边框比较薄。如和分别代表双精度浮点数类型的控制量和显示量。其它数据类型的控制量和显示量图标与之雷同。

3.1.2LabVIEW的非数字量数据类型

1.布尔量数据:LabVIEW使用8-bit(一个字节)的数值来存储布尔量数据。如果数值为0,布尔量数据为FALSE,其他非0数值代表TRUE。LabVIEW用绿色线框的图标表示布尔量数据。

2.数组类型:LabVIEW以句柄或指针(包含长整形的每一维的大小,及相应的数据)来存储数组数据类型。如果句柄为0,表示数组为空数组。不同数据类型的数组的图标是将原来数据类型的图标中的文本部分加上括号([])。如和分别代表布尔类型控制量及其数组的图标。关于数组和簇的详细介绍请参考第四章。

3.字符串类型:LabVIEW以单字节整数的一维数组来存储字符串数据。字符串数据类型以粉红色边框的图标来表示。

4.路径数据类型:LabVIEW以句柄或指针(包含路径类型、及路径成员的数量和路径成员)来存储数据类型。以绿色边框的图标表示。

5.簇数据类型:LabVIEW根据簇中成员的顺序使用相应的数据类型来存储不同的成员。数字量簇以图标表示,混合类型的簇以图标表示。

6.参考数据类型:LabVIEW使用参考来作为某一对象的唯一标识符,对象可以是文件、设备和网络连接等。由于参考是指向某一对象的临时指针,因此它仅在对象被打开时有效,一旦对象被关闭,LabVIEW就断开了与参考与对象的连接。以绿色边框的图标来表示。

7.波形数据类型:代表由数学函数产生的波形数据。类似于簇的数据类型,以橙色边框的图标来表示。

8.IO通道名类型:用来表示DAQ的IO通道名称。以紫色边框的图标来表示。 9.多义数据类型:指一个变量可以连接不同的数据类型。比如对于LabVIEW内置的加法函数,其输入端口可以同时连接整形数据也可以同时连接浮点型数据。大多数LabVIEW函数都提供多义数据接口。以紫色边框的图标来表示。

10.可变数据类型:这是LabVIEW提供的一种比较通用数据类型,以紫色边框的图标来表示,这种数据类型可以和以下的LabVIEW数据类型相互转换:所有的数字类型包括有符号和无符号的整数或浮点数,布尔量数据类型,字符串数据类型,参考数据类型,上述所提到的数据类型的数组和簇。

3.2程序代码的基本元素

3.2.1常数、函数和VI

LabVIEW提供的编程元素都放置在函数模板中,关于函数模板的介绍请参见第一章的内容。函数模板及其子模板中的各个对象可以分为常数、函数和VI程序。函数是LabVIEW系统内建的程序,用户无法看到该程序的代码,一般函数的图标的底色为黄色。函数模板

上的VI程序是系统提供的LabVIEW程序,用户可以阅读该函数的代码,这样可以很容易的在此基础上进行修改以形成用户自己的程序。LabVIEW同其他编程语言一样,具有模块化的层次结构,因此,基本的程序元素除常数、系统提供的函数和VI程序外还有用户的子程序,用户的子程序与系统提供的VI程序具有相同的属性。

3.2.2程序和函数端口

代码窗口中的程序元素一般都提供与外部调用者之间的接口,这个接口我们称之为端口。LabVIEW的程序数据流按照一定的规则在端口之间流动。当鼠标选择了接线工具后,当鼠标在函数或VI程序上移动时,端口会动态的出现,以便于完成连线工作。对于变量而言,根据其端口的位置就可以很容易的分辨出该变量是控制量还是显示量。控制量端口在图

图3.1

标的右端,显示量端口在图标的左端如图3.1所示。对于VI程序而言,端口分为输入端口和输出端口,输入端口只能连接控制量,输出端口只能连接显示量。函数和VI程序的端口的数量和位置根据其功能的不同而各异。

3.2.3基本的运算函数

系统的函数模板包含了所有的代码元素,并分类存放于不同的子模板中。不同功能的函数子模板将在后续的相应的章节中介绍。在文本编程语言中,如VB、VC++,算术运算符和逻辑运算符单独作为关键字提出,而在LabVIEW中,这些基本的运算符都是作为函数放在函数模板中。此处我们介绍最基本的运算函数,即函数模板中的数字量子模板和布尔量子

图3.2

模板中的基本运算函数如图3.2所示。数字量运算函数依次为加法函数、减法函数、乘法函数、除法函数、加1函数、减1函数、数组加法函数、数组乘法函数。布尔量运算函数依次为与逻辑函数、或逻辑函数、异或逻辑函数(输入不同则为True,否则为False)、反(非)逻辑函数、与非逻辑函数、或非逻辑函数、同或逻辑函数(输入相同则为True,否则为False)、隐含逻辑函数。

3.3代码图标的编辑和控制

3.3.1代码的创建

在前面板设计过程中,面板上每增加一个显示件或控制件,在代码窗口中就相应的增加一个显示量或控制量。除此之外的其他代码就需要通过函数模板来创建,而且在代码窗口也可以直接创建显示量和控制量,则在前面板同时出现相应的显示件和控制件。以下介绍如何

图3.3

在代码窗口中创建代码。

图3.4

图3.5

创建新的程序‖代码连线.vi‖。激活代码窗口,函数模板Functions ? Numeric ? Multiply,完成了乘法函数的选取,用鼠标拖动放置在代码窗口中。该函数有两个输入端口(乘数和被乘数)及一个输出端口(积)。用鼠标选择连线工具,当鼠标依次靠近每一个端口时,系统提示该端口的用法提示,如图3.3所示。下面在X端口创建数字量控制件,在Y端口创建常数。

在X端口处鼠标右击,在弹出的快捷菜单中选择Create ? Control,如图3.4所示。则系统直接在该端口连接一个数字量控制件;同样在Y端口处鼠标右击,选择Create ? Constant,输入常量5.0;在X*Y端口处鼠标右击,选择Create ? Indicator。这样就完成了简单的乘法运算的基本程序,如图3.5所示。

现在我们在给程序增加一点简单的程序控制结构,while 循环,Functions ? Structures ? While Loop。右键单击循环控制图标,选择菜单Stop If True,是循环控制图标变为。选择接线工具,右键单击图标,选择菜单Create Control,则在前面板创建布尔量控制按钮Stop,程序运行后如图3.6所示。在程序代码窗口中通过快捷方式创建的对象,也可以在前面板中通过控件模板来创建。而常量也可以在函数模板中创建,Functions ? Numeric ?