主要内容

用NI器件计数数字信号上的脉冲

这个例子展示了如何通过计算信号中上升边的数量来确定阿纳海姆自动化电机控制器的旋转速率。控制器返回霍尔效应脉冲(方波),作为电机转速的频率反馈。

创建一个计数器输入通道

使用数据收集来创建数据采集和addinput添加计数器输入通道EdgeCount测量类型。在本例中,使用CompactDAQ机箱NI c9178和ID为cDAQ1Mod5的模块NI 9402。

dq =采集(“倪”);ch = addinput (dq,“cDAQ1Mod5”“ctr0”“EdgeCount”);ch
ch =指数类型设备通道测量类型范围名称  _____ ____ ___________ _______ ________________ _____ ________________ 1“词”“cDAQ1Mod5”“ctr0”“EdgeCount”“n / a”“cDAQ1Mod5_ctr0”

确定计数器输入通道的终端

要将输入信号连接到正确的端子上,请检查终端通道属性。终端由硬件决定。

ch.Terminal
ans = ' PFI0 '

读取计数器通道

要确定计数器是否运行,输入单个扫描,电机旋转时暂停,然后再次读取计数器。

阅读(dq)
ans = cDAQ1Mod5_ctr0时间表的时间  _____ ______________ 0秒3
暂停(0.1);阅读(dq)
ans = cDAQ1Mod5_ctr0时间表的时间  _____ ______________ 0秒14
暂停(0.1);阅读(dq)
ans = cDAQ1Mod5_ctr0时间表的时间  _____ ______________ 0秒27

测量每秒转数

通过将计数器复位为零,暂停一秒钟,并读取计数器来计数脉冲数。霍尔效应每120度定向一次,每旋转一次产生三个方波脉冲。

resetcounters (dq);暂停(1);读(dq,“OutputFormat”“矩阵”) / 3
ans = 33.6667

使用硬件时钟以提高精度

硬件时钟非常精确。使用硬件时钟来获取多个计数器测量值。NI计数器设备需要一个外部时钟。通过为同一个机箱上的模块添加模拟输入通道,DataAcquisition与两个模块共享一个内部时钟。

dq =采集(“倪”);addinput (dq,“cDAQ1Mod1”“ai0”“电压”);addinput (dq,“cDAQ1Mod5”“ctr0”“EdgeCount”);数据=读取(dq,秒(0.25));(数据。时间,data.Variables);