欢迎来到天天文库
浏览记录
ID:37593630
大小:278.26 KB
页数:35页
时间:2019-05-12
《虚拟仪器labview第六讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章结构与属性Labview采用结构化数据流图编程,能够处理循环、顺序、条件和事件等程序控制的结构框架,这是Labview编程的核心,也是区别于其他图形编程开发环境的独特与灵活之处。属性节点也是Labview为增强图形化编程功能而设置的前面板对象特征。6.1For循环For循环用于将某段程序执行指定次数。调用For循环节点时,不会立刻出现在流程图中,而是出现一个小的图标,而后可以修改图标的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指定大小和位置的For循环。For循环的组成最基本的For循环由循环框架(Lo
2、opFrame)、重复端口(LoopIteration)和计数端口(LoopCount)组成。重复端口i的初始值为0,每次循环的递增步长为1。注意:i的初始值和步长在Labview中是固定不变的,若要用到不同的初始值或步长,可对重复端口产生的数据进行一定的数据运算,也可用移位寄存器来实现。循环次数N在程序运行前必须赋值,通常情况下,N为整型数字,若为其他数据类型,For循环会自动将其转换成整型。移位寄存器(ShiftRegister)移位寄存器可以将数据从一个循环周期传递到另外一个周期。在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷
3、菜单中选择AddShiftRegister。移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。可以令移位寄存器记忆前面的多个周期的数值。这个功能对于计算数据均值非常有用。还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择AddElement。例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数
4、据。数据在移位寄存器中的流动过程当For循环在执行第0次循环时,For循环的数据缓冲区并没有存储,所以,在使用移位寄存器时,必须根据编程需要对左侧的移位寄存器进行初始化。否则,左侧的移位寄存器在第0次循环时的输出值为默认值,数字的默认值为0,字符串的默认值为空字符,布尔数据的默认值为False。另外,连至右侧移位寄存器的数据类型用于初始化左侧移位寄存器的数据类型必须一致。框架通道(LoopTunnel)框架通道是For循环与循环外部进行数据交换的数据通道,其功能是在For循环开始运行前,将循环外其他节点产生的数据送至循环内,供循环框架内的节点使用。还可在循环运行结束时,将循环框架内
5、节点产生的数据送至循环外,供循环外的其他节点使用。框架通道有两种属性:有索引(EnableIndexing)和无索引(DisableIndexing),分别用于传递数组和标量。例题:求n!反馈节点(FeedbackNode)创建反馈节点时,必须将该节点放至For循环或While循环的框架内部,一个新的反馈节点包含两部分,初始化端口和反馈节点本身,初始化端口用于初始化反馈节点的初始值。使用反馈节点实现n!例题:求0到99之间所有偶数的和例题:用For循环产生一个长度为5的随机数组数组的求和For循环还有一种很有特色的功能,称之为自动索引(AutoIndexing)功能,当将一个数组连
6、接到For循环上供For循环内的节点使用时,For循环可以自动检测该数组的长度,执行相应次数的循环,并按顺序将数组内的元素一一取出。For循环的特点一旦确定了For循环执行的次数,并开始执行后,就必须在执行完相应次数的循环后,才能终止其运行。若确实需要根据某种逻辑条件跳出循环,可用While循环来替代For循环。6.2While循环While循环可以反复执行循环体的程序,直至到达某个边界条件。其循环次数不能预先确定。最基本的While循环由循环框架(LoopFrame),重复端口(LoopIteration),以及条件端口(LoopCondition)组成。条件端口有两种使用状态:
7、StopifTrue和ContinueifTrue。每一次循环结束时,条件端口会检测通过数据连线输入的布尔值,并根据输入的布尔值和其使用状态决定是否继续执行循环。While循环的使用避免出现死循环。While循环的特点6.3顺序结构在传统编程语言中,程序有明确的顺序执行,即程序按照程序代码从上到下的顺序执行,每个时刻只执行一步,这种执行方式称为控制流(ControlFlow)。而Labview却是一种数据流(DataFlow)语言,只有当某个节点的所有输入均有效时,L
此文档下载收益归作者所有