主要内容

增量式旋转编码器测量角位置

这个例子展示了如何获取角位置数据使用一个增量式旋转编码器和一个多功能数据采集与数据采集工具箱(采集)设备正交编码器测量功能。

一种增量式旋转编码器通常安装在轴的机械系统,如风力涡轮机或一个机械手臂,提供运动或位置信息。两个正交编码器输出信号,提供的信息相对位置和旋转的方向变化。柜台子系统采集设备的使用由编码器输出的信号来计算位置的变化,和跟踪最近的位置值。在MATLAB,一个输入通道位置测量类型用于读取的位置的值。

这个示例使用一个光学轴角编码器(美国数字代替- 2500 - ie)和多功能采集设备(NI usb - 6255)与计数器通道正交编码器的功能。

创建一个数据采集对象

创建一个数据采集对象和添加一个输入通道位置测量类型。

s =采集(“倪”);ch1 = addinput(年代,“Dev1”,“ctr0”,“位置”);

配置硬件

两正交旋转正交编码器输出信号,A和B,它们提供的信息的相对位置和旋转的方向的变化。可选地,一些模型输出索引或参考信号,Z,活跃的每次革命。您可以使用Z信号复位计数器一个已知的参考价值。

连接A, B,和Z从编码器设备信号输出合适的采集输入指定的终端采集设备数据表(PFI8、PFI10和PFI9 NI usb - 6255)。正确的终端取决于设备模型和计数器通道使用,并且可以通过阅读以下列出的属性:

ch1.TerminalA
ans = ' PFI8 '
ch1.TerminalB
ans = ' PFI10 '
ch1.TerminalZ
ans = ' PFI9 '

配置正交循环编码类型(X1, X2,或X4)。这对应于的数量计数(计数器值的增量或衰减)为每个正交编码器输出的周期(1、2或4),如编码器数据表中指定。

ch1。EncoderType =X1的;

读取编码器位置需求

采集设备硬件计数器跟踪编码器信号的相对位置的变化。使用读一个更新计数器输入通道的位置。

encoderPosition =阅读(年代,1,“OutputFormat”,“矩阵”)
encoderPosition = 0

这个例子使用一个光学编码器模型分辨率为2500每轴正交循环革命,编码器数据表中指定。

计数器值转换为角位置(度)使用编码器分辨率和编码类型(在这种情况下的X1)。

encoderCPR = 2500;encoderPositionDeg = encoderPosition * 360 / encoderCPR
encoderPositionDeg = 0

获得Hardware-Timed编码器的位置数据

高时间分辨率要求的数据采集应用程序必须hardware-timed(时钟)。概念验证,本例中描述一个摆动的钟摆的运动通过测量它的角位置和时间。

收购hardware-timed数据从一个计数器输入通道,倪采集设备需要使用外部时钟或使用一个时钟从另一个子系统。

添加一个模拟输入通道数据采集对象自动分享这个系统的扫描时钟。

addinput(年代,“Dev1”,“ai0”,“电压”);

配置采集率(样本/ s)和收购持续时间以秒为单位。

年代。率= 10000;daqDuration =秒(35);

在前台获取数据。

[positionData,时间戳]=阅读(s daqDuration“OutputFormat”,“矩阵”);

默认情况下,柜台位置读数是无符号整数的值。柜台渠道采集设备的使用在本例中是32位的,所以任何计数器值读取范围将在0到2 ^ 32-1。取决于应用程序,您可能希望获得签署位置值(正面或负面)递减计数器值过去0是一个不连续的2 ^ 32-1。

对于32位的计数器通道,使用2 ^ 31的阈值计数器值转换为签署位置值。结果是有效的,如果实际位置值范围在2 ^ 31 + 1到2 ^ 31。

counterNBits = 32;signedThreshold = 2 ^ (counterNBits-1);signedData = positionData (: 1);signedData (signedData > signedThreshold) = signedData (signedData > signedThreshold) - 2 ^ counterNBits;

计算编码器位置度的数据。

positionDataDeg = signedData * 360 / encoderCPR;

情节签署角位置数据获得的振动摆。

图绘制(时间戳,positionDataDeg);包含(“时间(s)”);ylabel (的角位置(度));

使用Z信号参考已知的绝对位置的相对位置

A和B正交信号的输出通过增量式旋转编码器只提供相对位置信息(运动方向和位置的变化)。可选的参考信号Z是一个脉冲输出一次每在一个预定义的绝对位置编码器轴革命。引用相对位置值已知的绝对位置参考允许增量式旋转编码器作为pseudo-absolute位置编码器。这是有用的在精确定位应用程序(如工业自动化、机器人技术、太阳能跟踪雷达天线或望远镜定位)。

增量式旋转编码器提供Z指数信号输出,柜台的位置值可以配置为自动重置为已知的参考价值。

设置ZResetEnableZResetCondition属性。

ch1。ZResetEnable = true;

配置ZResetConditionA和B,这是基于相位信号。

ch1。ZResetCondition =“BothLow”;

指定的绝对参考位置的值ZResetValue计数器的值将被重置。

ch1。ZResetValue = 0;

获取并绘制一组hardware-timed柜台的位置数据来展示如何使用编码器Z指数信号自动重置计数器值到一个已知的参考价值。

[positionData2, timestamps2] =阅读(s daqDuration“OutputFormat”,“矩阵”);图绘制(timestamps2 positionData2 (: 1));包含(“时间(s)”);ylabel (的计数器值正交编码器(计数));

获取位置数据对应一个旋转编码器轴不断旋转。注意,之前第一次重置计数器值引用的位置值不是一个绝对的位置,而其他柜台重置事件发生时,计数器值为2500(编码器CPR值)。