学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–做题思路
使用DAQ助手进行DAQ任务编程,方便快速,初学者很容易上手,但是对于一些复杂的测量任务,DAQ助手可能就力不从心了,体现出了一定的局限性,因此使用DAQmx的高级编程就显得很有必要,DAQmx的高级编程常用的有DAQmx API函数编程和DAQmx属性节点编程。
DAQmx API函数编程DAQmx API函数与传统DAQ函数相同,编程灵活,能实现复杂的应用。
DAQmx API函数由于引入了多态机制,一个多态VI可以接收或输出多种数据类型,可以实现模拟I/O、数字I/O、计数器多种功能,因此,一个多功能DAQ设备的所有功能可由相同函数集编程得到,而在传统DAQ中,DAQ设备的每一种功能都对应有一组函数。DAQmx API函数的这种多态VI机制大大减少了VI数量,VI的一个实例相当于传统DAQ中的一个函数,这样就使编程变得简单灵活、通用性强。
DAQmx API函数的模拟I/O、数字I/O及计数器的编程,常用的一些VI都位于【函数】→【测量I/O】→【DAQmx-Data Acquisition】子模板中。
模拟输入是最基本也是使用得最多的DAQ功能,其有关的VI及其实例(instance)如下。
创建虚拟通道的VI为DAQmx Create Virtual Channel. vi,该VI为任务添加一个或一批虚拟通道,如果没有指定任务,它将创建一个任务,由于多态性,其I/O通道类型可以是模拟输入/输出、数字I/O或者计数器输出等。该VI既可以执行信号测量也可以进行信号输出,其具体的实例可以在图标下面的紫色下拉框(多态VI选择器)中选择。
选择不同的实例,VI的端口会略微发生变化,但多数端口是各个实例通用的。在模拟输入中使用最普遍的是电压测量,这里就选择【Analog Input】→【Voltage】实例,如图4-64所示,以此例具体介绍该VI的输入输出端口及其参数。
task in输入端口:指定需要添加虚拟通道的任务,若没有指定,则该VI创建一个新的任务,并将虚拟通道添加到其中
physical channels输入端口:指定用于创建虚拟通道的物理通道名称。在DAQmx物理通道常量(DAQmx physical channel constant)中列出了系统所安装设备和模块的所有物理通道,可供选择,用户也可以在该端口输入包含物理通道名单或者范围的字符串。
注意在DAQmx API函数中,已经没有了device和channels端口,取而代之的是physical channels,physical channels端口,实际上是device和channels的整合。
name to assign输入端口:为创建的虚拟通道指定名称,若不指定,则DAQmx默认使用物理通道名称作为创建的虚拟通道名称。如果用户自己为虚拟通道指定了名称,那么在其他VI或者属性节点涉及该通道的时候,必须使用指定的名称。
units输入端口:为通道返回的测量数据指定单位。这里一共有两个选项,一个是默认值Volts(伏特);另一个为From Custom Scale,即用户自定义的标定信息,若选择此项,则必须同时启用相关联的custom scale name端口。
maximum value输入端口:根据units端口指定的单位来设置采集信号范围的最大值。
minimum value输入端口:根据units端口指定的单位来设置采集信号范围的最小值。
input terminal configuration输入端口:设置采集通道的输入形式,如差分输入、单端参考输入等。
custom scale name输入端口:用户可以自定义通道返回数据的单位,例如,当使用位移传感器时,用户感兴趣的是位移值,而DAQ设备采集到的是信号电压值,此时可以通过一个事先设定的标定关系,将电压值转换为位移值。此端口即用来指定通道使用的自定义的标定关系,若要使用该端口,units端口必须设为From Custom Scale。
error in输入端口:错误输入端口。
error out输出端口:错误输出端口。
task out输出端口:输出任务标识。