Contact me: hankecnc@gmail.com

恢复 X、YZ 并重置 #10

推推 grbl 3年前 (2023-01-31) 254次浏览
关闭
pihnat 打开了这个问题 2015 年 10 月 23 日 · 34条评论
关闭

恢复 X、YZ 并重置#10

pihnat 打开了这个问题 2015 年 10 月 23 日 · 34条评论

注释

恢复 X、YZ 并重置 #10

嗨,丹维,
一个。当您按下“恢复 X、Y、Z”按钮时,仅恢复 X 和 Y。Z也应该移动。

b. 按“Zero XY”和“Zero Z”可以从机器坐标偏移。但是,如果您随后按“重置”以重置 Arduino,则当前的工作坐标将被机器坐标取代。工作协调不应该保持不变吗?
这变成了一个问题,如下所示:假设您偏移并使用“Zero XY”和“Zero Z”按钮设置新的 0,0,0,然后发送 G 代码程序。一切正常,直到您想中途退出该程序。按下并释放“暂停”可以正常工作,但是暂停时,如果您随后按下“重置”按钮以停止发送 G 代码,工作坐标将与机器坐标相同,并且您会丢失当前的工作坐标。

问候
彼得

恢复 X、YZ 并重置 #10
所有者

由于 GRBL 固件的属性,工作坐标在重置后与机器相同。
这是重置程序的一部分。
“零 XY”和“零 Z”按钮都存储工作坐标偏移(并将它们保存到设置文件中,以便能够在程序重启后恢复)。
“恢复 XYZ”按钮恢复所有 3 个偏移量,但仅在 XY 平面上移动工具以防止工具碰撞。
所以你可以在重置后恢复你的工作偏移量。
我认为将恢复 XYZ 偏移和将工具移动到零 XY(Z) 的功能分开会更合适。但是我没有遇到需要沿Z轴移动刀具到0的情况。通常只需要XY即可。

恢复 X、YZ 并重置 #10
作者

我将进一步考虑 Restore XYZ 功能。

与重置有关的另一点:是的,我现在看到,当 grbl 获取 cntl-x 命令时,它会重置并使工作坐标 = 机器坐标。
在 grblControl 中,当您按下发送时,只有 2 个选项是暂停或重置 grbl。缺少的是停止按钮。有很多次,当我进行测试运行但想中途停止或者如果我向其他人展示软件我想在几行后停止。不幸的是,离开发送的唯一方法是按下重置,这也会重置 Arduino。Stop 按钮会非常有用,因为您可以退出 Send,它会使 Work 坐标保持当前值。

恢复 X、YZ 并重置 #10
所有者

“停止”按钮的实现有一个警告。GRBL 固件有命令缓冲区和运动缓冲区,程序发送中断不会导致机器立即停止。

恢复 X、YZ 并重置 #10
作者

我很惊讶 grblControl 在使用暂停按钮时会立即停止,没有其他人的程序会这样做,它们都会继续运行直到缓冲区为空。您的程序立即暂停。
停止按钮(或称其为退出)应该像暂停按钮一样停止,但主要思想是离开发送功能。目前,一旦您按下发送,您就无法退出发送模式,而无需按下重置 Arduino 的重置。应该有另一个按钮可以退出发送模式但不会重置 Arduino。

恢复 X、YZ 并重置 #10
所有者

好的,使用当前的 GRBL 固件似乎不可能以“正确”的方式进行。
固件支持使用“!”立即暂停 命令,但除了重置命令(’ctrl+x’)外,固件中没有立即停止的命令。
唯一的方法是创建按钮“停止”,它将执行以下操作:

  1. 发送“ctrl-x”以立即停止作业;
  2. 恢复机器状态(工作坐标等)
恢复 X、YZ 并重置 #10
作者

我不太关心紧急停止,因为一个人有 2 个选项 – 他们可以按下右上角的重置按钮,立即发送 cntl-x 或者他们可以实现直接连接到 Arduino 的硬件紧急停止按钮。在这些情况下,红色警报指示器将出现在状态框中,因为坐标将不再准确。

我对退出“发送”模式的方法更感兴趣。
您有 4 个按钮:打开、重置、发送和暂停。最好也有一个退出按钮,它在按下发送后启用。所以发送操作如下:
– 当您按下发送时,G 代码被发送到 grbl 控制器
– 如果您按下暂停,CNC 将暂停。释放 Pause 恢​​复 CNC
– 按 Quit 将执行如下受控停止
  a. 如果已经按下暂停,则退出将读取当前工作坐标,发送 cntl-x
,然后在屏幕上恢复工作坐标
  b。如果在按下退出时没有暂停,它将发送暂停命令 (!),读取工作坐标,
然后发送 cntl-x 并在屏幕上恢复工作坐标。

这样我认为应该可以以受控方式保留发送功能而不丢失工作坐标。

Denvi 写道:
好的,目前的 GRBL 固件似乎是不可能的。
固件支持使用“!”立即暂停 命令,但除了重置命令(’ctrl+x’)外,固件中没有立即停止的命令。

恢复 X、YZ 并重置 #10
作者

关于右上角的主要重置按钮,按下时程序应首先读取当前工作坐标,然后发送 cntl-x。
一种。如果来自 grbl 的返回消息是 Alarm 那么 grlControl 应该像现在一样行为
b。如果当前位置没有丢失,则屏幕上的工作坐标应更新为刚刚读取的坐标。

恢复 X、YZ 并重置 #10
所有者

“重置”是“重置”,它应该将 GRBL 重置为初始状态,包括工作坐标偏移。

恢复 X、YZ 并重置 #10
作者

是的,我同意整体重置应该将 grbl 置于其初始状态。但这应该只在少数情况下需要,例如在工作之间、紧急关闭后等。
我认为更重要的是不要失去工作协调。设置工作时,可能需要花费相当多的时间来定位工作的工具和归零轴。很多时候,这涉及到使用测隙规精确地将工具与工件等间隔开。
然后按一下重置,所有信息都会丢失,您必须再次重新开始校准过程。

恢复 X、YZ 并重置 #10
所有者

如果您不想丢失“该信息”,请不要按“重置”按钮。无论如何,您可以在重置后按“恢复 XYZ”按钮。
在上次提交中添加了“中止”按钮。适用于 Windows 的二进制文件:grblControl.exe

恢复 X、YZ 并重置 #10
作者

出色的工作,谢谢。
按下暂停后,我记下工作坐标,然后按下中止。99.9% 的时间工作坐标保持不变,但在奇怪的情况下,X 和 Y 值会发生一定程度的变化。我不确定这是在什么条件下发生的,我不确定它是随机数量还是每次都具有相同的偏移量。它可以达到 1 毫米的差异。
可视化中的工具确实移动到不同的工作坐标,但电机不移动。我将继续尝试找出它发生在什么条件下以及偏移量是多少。它不会经常发生,所以有点难以复制。
再次感谢

恢复 X、YZ 并重置 #10
作者

偏移量似乎是恢复 XYZ 值或存储的 G54 值,我不确定是哪个。它似乎仍然是随机的,但只有在按下暂停然后按下中止之后。大多数时候没有问题,但偶尔会无缘无故地将偏移量添加到工作坐标中。

恢复 X、YZ 并重置 #10
所有者

“Zero XY”、“Zero Z”、“Restore XYZ”按钮与 G92 命令配合使用。
“中止”按钮现在也仅恢复 G92 偏移量。
所以,这可能是 G54-G59 偏移量的问题。你用它们吗?

恢复 X、YZ 并重置 #10
作者

不,我不使用它们,但我注意到只有 G54 被设置为某些值。您的程序会随时更改它们吗?如果没有,那么我将清除它们并看看会发生什么。
奇怪的是这个问题只是随机发生的,似乎没有任何规律。

恢复 X、YZ 并重置 #10
所有者

程序不改变 G54-G59 偏移量。
也许 G 代码(g 代码程序)比您使用的包含 G10 L2 和/或 G10 L20 命令?

恢复 X、YZ 并重置 #10
作者

不,只有简单的 G0、G1、G2、G3、G18、G21 和 G90。
昨天,中止按钮只出现了两次,但第二次工作坐标变成了与机器坐标相同的位置,这是一个很大的位置差异。我今天将继续检查它以找到模式。

恢复 X、YZ 并重置 #10
作者

好的,我可以让它每次播放如下:

  • Arduino中G54等参数全为0
  • 我编辑 grblControl“settings.ini”文件,所以存储的 X、Y 和 Z 分别为 1、2 和 3
  • 启动 grblControl

功坐标为 0, 0, 0
马赫坐标为 0, 0, 0

  • 加载 G 代码文件
  • 按重置,然后发送
  • 在 G01 命令期间进入程序的几行按暂停

功坐标为 -0.058、-1.203、-3.000
马赫坐标为 -0.058、-1.203、-3.000

  • 现在按中止

功坐标现在变为 -1.058、-3.203、-6.000
马赫坐标为 -0.058、-1.203、-3.000

因此,恢复 XYZ 值已从工作坐标中减去。
铣床没有移动到不同的工作坐标,但 3D 可视化中的工具已经移动。

恢复 X、YZ 并重置 #10
所有者

恢复 XYZ 值已从工作坐标中减去

已在上次提交中修复。
现在使用单独的偏移变量,在“发送”按钮上更新。
在按下“中止”按钮后重置后,从机器坐标中减去偏移量以计算 G92 命令的位置。

恢复 X、YZ 并重置 #10
作者

太棒了,现在可以用了。
有时,在按下暂停和中止之间,工作坐标可能会发生 0.001 或 0.002 毫米的变化。我认为这可能只是一些舍入误差,因为可能是减法?

恢复 X、YZ 并重置 #10
所有者

有时,在按下暂停和中止之间,工作坐标可能会发生 0.001 或 0.002 毫米的变化

机器坐标呢?他们保持不变?

恢复 X、YZ 并重置 #10
作者

机器坐标保持不变,只有工作坐标发生变化。

恢复 X、YZ 并重置 #10
所有者

同时我无法重现类似的行为。
我会测试。

恢复 X、YZ 并重置 #10
作者

可能只有G02/03指令,我需要多测试。目前这将显示它:
G90
G21
G17
G00 X2 Y0 Z0
F80
G01 Z-3
G02 X-2 Y0 I-2 J0
M30

当您绕过曲线的一半时,按暂停,检查工作坐标,然后按中止。它不是每次都这样做,但似乎是随机的。但是每次发生错误都会累积。

例如,当我按下暂停时,我得到
WC 0.255 -1.983 -3.000
MC 0.255 -1.983 -3.000
然后当我按下中止时,Y 的工作坐标变为 -1.984,所有其他不变。

除了 G02/03 之外,我会继续检查是否发生这种情况。

恢复 X、YZ 并重置 #10
所有者

最后。
使用微步时会出现此错误。例如,一毫米有 800 步。

除了 G02/03 之外,我会继续检查是否发生这种情况。

出现简单的代码:

G0X0Y0Z0
G1Y100F20

我认为这可能只是一些舍入误差,因为可能是减法?

很有可能确实如此。
唯一的决定是用“G92.3”命令恢复偏移量。GRBL 尚不支持。
有必要直接定义偏移量。
或者可以通过在使用“G92”命令恢复偏移之前发送带有当前机器坐标(由 grbl 报告)的“G90”命令来排除舍入误差。但它会导致工具在报告坐标的距离上移动最多 0.5 um(在 3 个浮动小数点的情况下)。

恢复 X、YZ 并重置 #10
作者

我使用 400 步/毫米,所以我可以看到会有一些舍入误差。

恢复 X、YZ 并重置 #10
作者

重新中止按钮操作:

发送文件时,我可以按暂停,然后按中止,它总是会毫无问题地停止。
但是,在发送文件时,如果我只是在没有暂停的情况下按中止,它在大多数情况下都有效,但有时我会收到警报。我知道 grblControl 发送 Feed Hold 命令,然后发送 cntl-X 以实施中止,但我猜测该工具在发送 cntl-X 时可能仍在减速,这就是引发警报的原因。会是这个原因吗?

恢复 X、YZ 并重置 #10
作者

Following up:
I re-checked grbl wiki & see the problem. When a Feed Hold command is sent to grbl and you check Status it returns ‘Hold’ when it starts deceleration right through the stop until you resume the program. To me this is confusing because the Status should be ‘Hold’ only AFTER the feed has actually stopped.

I’ll check previous issues in grbl and if not mentioned I should raise it. What do you think?
If fixed it would make the Abort function in grblControl or any other control software much more robust.

The issue was discussed in grbl closed issue #804
Next major version of grbl will have short confirmation messages for real time commands.

恢复 X、YZ 并重置 #10
Owner

喜欢 (0)