《Arduino开发实战指南:LabVIEW卷》——3.1 LabVIEW的编程环境

简介:

本节书摘来自华章计算机《Arduino开发实战指南:LabVIEW卷》一书中的第3章,第3.1节,作者:余崇梓著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.1 LabVIEW的编程环境

3.1.1 LabVIEW编程界面
启动LabVIEW 2012,如图3-1所示。软件初始界面如图3-2 所示。可以在该窗口中新建或者打开LabVIEW程序。
LabVIEW程序又称为虚拟仪器程序,简称为VI,程序后缀名为.vi。在LabVIEW 2012软件初始界面中,鼠标单击File→New VI菜单选项来创建一个新的VI,如图3-3所示。一个LabVIEW程序包括三个部分:前面板(Front Panel)、程序框图(Block Diagram)以及图标/连接器(Icon/Connector),如图3-4 所示。

image

image

image

下面分别介绍一下前面板、程序框图和连接器这三个部分。
3.1.2 LabVIEW前面板
创建新VI或打开现有VI时,将出现VI的前面板窗口。前面板窗口是VI的用户界面。前面板用于设置输入数值和观察输出量,模拟真实仪表的前面板。在程序的前面板上,输入量被称为控件(Control),输出量被称为显示(Indicator)。前者有输入端子而无输出端子,后者正好相反,它们分别相当于其他编程语言中的输入参数和输出参数。在前面板窗口的空白处单击鼠标右键或者在前面板菜单中选择View→Controls,可以弹出控件选板,控件选板包括了用于创建前面板的输入控件和显示控件,如图3-5所示。 控件选板被分成多种类别,用户可以根据各自需要显示部分或者全部类别。图3-5显示了所有控件选板类别,并展开了新式(Modern)类别。要显示或隐藏类别(子选板),可单击Customize(自定义)按钮,并选择更改可见选板。
将前面板作为用户界面交互时,可以通过修改控件提供输入,并在显示控件中查看结果。输入控件决定输入,显示控件显示输出。输入控件通常是旋钮、按钮、转盘、滑块或字符串。输入控件仿真仪器的输入装置,为VI的程序框图提供数据。显示控件通常是图形、图表、LED灯或状态字符串。显示控件仿真仪器的输出装置,显示程序框图获取或生成的数据。

image

每个输入控件和显示控件都有与其相关的数据类型。例如,水平滑动杆是数值型数据类型。最常用的数据类型为数值型、布尔型和字符串型。
(1)数值输入控件和显示控件
数值型数据类型可以表示各种类型的数字,如整数或实数,如图3-6所示。 仪表、转盘等对象也可表示数值数据。单击增量/减量按钮,或双击数字,输入一个新的数字,然后按回车(Enter)键,可输入或改变数值输入控件的值。
(2)布尔输入控件和显示控件
布尔数据类型表示只有两个值的数据,如TRUE和FALSE、ON和OFF。 布尔输入控件和显示控件用于输入和显示布尔值、布尔对象仿真开关、按钮或LED灯。图3-6显示了垂直摇杆开关和圆形LED灯布尔对象。
image

(3)字符串输入控件和显示控件
字符串数据类型是一串ASCII字符。字符串输入控件用于从使用者那里接收文本,例如密码或用户名。用字符串显示控件向使用者显示文本,如图3-6所示。
程序要运行并不是简单地在前面板上画上控件就可以了,在前面板后面还有一个与之配套的流程图。
3.1.3 LabVIEW程序框图
在前面板的菜单栏上选择Window→Show Block Diagram或者利用快捷方式Ctrl+E就可打开程序框图窗口。LabVIEW程序框图如图3-7所示,每一个程序前面板都对应着一段程序框图。框图程序用LabVIEW图形化编程语言编写,是图形化的源程序。在程序框图的流程图中进行编程,可以控制和操纵在前面板上定义的输入和输出功能。程序框图对象包括接线端、子VI、函数、常量、结构和连线,连线可以在程序框图对象间传输数据。
创建前面板窗口后,须使用图形化函数添加代码,用于控制前面板对象。 程序框图窗口包含了图形化源代码。

image

(1)连线
通过连线可以在程序框图对象之间传输数据。输入控件和显示控件接线端通过连线连接到函数。每条连线都只有一个数据源,但可以与多个读取该数据的VI和函数连接。不同数据类型的连线有不同的颜色、粗细和式样。
LabVIEW中,连线用于连接多个接线端,从而在VI中传递数据。连线连接的输入端和输出端必须与连线上传输的数据兼容。例如,数组输出端不能连接到数值输入端。另外,连线的方向必须正确。连线必须仅有一个输入和至少一个输出。例如,不能在两个显示控件间连线。决定连线兼容性的因素包括输入/显示控件的数据类型和接线端的数据类型。例如,若开关的边框为绿色,表示它可与Express VI(快速VI)上任意带绿色标签的输入端相连。若旋钮的边框为橙色,表示它可与任意带橙色标签的输入端相连。而橙色旋钮无法与带绿色标签的输入端相连。
(2)接线端
前面板上的对象在程序框图中显示为接线端。接线端是在前面板和程序框图之间交换信息的输入/输出端口。接线端类似于文本编程语言中的参数和常数。接线端的类型包括输入/显示控件接线端和节点接线端。输入控件接线端和显示控件接线端属于前面板输入控件和显示控件。在前面板控件中输入的数据将通过控件接线端传输至程序框图,然后进行数据的加减运算。加减运算结束后,将输出新的数据值。数据将传输至显示控件接线端,更新前面板显示控件中的数据。另外常量也是另外一种接线端,被用作程序框图的输入。
(3)程序框图节点
节点是程序框图上拥有输入/输出并在VI运行时执行某些操作的对象。节点相当于文本编程语言中的语句、运算、函数和子程序。节点可以是函数、子VI、Express VI或结构。结构是过程控制元素,比如条件结构、for循环或while循环。
(4)函数
函数是LabVIEW中最基本的操作元素。如图3-7中的“加”函数和“乘”函数是函数节点。函数没有前面板或程序框图窗口,但有连线板。双击一个函数只是选择该函数。函数图标的背景为淡黄色。
(5)子VI
创建好一个VI后,可将其用于另一个VI中。在其他VI中被调用的VI称为子VI。子VI可重复调用。要创建一个子VI,需先为子VI 创建连线板和图标。子VI的节点类似于文本编程语言中的子程序调用。节点并不是子VI本身,就像一个程序中的子程序调用指令并不是子程序本身一样。一个包含几个相同子VI节点的程序框图表示将数次调用该子VI。
子VI输入控件和显示控件从调用VI的程序框图中接收和返回数据。双击程序框图中的子VI,将出现该子VI的前面板窗口。前面板包括输入控件和显示控件。程序框图包括连线、图标、函数,也可能有子VI和其他LabVIEW对象。
每个VI前面板和程序框图窗口的右上角都有一个图标。默认图标如图3-7所示。 图标是VI的图形化表示。图标可以包括文本也可以包括图像。如果将一个VI当作子VI使用,程序框图上将显示代表该子VI的图标。默认图标中有一个数字,表明LabVIEW启动后打开新VI的个数。
要将一个VI当作子VI使用,必须创建连线板。连线板是一组与VI中的输入控件和显示控件对应的接线端,类似于文本编程语言中的函数调用参数列表。右键单击前面板窗口右上角的图标即可访问连线板。在程序框图窗口中无法通过图标访问连线板。子VI图标的背景为白色。
(6)Express VI
由于Express VI可以在对话框内配置,它在所有节点中需要的连线数最少。使用Express VI可以实现一些常规的测量任务。参阅LabVIEW Help中的Express VI主题,可了解有关Express VI的更多信息。Express VI在程序框图上以可扩展节点的形式显示,其图标周围被蓝色区域所包围。
(7)函数选板
如图3-8所示,函数选板中包含创建程序框图所需的VI、函数和常量。选择View→Function,可从程序框图访问函数选板。函数选板被分成不同的类别,可以根据需要显示和隐藏这些类别。

image

(8)快速放置
可在Quick Drop(快速放置)对话框中按名称查找并放置VI和前面板对象,如图3-9所示。按Ctrl+Space组合键,可实现快速放置。快速放置在寻找特殊功能或操作时特别有用。在输入的同时,快速放置的匹配函数会自动完成名称输入。高亮显示相应的函数后,单击程序框图或前面板,将对象放置在上面。

image

相关文章
|
10月前
|
人工智能 自然语言处理 数据可视化
企业AI落地开源五剑客:Open-WebUI、Dify、RAGFlow、FastGPT、n8n
面对企业AI落地的数据安全、技术门槛和业务整合三大痛点,本文推荐五款开源利器:Open-WebUI(零代码交互)、Dify(低代码工厂)、RAGFlow(知识处理)、FastGPT(内容生成)和n8n(流程自动化)。这些工具提供开源可控、私有化部署和模块化扩展能力,助力企业低成本构建完整AI解决方案,突破传统闭源方案的成本与灵活性限制。
|
机器学习/深度学习 自然语言处理 并行计算
Transformer 学习笔记 | Seq2Seq,Encoder-Decoder,分词器tokenizer,attention,词嵌入
本文记录了学习Transformer过程中的笔记,介绍了Seq2Seq模型及其编码器-解码器结构。Seq2Seq模型通过将输入序列转化为上下文向量,再由解码器生成输出序列,适用于机器翻译、对话系统等任务。文章详细探讨了Seq2Seq的优势与局限,如信息压缩导致的细节丢失和短期记忆限制,并引入注意力机制来解决长序列处理问题。此外,还介绍了分词器(tokenizer)的工作原理及不同类型分词器的特点,以及词嵌入和Transformer架构的基础知识。文中包含大量图表和实例,帮助理解复杂的概念。参考资料来自多个权威来源,确保内容的准确性和全面性。
|
9月前
|
JSON 监控 前端开发
如何开发门店业绩上报管理系统中的销售计划板块?(附架构图+流程图+代码参考)
门店业绩上报不仅是记录销售数据,更是公司目标传达、资源分配与激励设计的关键环节。本文全面解析销售计划板块的构建,涵盖功能拆解、业务流程、技术架构及开发技巧,并提供上线后的运营建议与代码参考,助力企业实现高效门店管理与目标追踪。
|
机器学习/深度学习 搜索推荐 数据可视化
大数据用户画像之基本概念
大数据用户画像利用大数据技术分析用户基本信息、消费行为、兴趣、社交及地理数据,创建详细用户模型,助力企业精准营销。涉及技术包括数据挖掘、大数据处理(Hadoop、Spark)、数据可视化、机器学习和数据库管理。通过用户画像,企业可实现市场定位、个性化推荐、精准广告、产品优化和风险控制。学习该领域需掌握多个技术栈,包括相关算法、工具及业务理解。
1999 4
|
存储 设计模式 编解码
.NET 8.0 通用管理平台,支持模块化、WinForms 和 WPF
【11月更文挑战第5天】本文分析了.NET 8.0 通用管理平台在模块化、WinForms 和 WPF 方面的优势。模块化设计提升了系统的可维护性和可扩展性,提高了代码复用性;WinForms 提供了丰富的控件库和简单易用的开发模式,技术成熟稳定;WPF 支持强大的数据绑定和 MVVM 模式,具备丰富的图形和动画功能,以及灵活的布局系统。
790 2
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在软件测试中的创新应用与实践###
本文旨在探讨人工智能(AI)技术如何革新软件测试领域,提升测试效率、质量与覆盖范围。通过深入分析AI驱动的自动化测试工具、智能化缺陷预测模型及持续集成/持续部署(CI/CD)流程优化等关键方面,本研究揭示了AI技术在解决传统软件测试痛点中的潜力与价值。文章首先概述了软件测试的重要性和当前面临的挑战,随后详细介绍了AI技术在测试用例生成、执行、结果分析及维护中的应用实例,并展望了未来AI与软件测试深度融合的趋势,强调了技术伦理与质量控制的重要性。本文为软件开发与测试团队提供了关于如何有效利用AI技术提升测试效能的实践指南。 ###
|
监控 虚拟化
计算机操作系统-第九天
计算机操作系统-第九天
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
748 0
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
361 0
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
1049 1