开源改变世界!!

M42 指令在机器运动中不被缓冲(但 M106 是) #666

推推 grbl 2年前 (2023-02-06) 164次浏览
关闭
jerkey 打开了这个问题 2013 年 11 月 28 日 · 8条评论
关闭

M42 指令在机器运动中不被缓冲(但 M106 是)#666

jerkey 打开了这个问题 2013 年 11 月 28 日 · 8条评论

评论

M42 指令在机器运动中不被缓冲(但 M106 是) #666

M42 命令显然是在串行函数看到命令时执行的,而不是当机器的托架到达 g 代码列表中的那个点时。例如(从 0 处的 X 开始):

G1 X100
M42 P40 S255
G1 X200
M42 P40 S0

我希望它移动到 X100,打开引脚,然后将 X 移动到 200 并关闭引脚。但是,一旦串行处理程序接收到 M42 命令,它就会打开和关闭引脚——甚至在托架开始移动之前。

如果将 M42 P40 命令替换为 M106,则它可以正常工作。我什至没有在代码中看到一个是如何缓冲的而另一个不是——它们都在同一个 switch 语句中。(M106 只控制风扇,M42 可以控制任何管脚)

M42 命令应与运动命令一起缓冲以便更有用。我必须在风扇控制器上安装一个焊膏分配螺线管,以使我的机器正常工作。

M42 指令在机器运动中不被缓冲(但 M106 是) #666

在 M42 之前放置一个 M400。
M400 是“完成所有动作”

我可以缓冲 M42,但我们需要另一个 MCU。(内存有限)

M42 指令在机器运动中不被缓冲(但 M106 是) #666
贡献者

为什么对机器有影响的非缓冲命令不总是
等待缓冲区为空?这是 gcode 的正确语义。

在 2013 年 11 月 28 日 08:43,ErikZalm notifications@github.com写道:

在 M42 之前放置一个 M400。
M400 是“完成所有动作”

我可以缓冲 M42,但我们需要另一个 MCU。(内存有限)


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/666#issuecomment-29447414

M42 指令在机器运动中不被缓冲(但 M106 是) #666
贡献者

因为 Pin toggling 可以用于 UN- 或缓冲。
在 2013 年 11 月 28 日下午 1:07,“Chris” notifications@github.com写道:

为什么对机器有影响的非缓冲命令不总是
等待缓冲区为空?这是 gcode 的正确语义。

在 2013 年 11 月 28 日 08:43,ErikZalm notifications@github.com写道:

在 M42 之前放置一个 M400。
M400 是“完成所有动作”

我可以缓冲 M42,但我们需要另一个 MCU。(内存有限)


直接回复此电子邮件或在 GitHub<
https://github.com/ErikZalm/Marlin/issues/666#issuecomment-29447414&gt;
上查看 。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/666#issuecomment-29459360

M42 指令在机器运动中不被缓冲(但 M106 是) #666
作者

@ErikZalm在命令之前放置 M400 会导致托架针对 M42 命令达到零速度。我试图在托架组件平稳通过期间激活焊料分配器,而不会减慢速度。我什至无法通过查看代码来判断 M106 是如何缓冲的,而 M42 不是,但我希望它们都被缓冲。

我还想提一下,Marlin 非常棒,是一项伟大的工作,感谢您让这一切成为现实。

M42 指令在机器运动中不被缓冲(但 M106 是) #666
贡献者

IIrc 风扇销做你
想做的事。查看 iirc m106 命令
2013 年 11 月 28 日晚上 11:06,“jerkey” notifications@github.com写道:

@ErikZalm https://github.com/ErikZalm在命令之前放置一个 M400
会导致支架在 M42 命令中达到零速度。我
试图在
托架组件平稳通过期间激活焊料分配器,而不会减慢速度。我什
至无法通过查看代码来判断 M106 是如何缓冲的,而 M42 不是,但我希望它们都被
缓冲。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/666#issuecomment-29487108

M42 指令在机器运动中不被缓冲(但 M106 是) #666
作者

@bkubicek你是对的,我已经将我的空气电磁阀连接到风扇电线并且它可以工作。但是对于发生在运动中的更高级的 CNC 操作(利用前瞻缓冲区),最好有更多的工具头操作选项。答案似乎是使用其他引脚将 M106 命令与用于设置模式的 M42 复用,但这是一个问题。但是没有选择,因为显然没有足够的 RAM 来缓冲当前 CPU 的 M42 命令。