第4章LabVIEW中的程序结构

合集下载

LabVIEW虚拟仪器技术第4章-程序结构

LabVIEW虚拟仪器技术第4章-程序结构
第4章 程序结构
基本程序结构
在各编程语言中,基本的程序结构有三种: 顺序结构、条件结构和循环结构。
LabVIEW中,除了具有上述三种程序结构外, 还提供了用于事件处理的事件结构。
此外,还有局部变量,属性节点和调用节点 等功能,为增加程序编写的灵活性提供了保障。
文本语言接口
在LabVIEW的图形化编程环境中,利用上述 程序结构可以解决很多非常复杂的问题。
范例
条件结构的输出隧道。
条件结构的输出方式
条件结构的输出有两种方式:
1.在条件分支内部输出数据
2.通过数据输出隧道,在条件结构外部输出数据
在分支内部输出数据更符合常规编程语言的编 程方式,但是从LabVIEW数据流的观点来看,并 不是最佳选择。
程序求输入数值的平方根,计算之前先判断 输入是否大于等于0。判断为真,结果由显示控件 输出,判断结果为假时,条件为真的分支不执行。
点击右键,在快捷菜单中我们可以添加或删 除每一帧。我们也可以通过拖曳的方式来改变每 一帧的大小。
顺序结构在执行时,会按照帧的顺序,从左 到右,依次执行每一帧。每一帧都有一个帧序号, 最小的帧序号为0,然后是1、2、3依次递增。
平铺式顺序结构因为代码是平铺的,因此代 码更直观,可读性较高。但是它的缺点是占用空 间较大。
针对于此,可以通过调用快捷菜单中的“替 换为层叠式顺序”功能,将平铺式的顺序结构转 换成层叠式的,以使VI看起来更为紧凑。
4.1.2 层叠式顺序结构
从本质上看,层叠式顺序结构和平铺式顺序 结构的功能完全相同,且二者可以相互转换。
层叠式顺序结构的创建
层叠式顺序结构外形类似于条件结构。它包 括一个或多个顺序执行的子程序框图或帧。
在很多情况下,程序员会需要多段代码按照预 先设定的顺序执行,这就需要顺序结构来帮忙了。

最新第4章LabVIEW的循环与结构教学课件

最新第4章LabVIEW的循环与结构教学课件

4.1.4 移位寄存器在For循环内的应用
上次循环的 结果值
上一次的i
当前的i
当前循环的 结果值
图4-5 For循环移位寄存器示例
4.1.4 移位寄存器在For循环内的应用
图4-6 For循环中不添加移位寄存器的结果
4.1.3 自动索引在For循环内的应用
自动索引的功能是使循环框外面的数 组成员逐个进入循环框内,或使循环框内 的数据累加成一个数组输出到循环框外面。 循环内--》循环外, 元素--》数组,一维---》二维, 自动索引值,在完成循环后才一次性输出。
图4-9 条件端子变换后的While循环界面
4.2 While循环
与For循环是在执行前检查是否符合条 件不同,While循环是在执行后再检查条件 端子。因此,While循环至少执行一次。
图4-10 简单While循环示例
4.2 While循环
While循环示例1
While循环示例2
While循环示例3
在右键关联菜单中,只要选定了某一个事件产生源,其相应的所有事件均排列 在右侧events框中 。
4.5.1 事件结构的创建与简单示例
一个标准的事件结构由框架、超时端 子、事件数据节点、递增/减按钮、选择器 标签组成,如图4-21所示。和条件结构相 似,事件结构也可以由多层框架组成,但 与条件结构不同的是,事件结构虽然每次 只能运行一个框图,但可以同时响应几个 事件。
4.2 While循环
图4-8 While循环界面
最基本的While循环由循环框架、条件接线端 (输入端)和计数接线端(输出端)组成。
4.2 While循环
与For循环的计数接线端一样,While的计数接 线端也是输出循环已执行次数的数字输出端子。 While的条件接线端是一个布尔变量,需要输入一 个布尔值。

LabVIEW 完全自学手册

LabVIEW 完全自学手册

LabVIEW 完全自学手册加入书架
登录
•书名页
•版权信息
•前言
•第1部分入门篇
•第1章初识LabVIEW
•第2章 LabVIEW 基本操作
•第3章 LabVIEW 基本数据类型及其相互转换
•第4章 LabVIEW 程序结构
•第5章 LabVIEW 数据运算函数
•第6章 LabVIEW 控件及其使用方法
•第7章 LabVIEW 数据表达与显示
•第2部分提高篇
•第8章 LabVIEW 文件I/O
•第9章 LabVIEW 中的字符串操作
•第10章 LabVIEW 数学分析
•第11章 LabVIEW 信号处理
•第12章 LabVIEW 与其他软件通信
•第13章 LabVIEW 时间相关操作
•第14章 LabVIEW 应用程序控制
•第15章 LabVIEW 网络编程技术
•第16章 LabVIEW 总线技术与仪器控制
•第17章 LabVIEW 数据库的访问
•第18章 LabVIEW 程序发布
•第3部分应用篇
•第19章多通道温度检测记录系统
•第20章温湿度检测管理系统
•参考文献
是否关闭自动购买?
关闭后需要看完本书未购买的章节手动确认购买。

虚拟仪器LabVIEW 第4章 Case结构、Sequence结构和公式

虚拟仪器LabVIEW 第4章 Case结构、Sequence结构和公式

4.1.4 Case结构应用举例(演示)
目的:求一个数的平方根,若该数 ≥ 0,计算该值平 方根并将计算结果输出;若该数 <0 时,则用弹出式 对话框报告错误,同时输出错误代码“-9999.00”。
4.2 顺序结构 4.2.1 顺序结构的创建与组成
图4.11单框架顺序结构
图4.12多框架顺序结构
有三个帧的顺序结构局部变量
源帧
顺序结构的输出通道仅能有一个数据源
数据源能被后续所有帧使用, 但在源帧前面的帧中不能使用
4.2.3 顺序结构应用举例
例4.2.1 :将一随机数发生器产生的数字与面板输入的给定数字进 行比较,计算当两个数匹配时所需要的时间。
4.3 公 式 节 点 (Formula
4.3.1 公式节点(Formula Node)的创建
选择 Case 结构
4.1.1
Case 结构的建立和组成
布尔型 Case 结构
数值型 Case 结构
字符串型 Case 结构
枚举型Case 结构
选择器的标识值的设定(演示)
1.单值: 2.数值列表: -1,0,5,10 (逗号分割) 3.数值范围的形式:10..20 (10~20) ..0(指所有≤0的数) 10.. (指所有≥10的数)
4.4 练 习 : 学 习 使 用 Case 结 构
目标:创建一个 VI 程序,连续以每 500 毫秒一次的速率测量
温度,如果温度高于或低于温度设定范围,告警灯点亮, 同时驱动蜂鸣器报警,工作状态栏显示“过量限”信息;若 检测温度在量程范围内,正常指示灯亮,同时工作状态栏 显示“正常”信息。按动 RUN 按钮,程序自动进入系统运 行状态,温度趋势图表逐点显示温度变化曲线,同时将上/ 下限设定值也显示在图表中。当点击运行控制开关时,程 序停止运行。 Temperature Limit.vi

第4章LabVIEW中的程序结构

第4章LabVIEW中的程序结构

第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
移位寄存器初始化
移位寄存器可以存储的 数据类型有:数值型、布尔 型、数组、字符串型等。
“显式初始化” “非初始化”
不同初始化方式运行结果
第4章 LabVIEW中的程序结构
2020/4/2
循环次数和循环计数端
口的数值范围为0~2^31-1 的长整型数,如果给N的赋值 为0,则程序一次也不执行。
第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
实例——产生数据点数为1000的正弦波
在做算法仿真时,经常需要产 生指定点数的数据波形,最基本的 实现方法就是通过For循环+基本函 数的方式。
第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
For循环的自动索引
正常情况下For循环是要指 定循环次数程序才能正常执 行的,但如果我们不知道具 体的循环次数,那又该如何 运用For循环呢?
For循环的自动索引功能默认 情况下是自动开启的,在自动索引 开启的状态下,数据进入循环体时 是降维的。
序,则要用到顺序结构。
平铺式顺序结构
LabVIEW中的顺序结构包括: 平铺式顺序结构 层叠式顺序结构
第4章 LabVIEW中的程序结构
层叠式顺序结构
它们的功能是相同的, 只是图形形式不同,也即编 程时所占用的空间不同。
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
平铺式顺序结构的数据流向

第4讲 LabVIEW的基本程序结构

第4讲 LabVIEW的基本程序结构
层叠式顺序结构和平铺式顺序结构的功能相同,不同在于可读 性和占用面积的不同。
例子
第一帧与第三帧间如何传递数据?
图4-16 层叠式顺序结构界面
层叠式顺序结构中的数据要借助于顺序结构变量来传递。
(a)未赋值的局部变量 (b)连接数据 (c)赋值后的局部变量 (d)结果
图4-17 顺序局部变量的创建与使用
和移位寄存器一样,反馈节点也是用来实现数据在前后两 次循环中的传递。但与移位寄存器相比,使用反馈节点有时能 让程序更加简洁易懂。
循环中一旦连线构成反馈,就会自动出现反馈节点的符号。 反馈节点符号由两部分构成,分别为初始化端子和反馈节点箭 头。
4.1.5 反馈节点在Fo环框图外,默认为位于For循环框图内。
相比于层叠式顺序结构,平铺式顺序结构各帧之间同样可以传输数据, 而且平铺式顺序结构传递数据的方式与层叠式顺序结构相比较而言更加简单和 直观,只需直接在两帧间连线就可以自动创建一个循环隧道传输数据,如图420所示。
图4-20 平铺式顺序结构的数据传输
空 心 框
(a)不正确的连接—边框上的数据通道为中空状态
实 心 框
(b)正确的连接—边框上的数据通道为实心状态
图4-13 连接数据的输入与输出
4.3.6 选择函数
4.3.7 条件结构示例
图4-14 执行两个数相乘或相加运算的Case条件结构示例
图4-15 执行两个数相乘或相加运算的Case条件结构示例
当在条件接线端图标上单击鼠标右键选择“真(T)时继 续”,则图标变成如图4-9所示,此时表示当条件为真时循环继 续。当每一次循环结束时,条件端口检测通过数据连线输入的布 尔值和其使用状态决定是否继续执行循环。
图4-9 条件端子变换后的While循环界面

LabVIEW程序设计与虚拟仪器之程序结构ppt文档

LabVIEW程序设计与虚拟仪器之程序结构ppt文档

While循环可以进行嵌套。 【例2.1】 使用While循环每0.5秒显示一个随机数和循环 次数,最后波形显示所有随机数序列。 VI的前面板和程序框图如图2-2所示,While循环条件端子 与布尔开关对象相连,只要开关状态为“关”,程序重复执行, 直到条件端子为“开”,停止循环。While循环框内放置一个 随机数对象和Time Delay Express VI,每0.5秒循环一次,在前 面板显示随机数和循环次数,最后利用While循环的自动索引 功能将随机数序列通过波形显示出来,可以看到,波形的横坐 标表示循环次数,当循环次数为115时,随机数加1是1.38577。
图2-6 例2.2的前面板和程序框图
2.1.3 For循环 For循环位于Functions→Structures子模板上。 For循环有两个固定的数据端子,分别是计数端子(Loop
Count)和重复端子(Loop Iteration),如图2-8所示。其中计数端 子连接整型数值,指定循环次数;重复端子输出已经执行循环 的次数,循环次数默认从“0”开始计数,依次增加“1”。
LabVIEW程序设计与虚拟仪器之程序结构
LabVIEW程序设计与虚拟仪器之程序结构
本章将系统介绍LabVIEW提供的程序结构,包括While Loop(While循环)、For Loop(For循环)、Shift Register(移位寄存 器)、Case Structure(分支结构)、Sequence Structure(顺序结构)、 Formula Node(公式节点)等。
2.1 循 环 结 构
在LabVIEW中有While循环 和 For循环 两种循环结构。二
者的区别是:While循环只要满足循环退出的条件则退出相应 的循环,否则变成死循环;而For循环是预先确定循环次数, 当循环体运行完指定的次数后自动退出循环。 2.1.1 While循环

labview吴成东版第四章课后习题部分

labview吴成东版第四章课后习题部分

For循环自动索引实例移位寄存器反馈节点(禁索引)
Case条件结构不正确的连接—边框上数据通道为中空状态;相反,实心为正确连接。

层叠式顺序结构要借助于顺序结构变量来传数据;平铺式可以各帧间直接传递。

过滤事件和通知事件:编程事件对话框中的事件列表,左侧箭头红色为过滤;蓝色通知
改错节点框图程序(数组大小、两个索引数组、簇中捆绑、实心点禁用索引,空心启用索引极坐标显示在前面板控件选板下“新式—图像模板—控件”子选板中数据为一维数组DEL1D)。

【LabVIEW】程序结构

【LabVIEW】程序结构

【LabVIEW】程序结构(包括:while循环、For循环、事件结构、条件结构、公式节点)1、while循环LabVIEW 在执⾏While循环时,如果⽤户没有给它设定循环时间间隔,那么它将以CPU的极限速度运⾏。

按下Ctrl+Alt+Delete 快捷键打幵任务管理器,可以看到它⼏乎将CPU全部利⽤,正常情况这样做⽐较危险,因为这样可能会导致整个LabVIEW 程序看上去跟“死掉” ⼀样。

在很多情况下我们没有必要让 While 循环以最⼤的速度运⾏,所以最好给 While 循环加上时间间隔。

有两种⽅法:⼀种是在每个循环中添加⼀个等待时间,只有在等待完毕后才运⾏下⼀个循环。

另⼀种⽅法是使⽤定时循环(Timed Loop)。

2、事件结构Labview 提供了事件结构,即仅当 “事件” 发⽣时,程序才作相应的响应。

通过事件结构,程序可以变得很简单,并降低CPU利⽤率。

当多个事件发⽣时会形成事件队列,直到每个事件对应的代码都被执⾏为⽌,因此不会有事件被漏掉的情况。

注意:事件结构必须放在 While 循环中,否则没有意义,因为当⼀个事件完成后,程序需要去等下⼀个事件的发⽣。

在跟⽤户进⾏交互的时候,尽量使⽤事件结构。

3、条件结构(1)当条件结构有多个分⽀时,必须设置默认分⽀,否则程序⽆法执⾏。

(是条件结构不是层叠顺序时)(2)隧道在条件结构⼀个分⽀的边框上创建输出隧道时,其他分⽀边框上也会出现输出隧道。

只要有⼀个输出隧道没有连线,则条件结构每个分⽀边框上的输出的隧道都显⽰为⽩⾊正⽅形。

隧道可使⽤数据类型的默认值,不是每个速调都必须连线。

在条件结构上右键单击输出隧道,从快捷菜单中选择未连接时使⽤默认,这样所有未连线的隧道都将使⽤隧道数据类型的默认值。

索引隧道,⼀个循环外的数组通过索引隧道连接到循环结构上,隧道在循环内⼀侧会⾃动取出数组的元素,依顺序每次循环取出⼀个元素。

⽤索引隧道传出数据,可以⾃动把循环内的数据组织成数组。

LabVIEW的基本编程结构和语法

LabVIEW的基本编程结构和语法

LabVIEW的基本编程结构和语法LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种广泛应用于科学研究和工程领域的图形化编程语言。

它提供了一种直观的编程环境,使得用户能够通过拖拽和连接图标来创建程序。

本文将介绍LabVIEW的基本编程结构和语法,帮助读者了解如何使用LabVIEW进行编程。

1. 数据流图(Dataflow Diagram)LabVIEW的核心思想是数据流图,即通过连接不同的节点以实现数据的流动和处理。

数据流图由函数块(Function Block)、图形化控件(Graphical Control)和连线(Wire)组成,用户可以根据需求自由搭建数据流图。

函数块代表不同的功能模块,例如数学运算、数据处理和界面控制等。

图形化控件用于与用户进行交互,包括按钮、输入框和图表等。

连线用于连接函数块和图形化控件,定义数据的传递路径。

通过灵活的拖拽和连接操作,用户可以将各种节点组合成一个完整的数据流图,实现复杂的功能。

2. 程序结构(Program Structure)在LabVIEW中,程序由模块(SubVI)组成,每个模块负责执行特定的任务。

模块可以是用户自定义的,也可以是LabVIEW提供的预定义模块。

程序结构由主程序和子程序组成,用户可以通过调用不同的子程序来实现特定的功能。

在图形化界面中,每个模块被表示为一个矩形图标,用户可以拖拽和连接模块来构建程序。

程序的执行顺序由数据流图的连线决定,当一个模块的输入数据准备好时,它就会被执行。

通过合理设计程序结构,可以提高代码的可读性和可维护性。

3. 数据类型(Data Type)在LabVIEW中,数据类型是非常重要的概念。

它决定了数据的表示方式和可操作性。

LabVIEW支持各种常见的数据类型,包括整数、浮点数、字符串和数组等。

用户可以根据需要选择不同的数据类型,并进行转换和操作。

虚拟仪器-第4章 LabVIEW的程序结构

虚拟仪器-第4章 LabVIEW的程序结构

(1)输入隧道。如果输入隧道的索引功能被启用,则索引功能将自动计 算数组的长度并根据数组长度决定循环次数,数组将在每次循环中按顺 序取出一个值。
数组长度为4, 循环进行4次
数组长度为4, 循环总数为3,
循环进行3次
输入二维数组,则For循环的循环次数由数组的行数与N值共同决定, 而每次循环时将以“行”为单位将数据顺序输入循环框架进行运算。
添加条件接线端的方法是,在For循环结构边框单击右键,从快捷菜单 中选择“条件接线端”。
将停止循环的布尔数据(如布尔控件或比较函数的输出值)连至条件接 线端,则可以通过条件接线端的输入中止循环的执行。
For循环条件接线端的应用
条件接线端
4.并行For循环
并行For循环可为一个For循环分配多个线程,利用多个处理器提高For 循环的执行速度,特别是对于处理大量计算,能大大提高执行效率。
由于LabVIEW是图形化编程语言,它的代码以图形形式表现,因此各种 结构的实现也是图形化的。每种结构都含有一个可调整大小的清晰边框,用 于包围根据结构规则执行的程序框图部分。
4.1 循环结构
4.1.1 For循环
1. For循环的构成
For循环由循环框架、总数接线端N和计数接线
端i组成
该循环结构类似于以下C语言:
多个数组同时按照启用索引方式输入时,循环的次数以元素最少的数组为准
当循环结构输入隧道禁用索引功能后,循环执行次数由循环总数端子接 入数据决定。在每次循环时,数组整体传入循环框架进行运算。
(2)输出隧道。配置循环输出隧道,以返回数组的索引值、最终值或连 接值。右键单击循环的输出隧道,从快捷菜单中选择“隧道模式”»“最 终值”、“索引”或“连接”。
第4章 LabVIEW的程序结构

2020年LabVIEW入门教程

2020年LabVIEW入门教程

第1章:打开 LabVIEW编程之门
1.1 从VI开始 1.2 编辑前面板和程序框图 1.2 VI及其属性对话框 1.4 基本控件及其使用方法 1.5 小结
1.1 从VI开始
1.1.1 如何创建VI 1.1.2 控件属性设置与快捷菜单 1.1.3创建控件、常量、局部变量、属性节点的常用方法 1.1.4 创建自定义控件
4.1 几种常用的数据类型转换节点函数
4.1.1 强制类型转换函数 4.1.2 平化数据至字符串及字符串还原平化数据函数 4.1.3 变体类型数据
4.2 整数的类型转换及内存映射
4.2.1 布尔类型与字符串和数值的相互转换 4.2.2 U8类型与字符串 4.2.3 其它整数的相互转换
4.5 簇的内存映射
4.5.1 由标量组成的簇 4.5.2 包含数组和字符串的簇
பைடு நூலகம்.6 类型描述符
4.6.1 类型描述符的基本构成要素 4.6.2 常用类型描述符列表 4.6.3 常见数据类型的类型描述符结构
2.2 必须了解的位运算函数和逻辑运算函数
2.2.1 常用逻辑运算函数 2.2.2 位运算 2.2.3 深入理解复合运算节点函数
2.3 必须了解的关系运算函数和比较节点函数
2.3.1 比较模式 2.3.2 通用关系运算函数 2.3.3 比较0关系运算节点函数 2.3.4 复杂关系运算节点函数 2.3.5 字符关系运算节点函数 2.3.6 表达式节点与公式快速VI
1.2 编辑前面板和程序框图
1.2.1 选取、移动和删除对象 1.2.2 使用布局工具
1.3 VI及其属性对话框
1.3.1 VI的层次结构 1.3.2 调用子VI 1.3.3 VI的属性设置
1.4 基本控件及其使用方法

labview第四讲 程序结构

labview第四讲  程序结构

优点: 把每个帧平铺开来比较直观,方便代 码阅读,不需借助局部变量这种机制在 帧之间传递数据。 缺点:浪费空间。
例:求循环时间
四、公式节点
通过公式节点,用户可以实现复杂的数学
公式,还可以通过文本编程写一些基本的
逻辑语句,如if…else、case、while循环
之类的语句,弥补了图形化开发语言相对
(三)全局变量 与传统编程语言中的全局变量类似, 可以在不同的VI之间进行数据传递。 1、创建 2、属性:读和写 3、使用(举例)
4、特点 (1)以独立文件的形式存在 (2)一个全局变量中可以包含多个对 象,拥有多种数据库类型 (3)与子VI不同,不能进行编程,只 能用于简单的数据存储。 (4)速度快 (5)其中的数据可以分别访问
Local variaval
3、本地变量的属性: 读(Read)和写(Write) 4、使用 前面板对象的本地变量相当于其端口 的一个拷贝,它的值与该端口同步。
举例: 例1、用一个布尔开关同时控制两个循环
例2、给一个控制赋值,从一个指示中读 出数据。
例3、在顺序结构中的使用:创建一个 VI, 计算生成等于某个给定值的随机数所需 要的时间。
例1:用While循环
创建一个可以产生 并在图表中显示随 机数的VI。 前面板 有一个控制旋钮可 在0到10秒之间调 节循环时间,还有 一个开关可以中止 VI的运行。学习怎 样改变开关的动作 属性,以便不用每 次运行VI时都要打 开开关。
随机信号 1.0 0.8 0.6 0.0 0.4 0.2 0.0 0 1023 10.0 2.0 循环延时 4.0 6.0 8.0
(二)本地(局部)变量 相当于传统编程语言中的局部变量,可以 在同一个程序内使用。 1、引入理由: (1)每个控制或指示的数据端口只有一 个; (2)需要在同一个VI的不同位置多次为 指示赋值;或多次从控制中取出数据;或者 为控制赋值,从指示中取出数据。

Labview_简明教程

Labview_简明教程

绪论虚拟仪器(virtual instrumention)是基于计算机的仪器。

计算机和仪器的密切结合是目前仪器发展的一个重要方向。

粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。

随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。

另一种方式是将仪器装入计算机。

以通用的计算机硬件及操作系统为依托,实现各种仪器功能。

虚拟仪器主要是指这种方式。

下面的框图反映了常见的虚拟仪器方案。

虚拟仪器的主要特点有:⏹尽可能采用了通用的硬件,各种仪器的差异主要是软件。

⏹可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。

⏹用户可以根据自己的需要定义和制造各种仪器。

虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。

虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。

目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的Lab VIEW。

虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。

PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。

对虚拟仪器和Lab VIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。

普通的PC有一些不可避免的弱点。

用它构建的虚拟仪器或计算机测试系统性能不可能太高。

目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。

每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。

这些卡插入标准的VXI 机箱,再与计算机相连,就组成了一个测试系统。

VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。

LabVIEW程序设计模式(四)—状态机和事件结构的结合

LabVIEW程序设计模式(四)—状态机和事件结构的结合

LabVIEW程序设计模式(四)—状态机和事件结构的结合上两节分别解决了基本状态机的第(1~5)个问题,但是是否具备一种模式能够综合队列型状态机模式和用户界面事件型模式的优点呢?这样可以同时避免基本状态机的第(1~5)个问题。

答案是肯定的,本节将介绍如何将状态机与事件结构结合起来形成一种新的、稳定的模式。

状态机模式的基本构成元素是while 循环和case 结构,而事件结构模式的基本构成元素是while 循环和event 结构,因此新的模式应该由while 循环、case 结构和event 结构组成。

而while 循环的目的是为了保证程序的持续运行,因此必须在最外层,这样就只剩下了图20 所示的两种组合方式。

在第一种方式中,每次循环的运行需要经过一个事件结构才能够实现case 中各个分支的运行,那么到底需要多少个分支呢?一般而言不同的事件都会有不同的事件处理函数(这些函数可以在case 结构中共用),显示这是无法满足要求的,它从本质上而言仍然是一种事件结构。

在第二种方式中,程序的主体是一个状态机结构,不同的是在某一个状态分子中有一个事件结构。

我们可以回忆状态机模式中的空闲Idle 状态,这正是长时间占用CPU 资源的源头,如果在Idle 中加入一个事件结构后就有效地规避了这个问题。

图20 三种结构的组合方式因此图20 中的第二种结构综合了状态机和事件结构的优点,有效地克服了基本状态机的第(1~5)个问题。

此外,在【应用2_自动贩卖机】例程中,按钮1USD、2USD 和5USD 的作用是相同的,唯一不同的是它们的代表的币值不同。

如果我们希望系统共用币值相加这个功能,即当这三个按钮任何一个被按下后都调用同一个函数(该函数的功能是将系统中原来的货币值与新加入的币值相加得到新的值)。

这样,需要有一种途径把1USD、2USD 和5USD 代表的币值作为参数传递给函数。

图21 所示为带参数的状态机结构,在消息队列的状态机模式中,加入了一个变体型的变。

LabVIEW程序设计模式(四)—状态机和事件结构的结合

LabVIEW程序设计模式(四)—状态机和事件结构的结合

LabVIEW程序设计模式(四)—状态机和事件结构的结合LabVIEW程序设计2009-05-04 14:25:19 阅读497 评论0 字号:大中小订阅上两节分别解决了基本状态机的第(1~5)个问题,但是是否具备一种模式能够综合队列型状态机模式和用户界面事件型模式的优点呢?这样可以同时避免基本状态机的第(1~5)个问题。

答案是肯定的,本节将介绍如何将状态机与事件结构结合起来形成一种新的、稳定的模式。

状态机模式的基本构成元素是while循环和case结构,而事件结构模式的基本构成元素是while循环和event结构,因此新的模式应该由while循环、case结构和event结构组成。

而while循环的目的是为了保证程序的持续运行,因此必须在最外层,这样就只剩下了图20所示的两种组合方式。

在第一种方式中,每次循环的运行需要经过一个事件结构才能够实现case中各个分支的运行,那么到底需要多少个分支呢?一般而言不同的事件都会有不同的事件处理函数(这些函数可以在case结构中共用),显示这是无法满足要求的,它从本质上而言仍然是一种事件结构。

在第二种方式中,程序的主体是一个状态机结构,不同的是在某一个状态分子中有一个事件结构。

我们可以回忆状态机模式中的“空闲Idle”状态,这正是长时间占用CPU资源的源头,如果在Idle中加入一个事件结构后就有效地规避了这个问题。

图20 三种结构的组合方式因此图20中的第二种结构综合了状态机和事件结构的优点,有效地克服了基本状态机的第(1~5)个问题。

此外,在【应用2_自动贩卖机】例程中,按钮1USD、2USD和5USD的作用是相同的,唯一不同的是它们的代表的币值不同。

如果我们希望系统共用“币值相加”这个功能,即当这三个按钮任何一个被按下后都调用同一个函数(该函数的功能是将系统中原来的货币值与新加入的币值相加得到新的值)。

这样,需要有一种途径把1USD、2USD和5USD代表的币值作为参数传递给函数。

虚拟仪器labview程序结构.pptx

虚拟仪器labview程序结构.pptx
case 1:语句1; case 2:语句2;
case n:语句n; default:语句n+1; }
第10页/共39页
5.3 条件结构
第11页/共39页
5.3 条件结构
Case结构的组成 最基本的Case结构由:Case框架、选择端 口、框图标识符和递增/递减按钮构成。
第12页/共39页
5.3 条件结构-应用
第30页/共39页
5.6 公式节点
假如程序中有一些复杂的数学计算,编写图 形代码是比较麻烦的。如x>0,y=mx3+3nx2-x+1; x<=0,y=-2mx3+x-5。
第31页/共39页
5.6 公式节点
假如程序中有一些复杂的数学计算,编写图 形代码是比较麻烦的。如,y=x3+6,z=5y+x。
第13页/共39页
5.3 条件结构-应用
第14页/共39页
5.4 顺序结构
在代码式的传统编程语言中,默认的情况是, 程序语句按照排列顺序执行,称为控制流程; 但LabVIEW中不同,它是一种图形化的数据流 式编程语言,具有并发、多任务的特点。
在LabVIEW7.0 以前只有一种顺序结构。 从 LabVIEW7.0开始,旧版本的顺序结构称 为Stacked Sequence Structure(堆叠顺序 结构),同时引入新的Flat Sequence Structure(平铺顺序结构)。
3.公式节点框架内每个公式后以分 号”;”结束。
第35页/共39页
5.6 属性节点
前面板对象属 性是指前面板 上控件的外观 和功能特征, 如显示的颜色、 可见性、闪烁、 位置、比例等。 以达到最佳的 人机交互效果。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环次数和循环计数端 口的数值范围为0~2^31-1 的长整型数,如果给N的赋值 为0,则程序一次也不执行。
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
实例——产生数据点数为1000的正弦波
在做算法仿真时,经常需要产 生指定点数的数据波形,最基本的 实现方法就是通过For循环+基本函 数的方式。
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——While循环
While循环重复执行循环体内的 代码,直到满足某种条件为止,它相 当于传统文本编程语言中的Do Loop 或Repeat-Until循环。
While包含两个端口:条件接线 端(输入端口)和循环计数端(输出 端口)。 当While循环开始执行后,外部 数据就无法传递到循环体内,所以循 环的控制条件一定要放置在循环体内, 否则会造成死循环。
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
移位寄存器初始化
移位寄存器可以存储的 数据类型有:数值型、布尔 型、数组、字符串型等。

“显式初始化” “非初始化” 不同初始化方式运行结果
第4章
LabVIEW中的程序结构
2018/12/26
平铺式顺序结构
LabVIEW中的顺序结构包括: 平铺式顺序结构 层叠式顺序结构
层叠式顺序结构 它们的功能是相同的, 只是图形形式不同,也即编 程时所占用的空间不同。 2018/12/26
第4章
LabVIEW中的程序结构
精通LabVIEW虚拟仪器程序设计与案例实现
平铺式顺序结构的数据流向
数据流向
切换索引功能开启与关闭的 方法为:鼠标右击索引通道,选 择“禁用/启用索引”即可。
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
实例——自动索引功能使用
在LabVIEW中用框图的嵌 套来实现循环嵌套,一层一层 执行。
第4章
LabVIEW中的程序结构
精通LabVIEW虚拟仪器程序设计与案例实现
实例——前100个自然数求和
For循环的一个重要应用场合就是知道 具体的循环次数。
对于求和的运算,基本可以用For 循环+移位寄存器的结构实现,例如求 阶乘和、求前1000个素数和等等。 用For循环实现前100个自然数求和
第4章
LabVIEW中的程序结构
执行效果
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
层叠式顺序结构的数据流向
数据流向
执行结果
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
定时结构
函数→编程→结构
定时循环 定时顺序确到 105 为止 1! 2! 3! n! n!
使用While循环时,建议用户设定循环间隔,因为如果 没有循环间隔的话,While循环是“全速”运行的,这样会 占用过多的系统资源,尤其是对需要长时间执行的循环。
第4章
LabVIEW中的程序结构
平铺式顺序结构
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
定时结构——定时循环
定时循环根据指定的循环周 期顺序执行一个或多个子程序 框图或帧。 一般在以下情况中可以使 用定时循环结构:
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
一个完整的For循环体它包含 两个端口:循环次数(输入端口) 和循环计数(输出端口)。
循环次数端口N用于指定框图 代码的执行次数,它是一个输入端 口,除非应用了自动索引功能,否 则用必须输入一个整型数,当连接 一个浮点数时,LabVIEW会自动 对它按“四舍五入”的原则进行强 制转换。
精通LabVIEW虚拟仪器程序设计与案 例实现
第4章 LabVIEW中的程序结构
精通LabVIEW虚拟仪器程序设计与案例实现
LabVIEW中的程序结构
函数→编程→结构
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
本章内容
基本程序结构的使用 变量的使用 公式节点的使用 反馈节点的使用 条件与禁用结构的使用
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
For循环的自动索引
正常情况下For循环是要指 定循环次数程序才能正常执 行的,但如果我们不知道具 体的循环次数,那又该如何 运用For循环呢?
For循环的自动索引功能默认 情况下是自动开启的,在自动索引 开启的状态下,数据进入循环体时 是降维的。
While循环也可以用移位寄存器, 索引通道,与For循环相同。
第4章
LabVIEW中的程序结构
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
实例——While循环基本应用
While循环的停止最常用的方法是用 一个“停止”控件,当然,也可以用其它 的条件判断来终止While循环的执行。
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
For循环的移位寄存器
如果程序后一次的运行 需要用到前一次的值,则可 以使用移位寄存器,它实际 上是For循环和While循环独 有的局部变量。
移位寄存器的使用要经过创 建和初始化两步。
移位寄存器的左右端口可以成对出 现,也可以“一对多”,在“一对多” 的情况中要特别注意的是,只能是右侧 的“一个端口”对应左侧的“多个端 口”,而不能反向。
2018/12/26
精通LabVIEW虚拟仪器程序设计与案例实现
顺序结构
LabVIEW是图形化的编程语言, 程序的执行顺序是基本数据的流向的, 也即,数据的连接即指定了程序的执 行顺序,没有数据线连接的不同程序 块是并行执行的,所以一般情况下不 用顺序结构,但在某些特殊时候,如 果一定指定某几段程序执行的先后顺 序,则要用到顺序结构。
相关文档
最新文档