labview下位机软件编程笔记

简介: labview下位机软件编程笔记

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?

博客写作背景----项目中解决的问题

最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。LabVIEW的查错、调试功能也非常强大。程序查错无须先编译,只要有语法错误,LabVIEW就会自动显示并给出错误的类型、原因及准确位置。进行程序调试,既有传统的程序调试手段,如设置断点、单步运行等,又有独到的高亮执行工具,就像电影中的慢镜头,使程序动画式执行,利于设计者观察程序运行细节。同时可以在任何位置插入任意的数据探针,程序在调试状态下运行时,LabVIEW会给出各探针的具体数值,通过观察数据流的变化情况、程序运行的逻辑状态,寻找错误、判断原因,从而大大缩短程序调试时间。


下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。

编程知识点–软件环境

硬件连接好后,要确保计算机中安装有相应的软件环境,具体地,除了LabVIEW外,还应安装可对单片机进行开发的IDE(集成开发环境),例如本章中使用的Arduino IDE。

Arduino IDE

Arduino IDE主要是针对Arduino开发板的,利用Arduino IDE,也可以对其他类型的开发板进行编程,但需要对一些参数进行设置。


1)Arduino IDE的安装及参数设置


首先下载Arduino IDE(本教材使用的是Arduino IDE1.6.7)并安装此软件。安装好Arduino IDE后,还需要设置一些参数,才能利用它实现对chip KIT WF32开发板的编程。具体的参数设置过程如下,首先在图12.8所示的界面中单击“文件”→“首选项”,弹出如图所示的界面。在“附件开发板管理器网址”中输入“https://github.com/chipKIT32/chipKIT_core/raw/master/package_chipKIT_index.json”,单击“好”按钮,退出该界面。


78ef3239bae64d57bf9d8be70e2dd636.png


如果采用的是Arduino开发板,可以跳过上面的参数设置这一步骤;如果采用的是其他开发板,但也想利用Arduino IDE对其进行编程,对于“附件开发板管理器网址”的信息,可以联系开发商获得。


6548bf75b5ec48459210e998026c29bb.png


2)Arduino IDE编译环境简介

安装好的Arduino IDE的界面如图12.10所示。在Arduino IDE中,程序包括三个部分,分别是“程序结构”“值”(变量和常数)以及“函数”。其中,程序结构具体又可分为两部分,分别是“setup()”和“loop()”。具体地,“setup()”中的程序只会执行一次,而“loop()”中的程序代码则会循环执行。


d98525486ad547d4a85f2123a669c81f.png


表12.1介绍的是Arduino IDE中的14个常用函数。在使用这些函数时,需要注意以下几点:①在使用函数digitalRead和digitalWrite之前,需调用pinMode函数,设置数字引脚是输入或者输出状态。②在使用函数analog Read之前,无须调用pinMode函数。③向串口写数据,共有5个函数可以实现,分别是Serial.write()、Serial.print(val)、Serial.print(val,format)、Serial.println(val)和Serial.println(val,format)。其中,函数Serial.write()写入的是二进制数据;Serial.print(val)和Serial.print(val,format)写入的是ASCII码;Serial.println(val)和Serial.println(val,format)写入的是ASCII码加上回车符和换行符。④对Serial.print(val)函数而言,如果输出的为浮点数,默认保留两位有效数字;其还可以输出整数、字母和字符串等。举例如下:Serial.print(78)输出“78”;Serial.print(1.23456)输出“1.23”;Serial.print(“N”)输出“N”;Serial.print("Hello world.")输出“Hello world.”。⑤如果想设置输出数据的格式,可以用Serial.print(val,format)函数。其中,如果val为整数,format可以是BIN(二进制)、OCT(八进制)、DEC(十进制)和HEX(十六进制);如果val为浮点数,format就是要保留的小数位数。举例如下:Serial.print(78,BIN)输出“1001110”;Serial.print(1.23456,2)输出“1.23”。⑥函数Serial.available()经常用来判断串口缓冲区中是否有数据。


LabVIEW中相关的函数

对于几乎所有种类、型号的单片机,在LabVIEW中都可以利用VISA函数编写串口通信程序,以实现对单片机的控制。对有的类型或型号的单片机开发板,生产厂商已经开发好了相应的驱动程序,即只要利用这些驱动程序,就可以很方便地实现串口通信。这些专门的驱动程序可以与单片机开发板生产厂商联系并获得。


1)VISA函数

在LabVIEW中,经“函数”选板→“仪器I/O”→“VISA”子选板途径,可以找到VISA函数,具体如图12.11所示。在这些函数中,使用较多的主要有4个,即“VISA配置串口”“VISA写入”“VISA读取”和“VISA关闭”,具体介绍提供在表中。


6bc8c5964a894ef1ba1ff65580524971.png


246cc6cf187545278471bf8dfa5576a0.png

利用VISA函数开发串口通信程序的步骤如下:①调用“VISA配置串口”函数,选择单片机与计算机相连的串口,并对串口参数进行初始化;②调用“VISA写入”函数,向单片机发送指令,或者调用“VISA读取”函数,从单片机中读取数据;③调用“VISA关闭”函数,释放掉占用的硬件资源。需要注意的是,对于第2步,计算机与单片机之间的通信协议要由使用者自己事先规定好。


2)专门驱动程序

对于chipKIT WF32来说,当按照附录B安装好LINX后,再按照附录C在LabVIEW中运行MakerHub,会在LabVIEW的函数选板中自动添加一个MakerHub子选板,如图所示。这些函数是开发板生产厂商事先开发好的,它们的功能与本教材第11章中所讲的仪器驱动程序是类似的。利用这些函数,可以在LabVIEW环境下实现计算机与单片机开发板的通信。

a2c0489e424549f0bd8d7b4c0a13ae4c.png

目录
相关文章
|
10月前
|
传感器 数据采集 文字识别
如何系统学习LabVIEW?
专栏中按照LabVIEW工控方向进行学习和研究,从基础的LabVIEW开发技巧方式到工业设备仪器控制、LabVIEW单片机开发以及LabVIEW机器视觉都有涉猎。
|
10月前
|
传感器 数据采集 存储
LabVIEW转子动平衡测控系统
本软件是基于 LabVIEW 的转子动平衡测控系统,为了实现转子信号的实时精确采集,使用高采样频率,提高采样的转换速率,通过多通道实时采集的 NI 采集卡实现信号采集。
|
10月前
|
传感器 机器人
LabVIEW控制Arduino实现超声波测距(进阶篇—5)
超声波测距是一种传统而实用的非接触测量方法,与激光、涡流和无线电测距方法相比,具有不受外界光及电磁场等因素影响的优点,在比较恶劣的环境中也具有一定的适应能力,且结构简单、成本低,因此在工业控制、建筑测量、机器人定位方面有广泛的应用。
|
10月前
|
传感器 算法 IDE
LabVIEW和Arduino的巧妙结合(基础篇—1)
本专栏使用的单片机为:Arduino(本系列专栏使用Arduino UNO控制器),主要原因在于,Arduino简单易上手,老少皆宜,受众面广泛,使用Arduino作为下位机,LabVIEW作为上位机,独立开发者可以快捷开发出一套软硬件联控的演示系统。
|
12月前
|
算法 图形学
LabVIEW示波器编程
LabVIEW示波器编程
82 0
|
12月前
|
算法 API 图形学
LabVIEW VISA编程笔记
LabVIEW VISA编程笔记
151 0
|
移动开发 数据可视化 Unix
LabVIEW软件、驱动安装及编程方法(理论篇—2)
LabVIEW软件、驱动安装及编程方法(理论篇—2)
LabVIEW软件、驱动安装及编程方法(理论篇—2)