开源改变世界

在 GCode Cycle 期间经常询问机器状态? #73

推推 grbl 3年前 (2023-01-21) 118次浏览

关闭
nsiatras 打开了这个问题 2016 年 12 月 24 日 · 4条评论
关闭

在 GCode Cycle 期间经常询问机器状态?#73

nsiatras 打开了这个问题 2016 年 12 月 24 日 · 4条评论

注释

在 GCode Cycle 期间经常询问机器状态? #73

大家好,

也许这与我的电子产品有关,但我会问。
在 GCode 循环中频繁询问机器状态是否安全?

我注意到通过减少间隔(~10 毫秒)我发送了“?” 在 GCode 循环期间命令我的机器进行了一些 Ghost 移动,而所谓的 Ghost 移动我的意思是机器进行的移动不在我发送的 GCode 中。

谢谢 :)

我的设置:
Arduino Uno R3
Protoneer Shield
Nema17 步进电机和 A4988 驱动器

在 GCode Cycle 期间经常询问机器状态? #73
贡献者

@nsiatras: 200ms-500ms 是常见的。不是 10 毫秒。作为参考,传输 70 个字符的消息需要 115200 波特大约 6 毫秒。

在 GCode Cycle 期间经常询问机器状态? #73

我之前不是很清楚。
我在等待 GRBL 响应,然后在 10 毫秒后发送“?” 命令。
所以它是在最后一次收到 Status 消息后 10ms。

在 GCode Cycle 期间经常询问机器状态? #73

@nsiatras: 什么@chamnit想说的是您请求状态报告的方式过于频繁。在 0.9 wiki 中,它是关于状态报告的,在 1.1 中应该没有什么不同:

我们建议向 Grbl 查询一个 ? 不超过 5Hz 的实时状态报告。10Hz 可能是可能的,但在某些时候,回报会递减,并且您要求 Grbl 的 CPU 生成和发送大量位置数据,从而增加了 CPU 的负担。

我进行了测试,看看从 ? 收到请求时发送请求,在 115200 波特率下大约需要 15 毫秒。加上 10 毫秒的等待时间,您基本上每 25 毫秒请求一次状态报告,即 40 赫兹,或者比推荐频率高 8 倍。

简而言之,减少状态请求的频率。

在 GCode Cycle 期间经常询问机器状态? #73

那很有帮助。非常感谢你 :)

喜欢 (0)