Contact me: hankecnc@gmail.com

grbl 激光模式,每秒有多少个运动命令? #1036

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

打开
svenhb 打开了这个问题 2021 年 4 月 29 日 · 10 条评论
打开

grbl 激光模式,每秒有多少个运动命令?#1036

svenhb 打开了这个问题 2021 年 4 月 29 日 · 10 条评论

注释

grbl 激光模式,每秒有多少个运动命令? #1036
svenhb 评论了 2021 年 4 月 29 日  

Arduino uno 每秒可以处理多少个运动命令?

极端例子:

进给率 = 6000 毫米/分钟 = 100 毫米/秒
光栅 0.1 毫米(G91 中需要 GCode,例如 G1X0.1S100)
需要 1000 Gcode 行/秒 = ca。10000 字节/秒。

我的经验:

我在 ca 处发现了一个限制。100 Gcode 行/秒 = ca。1000 字节/秒(进给率 4000 毫米/秒 = 67 毫米/秒,0.4 毫米光栅,约 8 字节)
图像绘制开始于 4:30 https://youtu.be/7Nvf4UwK_yk?t=269
运动不流畅,因为太高进给率从 5:08 开始https://youtu.be/7Nvf4UwK_yk?t=308

或者是 USB 端口的限制?

grbl 激光模式,每秒有多少个运动命令? #1036
挪威-Gadgetman 评论了 2021 年 4 月 29 日 通过电子邮件
grbl 激光模式,每秒有多少个运动命令? #1036
作者
svenhb 评论了 2021 年 4 月 29 日  

您需要做的是寻找减少需要传输的数据量的方法。

是的,我已经这样做了:使用 G91,仅在 S 需要更改时才发送新坐标(好的,当使用 Z 而不是 S 时,我在路线的起点和终点发送相同的 S 以避免斜坡)。
我认为一定还有另一个限制。

grbl 激光模式,每秒有多少个运动命令? #1036

串行端口允许高达 112500bps 的传输速率。

汇率是 115200,所以多一点 ;-)

两个主要限制因素(除波特率外)是发送方传输方法(单行/等待 ok 或保持输入缓冲区已满)和规划器缓冲区大小(Grbl 中最多 256 个条目,但限于可用 RAM,默认为36?)。有关详细信息,请参阅此 grblHAL 问题 和此博客文章

grbl 激光模式,每秒有多少个运动命令? #1036
作者

我没有提到:我使用了字符计数流协议,缓冲区大小为 127。
我在 Arduino Uno 的 Atmega 328 上使用“经典”grbl …

grbl 激光模式,每秒有多少个运动命令? #1036

缓冲区大小为 127。

这是串行输入缓冲区大小。

规划器缓冲区大小会影响最大值。吞吐量相当大 – 至少在高进给率下。
它的条目比我记得的还要少。您需要一个具有更多 RAM 的处理器来加速它吗?

grbl/grbl/planner.h

第 26 至 33 行 bfb67f0

//在任何给定时间可以在计划中的线性运动的数量
#ifndef BLOCK_BUFFER_SIZE _
# ifdef USE_LINE_NUMBERS
#定义 BLOCK_BUFFER_SIZE 15
#否则
#定义 BLOCK_BUFFER_SIZE 16
#结尾
#结尾

 

grbl 激光模式,每秒有多少个运动命令? #1036
作者

您需要一个具有更多 RAM 的处理器来加速它吗?

:-) 我更感兴趣的是计算或估计最大值。每秒的命令量…

grbl 激光模式,每秒有多少个运动命令? #1036

尝试以一半或两倍的波特率运行,以确定是否是通信限制或 AVR 根本没有足够的马力来更快地处理移动

grbl 激光模式,每秒有多少个运动命令? #1036

:-) 我更感兴趣的是计算或估计最大值。每秒的命令量…

为此,您必须找出瓶颈所在。IMO 它很可能是计划者缓冲区。也许您可以通过发送一连串运动命令来估算,这些命令几乎可以使计划程序缓冲区充满?或者在延迟后收到正常回复时检查您的发件人?(当规划器缓冲区饱和时)

据我们发现,在使用相当大的规划器缓冲区之前,字符计数模式下的流式 gcode 不会影响这一点。另一个可能影响这一点的因素是 8 位 CPU 的处理速度,它相当慢(与 M4F ARM 相比)并且规划器占用了很多周期……

如果您可以访问具有更多 RAM(2560 Mega?)的控制器,您可以同时调整输入缓冲区和规划器缓冲区的大小,以了解它们如何影响吞吐量?

AVR 根本没有马力来更快地处理动作

可能有马力但内存太少无法使用?

grbl 激光模式,每秒有多少个运动命令? #1036
作者

看来:我需要自己弄清楚…首先
我会尝试记录规划器缓冲区(Bf:15,128。第一个值是规划器缓冲区中可用块的数量,第二个是可用字节数串行 RX 缓冲区。)

grbl 激光模式,每秒有多少个运动命令? #1036

你能提高串行通信速度吗?
或者在不开机的情况下写入数据以释放空间

喜欢 (0)