(完整word版)LabVIEW编程基础(中)
- 格式:doc
- 大小:833.51 KB
- 文档页数:25
第四章LabVIEW编程基础4.1 LabVIEW简介1. LabVIEW的发展状况及特点LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化的编程语言和开发环境。
自NI公司于1986年正式推出LabVIEW1.0以来,经过20多年的不断改进和完善,现已发展至LabVIEW 2010版本,我们做实验时就用这个版本。
目前,LabVIEW在测控领域的影响越来越大,逐步奠定了NI在虚拟仪器方面的领导地位。
目前,该软件已广泛应用于航空、航天、通信、电力、汽车、电子半导体、生物医学等众多领域。
LabVIEW把复杂、繁琐、费时的语言编程简化成“用图标提示的方法选择功能块,用线条将各种功能连接起来”的编程方式。
用户利用LabVIEW编程就好像在“绘制”程序流程图。
正由于LabVIEW面向的是广大普通工程师而不是编程专家,因而其已经成为目前应用最广、发展最快、功能最强、最流行的虚拟仪器开发平台。
概括起来,LabVIEW编程语言具有以下特点:①实现了仪器控制与数据采集的完全图形化编程,设计者无需编写任何文本形式的代码。
②提供了大量面向测控领域应用的库函数,如面向数据采集的DAQ库函数;面向分析的高级分析库;面向显示的大量仪器面板等。
③提供了大量与外部代码或应用软件进行连接的机制,如动态链接库(DLL)、动态数据交换(DDE)、各种ActiveX等。
④具有强大的网络连接功能,支持常用网络协议,便于用户开发各种网络测控、远程虚拟仪器系统。
⑤LabVIEW应用程序具有可移植性,适用于多种操作系统。
⑥能生成可执行文件,脱离LabVIEW开发环境运行。
2.启动LabVIEW图4-1 LabVIEW窗口从National Instruments LabVIEW →“启动LabVIEW”按钮→“启动”对话框从开始菜单运行National Instruments LabVIEW,在计算机屏幕上将出现如图4-1所示的LabVIEW窗口。
手把手教你学labview编程项目一 labview正版软件安装一、下载软件。
可以在官网下载,也可以购买正版的U盘和光盘。
二、安装软件。
1、找到安装软件所在位置。
双击安装文件打开安装文件,按图示进行下一步操作。
查看自己电脑的版本:鼠标选中桌面上的计算机图标,右键点击属性。
查看自己的电脑是32位系统还是64位系统。
我的电脑是32位操作系统所以选择的是labview中文版,32位。
点击下一步进行下一步操作。
等待安装完成,安装文件较多,可能要等待的时间较久。
点击下一步重启电脑完成安装。
三、labview软件注册1、点击电脑开始菜单,再点击所有程序,找到NI许可证管理器。
2、单击打开许可证管理器,点击激活软件3、在弹出的窗口输入账号密码登录,没有账号点击创建账号注册NI用户账号。
4、登录后在相应的地方输入产品的序列号进行激活。
软件激活后便可以正常使用。
项目二 labview破解版软件安装一、下载数据包。
在网上搜索labview 2018破解版,下载相应的安装数据包,下载后进行解压。
二、软件安装。
1、双击运行2018LV-WinChn进行安装。
2、选择数据保存位置,建议选择默认,点击Unzip。
3、进入安装向导,点击“下一步”。
安装过程弹出安装Labview硬件支持,点击不需要支持,破解版暂时没办法解决硬件支持问题。
如果需要使用硬件请下载正版激活。
这里可以重启,也可以稍后重启,安装完后先不要打开软件。
三、软件破解。
1、回到刚才下载的数据包中,运行破解程序“NI License Activator 1.2”右键选择所有需要激活的地方,点activate进行激活。
2、当全部变为绿色表示破解成功。
3、运行软件即可正常使用。
项目三两个数值相加一、新建VI。
双击打开Labview软件。
在弹出的窗口点击创建项目,按以下图示进行下一步操作完成VI创建。
创建完成后会有前面板和程序框图两个窗口。
前面板主要用来放置控件,程序框图用来编写程序。
LabVIEW入门指南从零开始学习电气工程师必备的编程工具LabVIEW入门指南:从零开始学习电气工程师必备的编程工具LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种面向工程和科学领域的开发环境和系统设计平台,是一种图形化编程语言,由美国国家仪器公司(National Instruments, NI)开发。
本指南将介绍LabVIEW的基本概念和使用技巧,帮助初学者从零开始学习并掌握这一被认为是电气工程师必备的编程工具。
一、LabVIEW简介1.1 LabVIEW的定义与特点LabVIEW是一种图形化编程语言,采用了“数据流”编程范式。
与传统的文本编程语言相比,它具有以下特点:- 直观的编程界面:通过拖拽、连接图标表示程序流程,使得程序的编写更加直观和易于理解。
- 灵活的调试能力:可以通过程序的前后连接关系来逐步调试和分析程序的运行情况。
- 强大的信号处理和控制功能:内置了丰富的信号处理和控制功能模块,方便工程师进行各种复杂的电气工程任务。
- 与硬件设备的紧密结合:可以直接与各种硬件设备进行通信和控制,便于实时采集和处理数据。
1.2 LabVIEW的应用领域由于其特点和优势,LabVIEW在各个工程和科学领域得到了广泛应用,主要包括以下几个方面:- 自动化测试与测量:LabVIEW提供了强大的数据采集和分析功能,可以用于工程测试与测量领域的应用,如功率测试、信号分析等。
- 控制系统设计与实现:通过与各种硬件设备的连接,LabVIEW可以实现对工程系统的控制与监控,如自动化控制、机器人控制等。
- 信号处理与模拟仿真:LabVIEW内置了丰富的信号处理和模拟仿真模块,可用于信号滤波、频谱分析、系统建模等应用。
- 数据可视化与数据处理:LabVIEW提供了直观的数据可视化和处理工具,方便工程师分析和呈现实验结果。
二、LabVIEW环境搭建与基本操作2.1 安装LabVIEW首先,您需要从NI官方网站下载并安装LabVIEW开发环境。
精品资料L a b V I E W编程基础(中)LabVIEW的基本控件与基本函数LabVIEW基本控件:数值、布尔、字符串与路径、数组与簇、图形、枚举1、数值:数值输入控件与数值显示控件(数值输入控件有增量/减量按钮;输入为白色背景,输出为灰色背景)默认数据类型为:双精度,橙色。
2、布尔:值默认为False,图标为绿色。
布尔控件的机械动作属性单击时转换:按下按钮时改变状态,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮释放时转换:按下按钮时保持当前状态,直到释放按钮,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮保持转换直到释放:按下按钮时改变状态,直到释放按钮,,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)。
类似开关按钮单击时触发:按下按钮时改变状态,LabVIEW再次读取控件值后返回原状态。
释放时触发::按下按钮时保持当前状态,释放时改变状态,LabVIEW再次读取控件值后返回原状态。
保持触发直到释放:按下按钮时改变状态,直到释放按钮,LabVIEW再次读取控件值后返回原状态。
3、字符串与路径:(字符串输入控件与字符串显示控件),粉色。
4种显示方式(正常显示、’\’代码显示、密码显示、十六进制显示)4、数组:依据加入的控件类型同样分为输入控件与显示控件LabVIEW的数组以索引号0表示数组的首个数据。
增加数组维度的方法:(1)索引框的快捷菜单中->增加维度(2)直接向下拖动索引框(3)属性对话框->外观选项卡->维数组中的元素为同类型的控件,可以是各种类型的控件,但不能是数组的数组。
数组的多态性:5、簇:依据加入的控件类型同样分为输入控件与显示控件簇本身的属性:重新排序簇中控件、自动调整大小(无、调整为匹配大小、水平排列、垂直排列)使用簇结构时,尽可能的使用:严格自定义类型。
错误簇:状态(布尔)、代码(数值输入)、源(字符串输入)6、波形图表(Chart)与波形图(Graph):波形图表有一个“先入先出的缓冲区(默认为1024个数据)”,所以特别适合实时显示数据。
LabVIEW 基础课程LabVIEW是一个由美国国家仪器公司(National Instruments, 简称NI)开发的一种图形化的编程语言,适用于各种科学仪器、自动化控制系统、工业控制器、机器人、计算机视觉以及其他数种领域。
对于初学者而言,LabVIEW具有易学易用,能够快速搭建编程框架、自定义仪器和控制板的优势。
在本文中,我们将详细介绍LabVIEW的基础知识,为初学者提供参考和帮助。
I. LabVIEW的基本概念1. 程序设计的开发环境首先,让我们了解LabVIEW程序设计的开发环境。
当你打开LabVIEW时,你会看到一个像赛车赛道的界面,四张白纸条形图表(称为面板)以及一个工具栏和一些弹出式面板。
这是LabVIEW编辑器的默认显示界面。
2. Front Panel与Block Diagram在LabVIEW中,有两种主要的视图:Front Panel和Block Diagram(内部实现图)。
Front Panel是你设计和用户交互的部分,它代表了你设计的用户界面,可以不依赖于内部的实现。
Block Diagram代表程序的实际实现。
你需要在Block Diagram 中实现代码来操作Front Panel中的元件,实现前端与后端的交互。
3. 仪器控件Front Panel中的控制元件通常被称为仪器控件。
这些控件包括LED指示灯、滑动条、开关、按钮、数字显示器、图形控件等。
这些元件非常有用,可以使你的程序具有更直观的交互界面。
4. 节点在Block Diagram中,你可以看到调用或创建代码的节点。
节点是指图形化的可执行代码块,而代码则表示为一系列节点连接一起构成的类似于电路图的图形化代码。
5. 数据流LabVIEW采用数据流编程风格。
这意味着,你的程序中的数据是从节点流向节点的,而不是通过函数调用。
你可以使用数据来控制程序的执行顺序,将代码块放在不同的位置,实现了代码并行执行的效果。
第八章LabVIEW的编程技巧本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。
8.1局部变量严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。
在LabVIEW这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。
在一般的代码式语言中,情况不是这样的。
例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。
前面所介绍的LabVIEW内容中,只有移位积存器即可输入又可输出。
另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。
还有其他需要,因此LabVIEW引入了局部变量。
8.1.1局部变量的创建我们在框图上设置三个变量,两个控制器分别为Numeric和Numeric 2,现在增加局部变量。
选择Function→Structures→Local Variable 然后将其拖到框图上,就可得到一个代“?”的图标,下一步将其与框图中已有的变量建立关联,有鼠标右键单击图标,进入Select Item 选择“input1” ,最后框图就变成了图7-1右边的样子。
图7-1局部变量的创建局部变量只是原变量的一个数据拷贝,但是它的属性可以修改,并且这种改变不会影响原变量。
例如上图中的这个局部变量可以利用快捷菜单中的Change To Read 变成一个指示器。
这样的一对变量的组合,就使它既可读又可写了。
局部变量有三种基本的用途:控制初始化、协调控制功能、临时保存数据和传递数据。
下面我们通过练习来说明。
8.1.2 应用举例练习8-1 用一个开关控制两个循环]该练习中有两个While 循环,现在我们用一个开关同时控制它们的运行。
面板与框图如上所示。
在左边的一个循环中设定了一个开关。
LabVIEW的基本控件与基本函数
LabVIEW基本控件:数值、布尔、字符串与路径、数组与簇、图形、枚举1、数值:数值输入控件与数值显示控件(数值输入控件有增量/减量按钮;输入为白色背
景,输出为灰色背景)
默认数据类型为:双精度,橙色。
2、布尔:值默认为False,图标为绿色。
布尔控件的机械动作属性
单击时转换:按下按钮时改变状态,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮
释放时转换:按下按钮时保持当前状态,直到释放按钮,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮
保持转换直到释放:按下按钮时改变状态,直到释放按钮,,再次单击后恢复原状态。
与VI 是否读取控件无关。
(可赋值恢复)。
类似开关按钮
单击时触发:按下按钮时改变状态,LabVIEW再次读取控件值后返回原状态。
释放时触发::按下按钮时保持当前状态,释放时改变状态,LabVIEW再次读取控件值后返回原状态。
保持触发直到释放:按下按钮时改变状态,直到释放按钮,LabVIEW再次读取控件值后返回原状态。
3、字符串与路径:(字符串输入控件与字符串显示控件),粉色。
4种显示方式(正常显示、’\’代码显示、密码显示、十六进制显示)
4、数组:依据加入的控件类型同样分为输入控件与显示控件
LabVIEW的数组以索引号0表示数组的首个数据。
增加数组维度的方法:(1)索引框的快捷菜单中->增加维度
(2)直接向下拖动索引框
(3)属性对话框->外观选项卡->维
数组中的元素为同类型的控件,可以是各种类型的控件,但不能是数组的数组。
数组的多态性:
5、簇:依据加入的控件类型同样分为输入控件与显示控件
簇本身的属性:重新排序簇中控件、自动调整大小(无、调整为匹配大小、水平排列、垂直排列)
使用簇结构时,尽可能的使用:严格自定义类型。
错误簇:状态(布尔)、代码(数值输入)、源(字符串输入)
6、波形图表(Chart)与波形图(Graph):
波形图表有一个“先入先出的缓冲区(默认为1024个数据)”,所以特别适合实时显示数据。
波形图表的组成要件:X标尺、Y标尺、图例、标尺图例、图形工具选板、X滚动条、数字显示
波形图表(chart)专用属性:
1、刷新模式:带状模式、示波器模式、扫描模式
带状模式:从左至右显示数据,右边添加新数据的同时擦除左边旧数据。
示波器模式:从左至右显示数据,绘图至右边界时,擦除原曲线,重新显示新曲线。
扫描模式:从左至右显示数据,绘图至右边界时,以垂直分割线分隔新旧数据。
波形图表既可以显示单条曲线,也可以显示多条曲线。
显示多条曲线:(1)N维数组:按列来显示,数组有几列在波形图表中就显示几条曲线(2)多个标量数据捆绑成簇,然后输入波形图表
波形图的组成要件:X标尺、Y标尺、图例、标尺图例、图形工具选板、X滚动条、游标、注释(数据操作-创建注释)
显示单条曲线,输入可以是:一维数组、波形数据、波形簇【捆绑,t0、d0、Y(一维数组、二维数组、簇数组等】
显示多条曲线:N维数组(每一行代表一条曲线)、多个一维数组分别捆绑成簇,创建簇数组(簇数组中每个簇元素代表一条曲线)、多个波形数据显示多条曲线(创建波形数组或合并波形信号)
专用属性之游标:
波形图与波形图表显示曲线时,只需要提供Y坐标的数据值,应为他们都是按照顺序显示到X坐标的。
而XY图需要成对输入V坐标和Y坐标的数据值。
显示两条曲线:要先将已经捆绑成簇的两条曲线数据(每条的X坐标与Y坐标数据)用“创建数组”函数合成簇数组,然后再输入到XY图中。
7、枚举:
枚举控件
•枚举控件用于向用户提供一个可供选择的项列表。
•枚举控件广泛用于状态机中。
使用枚举型控件时,应首先定义枚举的值(建议用:“自定义类型”)。
在枚举型控件中添加或删除项时,先定义枚举型的值可避免重写代码。
常用函数
1、数值函数:复合运算、最近数取整、数值常量、随机数(0-1)、枚举常量等
DBL:双精度浮点型,橙色;I32:长整形,蓝色;U32:无符号长整形,蓝色。
复合运算:反转,更改模式
2、比较函数:选择
3、布尔函数:真常量、假常量、与、或、非、异或
4、字符串:字符串长度、连接字符串、截取字符串
(1)从偏移量开始在字符串中删除长度个字符,并使删除的部分替换为子字符串;(2)如长度为0,替换子字符串在偏移量位置插入子字符串;
(3)如果字符串空闲,替换子字符串在偏移量位置后用子字符串覆盖原有字符(4)如子字符串为空,该函数在偏移量位置删除长度个字符。
常用的一些字符串常量
5、对话框与用户界面:单按钮对话框、双按钮对话框、三按钮对话框、提示用户输入(对话框)、显示对话框信息、简易错误处理器
Y返回值0;N返回值1;C返回值2。
提示用户输入:显示标准对话框,提示用户输入用户名(文本输入)、密码(数字)等
信息。
窗口标题显示的信息输入(输入名称、输入数据类型)与下图从上到下一一对应。
显示对话框信息:显示的信息(输入提示信息)
5、定时函数:
等待下一个整数倍毫秒(函数)精度高于等待(ms)(函数),前者还可以实现多线程同步。
“时间延迟”(s) (Express VI) :相当于“等待(ms)”函数.
6、数组函数:数组大小、索引数组、替换数组子集、数组插入、删除数组元素、初始化数组、创建数组、数组子集、搜索一维数组
只能连线一个索引输入端。
可以用初始化数组创建数组
创建数组函数右“连接输入”和“不连接输入”两种模式,默认为“不连接输入”。
如未选择连接输入,函数可创建比输入数组多一个维度的数组。
例如,如连线一维数组至该函数,即使输入值为一维空数组,输出值仍为二维数组。
输入数组的维度应该相同。
该函数可按顺序拼接各个数组,形成输出数组的子数组、元素、行或页。
如有需要,可填充输入以匹配最大输入的大小。
该函数可依据是否在快捷菜单中选择连接输入,选择两种模式的一种。
如选择连接输入,函数可按顺序拼接所有输入,形成输出数组,该输出数组的维度与连接的最大输入数组的维度相同。
7、簇函数:捆绑(使独立元素组合为簇)、解除捆绑(使簇分解为独
立元素)、按名称捆绑(替换一个或多个簇元素)、按名称解除捆绑(返回指定名称的簇元素)、创建簇数组
文件I/O:打开/创建/替换文件、写入文本文件、读取文本文件、关闭文件、创建路径、拆分路径、文件常量(路径常量、当前VI路径)
数据通信:变量(共享变量、局部变量、全局变量);DataSocket;协议(TCP 与UDP)、同步(通知器、队列、信号量)
变量:使程序可以在多个地方对同一个控件进行读/写(“结构”子选板中/‘数据通信”子选板中)
局部变量:实现在同一个程序中不同地方的数据传递。
全局变量:【功能全局变量(不存在数据竞争)、内置全局变量】用于不同程序间数据的传递。
共享变量:有全局变量的所有特性,可以在网络中的不同计算机间相互通信。
DataSocket:
TCP:连接通信、数据传输可靠
UDP:无连接通信,采用广播的方式来发布数据,适用于一点对多点的通信。
速度快、数据传输不可靠,适用于要求不高的数据通信。
通知器:队列适用于多对一的操作,而通知器适用于一对多的操作,类似广播:一点发出的信息,多点可以同时接收。
队列:类似数据缓冲区,也是一个先入先出的数据结构。
但是与数据缓冲区有明显的区别。
信号量:控制获取共享济源权限的数量。
当达到信号量规定的数量之后,其他线程只能等待,直到别的线程释放控制权。
信号量不传递数据。
通知器传递数据,但是一次只能传输一个数据,如写入通知器的数据还未被读取时,程序又写入通知器,前一次写入的数据将被覆盖。
局部变量没有判断数据更新的机制,无法判断数据是否是新数据。
队列通过FIFO 支持多元素操作,保证没有数据丢失或被覆盖。