倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-电机实际运行距离跟给定距离不一致怎么办,如何设置Scaling Factor

有时候,让电机从0度转到绝对的360度,有时候会出现电机实际转动更多或者更少的情况。

 

一般是电机的编码器的Scaling Factor Numerator数值不对导致的,数值越小,则同比转过角度越多,例如我数值是0.0001的时候,360度实际对应了720度以上,我改成0.00035之后,就差不多了。

 

那么如何精确的设置这个参数呢?参考讲义说一圈对应的脉冲数和一圈对应的长度(注意TwinCAT默认单位是mm,可以改成角度,那么一圈对应就不是360mm而是360度,同样可以360/一圈对应的脉冲数)

有时候,让电机从0度转到绝对的360度,有时候会出现电机实际转动更多或者更少的情况。

 

一般是电机的编码器的Scaling Factor Numerator数值不对导致的,数值越小,则同比转过角度越多,例如我数值是0.0001的时候,360度实际对应了720度以上,我改成0.00035之后,就差不多了。

 

那么如何精确的设置这个参数呢?参考讲义说一圈对应的脉冲数和一圈对应的长度(注意TwinCAT默认单位是mm,可以改成角度,那么一圈对应就不是360mm而是360度,同样可以360/一圈对应的脉冲数),一圈对应的脉冲数取决于编码器的分辨率,比如16位的编码器分辨率是2的16次方65535,17位的编码器分辨率是2的17次方131072

 

如果连编码器的分辨率也不知道,则只能靠猜测了。比如默认的Scaling Factor是0.0004,结果你发现要求跑360度跑了720度,说明你的数值查了一倍左右,然后你把Scaling Factor继续修改,逐步精确到感觉差不多(你指定360度,结果也是360度左右,差个几十度),此时的Scaling Factor就是差不多的正确数值,比如我粗略得到0.00035这个数值,然后用360去除得到大致的每转脉冲数,360/0.00035=1028571,则查询可以知道,应该是20位的,因为必须是2的整数次方,而2的整数次方差一位差别就很大,只有1048576最接近,所以实际上要填写的Scaling Factor就是0.000343323

 

更多教学视频和资料下载,欢迎关注以下信息:

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

http://csrobot.gz01.bdysite.com/

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

 

原文地址:https://www.cnblogs.com/acetaohai123/p/6823867.html