为有牺牲多壮志,敢教日月换新天。

LabVIEW(二):计数器应用

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:MindDraft
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9697747.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

1、计数器结构

—>Gate Output—>

Counter Register

—>Source

其中:

Source:被计数的输入源信号

Gate:切断计数是否启动的门控信号

Output:用于输出单个脉冲或脉冲序列的输出信号

Counter Register:存储当前计数值,存储范围跟计数器分辨率有关,超过范围则又从0开始计数。

注:计数器接收或输出的信号都是标准的TTL电平信号。TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。

2、计数器典型应用

(1)、边沿计数:对TTL脉冲信号进行边沿计数。

(2)、脉冲生成:生成单个TTL脉冲或脉冲串。

(3)、脉冲测量:脉冲的高低电平宽度测量、周期/半周期测量、频率测量。

(4)、位置测量:对编码器返回的旋转角度、信息位置等进行测量。

范例查找器(可以用来查找官方标准的举例):帮助>查找范例>硬件输入与输出>DAQmx>计数器测量、生成数字脉冲

3、边沿计数:

时间=计数值*时基信号周期

(1)、功能:

a、可以设定为对信号的上升沿或下降沿计数,输入信号边沿改变计数器的值。

b、对已知频率的标准时基信号计数,则可以将计数值转化为时间值,实现对时间的精确

(2)、首先进行物理连线:

选中设备鼠标右键>设备引脚>查看:计数器(Coounter/Timer Signal)、Source端(Default Pin number)、引脚(Signal Name)。

(3)、在程序框图中设置:

a、DAQmx创建通道多态VI>计数器输入>边沿计数>然后对计数器通道进行配置:通道名(Counter)、初始值(initial count)、向上/下计数(Count Direction)、上升沿/下降沿计数(Edge)。

b、放置DAQmx开始任务VI。

c、在循环中不断读取采集到的边沿数目。

d、采集停止后清除DAQmx任务,并进行简单错误处理。

e、在简单边沿计数的基础上添加门控功能,前面板中设置:门控信号的来源、门控信号为何种状态时停止计数。

注:不熟悉则可以参考<范例查找>:

硬件输入与输出>计数器测量>数字事件计数>Count Digital和Events VI

4、脉冲生成:在计数器输出端输出TTL信号。

(1)、在程序框图中设置:DAQmx创建通道多态VI>计数器输出>脉冲生成>频率。前面板中设置:频率、占空比。

(2)、在程序框图中设置:DAQmx时钟VI>隐式(Implicit,计数器模式):表示采样率由待测信号本身的频率决定

(3)、通过MAX中的测试面板观察输出脉冲序列的状态

注:不熟悉则可以参考<范例查找>:DAQmx>生成数字脉冲>此文件中的范例程序

5、脉冲测量:使用已知频率的时基信号对未知信号进行测量。

细分为三类:

a.脉冲的高低电平宽度测量。

b.周期/半周期测量。

c.频率测量。

6、脉冲宽度测量。

Gate脉冲宽度=计数值*时基信号周期

(1)、原理:将待测脉冲的高电平或低电平置为有效的门控信号在这段时间内,对Source端的实际信号进行计数,得到计数值。

(2)、物理连接:频率较高的时基信号接入Source端,频率较低的Data信号接入Gate端。

(3)、在程序框图中设置:DAQmx创建通道多态VI>计数器输入>脉冲宽度>前面板中设置:通道名、开始边沿(上升沿/下降沿)、根据待测脉冲的范围设定最大值和最小值。

7、周期/半周期测量

Gate脉冲周期(半周期)=计数值*时基信号周期

(1)、物理连接:频率较高的时基信号接入Source端,频率较低的Data信号接入Gate端。

(2)、区别:DAQmx创建多态VI的选择不同。

(3)、得到周期半周期的数值,可以跟前面脉冲宽度的测量结果进行对比,看测量值是否正确。

8、频率测量:

(1)、周期取反法(使用一个计数器)—>适用于低频信号

(2)、平均法(使用两个计数器)—>适用于高频信号

(3)、分频法(使用两个计数器)—>适用于高频信号

9、周期取反法(适用于低频信号)

待测信号周期=计数值*时基信号周期

频率=1/周期

特点:仅使用一个计数器,适用于低频信号(f<timebase/100),即待测信号频率低于Source端时基信号的1%

缺点:如果测量高频信号,可能产生较大的同步误差,导致测量结果不准确。

(1)实现

物理连接:待测信号—>Gate端;内部时基信号—>Source端。原理和物理连接和脉冲周期测量是相同的。

在程序框图中设置:DAQmx创建通道多态VI>计数器输入>频率。前面板中设置待测信号频率的范围,以便驱动底层选择适合的内部时基信号作为Source信号。

(2)、同步误差:Gate信号的上升沿与Source的第一个脉冲的上升沿不能完全同步,可能会造成Source端第一个脉冲上升沿被漏计,而最后一个脉冲上升沿被误计的结果,所以,测得的Gate信号脉冲宽度可能有±1个Source周期的误差存在,这种误差就叫做同步误差。

(3)、在时基信号一定的情况下,待测信号频率越高,越接近时基信号的频率,差生的测量误差将越大。

10、平均法(适用于高频信号)

待测信号频率=计数值/计数时间

原理:在Gate信号有效的时间内,Source脉冲数量越多,同步误差就越小,平均法就是根据这样的原理,在Source端频率一定的情况下延长Gate端的有效时间来提高测量精度。需要两个计数器。

(1)实现

物理连接:只需将待测信号接入一个计数器的Source端即可,其他的连接,驱动会自动帮我们完成。用CTR表示计数器。CTR0:输出指定时间宽度的Gate脉冲。CTR1:频率测量。

内部时基信号—>Source (CTR0)

Out (CTR0) —>Gate (CTR1)

待测信号—> Source (CTR1)

(2)在程序框图中设置

DAQmx创建通道多态VI>计数器输入>频率。

在测量方法接线端>Hight Frequency with 2 counters

DAQmx定时VI> DAQmx时钟VI>隐式(Implicit,计数器模式):表示采样率由待测信号本身的频率决定

11、分频法(适用于高频信号)

Gate信号频率=时基信号频率/计数值

待测信号频率= Gate信号频率*分频系数

原理:先将待测信号做分频处理,降低它的频率,以保证测量结果的准确性。将得到的频率数乘以分频系数,可以还原出待测信号的真实频率。所以分频发也需要两个计数器。

(1)、实现

物理连接:只需将待测信号接入一个计数器的Source端即可,其他的连接,驱动会自动帮我们完成。用CTR表示计数器。CTR0:对待测信号做分频处理。CTR1:频率测量。

待测信号—> Source (CTR0)

Out (CTR0) —>Gate (CTR1)

内部时基信号—>Source (CTR1)

(2)、在程序框图中设置

DAQmx创建通道多态VI>计数器输入>频率。

在测量方法接线端>Large Range with 2 counters

(3)前面板中设置

设置待测接线端频率的范围,以便DAQmx选择合适的内部时基信号。

设置分频系数:使得待测信号分频后的频率低于时基信号频率的1%保证测量结果的准确性。

12、位置测量

分为两类:

a.角度测量—>配合旋转编码器使用

b.线性测量—>配合线性编码器使用

(1)、这两类编码器的工作原理类似:都使用光学传感器来提供两路脉冲序列形式的电信号,例如:序列A和序列B。由于两路脉冲信号之间有90度的相位延迟。即有正交的关系,所以这两类编码器又叫做正交编码器编码器没旋转一周会产生多个脉冲(例如BNC2120上的编码器旋转一周产生96个脉冲),所以通过计数器监控脉冲数目,和信号A和信号B之间的相对相位信息,就可以获得旋转角度和旋转方向的信息。

注:相位(phase):是对于一个波,特定的时刻在它循环中的位置:一种它是否在波峰、波谷或它们之间的某点的标度。相位描述信号波形变化的度量,通常以度 (角度)作为单位,也称作相角。 当信号波形以周期的方式变化,波形循环一周即为360° 。相位常应用在科学领域,如数学、物理学等。例如:在函数y=Acos(ωx+φ)中,ωx+φ称为相位。

(2)、物理连接

Channel A—>Source端(设置脉冲下降沿计数)

Channel A—>AUX端(决定了计数方向,当它的输入为高电平时,计数器向上计数;当它的输入为低电平时,计数器向下计数)

(2)、公式

角度测量:

(°)=(Edge_count/(XN))*360

线性位置测量:

(英寸)=(Edge_count/(XN))*(1/PPI)

其中:

N=编码器旋转一周产生的脉冲数目

X=编码类型。常用的有三种:X1(乘1)、X2(乘2)、X4(乘4)

PPI=脉冲每英寸(每英寸脉冲的数目)

Edge_count=边沿计数值

(2)、在程序框图中设置

DAQmx创建通道多态VI>计数器输入>位置>角度编码器

DAQmx通道属性节点>计数器输入>位置>B输入>接线端

PFIE引脚作为该属性节点的输入,将序列B连接到PFIE引脚上驱动自动将它Root到AUX

posted @ 2018-09-25 08:40  为敢技术  阅读(5942)  评论(4编辑  收藏  举报