注意:此页面尚在完善中,如有时间允许或有疑问,我们将及时补充。感谢您的耐心
本页旨在帮助新手成功完成归位。如果您是新手,请从基本设置开始。第一次尝试时不要使用双端开关、硬限位等。这样调试起来会容易得多。
典型的归位序列的工作原理如下。机器将以相对较快的速度向开关移动。一旦检测到开关,它将退出开关并以较慢的速度重新归位以获得更准确的归位位置。然后退出开关。然后设置机器的工作位置。归位可以一次一个轴完成,也可以一次完成多个轴。默认是一次一个轴。
所有 CNC 机器都应有归位开关。它可确保您的机器知道自己在机器空间中的位置。如果您遇到问题或只是想准确返回某个位置,则需要归位开关。
这是我之前制作的YouTube 视频,可能有助于您理解一些概念。
默认电路是带有内部上拉电阻的 I/O 引脚。有些引脚没有内部上拉电阻,需要外部上拉电阻。
可以使用多种类型的开关,但通常它们要么是常开 (NO),要么是常闭 (NC),或者同时具有两种类型的触点。我倾向于向新手推荐常开开关。这些开关在按下时会完成连接。这是 Grbl 的默认类型。如果您在编程时意外向它们发送输出信号,它们会更宽容一些。发送到闭合开关的输出信号可能会永久损坏 ESP32。
常闭开关被认为更安全,因为线路中断会触发开关。如果它们靠近地面,则在闭合状态下对噪声的抵抗力也更强。
使用具有良好机械安装的开关。启动后有一点超程会有所帮助,因为 Grbl 在搜索阶段可能会有一点超程。如果开关无法停止运动,最好有一个机械止动装置,轴可以撞到它。
有很多 3 (3) 开关可用于 3D 打印机(亚马逊、eBay、AliExpress)。其中一根电线是正电压,因此开关上的 LED 会在按下时发出指示。您通常可以在 (2) 线模式下使用它们。只需使用仪表查看按下开关时连接了哪些电线。例如,下面显示的开关会将红色和白色电线连接到控制器。
电子开关
这些通常是光学或接近开关。通常需要为它们提供电源接地。确保它们与 ESP32 的最大 3.3V 输入兼容。检查打开和激活状态下的输出电平。
…即将推出
电气噪声可能导致读数错误。噪声通常是短暂的低能量尖峰,可以通过多种方式降低。
从良好的接线实践开始。为每个开关使用单独的信号线和接地线。将该对电线每扭约 1-2 圈。您也可以使用屏蔽线,屏蔽接地仅在控制器侧。使电线尽可能短,并远离电机线。
您可以向开关添加一个 RC 滤波器。
您可以启用软件去抖动。这会导致固件忽略非常短的脉冲。此功能#define ENABLE_SOFTWARE_DEBOUNCE
在config.h中启用
可选:更改为常闭 (NC) 开关。常闭开关通常具有低阻抗接地,因此更难将噪音传递到接地。当它们打开时,您仍然可能会遇到噪音问题。您需要为此更改 $5 设置。当您在每个轴上使用多个开关时,可以使用 NC 开关,方法是将它们放在穿过这些开关的单线环路中。不过,这个环路可能更容易受到噪音的影响。
您需要将开关映射到 ESP32 引脚编号。您最多可以在 6 个轴上映射每个轴最多 2 个开关。以下是一些示例。
#define X_LIMIT_PIN GPIO_NUM_17
#define Y_LIMIT_PIN GPIO_NUM_4
#define Y2_LIMIT_PIN GPIO_NUM_2
#define Z_LIMIT_PIN GPIO_NUM_32
如果每个轴有 2 个输入,固件会以完全相同的方式处理它们。如果 X_LIMIT_PIN 和 X2_LIMIT_PIN 中的一个或两个处于活动状态,状态将报告“X”。如果您的开关类型需要第二个输入,或者如果第二个输入使您的接线更容易,则使用第二个输入。
下文中有更多有关这些设置的使用的内容。
- $Stepper/DirInvert (设置归位期间轴的行进方向)
- $Limits/Invert(这将反转常开和常闭开关的开关逻辑)
- $Limits/Soft(软限制)
- $Limits/Hard(硬限制)
- $Homing/Enable ($Homing/Enable=Off 禁用归位 $Homing/Enable=On 启用归位)
- $Homing/DirInvert(归位搜索方向反转位掩码)
- $Homing/Feed(较慢定位阶段的进给速度)
- $Homing/Seek(更快的搜索进给率)
- $Homing/Debounce(开关去抖动延迟)这会在归位阶段之间设置一点延迟以让开关稳定下来。
- $归位/脱离(机器触碰开关后远离开关的距离)
新手,请首先远离这些选项
…部分列表
- #define HOMING_INIT_LOCK如果定义 Grbl 将以警报模式启动,直到回到原点或使用$X清除警报
- $Homing/Cycle0(0 到 5)此设置告诉 Grbl 归位轴的顺序以及每个周期归位的轴数。示例:$Homing/Cycle0=Z 在第一个周期将 Z 归位,$Homing/Cycle1=XY 在第二个周期将 X 和 Y 归位。
- #define N_HOMING_LOCATE_CYCLE 1这是为提高精度而进行的拉回重新定位的次数。通常使用 1 这个值。最多可以设置 128 个。如果您只想让初始搜索设置原点位置,也可以将其更改为 0
- #define HOMING_SINGLE_AXIS_COMMANDS这将启用 $HX、$HY 单次访问归位命令。Grbl_ESP32 默认启用此功能。如果您有一台类似 delta 的机器,您可能需要禁用此功能。
- #define HOMING_FORCE_SET_ORIGIN通常,Grbl 会将其机器工作区域设置在负空间(未定义),因此如果您的 X 轴最大行程为 300 毫米,并且该轴在负方向上归位。归位后,您的位置将为 -300(加上您拉出的值)。这让很多新手感到困惑。他们希望他们的机器在归位后归零。实际上,您不是在机器空间中归零,而是像 G54 一样将工作空间归零。(观看视频)
- #define LIMITS_TWO_SWITCHES_ON_AXES这允许您在轴的两端放置限位开关。它们连接到相同的 I/O 引脚。这让 Grbl 知道,如果在归位之前激活开关,则无法知道以哪种方式关闭开关。
- #定义反转限制PIN掩码
- #定义 CHECK_LIMITS_AT_INIT
我强烈建议您从 USB/串行端口进行初始测试。这样更容易看到所有原始消息和状态。
首先要检查开关是否正确报告。手动移动机器轴,使轴不激活任何开关。发送?以获取当前状态。它应该报告类似以下内容。
<Alarm|WPos:0.000,-0.000,0.000|Bf:15,128|FS:0,0>
现在手动激活其中一个开关。它应该看起来像这样。
<Alarm|WPos:0.000,-0.000,0.000|Bf:15,128|FS:0,0|Pn:X>
您正在寻找的是状态的Pn:X(或您激活的任何轴)部分。您可以忽略其他所有内容。您需要在未按下开关的情况下看到状态中没有 Pn:并且每个轴开关激活的正确 Pn:状态。Pn:将报告 XYZABC 轴字母以及 PDRHS(探测、门、重置、保持、启动)。您要确保当未激活限制时没有开关报告。
如果您看到所有开关都报告 Pn: 状态,而没有开关被激活,则说明有些事情发生了反转。$5 设置会反转开关报告状态。$5 可以是 $5=0 或 $5=1。如果您没有看到正确的状态,请交换 $5 值。重新检查没有开关激活的状态和所有开关单独激活的状态。在获得正确状态之前,请勿继续下一步。
接下来要做的是检查轴是否朝正确的方向移动。如果你向正方向发送移动,轴是否朝正方向移动。这是我喜欢使用的序列。
首先发送$X以清除所有警报。发送G91使机器处于增量模式。机器只会响应OK,而不会移动。现在,每次您发送类似G0X2 的内容时,它都会向正方向移动 2 个单位。如果您发送G0X-2,它应该向负方向移动 2 个单位。对每个轴使用短距离移动以确保它们都朝正确的方向移动。
如果任何轴朝错误的方向移动,有两种方法可以解决此问题。第一种方法是使用$Stepper/DirInvert设置。该设置是要反转的轴方向的列表。例如:$Stepper/DirInvert=XZ表示 X 和 Z 当前已反转。通过发送$Stepper/DirInvert检查当前设置 ,然后添加或删除字母以更改轴的方向。
改变步进电机接线的另一种方法是。您只需交换电机一个线圈上的电线,使其方向错误。虽然这需要多做一点工作,但请注意:对于轴上有 2 个电机的机器,固定接线是固定方向的唯一方法。
轴可以按您喜欢的任何方向归位。例如:许多路由器通常将 X 和 Y 归位在负方向,将 Z 归位在正方向(向上)。这由$Homing/DirInvert设置控制。
轴以循环方式归位。通常,Z 轴会先归位以清除工作,然后再归位 X 和 Y 轴。每个循环可以归位多个轴。您可能希望在第一个循环中归位 Z 轴,然后在第二个循环中同时归位 X 和 Y 轴。设置机器时,最好每个循环只执行一个轴。一旦一切正常,您可能希望使用多轴归位来加快速度。您最多可以进行 6 个循环。例如,设置$Homing/Cycle0=Z以在第一个循环中归位 Z 轴。设置$Homing/Cycle1=XY以在第二个循环中同时归位 X 和 Y 轴。设置$Homing/Cycle2=以在第三个循环中不放置任何内容。确保所有循环都有您想要的内容。
确保以下设置正确。
- $Limits/Soft=Off(关闭软限制)
- $Limits/Hard=Off(关闭硬限制)
- $Homing/Enable(启用归位)
- $Homing/Feed=100(慢速归位进给率)
- $Homing/Seek=200(更快的搜索速度)
- $Homing/Pulloff=3(设置归位开关拉离至 3mm)
- $Homing/Cycle0=Z $Homing/Cycle0=X $Homing/Cycle0=Y(或您需要的任何值,但每个循环一个轴)
使用$H命令完成归位。默认情况下,您还可以使用$HX等进行单轴归位。单轴归位适合测试,因此我假设它已启用
准备好切断电源或按下 ESP32 重置按钮。发送$HZ。轴应朝限位开关移动,触碰限位开关,后退并以较慢的速度重复。
如果它只是短暂缓慢地移动并发出ALARM 8。这意味着 Grbl_ESP32 在归位之前检测到激活的开关,并尝试通过后退来清除开关,但没有成功。注意:如果轴的两端都有开关(在固件中设置),Grbl 将不知道向哪个方向后退并立即发出 ALARM 8。
一旦基本归位工作正常,您就可以调整一些值以获得更好的性能。确保 27 美元的拉力完全清除开关。使用 24 美元和 25 美元的速度。最好有一个相对较快的搜索阶段,然后是缓慢的第二个定位阶段,
您可以在轴的两端放置开关。它们将连接到相同的输入引脚。如果您使用 NO 开关,则应将它们并联。如果您使用 NC 开关,则应将它们串联。大多数形式的电子开关可能无法在此模式下使用。
软限制,$Limits/Soft=On,使用 Grbl 的内部位置值来确定请求的移动是否会撞到其中一个端点。它使用最大行程 ($13x) 来确定这一点。机器将进入警报 2模式。您必须重置机器,但没有丢失位置,您不需要重新定位。如果您希望软限制忽略某个轴,请将该轴上的 MaxTravel 设置为 0。
硬限制,$Limits/Hard=On,使用开关在 Grbl 碰到限位开关时停止它。这是一个很好的故障安全设置,但它会立即不受控制地停止。您必须重新定位才能再次使用机器。此外,数控机床在运行时往往会产生大量电气噪声,并可能导致错误的限位开关触发。在使用此模式之前,请对您的机器进行大量测试。