深入理解LabVIEW的数据采集和模拟输入

描述

LabVIEW 是一种面向工程师的编程语言,采用图形化编程,多线程同步运行,只需要连线就能进行软件的编制。提供了丰富的函数库和控件,搭建软件的界面非常迅速,一个熟练的工程师可能只需要几分钟就能搭建一个数据采集系统。

”为什么选择 LabVIEW 做数据采集?

LabVIEW 是一种面向工程师的编程语言,采用图形化编程,多线程同步运行,只需要连线就能进行软件的编制。提供了丰富的函数库和控件,搭建软件的界面非常迅速,一个熟练的工程师可能只需要几分钟就能搭建一个数据采集系统。

NI 的数据采集卡提供了对 LabVIEW 丰富且完备的支持,驱动函数都是在底层的基础函数上进行了高度封装,用户不需要对采集卡具体工作有深入的了解,只要掌握这些驱动函数输入 / 输出端口的意义,就能进行数据采集开发。

LabVIEW 中的模拟输入

LabVIEW

连续模拟输入

LabVIEW

需要注意,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下 3 个参数来达到上述要求:

buffer size(缓存的大小)

scan rate(采样速率)

number of scans to read at a time(每次读取的样本数)

连续采集的程序模型为:

LabVIEW

连续模拟输入程序实例

LabVIEW

对于一些复杂的采集任务,可以采用一些特殊的采集方式,例如采用外部时钟采集、触发采集等;

触发采集种类很多,根据触发信号类型可以分为数字信号触发和模拟信号触发;根据触发形式可以分为边沿触发和窗口触发;根据触发功能可以分为启动触发、暂停触发和参考触发;

不是每个数据采集卡都具有这些特殊采样功能的,使用前要查看采集卡的使用手册;

在模拟输入采集系统中,实现数据采集并不复杂,数据处理与分析才是难点。

LabVIEW 中的模拟输出

LabVIEW

连续模拟输出

有两种形式的连续模拟输出,第一种就是在模拟输出之前,将数字信号写入缓冲区中,然后设备连续不断地将缓冲区中的数据通过 DAC 重复输出。这种连续模出执行效率很高,但是需要写入的数字信号必须是整周期的,不然输出模拟信号将会不连续,在使用上不够灵活。

LabVIEW

第二种方式就是在设备将缓冲区中数据输出的同时,不断地将数字信号写入缓冲区中,这种方式在编程上比较复杂,但是灵活性比较高,只要保证这一次写入缓冲区的数字信号和上次是连续的就行,不需要每次写入的信号是整周期的。

LabVIEW

LabVIEW 中的数字 I/O

一般情况下,数字 I/O 按照 TTL 逻辑电平设计,其逻辑低电平在 0 到 0.7V 之间,高电平在 3.4 到 5.0V 之间;

在硬件设备上,多路(Line)数字 I/O 组成一组后被称为端口(Port)。一个端口由多少个数字通路组成是依据其设备而定的,在多数情况下 8 个数字通路组成一个端口;

在 LabVIEW 中对数字 I/O 的操作非常简单,可以对整个端口进行操作,也可以对端口中的一路或多路同时进行操作。

LabVIEW 中的计数器

LabVIEW

如上图为计数器的简化模型:一个 SOURCE 输入口、一个 GATE 输入口、一个 OUT 输出口,以及一个计数寄存器。

可以设置对 SOURCE 输入端口由高到低或由低到高的信号状态进行计数;可以设置内部计数寄存器的计数方式为递增或递减;

GATE 端口的输入控制计数器的计数操作,可以设置为以下几种门限工作方式:高电位计数、低电位计数、上升沿触发计数、下降沿触发计数,以及无门限方式;

可以使用 OUT 口发生多种类型的波形,或者用于计数器的串级使用中,从而增大计数器的量程。

计数器的频率测量

LabVIEW

并行安排处理

多功能 DAQ 设备上的模拟输入、模拟输出、数字 I/O 和计数器等功能是能够同时运行的,可以在程序中并行安排这些功能,还能实现它们的同步。

如下图,是一个连续采集和连续模拟输出并行安排的程序,利用传递 error 信息的数据线安排并行的执行顺序。

LabVIEW

编辑:hfy

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分