番茄炒蛋不要蛋
在LabVIEW的串口通信中,数据的发送与接收都是基于字符串控件(常量)进行的。 字符串控件(常量)有两种表现形式:正常显示和十六进制显示。正常显示:可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。十六进制显示:每个字符显示为其十六进制的ASCII值或其他编码值,字符本身并不显示。 本篇博文将介绍如何使用LabVIEW实现十六进制和字符类型转换。字符类型转换为十六进制程序如下所示:十六进制转换为字符类型程序如下所示:
番茄炒蛋不要蛋
CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。关于CRC校验的实验原理这里不再赘述,百度上有很多的解析,本篇博文主要讲解在LabVIEW环境中如何实现CRC校验。本篇博文介绍两种方法实现CRC校验:内部控件计算CRC校验和公式节点计算CRC校验。软件计算(注意CRC高低位顺序)效果如下图所示:项目资源下载可参加: LabVIEW实现CRC校验-嵌入式文档类资源1、内部控件计算CRC校验使用内部控件计算CRC校验就是使用基本的运算组件实现算法计算过程。实现代码如下所示: 2、公式节点计算CRC校验使用公式节点计算CRC校验,这里主要依托于:公式节点。公式节点可以实现在程序框图上计算数学公式或者使用C语言进行数值运算。这里我使用C语言编程实现CRC校验算法,通过LabVIEW输入数值和接收C语言算法输出数值,实现代码如下所示:
番茄炒蛋不要蛋
之前分享过一篇关于LabVIEW采集鼠标、键盘数据的文章:LabVIEW采集鼠标、键盘数据,本篇博文将分享一个关于鼠标滚轮的有意思小技巧:操作鼠标滚轮来放大和缩小图片。示例效果如下所示:本示例功能主要基于图片控件中用于缩放图像的因子(图片属性)实现,说明如下图所示:通过获取鼠标滚轮数值将其转换为放大/缩小图像数值,使图像可以最小缩小10%,最大放大2000%的效果,示例代码如下所示:
番茄炒蛋不要蛋
本篇博文分享一种有趣的LabVIEW编程思维:使用移位寄存器计算平均值。移位寄存器是LabVIEW循环结构中很常用的一个小技巧,选中while循环框体,右击边框即可创建添加移位寄存器,如下图所示:关于移位寄存器基础知识不太了解的朋友可以看看这篇文章:labview入门到出家6(进阶篇)——移位寄存器的使用_老曹-laocao的博客-CSDN博客_labview移位寄存器常规计算平均值的方式是累加求和取平均,本篇博文将使用移位寄存器计算运行平均值。通过一个示例了解移位寄存器求平均的方法,示例效果如下所示:示例中LabVIEW运行生成随机数,使用通过Random Plot在前面板显示当前的随机值,并通过移位寄存器计算最近四个数值的运行平均值。其中,移位寄存器用于为循环的当前迭代提供一个在前一次迭代中生成的值。在下面的代码中,在给定的迭代中生成的随机数被传递到移位寄存器(在右侧),并在下一次迭代中作为值返回(在左侧)。如果对这个程序不够理解,可以在启用了高亮执行的情况下运行示例,观察在后续迭代中进入右移寄存器和离开左移寄存器的数据流。
番茄炒蛋不要蛋
我们在做应用程序开发时,最后必然会用到应用程序停止或退出功能,本篇博文将分享实用LabVIEW如何实现应用程序停止或退出。其实非常简单,两个组件就可以实现,在LabVIEW中右键鼠标:编程→应用程序控制→可以找到停止和退出LabVIEW,如下所示:停止功能相当于单击工具栏上的中止执行按钮。输入TRUE可调用该函数前,应确认已完成VI的所有最后任务(例如,关闭文件、设置相关设备的保存值等),停止功能仅仅使程序停止运行,不退出LabVIEW环境。退出功能和停止功能很相似,但是它停止所有正在执行的VI并结束当前的LabVIEW实例,在使用的时候需要加以区分。 最后通过一个小案例加深理解,通过点击按钮停止定时计数程序,实现代码如下所示:
番茄炒蛋不要蛋
使用LabVIEW编写好的程序最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?有两种方法:1、在目标电脑上安装LabVIEW以及相关驱动和工具包,然后将vi或者整个项目拷贝到目标电脑上。然而安装LabVIEW和各种工具包会比较耗费时间,且vi可以被任意修改,容易引起误操作,如果只是运行程序,则不推荐这种方法。2、将LabVIEW编写的程序在开发电脑上编译生成独立可执行程序(exe),然后将可执行程序移植到目标电脑上,这里的移植分为两种方式:将生成的exe拷贝到目标电脑上,然后在目标电脑上单独安装LabVIEW运行引擎和需要的驱动以及工具包等,此方法中安装驱动和工具包也需要花费较多时间,不推荐。将生成的exe和一些用到的组件打包生成installer,即安装程序,然后在目标电脑上运行安装程序即可,这样安装完成后,之前生成的exe、LabVIEW运行引擎以及其他用到的工具包会自动安装到目标电脑上,这种方法移植程序比较简单,是最常用的方法。在讲解之前有两点需要注意:1、生成安装程序(installer)之前必须要先生成应用程序(exe)。2、程序VI文件必须要在项目中,如果只是单一的VI文件无法进行生成操作,需要用户新建项目,导入VI文件,如下图所示:1、生成应用程序(exe)第1步:打开工程项目,选中“程序生成规范”,点击右键,选择“新建”,新建“应用程序EXE”,如下图所示:第2步:填写产品生成信息,包括:生成的名称和路径,如下图所示:第3步:添加源文件,将项目中VI文件,导入成应用程序(exe)的启动VI,如下图所示:第4步:设置图标,可以选择下载素材网站好或者自行设计的.ico文件,这里我使用素材网站下载好的图标文件,如下图所示:第5步:最后可以点击生成预览,查看预览生成的路径和文件,如下图所示:第6步:生成应用程序(exe),如下图所示:可以在工程文件中查看生成的应用程序(exe)文件,也可以进入生成路径中,查看相关文件,如下图所示:点击“LabVIEW科学计算器.exe”文件,可以顺利运行应用程序。2、生成安装程序(installer)在生成应用程序(exe)的基础上就可以生成安装程序(installer)了。第1步:在工程项目,选中“程序生成规范”,点击右键,选择“新建”,新建“安装程序”,如下图所示:第2步:填写产品生成信息,包括:生成的名称和路径,如下图所示:第3步:选择“源文件”,在项目文件视图中单击选择之前创建的应用程序生成规范,然后单击添加箭头,将应用程序添加到目标文件夹中,右边目标视图可以看到添加结果,如下图所示:第4步:选择“快捷方式”,修改右边的快捷方式名称和子目录名称。快捷方式名称对应着将来在开始菜单中看到的快捷方式图标的名称,子目录对应着快捷方式在开始菜单中所处的文件夹名称,如下图所示:第5步:选择“附加安装程序”,勾选相应的LabVIEW运行引擎和必要的驱动程序以及工具包等,之后这些驱动以及工具包会一起包含在生成的installer中。LabVIEW在这里会自动勾选一些必要的NI安装程序,但是有可能并没有包含所有需要安装的程序,此时程序中使用到了哪些驱动以及工具包,在这里配置的时候就需要勾选哪些工具包。如下图所示:第6步:最后生成安装程序(installer),如下图所示:可以在工程文件中查看生成的应用程序(exe)和安装程序(installer文件,也可以进入生成路径中,查看相关文件,如下图所示:点击“LabVIEW科学计算器.exe”,选择安装路径,可以进行安装操作,如下图所示:
番茄炒蛋不要蛋
LabVIEW实在强大方便,今天为各位分享一个小技巧:如何制作一款模拟波形效果小软件。这里依托于LabVIEW内置的波形生成VI,本篇博文仅仅仅介绍基本函数发生器VI,仅仅是一个抛砖引玉,感兴趣的朋友可以多多尝试。仅仅使用一个控件实现Sine Wave(默认)、Triangle Wave、Square Wave和Sawtooth Wave波形的可视化,支持调节频率值、幅值和相位值,如下图所示:在LabVIEW1中鼠标点击右键,选择:“信号处理”→“波形生成”→“基本函数发生器”,如下图所示:实现代码非常简单,如下所示:
番茄炒蛋不要蛋
LabVIEW中提供了很多内置的指示灯和按钮控件,可以实现状态的切换和控制,效果如下图所示:但是内置的指示灯和按钮控件样式单一、不够美观且可能和程序的风格不搭配,例如,以下按键点灯示例中使用的指示灯比内置的控件要美观很多。LabVIEW中提供了两种自定义控件方法,对应了如下两种自定义控件类型:普通方式自定义控件:是在LabVIEW开发环境中提供的已有控件的基础上,基于控件原有的属性和方法,仅通过改变控件的外观使其成为个性化的控件,但是功能是改变不了的,哪怕外观看上去不是按钮,但它还是一个布尔控件,该类型的自定义控件保存的文件名后缀为“.ctl”;高级方式自定义控件:是自定义的控件不仅具有个性化的复杂外观,同时也提供了特殊的属性和方法来控制控件的行为,即XControl控件。 本篇博文主要来讲讲普通方式自定义控件的实现方法,高级方式自定义控件较为复杂,而且一般情况下也用不到,感兴趣的朋友可以查看文末的链接进行学习。1、准备图像素材在开始制作前需要制作或者下载两张大小相同的png格式的控件图片,一张作为控件为ture时的状态,一张作为控件状态为false时的图片。例如,我下载的亮、灭LED等的照片,如下所示:2、自定义控件第1步:新建自定义控件,选择:“文件”→“新建”→“其他文件”→“自定义控件”,如下图所示:第2步:鼠标右键,选择:“布尔”,随意选择一种常用的布尔按钮或者指示灯,如下图所示:第3步:将控件切换到“编辑模式”,如下图所示: 第4步:选中控件,点击鼠标右键,选择:“图片项”,可见目前控件的开关显示状态,如下图所示: 第5步:选择:“以相同大小从文件导入...”,将默认的开关图片项替换为下载/设计的控件图像,注意,替换控件图片时,亮灭图片的顺序要保持不变,如下图所示: 第6步:最后,保存为“.ctl文件”,可以在VI程序中调用,鼠标点击右键,选择:“选择控件”,如下图所示:
番茄炒蛋不要蛋
本篇博文分享LabVIEW虽然不常用但是很有意思的一个开发技巧:应用程序后台运行。运行程序后自动隐藏前面板窗口和任务栏图标。实现方法依旧很简单,分为两步:1、隐藏VI前面板窗口隐藏VI前面板窗口程序设计很简单,如下所示:下面详细介绍一下实现过程和方法。第1步:添加“当前VI路径”获取本VI的路径信息:函数→ 编程→文件常量→当前VI路径,如下图所示:第2步:添加“打开VI引用函数”来打开该顶层VI的引用:函数→ 编程→ 应用程序控制子面板→ 打开VI引用函数,如下图所示:第3步:添加“调用节点”,并将VI的引用连接到一个调用节点的输入端:函数→ 编程→ 应用程序控制→ 调用节点,如下图所示:第4步:选择“打开前面板方法”并且选择前面板状态为隐藏后,添加“关闭引用节点”来关闭VI的引用:函数 → 编程→ 应用程序控制→ 关闭引用,如下图所示:2、隐藏任务栏图标在应用程序文件夹中找到“应用程序文件名”.ini文件(根据用户自定义名称,这里所说仅是我自己定义的名称),打开后在最后添加:HideRootWindow = True,如下图所示:
番茄炒蛋不要蛋
在软件项目开发过程中避免不了要将数据保存到本地,例如,登录信息、账户、密码等。保存数据到本地的方式有很多种,本篇博文主要分享LabVIEW内置的保存、读取配置文件方法。在LabVIEW中鼠标右键选择:“编程”→“文件I/O”→“配置文件VI”,可以见到一系列配置文件的操作方法,如下图所示:关于配置文件VI中各个函数功能这里不再赘述,可以查看帮助文档,里面有非常详实的说明。1、保存配置文件编写一个小案例,使用“配置文件VI”将IP地址信息、端口号、用户名和按钮状态信息保存到配置文件中,效果如下图所示:案例的实现非常简单,有两点比较有意思:1、路径设置的是相对路径,保存不受限制;2、可以输出异常错误信息,实现代码如下所示: 最后,可以使用Notepad++(代码查看工具),查看配置文件中的内容,如下图所示:2、读取配置文件读取配置文件就是将保存的配置文件数据信息读取出来,效果如下图所示:实现代码如下所示: