《640第三章 结构.ppt》由会员分享,可在线阅读,更多相关《640第三章 结构.ppt(21页珍藏版)》请在三一办公上搜索。
1、第三章 结构,1.顺序结构2.选择结构3.For循环4.While循环5.公式节点6.全局变量和局部变量,1.顺序结构,在代码式的传统编程语言中,默认的情况是,程序语句按照排列顺序执行,但LabVIEW中不同,它是一种图形化的数据流式编程语言。在图左图中,假设有A、B、C、D个节点,其数据流向如右图所示。按照数据流式语言的约定,任何一个节点只有在所有的输入数据有效时才会执行,所以图中,当且仅当A、B、C个节点执行完,使得D节点的个输入数据都到达D节点后,D节点才执行。但是你要注意,这里并没有规定A、B、C个节点的执行顺序。在LabVIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需要
2、对它们规定一个确定的顺序,那就需要使用本节介绍的“顺序结构”。,图中的右边是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结构类似,这多帧程序在流程图中占有同一个位置。,2.Case(选择)结构,Case结构含有两个或者更多的子程序(Case),执行那一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图,各个子程序占有各自的流程框,在其上沿中央有相应的子程序标识:Ture
3、、False或、。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。,3.公式节点(Formula Node),公式节点是一个大小可变的方框,可以利用它直接在流程图中输入公式。从FunctionsStructures中选择公式节点就可以把它放到流程图中。当某个等式有很多变量或者非常复杂时,这个功能就非常有用。例如等式:y=x2+x+1使用公式节点可以表示为:,利用公式节点可以直接输入一个或者多个复杂的公式,而不用创建流程图的很多子程序。使用文本编辑工具来输入公式。创建公式节点的输入和输出端子的方法是,用鼠标右键单击第0帧的底部边框,选择Add Input(Add Output
4、)。再在节点框中输入变量名称。变量名对大小写敏感。然后就可以在框中输入公式。每个公式语句都必须以分号(;)结尾。,公式节点的帮助窗口中列出了可供公式节点使用的操作符、函数和语法规定。一般说来,它与C语言非常相似,大体上一个用C写的独立的程序块都可能用到公式节点中。但是仍然建议不要在一个公式节点中写过于复杂的代码程序。,请阅读下面这段程序代码,如果X为正数,它将算出X的平方根并把该值赋给Y,如果X为负数,程序就给Y赋值-99。if(x=0)theny=sqrt(x)elsey=-99end if,可以用公式节点取代上面这段代码,如下图所示:注意:公式节点中变量字母X,Y大、小写是有区别的,开方的
5、函数sqrt(X)中函数名称是小写。,4.For循环,For循环用于将某段程序执行指定次数。和While 循环一样,它不会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指定大小和位置的For循环。,For循环将把它的框图中的程序执行指定的次数,For循环具有下面这两个端子:N:计数端子(输入端子)用于指定循环执行的次数。I:周期端子(输出端子)含有循环已经执行的次数。,移位寄存器(Shift Register),移位寄存器可以将数据从一个循环周期传递到另外一个周期。
6、在程序设计中,经常要用到它创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。,移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。,可以令移位寄存器记忆前面的多个周期的数值。这个功能对于计算数据均值非常有用。还可以创建其他的端子访问先前的周期的数据,方法是用鼠标右键单击左边或者右边的端子,在快捷菜单中选择Add E
7、lement。例如,如果某个移位寄存器左边的端口含有三个元素,那么就可以访问前三个周期的数据。,5.While 循环,while 循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的 Do 循环和 Repeat-Until 循环。While 循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为 FALSE。,该循环有如下特点:计数从0开始(i=0)。先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。循环至少要运行一次。,6.全局变量和局部变量,全局变量和局部变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是如果一个程序太复杂的话,有时连线会很困难就需要用到局部变量。全局变量主要是针对不同子程序之间的通信。,使用的注意事项,1.全局变量和局部变量提供了一种违反严格数据流的程序设计方式。用户要想知道在多个并行的程序中一个全局变量什么时候被访问是比较困难的,因此使用全局变量会带来一想不到的错误。同时使用全局变量会造成内存的巨大开销和系统资源的浪费。,