Contact me: hankecnc@gmail.com

M400步枪 #133

推推 grbl 3年前 (2023-01-25) 433次浏览

 关闭

M400步枪#133

男爵88 打开此问题 on Apr 3, 2012 ·8条评论

评论

M400步枪 #133

我不确定我是否是一个新手,但是如果我发出一堆移动命令,然后是M400命令(我相信它应该阻塞,直到移动完成),我的打印机接受所有的命令,包括M400没有阻塞。
我错过什么了吗?

谢谢你,

M400步枪 #133
贡献者

对我来说还不错。
如果我用长的移动填充缓冲区,然后发送一个M400,所有的命令都会被阻止。
此后,执行串行缓冲器中的命令。

M400步枪 #133
作者

也许是前面的界面搞砸了。
目前我正在做(移动X -10cm,移动X +10 cm,M400)4次,它接受所有的命令没有阻塞,使我的程序终止时,它不应该。

M400步枪 #133
贡献者

存在将被填充的串行缓冲器。M400未阻止主机软件和打印机之间的gcode交换,这可能导致缓冲区欠载。现在还不完全确定,但串行缓冲区仍然可以由M400填充,可能是在100-300字节的体制。M400仅确保只有在所有先前移动完成时才执行其后的下一命令。

您希望通过M400实现什么目标?

M400步枪 #133
作者

即,当你按下一个键,它会不断做“移动1毫米”,等待机器做的移动,然后,如果键仍然按下,它会发送另一个“移动1毫米”,直到你释放键。这 应该希望保持它顺利移动,而键是下来,当你释放键只会有一个最大的1毫米在缓冲区为它移动。

M400步枪 #133
贡献者

那么:
G1 X++
M400步枪
M115
等待M115返回,->下一次发送

或者,如果这是真正要使用的东西,我们可以做一个M400T,它将在完成后返回一个消息。或者M400的确认应该推迟到实际完成(不确定是否可能)。

M400步枪 #133
贡献者

而且,如果你想做什么就做什么:移动将完成,机器将减速,因为移动缓冲区中只有一行,即使下一个移动直接在后面发送,它也将是一个断断续续的移动。它将从零速度开始。
为了顺利移动,需要发送下一行,而之前的第二行还没有完成。否则,轨迹规划器将完全减速。另外,您不能在其中安装M400。
如果您尝试在主机软件中计算移动时间,您需要加速度,并了解SLOWDOWN是否处于活动状态,因为缓冲区将非常空,移动将变慢,以便主机尽快发送新移动的可能性,因此存在连续移动。这对于例如100个0.05mm的小线段的列表很重要,其中移动速度将比主机通过USB/TTL RS232发送的速度快。

M400步枪 #133
作者

我现在明白你说的M115是什么意思了。我会整理好我所有的帖子。它应该工作,但无论哪种方式,M115返回了大量的数据这是有点矫枉过正。

我的失败是认为M400阻止了接收更多的串行移动,这是错误的,因为有一个串行缓冲区,它更多的是“完成所有以前的命令,然后继续处理缓冲区”。

为这个建议干杯。我修改了我的马林,使M400T回声“M400完成”时,st_synchronize完成,所以我的交互式螺栓滚齿程序现在工作正常。是否还有“立即停止所有移动”命令?我目前只是做一个重置停止机器这是不太理想的。

M400步枪 #133 伯尔 移走 T:功能请求 用户请求的功能。PR:改善 标号 on Jun 29, 2015
亚历山大里亚 推送提交 至亚历山大/马林 引用了 本期 on Sep 9, 2015

阿迪尔肯斯 推送提交 阿迪尔肯斯/马林 引用了 本期 on Oct 7, 2018

八月246 推送提交 至8月246日/马林 引用了 本期 on May 18, 2021

M400步枪 #133
吉图亚行动 机器人 评论的 on Apr 15, 2022

此问题已自动锁定,因为在关闭后没有任何近期活动。请为相关错误打开一个新问题。

M400步枪 #133 吉图亚行动 机器人 锁定和限制与协作者的对话 on Apr 15, 2022
喜欢 (0)