设置限位/归位开关
概述
注意:此页面正在进行中,将在时间允许和出现问题时添加。谢谢你的耐心
此页面旨在帮助新手在归巢方面取得基本成功。如果您是新手,请从基本设置开始。第一次尝试时不要使用双端开关、硬限制等。调试起来会容易很多。
一个典型的归巢序列是这样工作的。机器将以相对较快的速度移向开关。一旦它检测到开关,它就会关闭开关并以较慢的速度重新归位以获得更准确的起始位置。然后它退出开关。然后设置机器工作位置。可以一次完成一个轴的归位,也可以一次完成多个轴的归位。默认是一次一个轴。
所有 CNC 机器都应该有归位开关。它确保您的机器知道它在机器空间中的位置。如果您遇到问题或只是想准确返回原位,则需要使用家庭开关。
这是我不久前制作的YouTube 视频,可能会帮助您理解一些概念。
开关类型
默认电路是带有内部上拉电阻的 I/O 引脚。有些引脚没有内部上拉,需要外部上拉。
机械开关
可以使用多种开关类型,但通常它们是常开 (NO) 或常闭 (NC) 或两种类型的触点。我倾向于为新手推荐常开开关。这些开关将在按下时完成连接。这是 Grbl 的默认类型。如果您在编程时不小心向他们发送了输出信号,他们会更宽容一些。发送到闭合开关的输出信号可能会永久损坏 ESP32。
常闭被认为更安全,因为接线断开会触发开关。如果它们靠近地面,则在关闭状态下它们对噪声的抵抗力也会更强一些。
使用机械安装良好的开关。它有助于在驱动后有一点超程,因为 Grbl 可能在搜索阶段超程一点。如果开关无法停止运动,轴可能会撞到的机械挡块也是一个好主意。
3D 打印机有很多 3 (3) 开关可用(亚马逊、eBay、全球速卖通)。其中一根电线是正电压,因此开关上的 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(开关去抖动延迟)这在归位阶段之间设置了一点延迟,以使开关稳定下来。
- $Homing/Pulloff(接触开关后机器离开开关的距离)
固件选项
新手请先远离这些选项
…部分列表
- #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个。如果你只是想让初始搜索设置home位置,你也可以把它改成0
- #define HOMING_SINGLE_AXIS_COMMANDS这会启用 $HX、$HY 单次访问归位命令。Grbl_ESP32 默认启用此功能。如果你有像 delta 这样的机器,你可能想要禁用它。
- #define HOMING_FORCE_SET_ORIGIN通常 Grbl 将其机器工作区域设置在负空间(未定义)中,因此如果您有 300mm X 轴最大行程并且该轴在负方向上归位。归巢后,您的位置将为 -300(加上您获得的价值)。这让很多新手望而却步。他们希望他们的机器在归零后归零。实际上,您不会将机器空间归零,而是将 G54 之类的工作空间归零。(观看视频)
- #define LIMITS_TWO_SWITCHES_ON_AXES这允许您在轴的两端放置一个限位开关。它们连接到相同的 I/O 引脚。这让 Grbl 知道如果在归位之前激活了开关,则无法知道以哪种方式退出开关。
- #define INVERT_LIMIT_PIN_MASK
- #define 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设置来控制的。
归位周期
轴以循环方式归位。通常,在 X 和 Y 中归位之前,Z 会先归位以清除工作。每个周期可以有多个轴归位。您可能希望在第一个周期将 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 的速度。很高兴有一个相对快速的搜索阶段,然后是一个缓慢的第二个定位阶段,
高级主题
一个输入上的双开关
您可以在轴的两端放置开关。它们将连接到相同的输入引脚。如果您不使用开关,则应将它们并联连接。如果您使用 NC 开关,它们应该串联。大多数形式的电子开关可能无法在此模式下使用。
软限制
软限制$Limits/Soft=On使用 Grbl 的内部位置值来确定请求的移动是否会撞到其中一端。它使用最大行程($13x)来确定这一点。机器将进入警报 2模式。您必须重置机器,但没有位置丢失,您不需要重新归位。如果您希望软限制忽略某个轴,请将该轴上的 MaxTravel 设置为 0。
硬限制
硬限制$Limits/Hard=On,如果 Grbl 碰到限位开关,则使用开关停止 Grbl。这是一个很好的故障安全设置,但它会立即不受控制地停止。您必须重新安置才能再次使用机器。此外,数控机床在运行时往往会产生大量电噪声,并可能导致误触发限位开关。在使用此模式之前对您的机器进行大量测试。