Encode 编码器介绍与使用DAQ撷取
此篇主要介绍在一般在 “位置侦测/运动控制”的应用场合中,扮演重要角色的传感器元件。 它就是编码器ENCODE。下文将描述ENCODE的动作原理及种类介绍,与在DAQ资撷取上的配接方式/撷取程序编写等量测实务。“ 希望对读者有所帮助。
1. 编码器是什么
编码器(Encode)一词在各领域会指向不同的事物。而在传感器领域里的编码器是一种利用光学或磁气或是机械电气接点的方式感测物理位置,并将位置转换为电子讯号后输出的装置,作为系统控制位置时的回授讯号来源。
2. 编码器动作原理与种类
编码器种类以运动方式分类有线性与旋转两类,可感知位移与角度变化。再以内部感应方式分类有光学式、磁气式、机械电气接点式三类。通常编码器内都会有随尺 标或转轴移动的格式码盘,以光学式来说盘上会有栅栏分布在盘上,码盘两侧配置穿透式光电感应器,当装置运动时盘上栅栏遮断光电感应器时就会随之输出脉波。 而磁气式就是以具有磁性物质来制作码盘感应,机械电气接点就是在码盘上以印刷电路与电刷直接接触来感应,但因机械电气接
点在长久使用下会有磨损故障问题,现已较少使用。
依码盘的栅栏型式可再分为增量型与绝对型,绝对型通常会在码盘上刻上格雷码式的栅栏,一个四位元的格雷码与码盘会长这样子...
随光电感应器输出盘上的编码,我们就可知道码盘目前运动的绝对位置所在,故称为绝对型。而编码的位元数就决定了码盘一周转的分辨率。例如一个10位元的码 盘最大可以分割1024分,厂商制作时通常会取整数为1000分,所以最终分辨率即为 360度 / 1000分 = 0.36 度。但随着码盘的位元分辨率增加,所需的栅栏轨道和感应器数量与信号线也会随之增加,还有连续旋转下超过一周后的译码问题,所以有了增量型的设计。
增量型的码盘不像绝对型会随分辨率而增加编码位元的栅栏轨道数量,它只需要两条甚至一条即可。增量型的分辨率是依赖码盘上的栅栏分割密度来决定,运动时光 电感应器会输出连续的脉波输出,再配合外部计数器来计算运动的量与方向。脉波数可决定量值大小那方向该如何判定呢? 增量型编码器通常至少有A相与B相两个脉波输出讯号,这两组脉波被设计成相位差90度,利AB相间的相位差以判别是正向或逆向,如下图..
当以A相上升缘为触发计数,可以发现正向运动时当A相上升缘出现时,B相都会是high的状态,反之逆向运动时B相都处于low的状态。由此即可判别运动 方向,输入计数器即可决定是上数或下数。因为结构较绝对型简单可靠所需的讯号线也较少而被广泛的使用在位移与回转或角度感知的场合
3. 如何连接编码器至DAQ端子
接下来以增量型旋转编码器为主,说明DAQ与编码器如何配线
可以使用编码器的DAQ卡必需具有计数器(counter) 的功能,没有counter的功能是不能使用编码器的。这里以USB-6351 为示范,首先打开MAX后点选下拉选单的Help / Help
Topics / NI-DAQmx / NI-DAQmx Help
接着展开NI-DAQmx Device Terminals Help / DAQ Devices 树状项目
找到所使用USB-6351,内容说明6351的脚位与counter 功能的脚位配置
参照欲使用的counter 组别记下相对脚位,例如要接CTR0 则A相接81脚(PFI 8),B相是85脚 (PFI 10),另外编码器需要外接电源供应,如果你使用的编码器电源输入规格正好为5V,就可以直接从DAQ卡上取得电源(+5V在95脚/ GND在94脚)稍后将编码器接上
实际接线照片,这里使用的是MTL出品的mes-20-200 的编码器,电源需求为5V,分辨率为每转200分割,它的配线红色是5V,黑色是GND,白线是A相,绿线是B相,将它按
上面查到的脚位依序接入吧
4. 撷取程序编写与实际量测
由于连续counter 取样需要外部时脉输入,在这里我们使用CTR0 做编码器取样,用CTR1 来产生CTR0 作业时需要的时脉,产生的时脉由PFI 13 脚可经过DAQ内部绕线供给给CTR0做为取样时脉。在作业上必需先让时脉产生启动后,再开始counter 取样,可参看程序里error line 的走线。必需给定的设定有编码器每转的脉波数,内部绕线的PFI脚位,取样速率。这里特别说明一下decoding type 这个参数,它是脉波译码方式的选择,有三种类型X1 /X2 /X4
1. X1当A相 超前于 B相 ,则A相 的升缘 (Rising edge) 将发生增值;若 B相超前于 A相,则 A相的降缘 (Falling edge) 将发生减值。
2.X2 编码亦具有相同的行为,但是A相每组边缘的增值或减值作用则相反。如下图所示,每周期均可造成 2 组增值或减值。
3. X4 编码的A相与 B相,其每组边缘上的计数器增值或减值为相近作业。不论计数器是增值或减值,均以在前方的通道为根据而进行作业。如下图所示,每周期均可造成 4 组增值或减值。
通常情况下预设是使用X4以获得最大解析力,度数转换公式为: 角度 = (计数值 / (编码方式参数 *每转脉波数)) * 360 。例如目前脉波计数值为 200 代入式中 (200 / 4*200)*360=90 度。当然这部份的计算只要设定好输出单位DAQmx就会帮你处理好的不需要特别操心
上图为程序执行实测结果,我先正转一圈再转回来原点稍候,接着再逆转一圈再转回来原点,可参看曲线变化
小编这个帖子给力,可惜大家看过都走了,我来给小编顶一下!
我也顶小编一下
VI看不清楚啊,小编求代码
看不清楚啊 真是隔靴搔痒
海市蜃楼啊 , 小编 , 看不清楚你的程序啊
那如果超过一圈的话 ,照这个公式是不是就不是90度了 必须得再除以360才能得到当前角度呢
小编给力
不错,正好最近也在研究编码器
小编您好!可以发个清晰的代码图吗?我现在急需要这个,自己又不懂,着急35182818@qq.com。有机会定当感谢
发个清晰的放大截图就好
顶下,正要用
请教下小编怎么测量位置
谢谢
配上源码和高清图片,你这就是精华了
谢谢分享
亲,你的模型可以发我一下吗,有偿也可以