LaBVIEW第三章程序结构课件.pptx

上传人(卖家):三亚风情 文档编号:3372510 上传时间:2022-08-24 格式:PPTX 页数:52 大小:2.38MB
下载 相关 举报
LaBVIEW第三章程序结构课件.pptx_第1页
第1页 / 共52页
LaBVIEW第三章程序结构课件.pptx_第2页
第2页 / 共52页
LaBVIEW第三章程序结构课件.pptx_第3页
第3页 / 共52页
LaBVIEW第三章程序结构课件.pptx_第4页
第4页 / 共52页
LaBVIEW第三章程序结构课件.pptx_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、LaBVIEW第三章程序结构第三章程序结构一、循环结构一、循环结构1、While 循环循环2、For 循环循环While 循环示意图 While 循环创建循环创建创建方法:选中单击左键拖动释放左键While 循环结构循环结构While 循环结构说明循环结构说明1、重复端子:用于记录和输出已执行的循环的次数,2、条件端子:循环是否终止的条件端子。i的初始值为零。输入的是一个布尔变量:真或假,While循环将一直执行到连接条件端子上的布尔值变成真或假为止,取决于条件端子设置为“真(T)时停止”还是“真(T)时继续”。3、在条件端子上单击右键即可进行更改。如图:4、While循环是一种框图上的容器对

2、象,即其内部可循环嵌套。While循环框图内添加代码,有两种方法:1、结构创建好后添加代码;2、在已有程序代码的基础上添加结构。While 循环运行流程 While While 循环可以反复执行循环体的程序,直至到循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的达某个边界条件。它类似于普通编程语言中的 Do Do 循环。循环。While While 循环的框图是一个大小可变的方框,循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布用于执行框中的程序,直到条件端子接收到的布尔值为尔值为 FALSEFALSE。该循环有如下特点:该循环有如下特点:

3、(1 1)计数从)计数从0 0开始(开始(i=0i=0)。)。(2 2)先执行循环体代码,而后)先执行循环体代码,而后i+1i+1,如果循环只执,如果循环只执行一次,那么循环输出值行一次,那么循环输出值i=0i=0。(3 3)根据条件端子进行判断是否继续循环。)根据条件端子进行判断是否继续循环。(4 4)WhileWhile循环中的代码至少要运行一次。循环中的代码至少要运行一次。While 循环运行流程 While 循环运行流程类似于如下的文本语言的伪代码:DO 执行子框图 While 条件判断的结果为继续循环例:利用While循环产生随机数,当产生的随机数大于0.8时,循环停止。步骤如下:1

4、.打开前面板,新建两个数值显示控件,一个为循环次数,一个显示最后产生的那个大于0.8的随机数。如图:2 切换到程序框图,放置一个While循环,如左图:3.放置随机数函数到While循环内,并连线,如右图:4.放置比较函数,将循环次数与重复端子连线,如左图:5运行,即可在前面板上看到结果,如右图:在程序框图中,在数值显示控件上单击右键,可更在程序框图中,在数值显示控件上单击右键,可更改数值的类型,如图:改数值的类型,如图:注意:注意:WhileWhile循环的条件端子一定要有连线,否循环的条件端子一定要有连线,否则程序无法运行!如图:则程序无法运行!如图:作业作业:练习:练习312、For 循

5、环循环 For For循环用于将某段程序执行指定次数。和循环用于将某段程序执行指定次数。和While While 循环一样,它不循环一样,它不会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指定大小和位置的定大小和位置的ForFor循环。循环。2、For 循环循环 ForFor循环位于函数

6、循环位于函数编程编程结构结构ForFor循环,如前图:循环,如前图:从图中可以看到,从图中可以看到,ForFor循环将把它的框图中的程序执行指定循环将把它的框图中的程序执行指定的次数,的次数,ForFor循环具有下面这两个端子:循环具有下面这两个端子:N:N:计数端子(输入端子)计数端子(输入端子)用于指定循环执行的次数。用于指定循环执行的次数。I:I:重复端子(输出端子)重复端子(输出端子)含有循环已经执行的次数。含有循环已经执行的次数。上图显示了一可以产生上图显示了一可以产生100100个随机数并将数据显示在一个个随机数并将数据显示在一个图表上的图表上的ForFor循环。在该例中,循环。在

7、该例中,i i 的初值是的初值是0 0,终值是,终值是9999。ForFor循环举例:产生循环举例:产生1010个随机数,并把最后一个显示出来。个随机数,并把最后一个显示出来。步骤如下步骤如下:1 1 放置一个数值显示控件到前面板,并改名为随机数。放置一个数值显示控件到前面板,并改名为随机数。2 2 放置放置ForFor循环到程序框图,如图:循环到程序框图,如图:3放置随机数函数到程序框图,并连线。4计数端子上单击右键,选择创建常量,并输入10,如图:5 5运行程序,便可在前面板上看到结果。运行程序,便可在前面板上看到结果。6 6因为程序的运行的速度非常快,我们无法一个一个地看因为程序的运行的

8、速度非常快,我们无法一个一个地看清所产生的清所产生的1010个随机数,我们可以在程序框图中添加时个随机数,我们可以在程序框图中添加时间延迟控件。它位于函数间延迟控件。它位于函数编程编程 定时定时时间延迟,时间延迟,如图:如图:7 7放置它到程序框图上,选择延迟的时间,即两次循环之放置它到程序框图上,选择延迟的时间,即两次循环之间的时间间隔。如图:间的时间间隔。如图:8 8将时间设置为将时间设置为1.0001.000,点击确定即可,再运行程序就可从,点击确定即可,再运行程序就可从前面板上看到所产生的随机数了。前面板上看到所产生的随机数了。练习3-2 使用For循环循环结构内外数据交换采用:隧道建

9、立隧道方法。自动索引,针对数组而言。3、移位寄存器 移位寄存器用于For循环或While循环中从一个迭代传输数据到下一个迭代,它由循环垂直边框上一对反向相反的端子组成。添加方法:在边框上单击右键,选择添加移位寄存器,就可进行添加。如图:右端子(带向上箭头的矩形)在每完成一次迭代后存储数据,移位寄存器将上次迭代的存储数据在下一次迭代开始时移动到左端子(具有向下箭头的矩形)上。移位寄存器可存储任何数据类型,包括数字,布尔,字符串和数组,但连接到同一个寄存器端子上的数据必须是同一类型。移位寄存器的类型与第一个连接到其端子之一的对象数据类型相同。下面是1234100的程序,如图:说明:进行第一次运算的

10、是0+0,For循环中的重复端子是从0开始计数,移位即寄存器在没有初始化的情况下,默认的数值是0,所以第一次运算的是0+0,第二次运算的是寄存器的0与重复端子的1相加,所以循环要进行101次。而计数端子输出的数据始终是101。移位寄存器的初始化移位寄存器的初始化是非常必要的,因为只要用户不退出VI,移位寄存器便可记录上次运算完时的结果,所以上面的程序在第二次执行时输出的结果不是5050,而是10100!添加初始化即可,如图:例:计算例:计算 1 12 2!3 3!4 4!+n!+n!在前面板上放置一个数值输入控件“阶次n”和一个数值显示控件“求和结果”在程序框图上放置两个For循环嵌套结构,外

11、层循环的计数端口与“阶次n”连接,输出是各个数的阶乘所组成的一个数组。它的重复端子加1作为内层循环的循环次数,内层循环利用一个移位寄存器实现阶乘运算,移位寄存器的初始值设为1。同样在程序框图的右边在放置一个For循环结构,它的计数端子没有任何连接数据,使用的是自动索引功能。这个循环的作用是对由阶乘所组成的一个数组进行索引,对索引出的各个元素进行求和计算,最后将计算结果输出给“求和结果”。完成连线,如右图:完成连线,如右图:运行结果,如右图:运行结果,如右图:4、反馈节点反馈节点和只有一个左端子的移位寄存器的功能相同,同样用于在两次循环之间传递数据。它是一种更简洁的表达方法。(P66)二、分支结

12、构:Case Case Case结构含有两个或者更多的子程序(结构含有两个或者更多的子程序(CaseCase),执行哪一个取决于与选择端子或者选择对象的外部执行哪一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的的值。必须选择一个默认的CaseCase以处理超出范围的以处理超出范围的数值,或者直接列出所有可能的输入数值。数值,或者直接列出所有可能的输入数值。CaseCase结结构见下图,各个子程序占有各自的流程框,在其上构见下图,各个子程序占有各自的流程框,在其上沿有相应的子程序标识:沿有相应的

13、子程序标识:TureTure、FalseFalse或、或、。按钮用来改变当前显示的子程序(各子程序。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。是重叠放在屏幕同一位置上的)。1、分支结构的组成、分支结构的组成子框图区域按钮条件端子(选择器端子)条件端子相当于C语言的switch后面的变量,每个分支按钮标签相当于case后的常量表达式。CaseCase结构举例结构举例 目的:创建一个目的:创建一个VIVI以检查一个数值是否为正以检查一个数值是否为正数。如果它是正的,数。如果它是正的,VIVI就计算它的平方根,就计算它的平方根,反之则显示出错。反之则显示出错。1.1.打开一

14、个新的前面板,并按照下图所示创打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。象用于显示该数值的平方根。照下图创建流程图。照下图创建流程图。3.3.从从FunctionsStructuresFunctionsStructures中选择一个中选择一个 CaseCase结构,并放置在在流程图中。结构,并放置在在流程图中。Case Case 结构是一个可以改变大小的方框。先来做结构是一个可以改变大小的方框。先来做TureTure的情况,照流程的情况,照流程图上半部分构造。图上半部分构造。(1 1)Greater O

15、r Equal To 0?Greater Or Equal To 0?函数(函数(FunctionsComparisonFunctionsComparison)如果如果输入数值大于或者等于输入数值大于或者等于0 0就会返回一个就会返回一个TRUETRUE值。值。(2 2)Square Root Square Root 函数(函数(FunctionsNumericFunctionsNumeric)返回输入数值的平方返回输入数值的平方根。根。(3 3)连好线)连好线(4 4)点击)点击CaseCase框的选择按钮,转入框的选择按钮,转入FalseFalse情况编程情况编程(5 5)数值常数()数值

16、常数(FunctionsNumericFunctionsNumeric)这里用于显示错误的代数值这里用于显示错误的代数值-999.00999.00。(6 6)One Button DialogOne Button Dialog函数(函数(FunctionsTime&DialogFunctionsTime&Dialog)在这里在这里它用于显示一个对话框,内容是它用于显示一个对话框,内容是Error.Error.。(7 7)字符串常数)字符串常数 (FunctionsString)(FunctionsString)用用Edit Text ToolsEdit Text Tools在对话框在对话框中输

17、入字符串。中输入字符串。(8 8)该)该VIVI在在TRUETRUE或者或者FALSEFALSE情况下都会执行。如果输入的数值情况下都会执行。如果输入的数值大于等于大于等于0 0,VIVI会执行会执行TRUE CaseTRUE Case,返回该数的平方根,否,返回该数的平方根,否则将会输出则将会输出999.00999.00,并显示一个对话框,内容为,并显示一个对话框,内容为Error.Error.。4.4.返回前面板,运行该返回前面板,运行该VIVI。修改标签为。修改标签为NumberNumber的数字式控制的数字式控制对象的数值,分别尝试一个正数和负数。注意,当把数字对象的数值,分别尝试一个

18、正数和负数。注意,当把数字式控制对象的值改为负数时,式控制对象的值改为负数时,LabVIEWLabVIEW会显示会显示CaseCase结构的结构的FALSE CaseFALSE Case中设置的出错信息。中设置的出错信息。5.5.保存该保存该 VI VI 到到LabVIEWActivity LabVIEWActivity 目录中的目录中的Square Square Root.viRoot.vi。本练习中的流程图功能相当于代码式编本练习中的流程图功能相当于代码式编程语言中的下列伪代码:程语言中的下列伪代码:if(Number=0)then Square Root Value=QRT(Number

19、)else Square Root Value=-999.00 Display Message Error.end if 三、顺序结构三、顺序结构顺序结构类似C语言的goto语句,它是一种图形化的数据流式编程语言。在下面的左图中,假设有A、B、C、D个节点,其数据流向如下图所示。按照数据流式语言的约定,任何一个节点只有在所有的输入数据有效时才会执行,所以图中,当且仅当A、B、C 个节点执行完,使得D节点的个输入数据都到达D节点后,D节点才执行。顺序结构顺序结构 但是你要注意,这里并没有规定A、B、C 个节点的执行顺序。在LabVIEW中这种情况下,A、B、C的执行顺序是不确定的,如果你需要对它

20、们规定一个确定的顺序,那就需要使用本节介绍的“顺序结构”。右图是顺序结构的图标,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。与Case结构类似,这多帧程序在流程图中占有同一个位置。顺序结构顺序结构 1、堆叠顺序结构堆叠顺序结构:与case结构相似,都是在框图窗口的同一位置堆叠多个子框图。每个子框图都有自己的序号,执行时,按照序号从小到大逐个执行,最小序号是0,每个子框图称为一个帧。优点:节省框图窗口空间。2、平铺顺序结构平铺顺序结构:可实现堆叠顺序结构同样的功能,其区别在于表现形式不同。优点:当帧数不多时,把每个帧平铺,比较直

21、观,方便代码阅读。3、添加局部变量添加局部变量:在堆叠顺序结构中,用添加局部变量的方法,使接入该变量的数据在当前帧后面的各个帧中可以作为输入数据使用。平铺顺序结构可以不添加局部变量,因为每个帧都是可见的,不需要借局部变量机制在帧之间传送数据。例题:创建一个 VI,计算生成等于某个给定值的随机数所需要的时间。1、打开一个新的前面板,并按照下图所示创建对象。、打开一个新的前面板,并按照下图所示创建对象。假设约定数据是到100范围的整数。当前值用于显示当前产生的随机数。“执行次数”用于显示达到指定值循环执行的次数。匹配时间用来显示达到指定值所用的时间。流程图1、在流程图中放置顺序结构(Functio

22、nsStructuresFunctionsStructures)。用鼠标右键单击帧的边框,在快捷菜单中选择Add Frame AfterAdd Frame After,创建一个新帧。重复这个步骤,再创建一个帧。共桢。2、选中第桢,设置读取初始时间(子)程序。第0帧的下边框上含有一个小方框,其中有一个箭头。这个方框叫做顺序局部变量,可以在同一个顺序结构中的各个帧之间传递数据。用鼠标右键单击第0帧的底部边框,选择Add Sequence Add Sequence LocalLocal,创建顺序局部变量。顺序局部变量显示为一个空的方块。当您将某个功能函数与顺序局部变量相连时,方块中的箭头就会自动显示

23、。Tick Count(ms)函数(FunctionsTime&DialogFunctionsTime&Dialog)返回启动到现在的时间(以毫秒为单位)。在这里例子里需要使用两个这个函数。另一个在第帧中。3、按图连好线。转入第帧。该帧是匹配计算,内含一个循环结构。该图中使用的新函数有:Round to Nearest函数(FunctionsNumericFunctionsNumeric)在该例中,它用于取0到100之间的随机数到距离最近的整数。Not Equal?函数(Functions ComparisonFunctions Comparison)在该例中,它将随机数和前面板中设置的数相比

24、较,如果两者不相等会返回TRUE值,否则返回FALSE。Increment函数(FunctionsNumericFunctionsNumeric)在该例中,它将While循环的计数器加1。4、按图连好线。转入第帧 在第0帧中,Tick Count(ms)功能函数将以毫秒为单位表示当前时间。这个数值被连到顺序局部变量,这样它就可以被后续的帧使用。在第1帧中,只要函数返回的值与指定值不等,VI就会持续执行While循环。在第2帧中,Tick Count(ms)功能函数以毫秒为单位返回新的时间。VI从中减去原来的时间(由第0帧通过顺序局部变量提供)就可以计算出花费的时间。5、返回前面板,在Numbe

25、r to Match控制对象中输入一个数值,执行该VI。四、公式节点(Formula Node)公式节点是一个大小可变的方框,可以利用它直接在流程图中输入公式。从FunctionsStructures中选择公式节点就可以把它放到流程图中。当某个等式有很多变量或者非常复杂时,这个功能就非常有用。例如等式:y=x2+x+1使用公式节点可以表示为:利用公式节点可以直接输入一个或者多个复杂的公式,而不用创建流程图的很多子程序。使用文本编辑工具来输入公式。创建公式节点的输入和输出端子的方法是,用鼠标右键单击第0帧的底部边框,选择Add Input(Add Output)。再在节点框中输入变量名称。变量名

26、对大小写敏感。然后就可以在框中输入公式。每个公式语句都必须以分号(;)结尾。下面这个例子显示了如何在一个公式节点中执行不同条件时的数据发送。请阅读下面这段程序代码,如果X为正数,它将算出X的平方根并把该值赋给Y,如果X为负数,程序就给Y赋值-99。if(x=0)theny=sqrt(x)elsey=-99end if可以用公式节点取代上面这段代码,如右图所示:注意:公式节点中变量字母X,Y大、小写是有区别的,开方的函数sqrt(X)中函数名称是小写。公式节点中的函数和操作符与C语言中的基本相符,遇到特殊函数时查表即可。例题:创建一个VI,它用公式节点计算下列等式:y1=x 3 x 2+5y2=

27、m*x+bx的范围是从0到10。可以对这两个公式使用同一个公式节点,并在同一个图表中显示结果。前面板:打开一个新的前面板,按照上图(该图中包含运行结果)创建前面板中的对象。波形图显示对象用于显示等式的图形。该 VI使用两个数字式控制对象来输入m和b的值。按照下图创建流程图。在创建某个输入或者输出端子时,必须给它指定一个变量名。这个变量名必须与公式节点中使用的变量名完全相符。公式节点中,在边框上单击鼠标右键,在快捷菜单中选择Add Input,可以创建三个输入端子。在快捷菜单中选择Add Output,创建输出端子。x的范围是从0到10(包括10),就必须连接11到计数端子。Build Arra

28、y(FunctionsArray)在这个例子中,它用于将两个数据构成数组形式提供给一个多曲线的图形中。通过用变形工具拖拉边角就可以创建两个输入端子。返回前面板,尝试给m和b赋以不同的值再执行该 VI。全局变量和局部变量1、全局变量和局部变量是LabVIEW用来传递数据的工具。2、用户也许会经常碰到这样一种情况,既能够对程序中一个控件对象写入数据,又要能够读出它的数据,这在数据流编程中是无法实现的,这也需要用到局部变量或者全局变量3、局部变量:用于一个程序太复杂的话,有时连线会很困难甚至无法连接;一个VI的多个位置实现对前面板控件的访问。4、全局变量:主要是针对不同VI程序之间的通信。局部变量建

29、立局部变量的方法有两种:1、一种是在程序框图中直接添加,如左图;2、另一种方法是右击控件对象,在弹出的快捷菜单中执行“创建/局部变量”如右图。全局变量 全局变量与局部变量不同,它是在不同的程序之间进行通信。LabVIEW的全局变量是一个独立的VI,它是一种特殊的程序,没有程序框图只有前面板,功能是保存一个或多个全局变量,所以也把全局变量程序称为“容器”。建立全局变量:它的建立和局部变量类似,将全局变量拖拽到程序框图中,在它的快捷菜单中执行“打开前面板”,或双击全局变量图标,打开全局变量程序前面板,然后在前面板中添加所需要的全局变量控件,如图,添加了3个全局变量,并保存VI。在打开的对话框窗体中为程序选择想要放置的全局变量。如果最先放置的不是想要的全局变量,可以像对局部变量那样操作,在快捷菜单上选取“选择项”子选项,在列出的所有变量对象中进行选择,或者用操作工具来选择。使用全局变量时必须特别小心,因为它对所有的LabVIEW程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道全局变量的读写位置。用户编辑时既可以向全局变量输入数据,也可以从它读取数据,这一点与局部变量是完全相同的。全局变量的应用较少,这里就不再举例 建立了全局变量以后就可以在其他程序里面调用它,方法是在程序框图上选中“选择VI.”,如图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(LaBVIEW第三章程序结构课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|