第三章程序结构.pptx

上传人:uij****hh 文档编号:96885876 上传时间:2024-03-29 格式:PPTX 页数:51 大小:602.19KB
返回 下载 相关 举报
第三章程序结构.pptx_第1页
第1页 / 共51页
第三章程序结构.pptx_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《第三章程序结构.pptx》由会员分享,可在线阅读,更多相关《第三章程序结构.pptx(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、29-Mar-24虚虚拟仪器器内蒙古科技大学信息学院测控技术教研室29-Mar-243 LabVIEW的程序结构主要的程序结构有:循环(While循环和For循环)选择(Case结构)顺序(Sequence结构)事件(Event结构)29-Mar-243.1 For循环1For循循环的的创建建基本的基本的For循循环结构由循构由循环框、循框、循环次数端口和次数端口和计数端数端口口组成。成。循环框循环框计数端口计数端口循环次数端口循环次数端口29-Mar-242For循循环的工作流程的工作流程For循循环用于将用于将结构中的程序循构中的程序循环执行指定的次数。行指定的次数。在开始在开始For循循

2、环之前,从循之前,从循环次次数端口数端口读入循入循环次数,次数,计数端口数端口输出出0值。接下来接下来执行行For循循环框内框框内框图代代码程序,每程序,每执行一次行一次计数端口数端口值自自动加加1。循循环次数达到次数达到设定定值后,退出循后,退出循环。29-Mar-243For循循环的的时间控制与数据控制与数据传递控制循控制循环速度速度等待下一个整数倍毫秒等待下一个整数倍毫秒。数据数据传递隧道上的数据在循隧道上的数据在循环第一次第一次执行行时进入循入循环边框内。以后不再框内。以后不再理会理会这个数的个数的变化化。例子:循环的数据输入输出29-Mar-244For循循环的数据通道与数的数据通道

3、与数组的自的自动索引索引数据通道是用数据通道是用连线工具工具连接循接循环框内外的数据端口框内外的数据端口时,在框架上自在框架上自动形成的方形通道形成的方形通道图标。图标空心表明此空心表明此时数据通道具有自数据通道具有自动索引功能,索引功能,实心心图标不能不能索引索引。自自动索引是指将循索引是指将循环框外面的数框外面的数组成成员逐个依次逐个依次进入循入循环体内,体内,或将循或将循环框内的数据累加成一个数框内的数据累加成一个数组输出到循出到循环框外面。框外面。29-Mar-24例如:下例如:下图中通道自中通道自动索引功能有效索引功能有效时,每一次循,每一次循环产生一个新的数生一个新的数据,存据,存

4、储在循在循环的的边框通道上,待循框通道上,待循环结束以后,束以后,产生的生的6个数据将个数据将传送到一个数送到一个数组指示器中。自指示器中。自动索引功能无效索引功能无效时,只有最后一次,只有最后一次For循循环产生的生的1个随机数个随机数传到循到循环外。外。空心实心29-Mar-244移位寄存器移位寄存器创建:建:右右击边框,框,弹出一个菜出一个菜单,选择Add Shift Register选项,可添加一个移位寄存器。可添加一个移位寄存器。用途:用途:主要用于主要用于While循循环和和For循循环,将上一次循,将上一次循环的的值传给下下一次循一次循环。数据数据类型:型:数字型、布数字型、布尔

5、型、字符串等型、字符串等。初始化:初始化:在循在循环外将初始外将初始值连到移位寄存器的左端口,有默到移位寄存器的左端口,有默认初初值。还可以存可以存储前几次循前几次循环的的值,在移位寄存器的左端口或右端口上右,在移位寄存器的左端口或右端口上右击鼠鼠标弹出菜出菜单,选择Add Element选项,可,可创建附加的左端口建附加的左端口来存来存储前几次循前几次循环的的值。29-Mar-2429-Mar-245反反馈节点点功能:在循功能:在循环中,将数据从一次循中,将数据从一次循环传递到下一次循到下一次循环。反反馈节点箭点箭头的方向表示数据流的方向。的方向表示数据流的方向。反反馈节点和移位寄存器可以互

6、点和移位寄存器可以互换,在反,在反馈节点或移位寄存点或移位寄存器器图标上上弹出快捷菜出快捷菜单选Replace with shift Register或或Replace with Feedback Node即可。即可。移位寄存器左端口多于移位寄存器左端口多于1个个时不能不能转换为反反馈节点。点。29-Mar-24下面是用移位寄存器(左图)和反馈节点(右图)实现a+的框图程序。29-Mar-243.2 While循环For循环和While循环的区别:For循环要执行预先指定的循环次数。而While循环只有在条件端口接收到的值为False时才停止循环。While循环不必知道循环次数。While循环

7、不满足条件也要执行1次。For循环当N1时1次都不执行。29-Mar-241.While循循环的的创建建While循循环由循由循环框、条件端口和框、条件端口和计数端口数端口组成。成。循环循环框框条件端口条件端口计数端口计数端口29-Mar-242.While循循环的工作流程的工作流程条件端口控制循条件端口控制循环的停止与否。的停止与否。条件端口有两种状条件端口有两种状态:当使用状当使用状态为Stop if True 时,若,若输入入值为Ture,则停止循停止循环。若。若输入入值为False,则继续执行下一次循行下一次循环。当使用状当使用状态为Continue if True 时,若,若输入入值

8、为Ture,则继续执行下一次循行下一次循环。若。若输入入值为False,则停止循停止循环。循循环结束后,才去束后,才去检测条件端口的条件端口的值,因此不管条件是,因此不管条件是否成立,循否成立,循环至少要至少要执行一次。行一次。29-Mar-24计数端口用于数端口用于统计循循环执行的次数,行的次数,While循循环每每执行行一次,一次,计数端口的数端口的值就加就加1。计数端口从零开始数端口从零开始计数,也就是数,也就是说,在第一次循,在第一次循环结束束时,计数端口的数端口的值为0,如果循,如果循环执行了行了10次,次,则计数数端口的端口的值为9。While循循环也具有数据通道索引和移位寄存器、

9、反也具有数据通道索引和移位寄存器、反馈接接点的功能,它点的功能,它们的用法与的用法与For循循环相同,只是相同,只是While循循环的的边框数据通道默框数据通道默认为不能索引。不能索引。29-Mar-24用While 循环实现求X的立方和 29-Mar-243.3 Case结构 1.Case结构的构的创建建Case结构由构由选择框架、框架、选择端口、端口、选择器器标签,以及,以及递增增/递减按减按钮组成。成。选择标签选择标签递增按钮递增按钮递减按钮递减按钮选择框架选择框架选择端口选择端口29-Mar-242Case结构的工作流程构的工作流程Case结构有一个条件选择端口(Selector),根

10、据连到该端口 的值来判断执行哪一个子Case。Selector端口的数据类型有布尔型、数字型和字符串型。3设置置选择结构的默构的默认项应设置一个默置一个默认项来来处理超出条件理超出条件选项范范围的情况。的情况。设置置选择结构默构默认项的方法是在的方法是在选择结构构边框上框上单击鼠鼠标右右键,选择Make This The Default Case。29-Mar-244选择结构数据通道的构数据通道的设置置 输入数据入数据时,每个子,每个子Case框可框可连可不可不连数据通道。数据通道。输出数据出数据时,每个子,每个子Case框必框必须为通道通道连接数据。否接数据。否则程序不能运行,程序不能运行,

11、这时通道的通道的图标是空心的,只有是空心的,只有为每每个子个子Case框的数据端口都框的数据端口都连接数据后,接数据后,图标才才变成成实心。心。Use Default if Unwired可使程序中没有可使程序中没有连线的子的子Case框框输出默出默认值。29-Mar-24CASE0(Add),VI就进行加法运算,CASE1,则VI将进行减法运算。使用了一个数字型Text Ring控制器(在控制模板中的Ring&Enum子模板中)注意:注意:当在一个子Case中建立了一个输出数据通道后,必须给每一个子Case定义输出数据通道。设定默认的子设定默认的子CASE,当所有条件都不满足时,当所有条件都

12、不满足时,执行默认子执行默认子CASE例子例子29-Mar-243.4 顺序结构LabVIEW是一种数据流程序设计语言,没有明确的先后顺序,当节点所有输入端的数据全部有效时,节点才执行。Sequence结构,它是一种先后顺序执行的结构,看上去象电影胶片的帧(Frame),每一帧为一段框图程序,按照帧(Frame)的顺序来执行框图程序。两种形式顺序结构,Flat Sequence Structure平铺式顺序结构和Stacked Sequence Structure层叠式顺序结构。功能相同,区别仅在于表现形式不同。29-Mar-241.顺序序结构的构的创建建在函数模板的在函数模板的Structu

13、res子模板中子模板中选择创建建顺序序结构。构。选取取Stacked Sequence Structure层叠式叠式顺序序结构构。在在结构构边框上面框上面单击鼠鼠标右右键,从,从弹出的快捷菜出的快捷菜单中中选择“Add Frame After”或或“Add Frame Before”可以增加子可以增加子图形代形代码框。框。在在结构构边框上右框上右击弹出的快捷菜出的快捷菜单,选择ReplaceReplace with Flat Sequence,可以将,可以将层叠式叠式顺序序结构构变换为平平铺式式顺序序结构构 29-Mar-242.顺序序结构的工作方式构的工作方式数据数据传递至至顺序序结构构时,

14、层叠式从叠式从标识0开始开始执行,依次行,依次顺序序执行;行;平平铺式从左至右式从左至右执行所有子行所有子图形代形代码框。框。从从结构外面向构外面向顺序序结构写数据构写数据时,可,可连接可不接可不连接接这个数据通道;个数据通道;但是当但是当顺序序结构向外构向外输出数据出数据时,各个,各个图形代形代码框中只能有一个框中只能有一个连接接这个数据通道。个数据通道。代代码框之框之间的数据的数据传递,平,平铺式可从一式可从一帧直接直接连线到另一到另一帧来来传递数据,数据,层叠式叠式则需要通需要通过局部局部变量量Sequence Local来来传送数据。送数据。29-Mar-24在在层叠式叠式顺序序结构的

15、构的边框上面右框上面右击,选择Add Sequence Local即可在当前即可在当前帧创建一个建一个顺序局部序局部变量端口。量端口。将本将本帧中的数据中的数据连接到接到该局部局部变量端口,量端口,该数据就可数据就可传到后面的到后面的帧,该数据不会作用到它前面的数据不会作用到它前面的帧。如下如下图示意了示意了层叠式叠式顺序序结构通构通过局部局部变量量传递数据的情数据的情况。在况。在标识是是1号号帧的一个数据的一个数据传递到到标识是是2号的号的帧进行行“或或”运算,运算,0号号帧不能使用不能使用该数据。数据。29-Mar-24例:使用Sequence结构,设计一个VI,计算产生一个与指定的数字相

16、等的随机数所需花费的时间。读取定时器的当前值 VI程序每隔10ms执行循环四舍五入取整29-Mar-243.5 事件结构1.事件事件结构的构的创建建 事件事件结构包括:构包括:结构框、事件构框、事件标签、超、超时端口和事件数据端口。端口和事件数据端口。事件标签事件标签:说明当前框图程序是响应说明当前框图程序是响应的什么事件的什么事件。超时端口,超时端口,默认默认值为值为-1,表示无,表示无限等待限等待。事件数事件数据端口据端口 结构框结构框 29-Mar-242事件事件结构的使用构的使用可有一个或多个子可有一个或多个子图形代形代码框,框,该图形代形代码框可以框可以设置置为响响应多多个事件。个事

17、件。右右击事件事件结构构边框,从框,从弹出的快捷菜出的快捷菜单中中选择Edit Events Handled by ThisCase,这时将将弹出出编辑事件事件对话框。框。显示当前建立的事件,显示当前建立的事件,默认默认“Timeout事件。事件。增加事件增加事件删除事件删除事件 可以选择可以选择的事件源的事件源 相应的事件源可相应的事件源可产生的事件消息产生的事件消息 29-Mar-24例如:建立一个5秒的超时事件和一个“OK Button”开关值发生变化的事件 要求:要求:方法方法1:任一事件:任一事件发生都生都执行同一个子行同一个子图形代形代码框框程序,程序,显示出示出对话框框“超超时或

18、或单击了了OK按按钮”。方法方法2:由不同的框:由不同的框图程序响程序响应不同的事件,不同的事件,显示示出出对话框框“超超时事件事件”或或“单击了了OK按按钮事件事件”。29-Mar-24法法1:在前面板添加放置一个在前面板添加放置一个“OK Button”控件控件。在在编辑事件事件对话框中框中单击按按钮 新建一个事件,新建一个事件,选取取“EventSources”事件源窗口中的事件源窗口中的“OK Button”,并在,并在“Event”事件窗口中事件窗口中选择“Value Change”。选取取OneButtonDialog函数,放置在函数,放置在Event Structure中。中。在

19、在message数据端口新建一个常量,数据端口新建一个常量,输入入“超超时或或单击了了OK按按钮”。在超在超时端口端口连接接值为5000的一个数字常量。的一个数字常量。29-Mar-24运行程序,如果运行程序,如果单击了了“OK Button”按按钮或等待或等待5秒都秒都会会显示出示出对话框框“超超时或或单击了了OK按按钮”。29-Mar-24法法2:在事件在事件结构构边框的快捷菜框的快捷菜单中中选择Add Event Case来来创建事件建事件结构的一个分支构的一个分支。在在弹出的出的对话框中,框中,选取取“EventSources”事件源窗口事件源窗口中的中的“OK Button”。并在。

20、并在“Event”事件窗口中事件窗口中选择“Value Change”。后面的后面的设置与法置与法1类似。似。29-Mar-242.3.6 公式节点在框在框图程序中,如果需要程序中,如果需要设计较复复杂的数学运算,框的数学运算,框图将将会十分复会十分复杂,工作量大,而且不直,工作量大,而且不直观,调试、改、改错也不方也不方便。便。利用公式利用公式节点,只需将数学公式的文本表达式点,只需将数学公式的文本表达式输入在公式入在公式节点的框点的框图内,并内,并连接相接相应的的输入、入、输出端口,出端口,则LabVIEW会自会自动地根据公式地根据公式计算出正确的算出正确的结果,并从果,并从输出端出端输出

21、。出。29-Mar-24(1)公式)公式节点的点的创建建从函数模板的从函数模板的Structures子模板上子模板上选择公式公式节点点Formula Node,在框,在框图中中设置公式置公式节点。点。公式公式节点的点的边框大小可以改框大小可以改变,用,用户可以使用可以使用标签工工具,将数学公式直接具,将数学公式直接输入到公式入到公式节点的框内。点的框内。29-Mar-24(2)公式)公式节点的使用点的使用可以声明可以声明变量,也支持一些常用的量,也支持一些常用的C语言的言的语句(包括句(包括赋值语句、条件句、条件语句、循句、循环语句、句、Switch语句),每句),每条条语句以分号句以分号结尾

22、。尾。输入公式后,需要添加入公式后,需要添加输入、入、输出端口。出端口。在添加端口后出在添加端口后出现的方框内填入的方框内填入变量名称。量名称。将将输入端口和程序中的数据端口相入端口和程序中的数据端口相连接。接。将将输出端口和程序中的指示端口出端口和程序中的指示端口连接接 29-Mar-24公式节点中常用的运算符其中,条件运算符的其中,条件运算符的“?”前的部分是判定条件,前的部分是判定条件,“?”和和“:”间的部分为当条件为间的部分为当条件为True时的表达式,时的表达式,“:”后的部分为当条件为后的部分为当条件为False时的表达式。时的表达式。29-Mar-24公式节点语句中还可以使用数

23、学函数:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expml、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan、tanh。公式节点中可使用IF条件语句,for和do 、while循环Swtich()case分支语句公式节点的语法与C语言相同29-Mar-24例:用公式节点计算y1=x3+x2+5和y2=m*x+b 分析:公式

24、的输入端口共有3个输入量,分别是m、b和x。3个输入量经过公式节点中的两条语句完成指定的运算,通过输出端口输出y1和y2。29-Mar-24补充:前面板对象属性的动态控制在前面板在前面板设计编程程时,我,我们可以修改和可以修改和设定定对象控件象控件的属性,但是在程序运行的属性,但是在程序运行时能否由用能否由用户修改或程序自修改或程序自身改身改变呢?呢?方法是:方法是:创建建对象的属性象的属性节点,通点,通过对属性属性节点的点的“写写”操作,完成操作,完成对对象属性的修改。象属性的修改。同同样通通过对属性属性节点的点的“读”操作,在程序中操作,在程序中读取取对象象的属性。的属性。29-Mar-2

25、4例:程序运行中,用Knob控件改变图形曲线的颜色提示:建立提示:建立CHART的属性的属性节点点,改,改为可写,并指定可写,并指定为曲曲线Plot的的颜色色Color属性,用属性,用Knob的的值控制控制CASE,分,分别送送5种种颜色色值给属性属性节点点29-Mar-242.3.7 局部变量和全局变量1局部局部变量量程序太复程序太复杂,连线困困难,需用局部,需用局部变量。量。(1)创建建 法一:法一:为前面板前面板对象象创建局部建局部变量。量。在在对象上面象上面单击鼠鼠标右右键,选择CreateLocal Variable。法二:在框法二:在框图程序中新建局部程序中新建局部变量,然后再指向

26、某个量,然后再指向某个对象。象。可以可以为一个一个对象象创建多个局部建多个局部变量。量。局部局部变量具有量具有读、写两种属性。并可互、写两种属性。并可互换。29-Mar-24(2)使用示例使用示例程序中,建立了程序中,建立了“停止停止”控件的两个局部控件的两个局部变量。量。循循环内的局部内的局部变量量处于于“读”状状态,读出当前出当前“停止停止”控件的状控件的状态,送送给“指示灯指示灯”控件控件显示。示。循循环外的局部外的局部变量量 则处于于“写写”状状态,它在每次程序运行前,它在每次程序运行前赋给“停止停止”控件,控件,赋值为“False”,以保,以保证程序运行程序运行时进入循入循环状状态。

27、29-Mar-242全局全局变量量不同程序之不同程序之间交交换数据,需用全局数据,需用全局变量。量。全局全局变量量VI只有前面板而无框只有前面板而无框图程序。程序。(1)创建建选择全局全局变量量图标,右,右击,选择Open Front Panel,打开全局打开全局变量声明量声明VI的前面板。的前面板。按照需要的数据按照需要的数据类型加入控件型加入控件。切切换到框到框图程序窗口,程序窗口,单击全局全局变量量图标,选择需要需要它指向的控件。它指向的控件。返回到全局返回到全局变量声明量声明VI的前面板,将的前面板,将该VI文件存文件存盘,完成全局完成全局变量的建立。量的建立。29-Mar-24(2)

28、调用用 由函数模板中的由函数模板中的Select a VI子模板打开子模板打开选择用用户程序程序对话框,框,选择已已经保存的全局保存的全局变量声明量声明VI程序,程序,此此时将在框将在框图程序中程序中显示全局示全局变量数据端口。量数据端口。如果在全局如果在全局变量声明量声明VI中建立多个控件,可以用操中建立多个控件,可以用操作工具在全局作工具在全局变量的量的图标上上单击,在列出的所有,在列出的所有变量量对象中象中选择所需的所需的对象。象。29-Mar-24(3)使用示例)使用示例利用全局利用全局变量在不同量在不同VI中中传递数据。数据。创建一个全局建一个全局变量声明量声明,其中包含一个数,其中

29、包含一个数值型型控件并命名控件并命名为“数数值”和布和布尔型控件并命名型控件并命名为“状状态”,保存,保存为“GVvi”。新建一个新建一个VI命名命名为“采集信息采集信息.vi”,前面板中有一,前面板中有一个旋个旋钮开关和按开关和按键开关,将它开关,将它们的的值送到全局送到全局变量中。由函数模板中的量中。由函数模板中的Select a VI子模板打开子模板打开选择用用户程序程序对话框,框,选择“GVvi”,调用两次用两次全局全局变量声明量声明,选择全局全局变量的不同数据量的不同数据类型,型,对端口端口连线并保存并保存VI。如。如图“采集信息采集信息”框图程序框图程序 29-Mar-24新建新建

30、VI“显示信息示信息.vi”,前面板中有一个表,前面板中有一个表盘指指针控件和控件和LED控件。采用同控件。采用同样的方法在框的方法在框图程序窗程序窗口口选择创建的全局建的全局变量,并在全局量,并在全局变量量图标上上单击鼠鼠标右右键,选择“Change to Read”。“显示信息显示信息”框图程序框图程序 分别运行两个分别运行两个VI程序,可以发现由程序程序,可以发现由程序“采集采集信息信息”得到的数据,通过全局变量传递到程序得到的数据,通过全局变量传递到程序“显示信息显示信息”中,实现了两个程序之间的数据传递。中,实现了两个程序之间的数据传递。29-Mar-24习题:31.用用While循

31、循环,创建一个程序使之当建一个程序使之当输入入0到到100之之间的随机数,大于等于循的随机数,大于等于循环次数次数时继续运行。运行。2.学学习使用双重使用双重For循循环。创建一个程序,画建一个程序,画出出X从从1到到N的立方和曲的立方和曲线(N大于等于大于等于1小于小于等于等于100,X、N均均为整数)整数)29-Mar-243.创建一个建一个VI程序,不断地程序,不断地产生随机数,直到生随机数,直到产生生的随机数与程序指定的数的随机数与程序指定的数值相匹配。相匹配。记录下共下共产生了多少个随机数才与程序的指定生了多少个随机数才与程序的指定值相匹配。相匹配。4.创建一个建一个VI程序,每秒程序,每秒测量一次温度,并量一次温度,并显示在示在波形波形Chart指示器上。如果温度高出或低于指示器上。如果温度高出或低于设定范定范围,VI程序点亮前面板的程序点亮前面板的2个个LED。29-Mar-24参考答案第第1题29-Mar-24第第2题29-Mar-24第第3题29-Mar-24第第4题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 其他报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com