第4章LabVIEW中的程序结构_第1页
第4章LabVIEW中的程序结构_第2页
第4章LabVIEW中的程序结构_第3页
第4章LabVIEW中的程序结构_第4页
第4章LabVIEW中的程序结构_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精通LabVIEW虚拟仪器程序设计与案例实现第4章LabVIEW中的程序结构第4章 LabVIEW中的程序结构2023/2/5LabVIEW中的程序结构函数→编程→结构第4章 LabVIEW中的程序结构2023/2/5本章内容基本程序结构的使用变量的使用公式节点的使用反馈节点的使用条件与禁用结构的使用第4章 LabVIEW中的程序结构2023/2/5循环结构——For循环

一个完整的For循环体它包含两个端口:循环次数(输入端口)和循环计数(输出端口)。循环次数端口N用于指定框图代码的执行次数,它是一个输入端口,除非应用了自动索引功能,否则用必须输入一个整型数,当连接一个浮点数时,LabVIEW会自动对它按“四舍五入”的原则进行强制转换。

循环次数和循环计数端口的数值范围为0~2^31-1的长整型数,如果给N的赋值为0,则程序一次也不执行。第4章 LabVIEW中的程序结构2023/2/5实例——产生数据点数为1000的正弦波

在做算法仿真时,经常需要产生指定点数的数据波形,最基本的实现方法就是通过For循环+基本函数的方式。第4章 LabVIEW中的程序结构2023/2/5循环结构——For循环For循环的自动索引

正常情况下For循环是要指定循环次数程序才能正常执行的,但如果我们不知道具体的循环次数,那又该如何运用For循环呢?For循环的自动索引功能默认情况下是自动开启的,在自动索引开启的状态下,数据进入循环体时是降维的。

切换索引功能开启与关闭的方法为:鼠标右击索引通道,选择“禁用/启用索引”即可。第4章 LabVIEW中的程序结构2023/2/5实例——自动索引功能使用

在LabVIEW中用框图的嵌套来实现循环嵌套,一层一层执行。第4章 LabVIEW中的程序结构2023/2/5循环结构——For循环For循环的移位寄存器

如果程序后一次的运行需要用到前一次的值,则可以使用移位寄存器,它实际上是For循环和While循环独有的局部变量。

移位寄存器的使用要经过创建和初始化两步。

移位寄存器的左右端口可以成对出现,也可以“一对多”,在“一对多”的情况中要特别注意的是,只能是右侧的“一个端口”对应左侧的“多个端口”,而不能反向。第4章 LabVIEW中的程序结构2023/2/5循环结构——For循环“显式初始化”

“非初始化”

移位寄存器初始化

移位寄存器可以存储的数据类型有:数值型、布尔型、数组、字符串型等。不同初始化方式运行结果

第4章 LabVIEW中的程序结构2023/2/5实例——前100个自然数求和

对于求和的运算,基本可以用For循环+移位寄存器的结构实现,例如求阶乘和、求前1000个素数和等等。

For循环的一个重要应用场合就是知道具体的循环次数。用For循环实现前100个自然数求和如何实现前100个奇数自然数求和?第4章 LabVIEW中的程序结构2023/2/5循环结构——While循环While包含两个端口:条件接线端(输入端口)和循环计数端(输出端口)。While循环也可以用移位寄存器,索引通道,与For循环相同。While循环重复执行循环体内的代码,直到满足某种条件为止,它相当于传统文本编程语言中的DoLoop或Repeat-Until循环。

当While循环开始执行后,外部数据就无法传递到循环体内,所以循环的控制条件一定要放置在循环体内,否则会造成死循环。

第4章 LabVIEW中的程序结构2023/2/5实例——While循环基本应用While循环的停止最常用的方法是用一个“停止”控件,当然,也可以用其它的条件判断来终止While循环的执行。

使用While循环时,建议用户设定循环间隔,因为如果没有循环间隔的话,While循环是“全速”运行的,这样会占用过多的系统资源,尤其是对需要长时间执行的循环。第4章 LabVIEW中的程序结构2023/2/5顺序结构LabVIEW中的顺序结构包括:LabVIEW是图形化的编程语言,程序的执行顺序是基本数据的流向的,也即,数据的连接即指定了程序的执行顺序,没有数据线连接的不同程序块是并行执行的,所以一般情况下不用顺序结构,但在某些特殊时候,如果一定指定某几段程序执行的先后顺序,则要用到顺序结构。

它们的功能是相同的,只是图形形式不同,也即编程时所占用的空间不同。平铺式顺序结构层叠式顺序结构平铺式顺序结构层叠式顺序结构第4章 LabVIEW中的程序结构2023/2/5平铺式顺序结构的数据流向数据流向执行效果第4章 LabVIEW中的程序结构2023/2/5层叠式顺序结构的数据流向数据流向

执行结果第4章 LabVIEW中的程序结构2023/2/5定时结构定时循环定时顺序定时VI平铺式顺序结构函数→编程→结构第4章 LabVIEW中的程序结构2023/2/5定时结构——定时循环开发支持多种定时功能的VI精确定时循环执行时返回值动态改变定时功能或者多种执行优先级平铺式顺序结构

定时循环根据指定的循环周期顺序执行一个或多个子程序框图或帧。

一般在以下情况中可以使用定时循环结构:第4章 LabVIEW中的程序结构2023/2/5定时结构——定时顺序

定时顺序结构由一个或多个子程序框图(也称“帧”)组成,在内部或外部定时源控制下按顺序执行。与定时循环不同,定时顺序结构的每个帧只执行一次,不重复执行。定时顺序结构适于开发只执行一次的精确定时、执行反馈、定时特征等动态改变或有多层执行优先级的VI。第4章 LabVIEW中的程序结构2023/2/5定时结构——定时VI名称图标和端口基本功能创建定时源层次结构根据定时源名称中输入的名称,创建一个层次结构的定时源。清除定时源停止或删除为其它源所创建或指定的定时源。创建定时源创建用于控制定时结构执行的1kHz、1MHz或软件触发定时源发射软件触发定时源使用创建定时源VI创建软件触发定时源。定时结构停止停止名称中输入的定时循环或定时顺序。同步定时结构开始将定时结构名称中输入的定时循环或定时顺序结构名称添加到同步组名称所指定同步组,从而使上述循环或顺序开始同步。第4章 LabVIEW中的程序结构2023/2/5实例——定时循环应用举例

用定时循环产生两个相差指定数据点数的正弦波形,也即两波形起始相位不同,波形总点数可以任意指定。第4章 LabVIEW中的程序结构2023/2/5条件结构

条件结构也即选择结构,用于根据条件判断或者用户选择执行相应的程序代码,相当于C语言中的“case”结构。

条件输入端决定执行哪个子图形的代码,条件输入值可以是整型、字符串型、布尔型或者枚举型,默认情况是布尔型。选择条件标识框里盛放了所有可以被选择的条件,并显示了当前子图形代码被执行的条件。条件结构的设置:条件输入端口增减分支与默认分支数据通道第4章 LabVIEW中的程序结构2023/2/5实例——用条件结构实现正弦波-随机数信号的选择

本例中,主要演示条件选择结构的基本功能。共有3个选项:随机数、正弦波、其它。其中,“随机数”和“正弦波”都分别对应一个分支,并且“正弦波”分支为默认分支,“其它”选项没有对应具体的分支。按条件结构的约定,没有具体分支的选项应该对应“默认分支”。

第4章 LabVIEW中的程序结构2023/2/5事件结构

编写人机交互界面时,经常要用到事件驱动的机制,LabVIEW同样支持事件驱动。(1)创建一个事件结构;(2)设置超时参数;(3)添加或删除事件分支;(4)编辑触发事件结构的事件源;(5)设置默认分支结构(系统默认将超时分支作为默认分支);(6)创建一个While循环,将事件结构包含在While循环体内。事件结构主要包括:

超时端口事件端口事件选择标签代码框事件结构创建步骤:

第4章 LabVIEW中的程序结构2023/2/5事件结构——编辑事件编辑超时事件

添加新事件

第4章 LabVIEW中的程序结构2023/2/5公式节点

通过公式节点,用户不仅可以实现复杂的数学公式,还能通过文本编程写一些基本的逻辑语句,如if…else…、case、while等。

当一个公式或者函数比较复杂时,如果纯粹用图形化的模块就会使程序看上去异常庞大,程序的可读性将大大降低。第4章 LabVIEW中的程序结构2023/2/5公式节点中允许的运算符运算符含义**指数+、-、!、~、++、--一元加、一元减、逻辑非、补位、前向加和后向加*、/、%乘、除、取模(取余)+、–加法和减法>>、<<算术右移和左移>、<、>=、<=大于、小于、大于或等于、小于或等于!=、==不相等、相等&按位与^按位异或|按位或&&逻辑与||逻辑或?:条件判断=op=赋值、计算并赋值,op可以是+、–、*、/、>>、<<、&、^、|、%,或**。在公式节点中可以选用的函数可以在其帮助文件中找到第4章 LabVIEW中的程序结构2023/2/5实例——用公式节点实现复杂函数

在画波形图时,如果用常规的波形图或者波形图表,则横轴是从0开始的,如果想画y关于x的图像,或者说是非均匀采样的图像,则要用XY图或者ExpressXY图,关于这些图形控件的详细说明请参考第5章相关内容。第4章 LabVIEW中的程序结构2023/2/5反馈节点

“反馈节点”的基本功能与移位寄存器是相似的,它的优点在于可以节省空间,使程序看上去更紧凑。用反馈节点实现前N项求和第4章 LabVIEW中的程序结构2023/2/5变量局部变量全局变量共享变量第4章 LabVIEW中的程序结构2023/2/5局部变量程序内部传递数据作为控制量向其它对象传递数据作为显示量接收其它对象传递过来的数据局部变量创建方法1局部变量创建方法2输入/显示转换第4章 LabVIEW中的程序结构2023/2/5实例——用局部变量传递数据

局部变量只能在程序内部传递数据第4章 LabVIEW中的程序结构2023/2/5全局变量局部变量——程序内部传递数据全局变量——程序间传递数据全局变量创建方法1全局变量创建方法2第4章 LabVIEW中的程序结构2023/2/5实例——用全局变量传递数据

用全局变量实现程序间数据传递第4章 LabVIEW中的程序结构2023/2/5禁用结构程序框图禁用结构——类似于C语言中的/*……*/,可用于大段地注释程序禁用结构是从LabVIEW8中开始新增的功能,用来控制程序是否被执行。

条件禁用结构——类似于C语言中通过宏定义来实现条件编译第4章 LabVIEW中的程序结构2023/2/5综合实例1——求100以内能被3整除的自然数和

用For循环确定数据范围用“商与余数”VI实现条件条件判断用“条件结构”实现数据选择第4章 LabVIEW中的程序结构2023/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论