机器空间和机器坐标是 Grbl_ESP32 内部使用的轴上运动范围的术语。将轴归零或更改工作坐标系 (G54-G59) 时,坐标不会改变。工作坐标只是与机器坐标的偏移。重置机器坐标的唯一方法是归位到限位开关。
Grbl 传统上会创建一个负机器空间。如果轴的长度为 300,则有效机器空间从 -300 到 0。这与机器在归位轴时行进的方向无关。归位方向唯一会改变的就是归位完成后的当前位置。如果以正方向归位,则位置将为 0。如果以负方向归位,则位置将为 -300。这是假设您的归位拉力为 0。
有些人对负空间有点困惑,但了解 gcode 不使用机器坐标非常重要。Gcode 在工作坐标系中运行,您可以在任何地方将其归零。您的机器坐标是什么并不重要。
话虽如此,Grbl 有两个很少使用的编译时选项来改变机器坐标行为。这些是HOMING_FORCE_SET_ORIGIN
和HOMING_FORCE_POSITIVE_SPACE
我们正在尝试将尽可能多的编译时功能移至设置。在此过程中,我们就这些选项和可能的替代方案进行了长时间的讨论。
我们决定通过添加一个新设置来实现这两个选项。此设置设置所触及的限位开关的机器坐标位置。
这使您可以保留传统的负空间,创建正机器坐标空间,甚至创建 -150 到 150 的空间。
以下是影响机器坐标空间和归位的设置。
- $X/MaxTravel轴的长度
- $Homing/DirInvert轴归位的方向。设置 $Homing/DirInvert=XZ 可使 X 和 Z 以负方向归位
- $X/Home/Mpos在限位开关处设置机器坐标的值
- $Homing/Pulloff归位后,将开关拉离多远。
- $X/最大旅行费用=300
- $X/主页/Mpos=0
- $Homing/DirInvert=(所有轴归正)
- $归巢/脱钩=1
机器将以正方向归位。它将正端设置为 0。它将负端设置为 -300,因此范围是 -300 到 0。归位后的实际机器位置将由于拉离而为 -1。
- $X/最大旅行费用=300
- $X/主页/Mpos=0
- $Homing/DirInvert=X
- $归巢/脱钩=1
机器将沿负方向归位。它将负端设置为 0。它将正端设置为 300,因此范围是 0 到 300。归位后的实际机器位置将为 1,这是由于拉脱所致。
- $X/最大旅行费用=300
- $X/主页/Mpos=150
- $Homing/DirInvert=X
- $归巢/脱钩=1
机器将以负方向归位。它将负端设置为 150。它将正端设置为 450,因此范围是 150 到 450。归位后机器的实际位置将由于拉离而为 151。
- $X/最大旅行费用=300
- $X/主页/Mpos=10
- $Homing/DirInvert=
- $归巢/脱钩=1
机器将以正方向归位。它将正端设置为 10。它将负端设置为 -290,因此范围是 -290 到 10。归位后机器的实际位置将由于拉离而为 9。
软限位可防止机器移动到上述运动范围之外。使用软限位时,必须先将机器归位。如果希望软限位忽略其中一个轴,请将 $ <axis>/MaxTravel 值设置为 0。
如果您不使用归位,机器空间将处于静音状态。机器不知道自己在任何时候在哪里。不应使用软限制。可以使用硬限制,但如果您有开关,则可能会归位。您仍然可以将工作空间归零到您想要的任何地方。使用 MaxTravel 和 Home/Mpos 创建的机器空间将被忽略,您可以自由地越过末端。
在升级过程中,没有好的办法可以自动设置新设置。它将被设置为 0。这对于向正端回归的传统负空间机器来说是正确的。
升级后,您应该检查机器的行为并相应地设置机器空间。如果出现问题,它将影响任何先前归零的坐标系、G28 和 G30。
如果您想保留传统行为,请将 $<axis>/Home/Mpos 设置在以负方向返回到行程负方向的任何轴上。