开源改变世界

工作坐标在程序结束时重置 #243

推推 grbl 3年前 (2023-02-07) 243次浏览
关闭
calabr 打开了这个问题 2022 年 8 月 26 日 · 8条评论
关闭

工作坐标在程序结束时重置#243

calabr 打开了这个问题 2022 年 8 月 26 日 · 8条评论

评论

工作坐标在程序结束时重置 #243

sender 2.0.40p2
system GRBL 1.1h
在 potgram start (G54) 之前选择工作偏移量将使用此偏移量作为程序中的当前工作。
程序完成后,iosender 将当前偏移量重置为 G53,但仍显示在工作参数->偏移量中选择的 G54,
下次启动同一程序将使用 G53 作为默认值。
发件人不应该在没有命令的情况下进行任何配置。
我的用例是测量多个工件,记住偏移量,然后设置刀具并为不同的工件运行相同的程序。

工作坐标在程序结束时重置 #243
所有者

G53 不是偏移量 – 它用于机器坐标系中的运动并且仅对它所在的线有效。
在程序结束(M2 或 M30)时,活动坐标系设置为 G54,这是正常行为

工作坐标在程序结束时重置 #243
作者

对不起,我的意思是手动设置G55,在G55中启动程序,程序结束后发送器将其重置为G54。
那里有两种令人困惑的行为-

  1. 程序完成后的机器工作坐标与程序完成后的工作坐标不同,但程序没有改变它
  2. 发件人改变了一些东西,但不反映在 GUI 中。
    从逻辑上讲,我可以看到另外 2 个故障安全场景:
  1. 发件人使用当前 CS 作为默认 CS 并在 M30 M2 之后返回它 – preferablr
  2. 发件人没有更改任何内容并跟踪,反映在 GUI 当前状态中。
    • 允许两者并让用户在配置文件中选择它。
工作坐标在程序结束时重置 #243
所有者

在程序结束时将坐标系重新设置为 G54 的是控制器,而不是发送器。请参阅链接代码段中的第 3062 行和第 3081 行。这是正常行为 – grblHAL、Grbl 和 LinuxCNC 会这样做,我猜大多数其他控制器都是 NIST RS274NGC v3 规范的一部分(请参见第 38 页)。

工作坐标在程序结束时重置 #243
作者

谢谢你给我指出正确的方向!
你说得对。在 M30 和 M2 之后,GRPL 重置为 G54。
只是 ioSender 没有改变 GUI 中的当前坐标系——这个问题可能只与旧版 GRBL 有关。我相信 grblHAL 会主动报告内部状态变化。
是否可以在程序结束后请求状态并同步发送方?

工作坐标在程序结束时重置 #243
所有者
terjeio 评论了 2022 年 9 月 16 日  

我相信 grblHAL 会主动报告内部状态变化。

并非总是如此,如果未为状态报告选项选择解析器状态,我就会错过程序结束。$10将在下一次提交中修复。

是否可以在程序结束后请求状态并同步发送方?

我已经这样做了,这是Mega 上 Grbl 1.1f 的控制台输出(已选中Verbose ):

g55
<Idle|WPos:-2.000,0.000,0.000|FS:0,0|WCO:2.000,0.000,0.000>
<Idle|WPos:-2.000,0.000,0.000|FS:0,0|Ov:100,100,100>
<Idle|WPos:-2.000,0.000,0.000|FS:0,0>
m30
[MSG:Pgm End]
[GC:G1 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
<Idle|WPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>
<Idle|WPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100>
<Idle|WPos:0.000,0.000,0.000|FS:0,0>

您没有得到解析器状态响应?

工作坐标在程序结束时重置 #243
作者
卡拉布尔 评论了 2022 年 9 月 25 日  

如果程序自动运行 – 我明白了

<Run|MPos:-117.280,-106.488,-51.828|Bf:14,128|FS:4000,0>
<Run|MPos:-117.280,-106.488,-44.623|Bf:14,128|FS:1165,0>
[MSG:Pgm End]
<Idle|MPos:-117.280,-106.488,-42.895|Bf:15,128|FS:0,0|WCO:-191.208,-116.488,-62.895>
<Idle|MPos:-117.280,-106.488,-42.895|Bf:15,128|FS:0,0|Ov:100,100,100>
<Idle|MPos:-117.280,-106.488,-42.895|Bf:15,128|FS:0,0>

如果我手动运行
G55
M30

<Idle|MPos:-117.280,-106.488,-42.895|Bf:15,128|FS:0,0|WCO:-127.280,-116.488,-62.895>
M30
[MSG:Pgm End]
[GC:G1 G54 G17 G21 G90 G94 M5 M9 M56 T0 F1000 S0]
<Idle|MPos:-117.280,-106.488,-42.895|Bf:15,128|FS:0,0|WCO:-191.208,-116.488,-62.895>```
But Offset list-box still show G56, which I set before starting program.
工作坐标在程序结束时重置 #243
所有者

我在 grblHAL 的最新提交中修复了这个问题。Legacy Grbl 应该通过必要的更改进行 PR 吗?

工作坐标在程序结束时重置 #243
所有者

我已经考虑过更改发件人,因为缺少旧版 Grbl 的反馈,但我现在放弃了,因为我必须等待在控制器中执行坐标更改,然后才能请求解析器状态请求。实施起来不容易…

IMO 应该有人可以访问 Grbl 存储库,以便合并 PR 请求——它已经死了很长时间了,如果没有人接管,是时候继续前进了吗?

顺便说一句,作为 ioSender 中的解决方法,您可以创建一个宏$G并手动运行它。