本文通俗解释CANopen DS402中Home offset的含义。
CANopen DS402中规定对象字典项0x607C用于存放Home offset,文档中对其解释如下,
The home offset object is the difference between the zero position for the application and the machine home position (found during homing), it is measured in position units.
During homing the machine home position is found and once the homing is completed the zero position is offset from the home position by adding the home offset to the home position. All subsequent absolute moves shall be taken relative to this new zero position.
也就是说Home offset是application的零位和machine的home位之间的差值,homing过程找到machine的home位,等homing结束,零位就是machine home位偏移home offset的位置。
文档中给的示意图如下,
对象字典项解释如下,默认值是0
感觉还是得不到直观的理解。
本人重新画了一幅示意图,如下,
顺序是先找Home为,再找零位。
Homing开始后,假设往右运动去寻找机器Home位,遇到limit switch后认为找到Home位,然后根据Home offset值去找零位,这里假设Home offset为3毫米,那么就会往左走3毫米,此时可能会过冲,如果过冲发生,那么就再往右回来,最终走到3mm的位置停下来,表示找到零位。
零位找到后,对于application来说,当前位置就是0mm,这样就形成了一个坐标系,如下,后续运动都必须按照这个坐标系进行运动,
往右过0之后最多走3mm,往左过0之后最多走到左侧的limit switch处。
Note: 如果Home offset是0,那么零位和Home位就是重合的,找到Home位就找到零位了。
Homing method(对象字典项是0x6098)决定了如何寻找Home位,可以参考这篇文章。
本文通俗易懂的解释了Home offset的意义,须记住顺序是先找Home为,再找零位,而找Home位的各种方法请参考另外一篇文章。
这样就弄懂了DS402里找Home位和找零位的过程。