开源改变世界

gcode 末尾的 G28 导致奇怪的行为 #586

推推 grbl 2年前 (2023-02-05) 210次浏览
关闭
paolo68 打开了这个问题 2013 年 9 月 6 日 · 4条评论
关闭

gcode 末尾的 G28 导致奇怪的行为#586

paolo68 打开了这个问题 2013 年 9 月 6 日 · 4条评论

评论

gcode 末尾的 G28 导致奇怪的行为 #586

刚刚加载了最新版本的 Marlin(在我的带有 Ramps 1.4 的 Prusa i3 上),发现最后几个动作没有执行。
重新加载以前的版本(2012 年 12 月左右),一切正常。

经过大量试验和错误后,我发现删除 gcode 末尾的 G28 命令可以使最后的命令完美执行。
换句话说,看起来 gcode 末尾的 G28 命令影响了最后一步的执行!!!???

在 END 处使用和不使用 G28 命令尝试以下 gcode,您将看到不同之处!

G21
G28
G90

G1 X50 Y50 F8000
G1 X50 Y80 F2000
G1 X80 Y80
G1 X80 Y50
G1 X50 Y50

G1 X150 Y150 F8000
G1 X150 Y180 F2000
G1 X180 Y180
G1 X180 Y150
G1 X150 Y150

G1 X50 Y50 F8000
G1 X50 Y80 F2000
G1 X80 Y80
G1 X80 Y50
G1 X50 Y50

G1 X150 Y150 F8000
G1 X150 Y180 F2000
G1 X180 Y180
G1 X180 Y150
G1 X150 Y150

G28 ; 这是有罪的命令

gcode 末尾的 G28 导致奇怪的行为 #586

在最后的 G28 之前你需要一个 M400。

2013 年 9 月 5 日中午 12:05,paolo68 notifications@github.com写道:

刚刚加载了最新版本的 Marlin(在我的带有 Ramps 1.4 的 Prusa i3 上),发现最后几个动作没有执行。
重新加载以前的版本(2012 年 12 月左右),一切正常。

经过大量试验和错误后,我发现删除 gcode 末尾的 G28 命令可以使最后的命令完美执行。
换句话说,看起来 gcode 末尾的 G28 命令影响了最后一步的执行!!!???

在 END 处使用和不使用 G28 命令尝试以下 gcode,您将看到不同之处!

G21
G28
G90

G1 X50 Y50 F8000
G1 X50 Y80 F2000
G1 X80 Y80
G1 X80 Y50
G1 X50 Y50

G1 X150 Y150 F8000
G1 X150 Y180 F2000
G1 X180 Y180
G1 X180 Y150
G1 X150 Y150

G1 X50 Y50 F8000
G1 X50 Y80 F2000
G1 X80 Y80
G1 X80 Y50
G1 X50 Y50

G1 X150 Y150 F8000
G1 X150 Y180 F2000
G1 X180 Y180
G1 X180 Y150
G1 X150 Y150

G28 ; 这是有罪的命令


直接回复此电子邮件或在 GitHub 上查看。

gcode 末尾的 G28 导致奇怪的行为 #586

这是在 static void homeaxis(int axis) 中引起的:在
没有 st_synchronize 的情况下调用 plan_set_position,因此所有缓冲的移动都被丢弃 …

将 st_synchronize() 放在 G28 代码的开头或更好地将其返回到 homeaxis 应该可以解决这个问题。M400 正是这样做的(所以它修复了这个错误)

gcode 末尾的 G28 导致奇怪的行为 #586
贡献者

这个是大约一年前创建的,有很多变化,请下载最新的 marlin 副本,看看问题是否仍然存在。您还可以使用最新的 arduino IDE 来刷新 marlin 固件。如果您的板文件等只能在旧的 ide 下工作,请先升级它们,以便它们在最新的 IDE 下工作。

如果您为不在https://github.com/ErikZalm/Marlin/tree/Marlin_v1/ArduinoAddons中的硬件创建板文件,请 fork marlin 并添加文件,然后创建一个拉取请求,以便我们可以获得硬件支持的。这也将使人们了解人们正在使用什么硬件。