开源改变世界

Q 关于归位和限位开关的预期操作 #75

推推 grbl 2年前 (2023-02-08) 299次浏览
关闭
5ocworkshop 开了这个issue 2021 年 10 月 6 日 · 4条评论
关闭

Q 关于归位和限位开关的预期操作#75

5ocworkshop 开了这个issue 2021 年 10 月 6 日 · 4条评论

评论

Q 关于归位和限位开关的预期操作 #75

我的 grblHAL 设置的三个输入上有五个限位开关。

Xmin、Y1min、Y2min 和 Y2Max(平行)、Zmax 和 Zmin(平行)。

我用它们来归位到 Xmin、Y1min、Y2min(带自动平方)、Zmax 并且工作正常。

然而,当机器运行时,如果我在机器后部触发 Y2max,我将被迫进入归位循环。问题是,如果我继续归位循环,我需要先手动离开 Y2max 传感器,因为机器不知道 Y2 是平行的,它假设我在前传感器上并撞到物理背面机器的。这是可以理解的,在config.h中有提到。

然而,一个更理想的结果和我从 8 位 grbl 习惯的结果是能够重置和解锁并电动离开传感器,然后手动选择重新归位。问题是我现在没有那个选项。我已经尝试以我认为应该实现这一目标的方式调整配置选项,但我没有成功,所以我想了解逻辑结构是什么。我可能只是配置错误,或者这是不可能的?

作为替代方案,我的控制器板上有 A 和 B 限位开关输入,因此我可以将 Zmin 和 Y2max 移至它们自己的输入,但我希望尽可能修复配置。

此外,鉴于我们知道机器在崩溃时在绝对空间中的位置,我想知道通过根据绝对机器位置推导哪个开关可能被触发来扩展逻辑以支持并行开关是否可行。如果我在行程的后面并且我触发了 Y 的限位开关,假设它是后部开关是否安全?如果您在该绝对位置的 %(5%?10%)以内,那么可能会触发总行进距离的百分比?

或者,是否可以在设置开关并定义初始位置后运行初始配置周期,机器在每个方向上缓慢寻找并定位开关并将它们的位置存储到配置变量中用于此目的?

我应该注意,我目前没有配置软限制。我需要回到那个,但我遇到了软限制应用于 WCS 而不是机器绝对位置的问题,导致奇怪的行程限制。我正在更换主轴,所以一旦我重新启动并运行,我将对软限制件进行更彻底的质量检查。

我首选的工作流程是:

  1. 初始上电时,作为可配置选项,进入故障模式并需要归位。(已经存在,但想在我解决其他问题后对其进行质量检查)。

  2. 在限位开关触发器上,允许解锁但进入一个新状态,在该状态下启用作业运动但程序执行被阻止,直到系统重置并重新定位。

这将允许操作员离开限制或重新定位工件的碰撞(当钻头卡在金属切口中时我也遇到过问题,我唯一的选择是让 Z 在内部向上撕裂归位序列,它把东西从废纸板上取下来了)。

通过复位退出此点动受限状态将需要归位序列(如果已配置)。

想法?

Q 关于归位和限位开关的预期操作 #75
贡献者

然而,一个更理想的结果和我从 8 位 grbl 习惯的结果是能够重置和解锁并电动离开传感器,然后手动选择重新归位。问题是我现在没有那个选项。

中的“覆盖锁定”标志22������������?$=22 输出:

$22: Homing cycle as bitfield where setting bit 0 enables the rest:
    0 - Enable (1)
    1 - Enable single axis commands (2)
    2 - Homing on startup required (4)
    3 - Set machine origin to 0 (8)
    4 - Two switches shares one input pin (16)
    5 - Allow manual (32)
    6 - Override locks (64)
    7 - Keep homed status on reset (128)

Enables homing cycle. Requires limit switches on axes to be automatically homed.

When `Enable single axis commands` is checked, single axis homing can be performed by $H<axis letter> commands.

When `Allow manual` is checked, axes not homed automatically may be homed manually by $H or $H<axis letter> commands.

`Override locks` is for allowing a soft reset to disable `Homing on startup required`.
ok

想法?

在我的基于 Mach 3 的机器上,我有一个限位覆盖开关,它允许我重置机器并在我按住它的同时慢慢关闭任何触发的限位开关。我喜欢它,我在核心中添加了对它的支持,但目前只有少数(一个?)驱动程序支持它。这可能是一个解决方案吗?添加它可能比您概述的其他选项容易得多。

核心/协议.c

第 107 至 114 行 71dc5ac

} else if ( settings.limits.flags.hard_enabled && settings.limits.flags.check_at_init && limit_signals_merge ( hal.limits.get_state ( ) ) . value ) { _ _ _ _ _ _
if ( sys.alarm == Alarm_LimitsEngaged && hal.control.get_state ( ) . limits_override )
状态集( STATE_IDLE);//清除警报状态以启用限位开关拉断。
否则{
//检查是否没有限位开关被接合,以确保一切顺利。
system_raise_alarm (Alarm_LimitsEngaged);
grbl。报告feedback_message (Message_CheckLimits);
}

 

Q 关于归位和限位开关的预期操作 #75
作者

在我的基于 Mach 3 的机器上,我有一个限位覆盖开关,它允许我重置机器并在我按住它的同时慢慢关闭任何触发的限位开关。我喜欢它,我在核心中添加了对它的支持,但目前只有少数(一个?)驱动程序支持它。这可能是一个解决方案吗?添加它可能比您概述的其他选项容易得多。

是的,像这样的辅助引脚上的覆盖按钮绝对适合我的情况。这是一种优雅的方式。在 Teensy 平台上需要做什么?

我明天会在机器上仔细检查我的配置,但我的初步印象是 override locks 命令在我的构建中不起作用。

Q 关于归位和限位开关的预期操作 #75

中的“覆盖锁定”标志22������������?$=22 输出:

这次真是万分感谢。我回去使用 IOSender,我可以很容易地看到这没有设置。我已经在固件中设置了它,但我想我的本地配置优先并且没有设置。

我想关闭 CNCjs 并完全使用 IOSender,我只需要让我的探测宏工作,现在我已经解决了软限制。

将在我启动的探测线程中询问我的探测问题,并在解决后关闭这个问题。