注释
|
是的。实际上,您不应该期望在 >>jog<< 期间处理任何命令。Jog 是一种特殊情况,其中许多模态也不适用。在程序中间慢跑实际上没有多大意义,您应该使用 G0/G1 进行运动。 |
|
对不起,我说错了。当我们将程序流式传输到 GRBL 时,它使用 G0/G1 命令进行移动。 这是一个典型的程序: 设置模态 -> 立即处理 之后的其他步骤具有相同的行为。 我们已切换到缓冲区计数,这已解决了我们这边的问题。 |
|
我本以为那是理想的行为——以中速打开主轴似乎有点粗略……同意,应该没关系……但是…… GRBL 是否恰好处于激光模式? |
|
作用于当前正在执行的命令的更下游的 M 代码将非常糟糕。 考虑一台激光机——在不在适当位置时打开激光会导致在不应该切割的地方切割,从而破坏工作;或者过早地关闭它,结果是最后的几个动作不会被削减。 或者,考虑关闭冷却剂或主轴的命令 – 如果立即执行这些命令,您将要么干切削,要么在工件不旋转时将刀具推入工件。 |
|
GRBL 控制器中的命令被缓冲,并按照先入先出的原则执行。 |
这也没有任何意义。 按照设计,M 命令在前一个 G 完成之前不会发生。它们是 Modal 的“M”……在命令完成之前更改模式会产生如上所述的各种丑陋效果。gcode 不是一种复杂的语言,在这种情况下,像这样的提升命令实际上是不可能的——你希望它们提前多长时间重新排序?由于已知的副作用,在许多情况下,这可以通过计算机代码来完成。在这种情况下,效果实际上是不可知的。如果代码生成器可以安全地更早地移动命令,它应该已经这样做了。 关于“不会让步”——只是没有太多的让步能力——代码空间很小(而且很满),代码成熟,不简单,并且涉及实时运动。我不知道您要求什么,但我知道 1.1 中的更改需要很长时间才能完成,据我所知,后续代码库的工作正在进行中。它来了,只是非常缓慢。 |


我正在开发一个前端,它使用简单的发送/响应方法以 4Hz 的频率将命令流式传输到在附有 Protoneer 板的 Raspberry Pi 上运行的服务器。
当我将一个完整的程序流式传输到服务器时,我发送的所有命令(M3-M9 和 G4 除外)都会立即得到处理。但是,直到移动完成后才会处理上述命令,导致此时服务器发送/响应过程出现延迟。
这是预期的行为吗?