有时候,让电机从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
邮箱:[email protected]
?
?