注释
作者
|
我正在更深入地研究这个问题。这是 limits.c 中的一些归位代码:
所以关于这段代码要记住的重要一点:机器原点也是软限制之一。无论您将机器原点放在哪里,您也会放置一个软限制。因此,必须将机器原点放在您希望软限制所在的位置。 在情况 1 中,机器原点(以及软限位)位于退避位置。在情况 3 中,机器原点(以及软限位)正好靠在限位开关上。这可能只有一毫米的差异,但这意味着在情况 1 中,软限位确实可以防止与限位开关接触,而在情况 3 中,则不会。 从代码中可以明显看出,有人故意将案例 1 和案例 3 编码为彼此不同。但为什么?我只是不明白为什么您有时想将软限位放在退避位置,而有时又将软限位与开关直接接触。在我看来,其中只有一个可能是正确的。 |
作者
|
啊,废话,我刚刚意识到这是一个死的 GRBL 存储库。关闭问题。 |


所以 GRBL 实现软限制的方式,它们不会阻止机器撞到限位开关。良好的软限制应防止接触开关。
目前,软限制允许在矩形 MPOS:(0,0,0) 到 MPOS:(-$130,-$131,-$132) 内移动。任何试图移出该矩形的尝试都会触发软限制错误。
不幸的是,那个矩形总是紧贴着归位开关。例如,在我的机器上,当它回家时,将 MPOS:(0,0,0) 设置在限位开关上。因此,移动到 MPOS:(0,0,0) 会再次触发限位开关。
理想情况下,我们希望软限制遵守 27 美元的回退距离。软限制应防止机器比退避距离更接近硬限制。
有趣的是,config.h 中有一个#define 改变归巢行为的工作方式:HOMING_FORCE_SET_ORIGIN。如果您设置此标志,则源 MPOS:(0,0,0)在机器应用 $27 中的退避设置后初始化。这使得软限制按预期工作!在这种模式下,软限位确实可以防止与限位开关接触。
我已经重新编译我的 GRBL 以使用这个标志。但是,如果软限制开箱即用,那就太好了。