开源改变世界

有人测试过限位开关吗? #49

推推 grbl 2年前 (2023-01-21) 195次浏览

关闭
bpietroiu 打开了这个问题 2012 年 1 月 24 日 · 8条评论
关闭

有人测试过限位开关吗?#49

bpietroiu 打开了这个问题 2012 年 1 月 24 日 · 8条评论

注释

有人测试过限位开关吗? #49

我很好奇在不启用/禁用步进器的情况下步进限制如何工作….我猜这个功能在这种状态下从未工作过

我在我的轧机上进行了测试,它只是对 G28/30 做出了 ok 的响应,没有做任何事情

有人测试过限位开关吗? #49
成员

据我了解,限位开关并未完全集成到 grbl 中。它主要用于建立机器的起始位置。我可能是错的,但这是需要在边缘版本中更新和进一步开发的东西。

有人测试过限位开关吗? #49
作者

我在我的分支中提交了一些与归巢相关的代码。
我使用了用于轴运动的运动控制子系统和我在 g38 中引入的步进回调机制 – 触摸探针;您可以设置在每个步骤之后调用的回调;此回调可以决定强制完成当前块或禁止在一个或多个轴上移动;这样,对于接触式探针和限位开关,当该轴的限位开关被触发时,我们可以停止在该轴上移动。对于除 G38 和 G28/30 之外的 G 代码,步进中断的开销是最小的,因为此回调仅针对 G38 和 G28/30 设置和清除;

有人测试过限位开关吗? #49
成员

这绝对是可能的。现在我想起来,主要问题是如何处理限位开关或接触式探针跳闸后丢失位置的高概率。这是因为步进器没有位置反馈。因此,如果用户以高进给率运行,按下限位开关,步进器将立即停止,并且由于电机转子、丝杠和工作台/头中的高惯性力,可能会跳过很多步骤。

我认为一旦按下限位开关,下一步就是强制 grbl 用户重新回家并重新定位机器。否则,这可能会导致用户产生很多问题和挫败感。对于接触式探头,我认为这需要是一个受控的探测程序,与归位周期非常相似。不确定,还有很多事情要考虑,至少对我来说,它的优先级不高。

有人测试过限位开关吗? #49

那些限位开关应该通过硬件停止步进电机吗?至少在我的工厂里,看起来软件必须在按下开关时停止步进电机。
因此,当我在 grbl 中输入一些错误的 G 指令时,我成功地破坏了一个开关。
如果我错了,请纠正我。

有人测试过限位开关吗? #49
成员

我认为它是如何通过硬件或软件完成的并不重要。使用
硬件,您可以简单地将限位开关直接连接到
步进驱动器的启用引脚,以便在
跳闸时禁用它们。在软件中,有一些实施注意事项,但
相对容易做到。它还可以使机器和软件保持
同步。

在 2012 年 1 月 25 日下午 12:14,cody82
reply@reply.github.com
写道:

那些限位开关应该通过硬件停止步进电机吗?至少在我的工厂里,看起来软件必须在按下开关时停止步进电机。
因此,当我在 grbl 中输入一些错误的 G 指令时,我成功地破坏了一个开关。
如果我错了,请纠正我。


直接回复此邮件或在 GitHub 上查看:
#49(评论)

有人测试过限位开关吗? #49
贡献者

要使限位开关成为真正的紧急停止装置,它们必须进行物理接线以禁用步进驱动器。但是清除跳闸的限位开关存在问题。对我来说(在分支机构)禁用步进驱动器的软件工作正常(并保护我粘在丝杠上)。我对限位开关使用引脚中断以获得最快的响应!此外,我强制用户使用命令“M30”重置机器(任何其他命令都可以)。开关跳闸后发送的任何其他 gcode 都将被忽略,机器位置设置为 0/0/0。因此,鼓励在复位后归位。与 chamnit 一样,在我看来,在事故中跳闸限位开关并在没有发生任何事情的情况下恢复操作是不可能的,也是因为可能丢失了步骤。

有人测试过限位开关吗? #49

我刚刚开始使用 grbl 将小型工厂转换为 CNC。

如果我可以在对话中发表一些评论……

我认为紧急停止按钮应该就是紧急停止按钮。这意味着它必须立即停止所有运动。对我来说,这意味着它绝对不能依赖于计算机控制。我会连接紧急停止按钮以断开步进电机和主轴的所有电源。

如果在这种情况下按下紧急停止按钮,机器会停止,但 grbl 拥有的所有位置数据将无用。如果没有给步进电机供电,剩下的就是制动力矩,这可能不足以将轴固定到位。

因此,如果按下紧急停止键,您就可以有效地完成此特定程序的运行。在不重新建立您的来源等的情况下允许任何类型的程序继续是没有意义的。

我会将硬限位开关视为紧急停止。如果你击中这些,你希望在你损坏某些东西之前一切都停止。同样,您已完成此特定运行。

能够告诉 grbl 紧急停止已被触发是一个好主意,这样它就可以停止尝试向步进器发送命令,并可能向向它提供命令的程序指示存在问题。

原点开关可能不是特别有用,因为通常零件的原点不在原点开关位置。

也许我们需要的是非紧急停止输入。

断言时,非紧急停止将使所有运动减速至停止并停止主轴。清除后,主轴将重新启动,处理将继续缓冲区中的下一个命令。由于这不会降低步进器的功率,因此保持扭矩将保持不变,并且轴的位置应保持有效。

这将允许暂停操作以清除切屑或检查零件,如果与“软限位开关”耦合,将允许在到达硬限位开关之前优雅地停止程序。

这也可以与负载监视器一起使用,以在出现问题时停止程序(高进给率将导致跳过步骤等)。

让我印象深刻的是,我们还需要能够清除缓冲区中剩余的命令和/或在缓冲区顶部插入新命令(例如进给率的变化)。这将使我们能够纠正过载情况或在软停止后发出手动命令以重新定位轴而不会丢失位置信息,例如原点仍然有效。

现在想想,紧急停止和非紧急停止对grbl来说真的没有什么区别。无论哪种方式,grbl 都会停止发送步进命令并停止主轴。由操作员决定在清除紧急停止后他们是否可以恢复程序,或者他们是否需要清除缓冲区并重新开始。

有人测试过限位开关吗? #49
成员

我们就所有要点达成一致,并且已经在紧急停止线程中讨论过。我们将实施硬限制/急停 pin,这将杀死所有内容并阻止 grbl 在释放之前初始化。在这种情况下,所有位置信息都将丢失。由用户正确连接一切。软限制有待讨论,可以通过一致的起始位置的工作空间音量设置在内存中维护,或者按照您所说的使用另一个引脚来完成。这将启动进给保持并在不丢失定位的情况下进行 grbl 重置。

串口缓冲区将被阻塞,直到初始化完成并且一切正常。是否停止向 grbl 发送 g 代码取决于用户。我们将跟踪 grbl 的状态,以及在重置时保留定位数据是否安全。所以一般grbl不动的时候,定位会保留。

喜欢 (0)