注释
请解释您为什么需要 M1 命令。你将如何使用它?它是由您的 CAM 程序生成的吗? |
嗨, 我希望能够运行一些进程,然后循环启动以恢复。我的代码有很多 m1,其中涉及一些手动过程。 |
在 g 代码中,M1 是“可选停止”,这意味着必须将控制器设置为在这些位置停止。它的作用与 M0 停止命令相同,但 M0 不是可选的。 ESP32 怎么知道它应该或不应该停在 M1 上? M0 是否适用于您的应用程序? |
特热约 评论 on 5 Jun 2019
一个物理开关(需要一个有价值的输入引脚)或从发送者发出的新的实时命令(通过按钮或复选框)都可以用作 M1 是否导致暂停的输入。 |
目前 Grbl 有一个实时暂停。也许这可以被 M0/M1 使用。它需要是模态组的一部分,所以它不是实时的。它需要在上一个 gcode 完成后启动。G4 做到了这一点,这将是一个很好的起点。 M6(换刀)可能会同时包含在内,以获得手动换刀的机会。 我建议在AVR Grbl repo提出这个问题。我认为这样的功能应该跨版本进行协调,所以它们的反应都是一样的。 |
@bdring据我了解,M1 的行为应该与当前的 M0 实现完全相同,只是它取决于开关设置。我在我的 HALified 版本的 grbl 中添加了对此的支持,但除了(或替代)使用来自开关的输入之外,它可能依赖于标志,可能通过实时命令设置/重置。用于换刀的 IMO M6 完全是一个不同的问题,我通过添加新状态和输入流的双缓冲来实现这一点 – 这允许在换刀状态下进行慢跑(就像在我的 Mach3 控制的路由器上一样)。 今天,我还重新开始了“廉价”微型 ATC(最多 8 个 3.175 毫米轴工具)的工作,如果幸运的话,我可能能够成功地得出结论。这需要对 grbl 核心进行另一组更新,我相信我现在已经在工作了——至少所有的动作都在正常运行。困难的部分将是成功完成机械钻头…… |
@mac7988您可以更改后处理器以在 M1 上使用 M0 吗?我认为这将为您提供所需的功能。 @terjeio 几年前我做了一个基于 Grbl 的 ATC。实际上,我通过在看到 M6 等时插入额外的 gcode 在发送器中进行了工具更改。我认为可以在内存超过 328p 的 MCU 上的 Grbl 内完成相同的操作。通过 config.h 值允许手动更换刀具会很好,例如 Z 顶部…关闭主轴…移动到 G28。 |
@bdring我知道您的 ATC 解决方案,适用于我的大型路由器/磨机 – 但对于我的迷你路由器/磨机来说太大且太贵了。我在我的 grbl 端口中启动并运行了手动工具更改 – 但它是一个相当广泛的重写,所以我不知道向后移植有多容易。 实现 M1 在 IMO 代码方面是简单明了的,但在实践中并不容易,因为没有用于开关的空闲引脚?@mac7988没有指定他正在使用哪个发件人,添加实时命令和 GUI 支持也可能有问题? |
大家好, 所以也许我可以解释得更好。我正在运行 2 轴以掏出一些东西。一旦口袋完成。我去把一个零件插入口袋。完成后,在口袋中插入相同的两轴粘合剂以捕获零件。 我需要暂停动作,直到我插入零件并通过点击循环启动它会恢复。 |
@mac7989 我好像你应该使用 M0。你用的是什么CAM软件?你能调整后处理器吗? |
@mac7989 如果您愿意,也可以自定义 grbl,在 gcode.cpp 添加 M1 动作(靠近 300 行):
声明后 但是出于安全原因,也许应该默认启用 M1? LinuxCNC M0/M1 规格在这里。 |
@bdringgcode 是使用具有一些参数的 Excel 表编译的。根据一些下拉选择,它将调整代码。 我可以实现 M0 并尝试一下。我会及时向大家发布。 |
M1 很容易通过发送程序来处理。我的做到了,我什至不是一个好的程序员。 M1 是可选的,我认为应该保持可选。如果您使其功能与 M0 相同,则它不再是可选的。就个人而言,我宁愿将其保留为未定义的命令,也不愿违背其定义来实现它。 |
mac7988 评论 on 2 Jun 2019
大家好,
我的应用程序需要一个 M1 命令。
如果可能的话,有人可以帮助或指出正确的方向来实现这一点。
感谢你们疯狂的天才们!?