开源改变世界!!

将步进速率同步到编码器信号(用于车床)? #65

推推 grbl 2年前 (2023-01-21) 136次浏览

关闭
speters 打开了这个问题 2012 年 2 月 17 日 · 5 条评论
关闭

将步进速率同步到编码器信号(用于车床)?#65

speters 打开了这个问题 2012 年 2 月 17 日 · 5 条评论

注释

将步进速率同步到编码器信号(用于车床)? #65

我想知道是否有一种简单的方法可以将步进速率与(正交)编码器信号的速度同步。
如果实施,grbl 可以用作车床数控控制器(例如用于螺纹加工),或用作铣床第 4 轴的控制器(例如用于齿轮切削)。
但我必须承认,我没有深入研究计划程序代码……

将步进速率同步到编码器信号(用于车床)? #65
成员

在我的脑海中,用当前的代码很难做到这一点。我想需要一个特殊的步进例程来同步主轴上的编码器和步进器。最大的问题是确保步进器永远不会超过它们的最大加速度,这很困难,因为没有反馈。您必须不断地实时规划加速度。grbl 现在真的不能做的事情。它必须预先计划计划器中的所有内容。

调查这样的事情还很遥远,但在待办事项清单上。虽然不能说这是不可能的,但一个好的解决方案可能需要一些创造性。

将步进速率同步到编码器信号(用于车床)? #65
作者

我的第一个想法是修改stepper.c中的set_step_events_per_minute以包含当前主轴速度的除数。
但是由于速度不允许低于MINIMUM_STEPS_PER_MINUTE,所以这种简单的方法是行不通的。
现在我明白了,这真的不只是简单。
谢谢你的评论和你在 grbl 上的工作。

将步进速率同步到编码器信号(用于车床)? #65
成员

我们可以做的一件事是,每当 grbl 检测到来自主轴电机编码器的信号并根据设定的路径步进时,都会产生步进效果。只要主轴加速度不超过步进加速度限制,这样的事情就应该起作用。如果我们能够以一种非常稳健的方式控制主轴速度,我认为这可以作为一个特殊的运动例程来完成。据我了解,这通常只用于线程,作为一个特殊的例程应该没问题。(第 4 轴不同,因为您使用步进器而不是主轴本身控制旋转台。)

将步进速率同步到编码器信号(用于车床)? #65

我参与了另一个控制器中的线程代码。它真的没有那么难。我已经很多年没看过该代码了,但我在某个地方找到了它。它不是 GPL,但我可以将其用作参考。无论如何都没有关系,因为工具移动在其中完全不同。

首先要确保可以达到所需的轴速度。这是螺距和主轴速度的函数。我们使用的螺纹代码假设主轴速度恒定,这是一个很好的起点。

一旦知道轴速度正常,就可以检查加速度。该工具以某种速度位于某个起点,距离螺纹起点有一段距离。主轴转速和螺距决定了所需的最终速度。问题变成了需要多大的加速度才能使轴达到适当的速度,它是否可以实现。

如果无法满足这些条件中的任何一个,则该过程会因错误而关闭。

通常螺纹足够细,主轴转速合理,很容易从轴上获得所需的加速度和速度。

所以一旦我们知道速度和加速度都可以,那么我们就必须同步起点。螺纹循环多次通过以切割螺纹。并且每次通过都必须从工件上完全相同的点开始。所以你要做的是关闭工具,然后暂停它等待下一次同步。一旦你同步了它,它只是为每个主轴脉冲发出这么多步的问题。而且您必须为每个接收到的脉冲计时,因为机器通常会随着工具加载而减慢速度。

清澈如泥?

将步进速率同步到编码器信号(用于车床)? #65

您必须记住,所有这些都发生在一个 Gcode 中。您可以在同步点之前进行运动规划,然后停止规划并让主轴脉冲控制运动一段时间。然后恢复计划的动作。

如果我没记错的话,除了在高主轴转速下最粗的螺纹外,几乎可以从停止的轴到完全的步进速度,中间没有任何东西。请注意,那是基于伺服的机器,使用带有 PID 回路的伺服驱动器。步进电机可能是一个完全不同的故事。

喜欢 (0)