使用NI器件计数数字信号上的脉冲
这个例子展示了如何通过计算信号中上升边的数量来确定阿纳海姆自动化电机控制器的旋转速率。控制器返回霍尔效应脉冲(方波),作为电机转速的频率反馈。
创建计数器输入通道
使用数据收集
创建数据采集和addinput
添加计数器输入通道EdgeCount
测量类型。本例以CompactDAQ机箱NI c9178和模块NI 9402为例,模块ID为cDAQ1Mod5。
Dq = daq(“倪”);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计数器设备需要一个外部时钟。通过为同一个机箱上的一个模块添加模拟输入通道,数据采集与两个模块共享一个内部时钟。
Dq = daq(“倪”);addinput (dq,“cDAQ1Mod1”,“ai0”,“电压”);addinput (dq,“cDAQ1Mod5”,“ctr0”,“EdgeCount”);Data = read(dq, seconds(0.25));(数据。时间,data.Variables);