使用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”);Data = read(dq, seconds(0.25));(数据。时间,data.Variables);