完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
在运动控制中,运动轴的回零是一个共性的问题:对于半闭环的编码器+电机+模组或全闭环的直线电机+光栅尺来说,它们之所以能够知道自己当前处于一个什么样的位置就是靠编码器和光栅尺来记录当前的位置,问题在于一般我们使用的都是相对式的编码器或光栅尺,换言之,我们必须告诉编码器和光栅尺以什么位置作为零点开始计算当前的坐标,指定当前的零点的过程就是回零的过程。相对式的编码器或光栅尺一旦掉电,就必须重新回零,这也是大多数数控机床上电要回零的原因。
如下图,为了指定当前运动系统的零点,我们使用一个零位传感器来标记,对于编码器+电机+模组,零位传感器就是一个处在零位的限位传感器,对于直线电机+光栅尺可以不用设置特殊的硬件,直接捕获光栅尺的零位信号就行,当然你也可以不用零位信号,而统一使用限位传感器来指定零位。同时每个运动系统一般都是有正负限位的,一方面是作为安全用途,一旦模组运动超出正负限位范围自动停掉电机防止造成危害,另一方面,也可作为触发使用,下面会讲到。 1.信号的触发 为了形象的说明问题,考虑模组和传感器的如下相对运动,这里传感器既可以是限位传感器也可以是零位点触发,基本原理是一样的。这里为了说明问题,将传感器拉长了,实际上传感器的接触长度很短。 可以看到,当前模组和传感器相对运动的时候,还没接触的时候信号为低电平,一旦模组开始进入传感器范围,这时候电平跳变为高电平,存在一个上升沿,捕获这个上升沿就是模组刚刚进入传感器范围的时刻。模组继续运动,一旦模组完全离开传感器范围,这时候电平跳变为低电平,存在一个下降沿,捕获这个下降沿就是模组刚刚完全离开传感器范围的时刻。 因为最开始的时候没有回零,这时候模组是不知道自己当前到底处于什么位置的,但是在高低电平跳变的时候会发送中断,我们可以捕获这两个中断从而判断当前模组是否运动到指定的位置,从而将当前指定位置标记为零点。 2.回零策略 上面其实已经叙述了最基本的思想: 利用信号触发的上下沿来通知PMAC是否已经运动到指定位置,从而将当前模组在的位置标记为相对零点。 但是,我们需要面临的一个问题是,模组的最开始位置是不定的。同样用之前的图,最开始时候模组可能处于零位的正向也可能处于负向,甚至可能直接就在正负限位或零点上。这时候该怎么编写一个回零程序,在最开始不知道模组的位置的时候让模组正确的运动到零点呢? 毫无疑问,模组处于正向的时候必须向负向移动才能到零点触发,模组在负向的时候必须向正向移动才能到零点触发,但是它们的方向是完全相反的,这让我们编写运动程序很为难。为了解决这个问题,我们采用如下策略:
好了,现在基本策略定下来了。现在说说偏移值的问题。当我们运动到指定限位导致电平出现上下沿信号的时候,这时候PMAC接到中断,但是此时还在运动, 不会准确的停在指定点上。对于这种问题,PMAC提供的解决方案是, 既然不能准确的停止那就不让它准确的停在指定的触发点上,而是指定一个偏移值,当第一次上下沿触发的时候 会记录当前的位置,这个当前的位置是可以准确记录的,这样 运动到偏移一个指定值时是可以完成的,当然这个值是不能太小的,否则也停不准。那么要精确的停止在某一点怎么做呢,很简单,借鉴这种方法,既然你要跑过,那就 让你先跑过,再反向回走偏移的值就行,这就是很多机床看回零时先过零点再反向走回来的原因,看运动平台在那不知所谓的来回捣鼓,其实干的就是这事儿。PMAC中指定偏移值为0,仔细观察PMAC会自己帮我们完成走过再回来的流程,这个需要了解一下以便于我们清楚整个回零轨迹为什么这样跑动和为什么使用偏移值。 下面结合示意图看回零过程 可以看到:
A.不在负限位的时候,直接负向移动直到上升沿触发
3.PMAC回零代码 一个单独的轴的典型回零程序如下: [plain] view plain copy
代码中需要说明如下:
这里的回零代码笔者在各个项目中使用过,稳定可靠,具体的参数含义请自行查阅手册。 |
|
|
|
在运动控制中,运动轴的回零是一个共性的问题:对于半闭环的编码器+电机+模组或全闭环的直线电机+光栅尺来说,它们之所以能够知道自己当前处于一个什么样的位置就是靠编码器和光栅尺来记录当前的位置,问题在于一般我们使用的都是相对式的编码器或光栅尺,换言之,我们必须告诉编码器和光栅尺以什么位置作为零点开始计算当前的坐标,指定当前的零点的过程就是回零的过程。相对式的编码器或光栅尺一旦掉电,就必须重新回零,这也是大多数数控机床上电要回零的原因。
如下图,为了指定当前运动系统的零点,我们使用一个零位传感器来标记,对于编码器+电机+模组,零位传感器就是一个处在零位的限位传感器,对于直线电机+光栅尺可以不用设置特殊的硬件,直接捕获光栅尺的零位信号就行,当然你也可以不用零位信号,而统一使用限位传感器来指定零位。同时每个运动系统一般都是有正负限位的,一方面是作为安全用途,一旦模组运动超出正负限位范围自动停掉电机防止造成危害,另一方面,也可作为触发使用,下面会讲到。 1.信号的触发 为了形象的说明问题,考虑模组和传感器的如下相对运动,这里传感器既可以是限位传感器也可以是零位点触发,基本原理是一样的。这里为了说明问题,将传感器拉长了,实际上传感器的接触长度很短。 可以看到,当前模组和传感器相对运动的时候,还没接触的时候信号为低电平,一旦模组开始进入传感器范围,这时候电平跳变为高电平,存在一个上升沿,捕获这个上升沿就是模组刚刚进入传感器范围的时刻。模组继续运动,一旦模组完全离开传感器范围,这时候电平跳变为低电平,存在一个下降沿,捕获这个下降沿就是模组刚刚完全离开传感器范围的时刻。 因为最开始的时候没有回零,这时候模组是不知道自己当前到底处于什么位置的,但是在高低电平跳变的时候会发送中断,我们可以捕获这两个中断从而判断当前模组是否运动到指定的位置,从而将当前指定位置标记为零点。 2.回零策略 上面其实已经叙述了最基本的思想: 利用信号触发的上下沿来通知PMAC是否已经运动到指定位置,从而将当前模组在的位置标记为相对零点。 但是,我们需要面临的一个问题是,模组的最开始位置是不定的。同样用之前的图,最开始时候模组可能处于零位的正向也可能处于负向,甚至可能直接就在正负限位或零点上。这时候该怎么编写一个回零程序,在最开始不知道模组的位置的时候让模组正确的运动到零点呢? 毫无疑问,模组处于正向的时候必须向负向移动才能到零点触发,模组在负向的时候必须向正向移动才能到零点触发,但是它们的方向是完全相反的,这让我们编写运动程序很为难。为了解决这个问题,我们采用如下策略:
好了,现在基本策略定下来了。现在说说偏移值的问题。当我们运动到指定限位导致电平出现上下沿信号的时候,这时候PMAC接到中断,但是此时还在运动, 不会准确的停在指定点上。对于这种问题,PMAC提供的解决方案是, 既然不能准确的停止那就不让它准确的停在指定的触发点上,而是指定一个偏移值,当第一次上下沿触发的时候 会记录当前的位置,这个当前的位置是可以准确记录的,这样 运动到偏移一个指定值时是可以完成的,当然这个值是不能太小的,否则也停不准。那么要精确的停止在某一点怎么做呢,很简单,借鉴这种方法,既然你要跑过,那就 让你先跑过,再反向回走偏移的值就行,这就是很多机床看回零时先过零点再反向走回来的原因,看运动平台在那不知所谓的来回捣鼓,其实干的就是这事儿。PMAC中指定偏移值为0,仔细观察PMAC会自己帮我们完成走过再回来的流程,这个需要了解一下以便于我们清楚整个回零轨迹为什么这样跑动和为什么使用偏移值。 下面结合示意图看回零过程 可以看到:
A.不在负限位的时候,直接负向移动直到上升沿触发
3.PMAC回零代码 一个单独的轴的典型回零程序如下: [plain] view plain copy
代码中需要说明如下:
这里的回零代码笔者在各个项目中使用过,稳定可靠,具体的参数含义请自行查阅手册。 |
|
|
|
只有小组成员才能发言,加入小组>>
2382 浏览 0 评论
8866 浏览 4 评论
36455 浏览 18 评论
4979 浏览 0 评论
24251 浏览 34 评论
1360浏览 2评论
1607浏览 1评论
1996浏览 1评论
1422浏览 0评论
1855浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-17 20:54 , Processed in 1.346202 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号