技术论坛

【求助】绝对值编码器的位置计算的过零点问题

作者 主题
侠圣

经验值: 4940
发帖数: 790
精华帖: 12
主题:【探讨】【求助】绝对值编码器的位置计算的过零点问题


只看楼主 楼主 2021-01-20 16:33:49

绝对值编码器的位置计算:

           实际位置 =   脉冲数 * 脉冲当量  -  零点的实际位置 

或者

           实际位置  =  (脉冲数 - 零点位置的脉冲数) * 脉冲当量


      但是我们在实际应用中, 绝对值编码器会有过零点的问题。就是编码器反馈的脉冲数 == 0 的时候,这个时候实际位置不是0真正的远点, 但是装置还需要继续往一个方向转,这个时候就会出现问题,计算不对。

    我想请教的是,一般过零点或者过最大值的时候,编程应该怎么处理比较合适呢。 例如使用S7-300的SM338模块, 这个模块并没有通过输出设置编码的脉冲数为0的功能。

    对于带DP功能的编码器,我们可以通过特殊的设置标定编码器的0脉冲数与实际的原点位置相配合。


问题1: 过最大值

   就是例如 25bit的编码器,最大的计数脉冲为 2^25 = 33554431,  这个时候如果编码器再往原来方向计数脉冲值是不是就变成又从0开始计数了呢。

       是不是就和下面的数值变化一样呢。

       33554429 --> 33554430  --> 33554431  --> 0  --> 1 --> 2

问题2:过最小值

    又或者,如果编码器往一个方向运动,到某个时候编码器的脉冲数变成了0 ,这个时候如果继续往一个方向转那么是不是编码器的脉冲数就变成了最大的脉冲数, 例如25bit的就又变成了

     2 --》 1  ->0 -> 33554431 ---> 33554430 ---> 33554429

   

       也就是说绝对值编码器的计数是不是和汽车的里程数计数一样呢?回重新计数。






获取资料关注:https://www.cnblogs.com/volcanol/
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1671638&b_id=4&s_id=0&num=9

侠士

经验值: 1601
发帖数: 92
精华帖: 1
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 2楼 2021-01-25 12:20:47

多圈绝对值编码器如果往一个方向转 数据是循环模式的 正传就是0~33554431~0~33554431~0、、、、循环下去的,也就是到了最大值33,554,41后 继续往前旋转会从0开始增大循环。反之,往反方向转,数据会慢慢减小,到0以后 继续旋转就会到33,554,431最大值,然后慢慢减小


www.shdongli.cn,专注于旋转编码器研发、生产
以下网友喜欢您的帖子:

  
侠圣

经验值: 4940
发帖数: 790
精华帖: 12
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 楼主 3楼 2021-01-25 16:17:54
以下是引用旋转编码器-刘在2021-01-25 12:20:47的发言 >2楼

多圈绝对值编码器如果往一个方向转 数据是循环模式的 正传就是0~33554431~0~33554431~0、、、、循环下去的,也就是到了最大值33,554,41后 继续往前旋转会从0开始增大循环。反之,往反方向转,数据会慢慢减小,到0以后 继续旋转就会到33,554,431最大值,然后慢慢减小

谢谢指点。


获取资料关注:https://www.cnblogs.com/volcanol/
以下网友喜欢您的帖子:

  
版主

经验值: 76252
发帖数: 19148
精华帖: 378
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 4楼 2021-06-03 00:23:48

编码器正反向溢出的处理


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
奇侠

经验值: 8562
发帖数: 3432
精华帖: 56
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 5楼 2021-06-03 22:20:41

大部分的绝对值编码器的总圈数都很大,应该是足够你用。

但是出厂很多是0位,所以很有可能你就在0位附近使用,而且只用了很小的一部分。

大部分绝对值编码器也有置位功能,所有你可以想办法把编码器置位到一半总圈数的位置,这样基本上你到不了最小或者最大的极限位置。然后在监控一定的行程,如果超过了就要求重新复位,这样就不存在你这个问题了。


If anything can go wrong, it will.
以下网友喜欢您的帖子:

  
侠圣

经验值: 4940
发帖数: 790
精华帖: 12
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 楼主 6楼 2021-08-19 16:20:23

谢谢各位,绝对值编码器的脉冲数的变化我基本已经理解了。

那在编程的时候,怎么来编写一个通用的程序, 就是不管编码器的的脉冲数,在什么位置,只要给一个零点标定,然后位置就可以自动出来。


有人有好的思路吗???


获取资料关注:https://www.cnblogs.com/volcanol/
以下网友喜欢您的帖子:

  
至圣

经验值: 13022
发帖数: 1815
精华帖: 22
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 7楼 2021-08-19 20:14:37

侠圣我觉得这也许不是大问题。因为实际人去看手表而看到的都不会是绝对时间,因为绝对时间是个有几十位数的天文数字,现实中用来做比较用相对差值也是行的;即使习惯用绝对比较只要PLC还上着电并且和绝对编码器交互正常应该都好解决。


 
以下网友喜欢您的帖子:

  
lzm
奇侠

经验值: 8714
发帖数: 1297
精华帖: 8
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 8楼 2021-08-19 21:02:22
以下是引用volcanol在2021-08-19 16:20:23的发言 >6楼

谢谢各位,绝对值编码器的脉冲数的变化我基本已经理解了。

那在编程的时候,怎么来编写一个通用的程序, 就是不管编码器的的脉冲数,在什么位置,只要给一个零点标定,然后位置就可以自动出来。


有人有好的思路吗???

对过零点判断,有过零点就将零点前后计数值累加一次(溢出处理计算)。。。不是简单计数值直接加哦。


Querer es poder! 修福粒米藏日月 持慧毫芒有乾坤
以下网友喜欢您的帖子:

  
至圣

经验值: 19422
发帖数: 2077
精华帖: 73
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 9楼 2021-08-19 21:27:19

你的问题是想把单圈绝对值编码器如何当做多圈绝对值编码器用?

很简单啊,你还需要一个旋转方向信号来配合,正向旋转过零时将多圈数+1,反向旋转过零时将圈数-1


大道至简,知易行难
以下网友喜欢您的帖子:

  
侠圣

经验值: 4940
发帖数: 790
精华帖: 12
回复:【求助】绝对值编码器的位置计算的过零点问题


只看楼主 楼主 10楼 2021-08-20 10:05:06
以下是引用看雪001在2021-08-19 21:27:19的发言 >9楼

你的问题是想把单圈绝对值编码器如何当做多圈绝对值编码器用?

很简单啊,你还需要一个旋转方向信号来配合,正向旋转过零时将多圈数+1,反向旋转过零时将圈数-1

不是的。

我的问题是多圈绝对值编码器如何编程避免过零点问题。

例如:  

编码器的脉冲数是: 2048  

编码器的多圈数是: 8192 

那么可以测量的编码器脉冲数就是:  2048 * 8192 = 16777216 


如果往上增计数,到了16777216 则会变成0 

而往下减计数,到了0 则会变成 16777216


我们一般是:  零点标定记下一个脉冲数 , 假设为 ZeroPulse

那么实时的脉冲数为 ActPulse

则:  DeltaPulse =  ActPulse - ZeroPulse  

实际的距离 =  DeltaPulse * 脉冲当量


假设 ZeroPulse = 16777200  

实际的ActPulse =  400 

那么 DeltaPulse = 400 - 16777200  = - 16776816 

然后算出来的实际距离 不就是个负数了吗, 

就是有没有好的方法思路或方法来解决这个过零电的问题。








获取资料关注:https://www.cnblogs.com/volcanol/
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
【求助】绝对值编码器的位置计算的过零点问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。