注释
@robZeilinga:如果限位开关已接合,归位循环将不会(不应)移动轴。与硬限制例程不同,它会主动检查限制引脚的状态。可能是您的归位周期设置不当,并且在错误的方向上搜索了归位周期,或者如果您的限位开关不能容忍最小的运动并且归位周期稍微晃动造成损坏,我不确定是否有我能想到的一个很好的固件解决方案,因为它有点不可避免。在操作中,如果开关接合,归位循环的移动不应超过几千英寸。 将限制引脚移至模拟引脚不会对操作产生任何影响。我们可以知道哪些限制引脚已经被接合,尽管它没有明确写入代码中。我认为更好的解决方案是用限位开关连接 LED,这样,当点亮时,您可以在机器上看到哪些引脚已接合。 |
我认为他是在谈论检测单个轴的上限和下限。 我也有类似的问题,尽管仍然触发了开关,但归位开始了。- 但不记得固件版本。 |
@mschorer: 行。确实没有办法确定是否存在上限或下限,因为它们在 Arduino 上共享相同的引脚。添加更多限制引脚来检测它们几乎是在软件中执行此操作的唯一现实方法,这确实是不可能的,因为我们目前没有多余的。尽管仍然可以连接 LED 以非常容易地点亮以指示哪些引脚处于活动状态,哪些引脚未处于活动状态。不过,随着我们在功能更强大的硬件上获得更多引脚,我会牢记这一点。 一般来说,我总是会在刚好超出限位开关触发点并且在轴碰撞和可能损坏限位开关之前设计一个硬停止。我已经在我的机器上用一个简单的螺栓头恰好定位完成了这个。如果遇到硬限位,我也会养成将轴移离限位开关的习惯。但是,我会告诉你,我在测试期间经常使用硬限制执行归位循环,并且没有遇到过这个问题。我还认为这也取决于您的开关的工作方式。 据我所知,所有固件版本的归位周期仍应主动检查限位开关是否在寻道周期内接合。如果它处于活动状态,它不会移动它。如果你记得它是哪个固件版本,请告诉我,我会检查源代码。除此之外,唯一可能的原因是轴方向和归位方向掩码的设置不正确。 |
我在 0.9b 上确实有过一次这种行为,这是因为 homing dir mask 不能正常工作。如果您将归巢方向掩码设置为尝试在正方向上归巢,则它不起作用。 |
是的。@twforeman是正确的。v0.9b 中有一个错误导致归位目录掩码不起作用。前一段时间已经修复了,但我不认为我更新了发布的预编译固件。请假设任何非 master 分支固件都有潜在的错误,并且可能无法按预期工作。我想我在这些开发固件的下载链接旁边放置了一个警告。 |
模拟引脚:我认为他的想法是如果没有关闭开关,读数为 ~128,下限为 ~0(拉低),上限为 ~255(拉高)。 但明显的缺点是必须轮询开关状态。 |
@mschorer:我认为这会比它的价值更麻烦,因为它需要用户以特定方式接线,并且必须保证中点电压在一定范围内才能正常工作。高低 IO 使事情变得更简单并且更通用 IMO。 此外,我不确定如果存在这样的中点电压,硬限制使用的引脚更改中断是否会正确触发。所以,是的,需要对其进行轮询,并且需要重写硬限制例程以适应。 |
差不多,我最初的想法是 0 = 正常,255 = 一侧,50/200 之间是另一侧。 发自三星 Galaxy NoteMarkus Schorer notifications@github.com写道:模拟引脚:我认为他的想法是如果没有关闭开关,读数为 ~128,下限为 ~0(拉低),上限为 ~255(拉高的)。 但明显的缺点是必须轮询开关状态。 — |
@chamnit:关于“在限位开关接合时开始归位”。 |
@mschorer:限位开关检查在归位循环运动例程中,但在按步骤执行检查之前它不会执行任何步骤。这意味着,对于每一步,它都会循环并检查限位开关是否有触发的第一个迹象,然后在循环的剩余部分将它们永久锁定。v0.9b+ 的工作方式略有不同,但大体相同。 我不确定你的开关有多灵敏,但如果有的话,如果开关触发点有噪音,它可能会使你的轴移动几步。请让我知道您使用的是哪种开关以及执行此操作的 grbl 版本。 当我第一次编写归位循环时,我认为有些用户在触发硬限制和激活警报时难以移动轴,因为他们无法物理移动轴。我认为这就是为什么我没有选择在循环开始之前先明确检查限位销状态的原因,但它仍然在循环的第一个循环中做同样的事情,在移动任何东西之前检查状态。 |
TBH,我很少遇到归位序列的问题。Z 在主轴运行时出现一些问题(它就在开关旁边)。 我正在使用一些非常脆弱的数字开关和未屏蔽的 cat5(长线对)。x/y从来没有问题,即使在按下开关时启动归位序列时也是如此。他们确实通过了一些上拉/下拉电阻(我必须查看接线才能记住哪个!)。 这些开关是“嘿,让我们看看归位现在是否有效”,我只是把它们放在那里。令人难以置信的是,在他们看到所有的冷却剂/铝/锯末之后,它们仍然可以工作。 |
刚刚破坏了我 X 轴上的一个微动开关!
当我启动 Mill 并执行 $H 时,我的 X 轴已经在原位了!
当前忽略电流限制状态并移动直到更改/中断的方法存在此问题。
是否可以将限位开关移至模拟引脚?然后就可以确定是哪个限值(正或负)触发了警报。
优点:
a) Homing 循环然后可以检查轴是否已经@home,以及在哪个方向。
b) 警报报告可以包括哪个轴和哪个方向
归位周期可以更改如下:
如果轴已经在正方向归位,移动到负方向以清除开关并恢复正常的归位周期。