微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > labview——DAQ边沿计数

labview——DAQ边沿计数

时间:10-02 整理:3721RD 点击:
我们知道常规的数据采集卡均包括模拟量输入、模拟量输出、数字量输入输出和计数器输入输出功能。今天我们主要讨论计数器输入中最简单最基本的边沿计数功能。由于各种板卡采用的计数器芯片不同,所以可以实现不同的特殊功能,但是基本的功能一般都会支持的,我们以NI公司M系列的数据采卡为例,从原理、编程和外部连接的角度,谈一谈如何使用计数器。
M系列板卡提供给用户两个32位通用计数器和一个频率发生器,看看它的原理示意图:



每个计时器有7个输入端,但是实际上只有几个是供用户直接使用的,在具体应用中,也只会使用其中的一个或者几个,下面的示意图描述了计数器默认的几个外部连接管脚。


我们注意到CTRO A、B、Z实际上和CTRO SRC、CTRO AUX、CTR0 GATE是相同的管脚,ABZ主要是用于编码器应用的,采用ABZ的描述方式与编码器的描述方式一致,从计数器的角度看,计数器具有三个输入管脚,分别是:SRC(计数器源)、GATE(门控)和AUX(辅助),具有一个输出管脚OUT(输出)。每个管脚都是可编程功能接口(PFI),PFI是一个非常重要的概念,可以简单地理解可编程管脚,类似于8051单片机的管脚复用功能,我们以后将专门讨论。
计数器的最基本功能是对外部信号进行计数,外部信号连接到CTR0 SRC,当计数器准备好(使能)后,在外部信号的上升沿或者下降沿,计数器会自动进行加一或者减一的操作,前者称作增量计数器(加计数器),后者称作减减量计数器,选用上升沿计数还是下降沿计数是通过软件设置实现的,增量计数还是减量计数是通过AUX(CTR0 B)连接的外部数字信号控制的,默认情况下是增量计数器。
一、单点边沿计数
以上升沿增量计数器为例,随着外部信号(连接到SRC)每发生一个沿的跳变,即上升沿后,计数器自动进行加一操作,它的当前的计数器值存储在板卡内部的寄存器中。



所谓单点计数指的是根据需要,通过软件不断查询板卡计数器中寄存器的值,由于计数器寄存器只能存储当前值,因此只能返回一个标量的值,表示当前计数器的值。

下面我们看下NI 例程中 提供的单点计数器边沿计数的例子。




下面我们详细分析一下上面程序框图实现过程:
基本过程为:配置虚拟通道、启动任务、循环读取计数器当前值、清除任务
1)配置虚拟通道
上图中,我们使用的第一个函数节点是创建虚拟通道节点,在虚拟通道函数中,首先要选择我们想使用的计数器。对于一款数据采集卡,可能具备多个计数器。单点边沿计数是最为简单的应用,只需要一个单独的计数器即可。计数器的高级应用需要多个计数器级联,我们以后会谈谈到。

计数器通常情况下,配置初始化后,计数器的当前值默认为0。个别情况下,比如我们对生产线上生产的零件进行计数,每天结束停机断电后,第二天需要从前一天计数开始继续计数。类似情况下,可以通过设置计数器初始计数值实现。
计数方向有三种选择:增计数、减计数和外控计数。
设定增计数时, 当计数源发生变化时,计数器增加一个计数。反之,如果设定为减计数,计数器减少一个计数。
我们特别要注意的是外控计数方式。在计数器AUX端引入一个控制信号时,可以通过外部控制计数器为增计数器还是减计数器。这样我们可以通过TTL电平人为操控增减计数器,这种方式在PLC 中很常见,在某些单片机中也能见到。
另外一个重要的选择是计数时刻的选择,我们可以选择上升沿计数或者下降沿计数。
2、启动任务
启动任务函数负责采集任务的启动,不仅仅是计数器,其他类型的采集采用同样的启动任务函数。
3、循环采集当前计数
在循环中,我们通过软件设置时间间隔,上面的例子中,每100毫秒读取一次计数器的当前值。需要注意的是由于是单点采集,所以必须设置为:1采样。
4、结束清除任务
采集结束后,必须调用清除任务函数,释放分配的系统资源。

请问小编,我按你的方法做,用的是6024e的数据采集卡,我用NI MAX建立任务(图1)


采用边沿计数(图2)


基本设置(图3)


请问我的硬件接线怎么接呢?是不是信号端接PFI8,一端接PFI0呢?

谢谢小编分享

怎样将边沿计数转换成转速呢?

为什么我的边沿计数由机床的PLC给定的时候,边沿计数不准确,而且也不稳定。有时候一次触发加5,有时是4. 在室内用控制器I/O信号都是正常加1的?

相见恨晚啊!这么好的文章!

             看见这篇文章,有种想哭的感觉,小编  萨拉嘿哟


请问这是什么问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top