Contact me: hankecnc@gmail.com

启用 M17/M18 以控制步进电机的电源 #1071

推推 grbl 3年前 (2023-01-23) 272次浏览

关闭
DeflateAwning 打开了这个问题 2016 年 8 月 29 日 · 18条评论
关闭

启用 M17/M18 以控制步进电机的电源#1071

DeflateAwning 打开了这个问题 2016 年 8 月 29 日 · 18条评论

注释

启用 M17/M18 以控制步进电机的电源 #1071

如果这两个命令 (M17/M18) 可以在 GRBL 中实现,那么 M17 可以为步进电机供电,而 M18 可以禁用步进电机的供电,那就太好了。

我知道当前通过使用 $1=255 可以在移动后启用/禁用步进器,但是纯 g 代码解决方案会非常好。可能会引入一个配置选项来设置保持步进器启用的最长时间(比如 1 分钟),这样步进器就不会停留(导致它们磨损)的时间超过某人执行操作所需的时间手动换刀。

启用 M17/M18 以控制步进电机的电源 #1071
成员

@ThePiGuy: FWIW,我开始考虑将更多 Marlin 风格的 g 代码命令添加到 Grbl 的解析器中。尽管 3d 打印社区刚刚完成了大部分内容以满足他们的需求,但它正在成为新标准的一部分。我认为在有意义的时候开始合并其中的一些东西是明智的。步进器启用/禁用就是其中之一。

对于 1 分钟的超时请求,这将需要一个额外的计时器,而 Grbl 没有。(从技术上讲,如果要完全删除编译时选项,它就会这样做)。总的来说,我认为这不是一个好主意。步进器在启用和禁用时通常会失去位置。通常是由于每次发生这种情况时都会重置微步。在大多数情况下,现代步进电机和驱动器可以长时间运行。

但是,我确实已经为超时添加了类似于 GrblMega 分支(用于 Mega2560)的东西。这是为了在工作期间检测 USB 断开连接。

启用 M17/M18 以控制步进电机的电源 #1071

如果电机或驱动器在空转时变得太热,它们运行时会变得太热,所以真的不需要。
因为我使用带有 SPI 设置的驱动程序,所以我只是将电机电流降低到一个较低的值而不是禁用

启用 M17/M18 以控制步进电机的电源 #1071

就步进器而言,我觉得有太多人担心他们的步进器,因为它们被认为是“热的”。热是相对的,大多数步进电机的额定外壳温度为 100 度。C,或 212 华氏度。接触皮肤时会很热,但对电机来说不会太热。

至于禁用步进器,如前所述,在微步进模式下,当您禁用并重新启用驱动程序时,您至少会丢失整步中的那些微步。我知道与防护罩等一起使用的较小驱动器可能没有此功能,但较大的驱动器具有空闲电流设置,不会禁用驱动器,但会在一定时间内没有命令任何步骤时减少电流。我的可以设置为闲置时达到 40% 的电流,但我一直将我的设置为全电流。

我对添加 Marlin 命令或任何其他命令完全没有问题,只要以良好的方式完成即可。Marlin 是特定于 3d 打印机的,因此他们添加了大量命令,这很好,但他们也更改了现有命令。例如。M30,在 RS274 中是“程序停止/倒带”,在 Marlin 中是“从 SD 中删除文件”。同样,RS274 中用于工作坐标和刀具偏移的 G10 在 Marlin 中变为“根据 M207 的设置退丝”。对于整数世界中的所有数字,他们选择使用已经在使用的 M 代码数字。为什么?我不知道,但请不要那样做。请保持核心 RS274 命令不变,即使 GRBL 尚未/从未实现过。

3D 打印机社区已经拥有 Marlin 和许多其他打印机,其中许多基于 GRBL 的早期版本,对他们来说效果很好。GRBL 本身是一个很棒的程序,它填补了主要是笛卡尔坐标机器(如铣床、路由器、笔式绘图仪等)的利基市场。在我看来,它很好地填补了这个利基市场。它已扩展到其他用途,这也很好,但我希望它至少在很大程度上保持其作为笛卡尔坐标 g 代码解释器的根源。我也希望它能像现在一样维护一个在生产 CAM 软件中有用的代码集。

谢谢,

约翰·B。

启用 M17/M18 以控制步进电机的电源 #1071
成员

@109JB: 哈哈。不要担心 Grbl 会失控。业余 CNC 机器需要一些未定义的功能,例如电机功率/电流。Grbl 一直在用它自己的一组“$”命令来处理这个问题,但随着事情很快就会变得更强大,这些“$”命令将需要进一步充实。从技术上讲,其中一些功能已经像 Marlin 的 M 代码一样,因此可以将其解释为 Grbl 是 g 代码标准的混蛋。

无论如何,我一直在想,如果 Grbl 接受类似的命令,那么 3d 打印社区的人们以后会更容易获得更强大的 Grbl 版本。我将不得不真正研究它,看看什么有意义,什么没有。

启用 M17/M18 以控制步进电机的电源 #1071
哈维 评论了 2018 年 3 月 5 日  

这个有消息吗?这对我来说非常有用。特别是对于手动换刀,你可以做
M17 M0 M18

所以它会在 g 代码中间自动暂停,你可以更换工具,但不能移动轴。然后你可以取消暂停并继续 g 代码文件。有很多使用皮带传动(例如 Shapeoko)或齿轮齿条的机器,当电机未启用时很容易用手移动,因此很难在不移动它们的情况下松开和拧紧工具夹头。

这个功能应该很容易添加……

启用 M17/M18 以控制步进电机的电源 #1071
成员

不像你想象的那么简单。实现并不难,实际上在 v1.1 中可以作为睡眠命令使用。但它会在唤醒时自动重置 Grbl。由于以下原因,它的工作方式有所不同。

步进电机和驱动器在启用和禁用时失去位置。有些失去了微步,电机会在没有任何动力的情况下漂移。因此,对于工具更改,这使其完全无用。

此外,您需要在换刀时测量 z 偏移。它可能与之前的工具略有不同或完全不同。这将导致严重的崩溃。

当然,在某些情况下和高级 CNC 用户,这可能不是问题。但对于刚接触 CNC 的大多数人来说,这将是一个无休止的抱怨、疑问和头痛的问题。

最后 M17 和 M19 是 3D 打印世界的构造。它不用于减材加工,并且由于上述相同原因,制造商通常会在不同程度上限制禁用电机的能力。

启用 M17/M18 以控制步进电机的电源 #1071
哈维 评论了 2018 年 3 月 5 日  

@chamnit

步进电机和驱动器在启用和禁用时失去位置。有些失去了微步,电机会在没有任何动力的情况下漂移。因此,对于工具更改,这使其完全无用。

不,他们不会丢失任何东西。他们只会在您禁用它们的情况下失败。所有这些都是为了禁用它们。特别制作,因此您不会丢失任何东西。我只想在启用电机的情况下暂停 g 代码,而不必设置 $1=255,这会导致电机永久通电,即使在不进行换刀时也是如此。

此外,您需要在换刀时测量 z 偏移。它可能与之前的工具略有不同或完全不同。这将导致严重的崩溃。

我完全清楚。CNC 加工中已经存在很多碰撞危险,用户必须学习如何处理它。这只是其中一个案例。这有 3 个便宜且明显的解决方案:

1.) 使用带塑料塞子的工具(或用固定螺丝装上您自己的塞子)。砰。问题解决了。非常适合初学者:

启用 M17/M18 以控制步进电机的电源 #1071

2.) 人们使用简单的装置。简单的带孔木板可能足以确保工具从主轴伸出正确的量。

3.) 自动工具探测。(这有点高科技,但可以做到)。

但对于刚接触 CNC 的大多数人来说,这将是一个无休止的抱怨、疑问和头痛的问题。

为什么刚接触 CNC 的人会开始创建包含换刀的 g 代码?我想初学者会从简单的单一工具 g 代码开始。

启用 M17/M18 以控制步进电机的电源 #1071
成员

行。我重读了原帖。最好根本不要禁用步进器。我已经开始后悔步怠速延迟设置了。由于大多数现代步进驱动器产生的热量很少,并且几乎可以无限期地保持开启状态。

如果您确实需要禁用它们,则假设是在作业结束时,v1.1 睡眠模式命令旨在处理此问题。理想情况下,应该在 X 分钟后自动禁用,而不是像 Grbl 那样在几毫秒后自动禁用。

是的。当然,有工具更换的解决方案,但您假设新手会了解所有相关信息并且没有任何疑问或问题。不对。完全不是真的。即使您一字不差地拼出所有内容,总有一部分用户永远不会阅读说明并把所有内容都倒过来。我几乎每天都看到这个。

当 GUI 旨在实现它们时,工具更改很容易。无需处理用于禁用电机的特殊 gcode。例如,Carbide3d 的 Nomad 就是用一个构建的。它们为您插入所有换刀命令并自动探测刀具长度偏移。它工作得很好,几乎没有错误和误用的余地。我知道 bCNC(也许还有 UGS)也有一种方法可以让用户为他们的机器安装自定义例程。

我发现最好将工具更改设置留给原始设备制造商或了解如何操作的高级用户。固件不可能考虑到每一种情况、每一种机器类型或每一种工作流程偏好。

启用 M17/M18 以控制步进电机的电源 #1071

我同意如果你不想丢失步骤,你需要保持步进器开启,但在某些情况下,能够禁用步进器以手动移动轴(步进器后面的手轮,或者像激光一样)很方便切刀,只需推动头部)。
或者相反,当在机器上做一些事情时,最好打开步进器,这样就不会自行移动。
这意味着你必须在那之后重新回家,但你不会失去任何其他东西。
所以我相信有些人会大量使用某种命令来激活/停用步进器(GCode 或 Grbl)。

启用 M17/M18 以控制步进电机的电源 #1071
成员

@mpatoulachik: 是的。同意。您可以使用 v1.1 中的新睡眠命令来完成此操作。它会进行自动重置,迫使您承认可能丢失的位置并重新回家。

启用 M17/M18 以控制步进电机的电源 #1071

@mpatoulachik 请注意,手动驱动步进电机会迫使电流进入电源并可能损坏电子设备

启用 M17/M18 以控制步进电机的电源 #1071

给驱动器的使能引脚提供 5V 的简单开关怎么样?并非所有事情都必须复杂或由软件驱动。

启用 M17/M18 以控制步进电机的电源 #1071

@109JB简单的拨盘来转动机器的进给怎么样?:-)

启用 M17/M18 以控制步进电机的电源 #1071

实际上,一个简单的拨盘来调整进给倍率会很棒。

我只是提出一个建议,因为很多时候人们过于关注一个潜在的解决方案而忽略了所有其他解决方案。只见树木的森林场景。

启用 M17/M18 以控制步进电机的电源 #1071

@chamnit您不应该后悔自动禁用电机。当我刚接触事物并且不知道我不应该在驱动器带电时拔掉电机时,你救了我的驱动器好几次。没有什么不好的事情发生,因为它们被 grbl 自动禁用了。此外,我还没有完成所有接线工作,电机电线在我身上松动了好几次,这也会烧毁驱动器。幸运的是,几天后带锁的正确连接器就会到达,所以它再也无法拔出我的插头了。

@109JB我的意思是这样的:
启用 M17/M18 以控制步进电机的电源 #1071

然而,当你开始这个软件问题的硬件解决方案时……我想知道我是否可以使用这个引脚作为输入:

启用 M17/M18 以控制步进电机的电源 #1071

但我想如果我试图缩短这两个引脚或其他东西,那只会炸毁 atmega 的输出。

然而,使用单个开关禁用电机的明显方法是简单地断开 24V 电源。我打算安装这样的开关。

启用 M17/M18 以控制步进电机的电源 #1071

@Harvie您可以通过简单地弯曲或切断插入 arduino 引脚 8 的引脚来使用防护罩上的这些引脚。这将隔离 Arduino,然后您可以像这样添加一个开关。
启用 M17/M18 以控制步进电机的电源 #1071

启用 M17/M18 以控制步进电机的电源 #1071
哈维 评论了 2018 年 3 月 8 日  

@109JB或者只是修补 GRBL 以将 EN 引脚设置为输入(可能带有内部上拉电阻),这样您就不会通过对其施加 5V 来破坏任何东西。也许在 config.h 中可以有这个选项……

或者 grbl 可以默认启用和禁用上拉以启用和禁用驱动程序,同时保留将上拉短路接地以从外部禁用电机的可能性。

启用 M17/M18 以控制步进电机的电源 #1071

@Harvie– 当然可以,但由于已经声明不会为此提供 Grbl 固件的官方模组,因此弯曲引脚 8 和添加开关是适用于绝大多数禁用步进器的情况的选项是需要的。建议将其作为解决方法,因为它似乎是您获得所需内容的唯一方法是自己修改 Grbl 固件。如果那是你想做的,那么没有人会阻止你。

另外,我关于使用简单开关的帖子是为了回应@mpatoulachik发帖他说:

我同意如果你不想丢失步骤,你需要保持步进器开启,但在某些情况下,能够禁用步进器以手动移动轴(步进器后面的手轮,或者像激光一样)很方便切刀,只需推动头部)。
或者相反,当在机器上做一些事情时,最好打开步进器,这样就不会自行移动。
这意味着你必须在那之后重新回家,但你不会失去任何其他东西。
所以我相信有些人会大量使用某种命令来激活/停用步进器(GCode 或 Grbl)。

他在那篇文章中提到的几乎所有内容都可以通过一个简单的开关来启用或禁用驱动器来缓解。

回到你说的原来的帖子

特别是对于手动换刀,你可以做 M17 M0 M18

M17 会禁用驱动器,您会立即丢失至少一点位置。当步进驱动器被禁用然后重新启用时,它会重新启用到整步位置,而禁用前的位置可能是微步位置,因此您可能会因为驱动器的操作而失去 1/2 步的位置。除此之外,电机在禁用时可以自由旋转的可能性以及重新启用之前的任何旋转也会增加丢失的位置。

我个人认为绝对没有理由为了更换工具而禁用驱动程序。我一直使用 Grbl 进行工具更改,这就是我的做法。Grbl 可以使用 G28 和 G30,您只需将 G28 或 G30 定义为换刀位置,然后编程

G28
M0

机器将移动到您为 G28 定义的位置,然后暂停以换刀,同时保持电机启用。

我不是要争论。我只是想为那些可以使用它们的人提供选项。您需要记住,阅读这些问题帖子的人比实际在其中发布的人多得多。虽然您可能不喜欢我的建议,但它们可能对其他人有益。

喜欢 (0)