浅谈单圈绝对值编码器在多圈计数中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈单圈绝对值编码器在多圈计数中的应用
摘要:工业自动控制工程中,有大量的直线位移和角位移需要通过电信号来加以处理,编码器便是实现这一功能的最主要设备。但由于各类型编码器价位差别很大,实际应用中选型不当既容易造成使用不合理,也会造成浪费。本文主要探讨单圈绝对值编码器在多圈过程控制中的应用。
关键词:单圈绝对值编码器格雷码多圈计数
一.简述
编码器(encoder)是一种将旋转位移转换成一串数字脉冲信号的旋转式传感器,这些脉冲能用来控制角位移,如果编码器与齿轮条或螺旋丝杠结合在一起,也可用于测量直线位移。编码器产生电信号后由数控制置CNC、可编程逻辑控制器PLC、控制系统等来处理。这些传感器主要应用在下列方面:机床、材料加工、电动机反馈系统以及测量和控制设备。
二.编码器分类
按照工作原理编码器一般分为增量型与绝对型,它们存着最大的区别:增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。在增量编码器的情况下,位置是从零位标记开始计算的脉冲数量确定的,而绝对型编码器的位置是由输出代码的读数确定的。在一圈里,每个位置的输出代码的读数是唯一的;绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。因此,当电源断开时,绝对型编码器并不与实际的位置分离。如果电源再次接通,那么位置读数仍是当前的,有效的;不像增量编码器那样,必须去寻找零位标记。
绝对型编码器又可分为单圈编码器和多圈编码器。多圈绝对式编码器中,生产厂家运用钟表齿轮机械的原理,当中心码盘旋转时,通过齿轮传动另一组码盘(或多组齿轮,多组码盘),在单圈编码的基础上再增加圈数的编码,以扩大编码器的测量范围,这样的绝对编码器就称为多圈式绝对编码器,它同样是由机械位置确定编码,每个位置编码唯一不重复,而无需记忆。多圈编码器另一个优点是由于测量范围大,实际使用往往富裕较多,这样在安装时不必要费劲找零点,将某一中间位置作为起始点就可以了,而大大简化了安装调试难度。
三.编码规则
绝对值编码器一般采用格雷码编码方式,在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增计数,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对
同时发生,则计数中可能出现短暂的其它代码(1100、1111等)。在特定情况下可能导致电路状态错误或输入错误。使用格雷码可以避免这种错误。
格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
格雷码与二进制码的转换:从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)。依次异或,直到最低位。依次异或转换后的值(二进制数)就是格雷码转换后二进制码的值。
用公式表示:
(G:格雷码,B:二进制码)
原码:p[n:0];格雷码:c[n:0](n∈N);编码:c=G(p);解码:p=F(c)。
四.实现方法
单圈编码器价格低,在实际应用中使用广泛,但由于其测量范围小,需要在安装时调整零点,以便于在使用过程中不允许编码器旋转跨越零点,即编码器只允许在360度范围内选择,大大降低了其使用范围。但在使用过程中,往往需要编码器转动范围超过一圈,甚至几圈,考虑到成本及使用要求,这就需要对编码器编码进行过圈处理。
以10位单圈绝对型编码器为例,编码范围为0—1023,共1024个编码。传统的做法是以PLC的程序扫描周期(通常为50-100ms)为时间基准,在每一个扫描周期内,将编码器编码X与1023做比较,当X=1023时,便认为此时编码器已过圈,这样就有两个问题:
1.当编码器转动过快时,容易造成编码的丢失,即程序接收不到1023这个码值,从而无法正确判断过圈。
2.当编码器恰恰转动到1023这个码值而停止时,会造成编码器过圈的错误信号。
改进后的编码处理,以可编程逻辑器循环扫描周期为时间基准,即当前周期取一个编码A,然后把A与上一周期的编码B做比较,当B-A>=1时,编码器不过圈;当B-AR
)
FPM 20.0
JNB _001
L MD16
L 1.000000e+000
-R
T MD16
_001: NOP 0
A(
L MD12
L 1.000000e+000
) FPM 20.1 JNB _002 L MD16 L 1.000000e+000 +R T MD16 _002: NOP 0 L MD16 L 1.024000e+003 *R T MD21 ANOV SA VE CLR A BR = L0.0 A L0.0 A( L MD21 L 0.000000e+000