开源改变世界

G28.1和G30.1参数传递时应返回错误 #378

推推 grbl 3年前 (2023-01-21) 170次浏览

关闭
twforeman 打开了这个问题 2014 年 3 月 17 日 · 5 条评论
关闭

G28.1和G30.1参数传递时应返回错误#378

twforeman 打开了这个问题 2014 年 3 月 17 日 · 5 条评论

注释

G28.1和G30.1参数传递时应返回错误 #378

今天在玩G28、G28.1、G30和G30.1,搞错了g28.1和G30.1的用法。

我输入了像“G28.1 X -1 Y -1 Z -.1”这样的命令,认为它会将 G28 位置设置为那些绝对坐标。

令我惊讶的是,它实际上所做的是开始将机器移动到当前工作坐标系中的那些坐标。

阅读规范,我看到 G28.1 和 G30.1 不应该取值,它们只是将寄存器设置为机器的当前位置。

我相信如果您传递 G28.1 和 G30.1 值,它应该抛出错误而不是移动机器。

补充:我从 11 月开始运行 v0.9b。

G28.1和G30.1参数传递时应返回错误 #378
成员

@twforeman: 感谢您的错误报告。我确定它按预期工作。也许我对 g 代码解析器做了一些事情来破坏它。我会马上调查的。

G28.1和G30.1参数传递时应返回错误 #378
成员

@twforeman: 我查看了代码和 linux cnc 定义。没有明确说明如果提供了轴字 G28.1 或 G30.1 应该出错,但它有点回避了。这是一个灰色区域,因为 G28.1/30.1 仅将当前(解析器)位置设置为预定义位置。如果提供了轴字,则这些轴字应默认为当前运动模式。没有更多信息很难说。您有我可以查看的参考资料表明这是一个错误吗?

G28.1和G30.1参数传递时应返回错误 #378
作者

NIST 规范 (pdf) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.15.7813实际上并未提及 28.1 和 30.1。所以也许这是设置这些位置的 LinuxCNC 特定方式。

LinuxCNC 规范唯一说的是“G28.1 – 将当前绝对位置存储到参数 5161-5166 中。”

我想我的观点是,向 G28.1 调用添加参数不应导致机器移动。它是默默地忽略参数还是抛出错误并不重要,但意外的机器运动从来都不是一件好事。

G28.1和G30.1参数传递时应返回错误 #378
成员

@twforeman: 只是对这个线程的更新。在对此做了一些研究之后,在重写 g 代码解析器时,使用 G28.1 和 G30.1 传递的轴词的处理是严格未定义的,并且 g 代码定义中没有任何内容(我发现) 这使得这是一个错误。因此,它应该默认将轴字传递给活动运动模式。

G28.1和G30.1参数传递时应返回错误 #378
作者

好吧,我仍然认为允许意外移动是不好的形式,但如果规范中没有任何内容可以解决它,我想编码规范就是答案。

感谢您的调查。

喜欢 (0)