首页 上一页 1 2 下一页 尾页

〔请教〕为何对脉冲编码器的AB相输出计数反转时总是有误差? 点击:14711 | 回复:21



sunwu

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-20 15:51:00
楼主
我要对脉冲编码器的A、B相脉冲输出进行计数,但实验时发现一个奇怪的问题:电机正转时计数很准,但反转时总差那么几十个脉冲。 百思不得其解,希望各位高手来分析一下、不吝赐教。



sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-20 15:53:00
1楼
对了,刚才忘了说了,编码器是用欧姆龙的EB62-CWZ6C

云飞扬VIP

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 545回
  • 年度积分:0
  • 历史总积分:1239
  • 注册:2004年4月22日
发表于:2005-04-20 16:08:00
2楼
你用什么计数,怎么个记法呀

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-20 16:15:00
3楼
用单片机做的,利用A相的边沿产生中断,上升沿时若b相为低(代表正转)则加计数,下降沿时若b相为低(代表反转)则减计数。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2005-04-20 17:15:00
4楼
反转时差几十个脉冲是什么意思?误差本身是无规律的还是有规律的?若A相上升沿时B相为高,若A相下降沿时B相为高是如何处理的?

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-20 17:52:00
5楼
to 刘岩利 若A相上升沿时或者A相下降沿时B相为高均不进行计数。 这种方式当电机正转时计量编码器的脉冲个数很准,偶尔差1个脉冲,可以接受。但电机反转时误差较大,没有什么规律,但总差那么20个左右。比如说,编码器是2000线,我让电机精确地转10圈,此时若采用AB相计数则正转时应计到20000个,反转时应为-20000。编码器的脉冲频率在10K左右。 硬件电路似乎没有什么问题,我找个能输出脉冲的模块输出20K的脉冲到我的板子上也计得很准。 刘工能提些建议吗? 其它各位高手也请不吝赐教。我现在是非常纳闷。在此也先谢过了。

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-20 17:56:00
6楼
再补充一下,我让编码器的脉冲频率降到5K(控制电机的转速)时,正反转计数都是比较准的。 是我的AB相计数方法有问题?还是编码器的输出脉冲有特殊之处?

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2005-04-21 09:07:00
7楼
个人认为,计数方式有问题。即使排除所有其它因素,编码器每次换向时,你的计数器都可能会丢数。您所用的编码器型号我不清楚,但是,通常编码器输出的AB信号是正交方波。理论上,编码器信号会出现B相为稳定电平,A相为方波的情况,这时,编码器其实只是一个脉冲范围内的原地晃动,而对你的计数器而言,会认为位置已经跑开很远了。 另外,可能的因素还有,但是电机的速度够不够稳,平均每秒5转的情况下,是否会有比较大的瞬时速度?编码器输出A、B两相之间的相位差是否能保证是90度?示波器上能否看到干扰信号?

sunhl

  • 精华:1帖
  • 求助:1帖
  • 帖子:8帖 | 35回
  • 年度积分:0
  • 历史总积分:150
  • 注册:2004年7月26日
发表于:2005-04-21 09:38:00
8楼
Sunwu:你好,你这种做法可以实现正反计数,你说用20K的脉冲计过,很准,那可以排除是单片机的处理中断时间是够了。我估计你的20多个脉冲是20多个吧,也就是说一圈2000个的话,你没走一圈已计数2000个了吧。这是由于你这种计数的方法的缺陷造成的。当编码器在很微小的角度来回动话,意思是说B相不变化,只有A相出现高低冲时,你的程序就以为已走过了角度,(A相出现了上升沿)就产生了中断,就产生加减计数了。你应把B相的上升沿和下降沿用上,但程序会比较复杂。你这种做法,假如说B相坏了,使终是高电平或低电平,只要转编码器的话,就始终是增计数或减计数了。顺便问一下,你用C做的还是汇编做的。有空交流:sunhl77@163.com

TellTruth

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 451回
  • 年度积分:0
  • 历史总积分:1302
  • 注册:2003年10月29日
发表于:2005-04-21 12:29:00
9楼
这种计数方法是不行的,除非电机不换向,只要换向或者在一个位置上摆动,则计数就会出错。实际上计数之前要利用AB的组合来判断是加还是减,利用A相上升沿作中断B相电平只能知道转向。这种错误最简单的例子,在一个位置作小范围摆动时,A相的正脉冲宽度比B相正脉冲宽度要宽。这时A相上升沿只产生一次中断,而B相由低到高然后变低,转向已经发生了改变,然而计数器只进行一次加或者减,而不是加一次然后减一次。

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-21 13:47:00
10楼
非常感谢刘岩利、sunhl、TellTruth各位的发言建议。 我是用C语言编的计数程序,这种方式低频输入时(比如5K)还可以,高频时就计不太准了。我原来也采用了A、B相边沿组合来计数的方式,但效果更不理想,原因我想是滤波太狠的缘故吧。 我现在想这可能涉及到硬件设计、元器件选型、焊接和编码器输出脉冲的质量、信号接线以及软件等各方面的综合因素。单纯靠软件是难以比较精确地实现高频脉冲的计数了。或许在硬件上实现计数电路是一个比较好的选择,比如采用专用的计数器芯片等等。 我的email是sw126263@126.com。有机会跟大家一起讨论。我原来作过程控制比较多,对于运动控制是刚开始还没入门。希望以后大家多多帮助,先谢过了。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2005-04-21 17:14:00
11楼
滤波太狠?什么意思?在电路里加了阻容滤波还是在算法上加了数字滤波?

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-21 17:44:00
12楼
呵呵,就是滤波条件太苛刻的意思,把一些不该滤的也滤掉了。 在程序中所加的一些采集条件,比如边沿等,也可以认为是一种滤波吧。 打个比方说,若要结合b相的边沿计数的话,在电机正转时的第一个脉冲(也就是说A相的第一个上升沿),百分之百会被丢掉--因为B相的边沿还没来呢。

Kind-electronic

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 44回
  • 年度积分:0
  • 历史总积分:213
  • 注册:2004年7月23日
发表于:2005-04-22 13:41:00
13楼
TO sunwu : 看了你前面所说的当你把电机转速降下来时,也就是使编码器的输出脉冲的频率为5K 左右时正反转都比较准时,我有一点想法。 你有没有检查过你的计数电路所能承受的最高频率,也就是说计数器它自身有一个响应频率,你的编码器的输出频率如果大于计数器的频率的话,则计数部分肯定就不准确了啊!!这个我是有亲身体验的,因为我做过这方面的实验的。 这仅仅是我的一点看法!!

sunwu

  • 精华:3帖
  • 求助:0帖
  • 帖子:11帖 | 256回
  • 年度积分:0
  • 历史总积分:365
  • 注册:2002年6月13日
发表于:2005-04-26 07:46:00
14楼
to 白马飞飞 我用的是软计数,不过中断程序的效率确实对计数有很大的影响,差1us效果都很明显,我也刚发现不久。 感谢你的提醒!

Kind-electronic

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 44回
  • 年度积分:0
  • 历史总积分:213
  • 注册:2004年7月23日
发表于:2005-05-09 14:21:00
15楼
TO sunwu : 你那个系统实验结果怎么样了?你注意到频率后,现在的正反转记数是否还有大的偏差? 哦,我是搞编码器(增量式)产品设计的,因为整天只设计接触编码器本身,所以对与之相连接的控制系统如变频器,PLC的应用不是很熟悉的。希望这方面能多向你学习!!我的E:wangfei_0992@yahoo.com.cn

忠 sa

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 15回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2004年2月15日
发表于:2005-11-12 15:50:00
16楼
看不懂,不知所云

mcn1869

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 67回
  • 年度积分:0
  • 历史总积分:45
  • 注册:2007年10月31日
发表于:2006-12-25 15:40:00
17楼
路过

kunta54321

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 2回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2010年11月15日
发表于:2011-07-19 16:10:21
18楼

按上面几位高手说的, 那是不是出现转向时有一路的脉冲数可能会少一个啊?

yugang1986868

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:48
  • 注册:2011年9月02日
发表于:2012-04-10 16:23:20
19楼

 

我也要用楼主的这款编码器了,希望不出问题...

朋友00

  • 精华:1帖
  • 求助:2帖
  • 帖子:9帖 | 181回
  • 年度积分:462
  • 历史总积分:1505
  • 注册:2006年2月07日
发表于:2012-05-03 17:58:42
20楼
我这边用AB相计数,也碰到问题,总会有计数不准的情况存在,应该就是其中一相是稳定的电平,另一相是跳变电平的时候,所引起的误计数,我用PLC验证过,这样会引起误计数的,现在就是一直没有找到好的解决方案.

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页