如何用 G 代码中断长命令?

3D打印 创造者-3 g代码
2021-05-11 07:29:51

我能够将我的终端程序 (Putty) 连接到我的 3D 打印机 (Creality Ender 3 Pro),并且能够将 G 代码命令发送到我的打印机并且它服从。

现在假设我发送了长命令

G29 ; auto bed leveling

它仍在执行。打印机写信给我

echo:busy: processing

怎么打断呢?

我尝试发送M0,但没有成功。

2个回答

3D 打印机在 G 代码方面非常基础。它们没有循环启动或循环暂停功能。也没有 g-code 命令可以中断上一个命令。要让它停止,您可以将其关闭。或者,如果打印机的固件配置为这样做,您可以触摸其中一个限位开关以使其停止移动。

G-Code 作为队列处理。FIFO 行为将不允许并行执行任何命令。

但是我知道 - 但我没有机会尝试 - Marlin 提供的紧急命令M112M108Marlin 文档说需要启用 EMERGENCY_PARSER 和 HOST_KEEPALIVE_FEATURE 来处理这些。显然有一种机制可以并行工作(比如更高优先级的队列?)。

这些命令可能被设计为中断某些特定动作的执行,例如 M108 被描述为中断等待温度循环。您可能想尝试一下。

M0 还需要 EMERGENCY_PARSER 设置。它可能与您的预期略有不同:它被描述为最后一个动作暂停相比之下,紧急代码(M112句号)被设计为即使在打印时也跳过内部命令队列并立即执行,当紧急解析器启用时(命令队列可能会丢失,打印机可能会关闭或用户可能会被迫重新启动打印机)。