Contact me: hankecnc@gmail.com

硬限制 #494

推推 grbl 3年前 (2023-01-30) 181次浏览
关闭
JensHauser 打开了这个问题 2020 年 7 月 23 日 · 15条评论
关闭

硬限制#494

JensHauser 打开了这个问题 2020 年 7 月 23 日 · 15条评论

注释

硬限制 #494
贡献者
詹斯豪瑟 评论了 2020 年 7 月 23 日  

请回答以下问题。

您使用的是什么版本的固件?
1.3a.20200720

问题是否可重复?
是的

什么情况下会出现bug?

  • 启动 Grbl/ESP32

  • 主页 X/Y/Z

  • 多次单击“向 Y 原点移动 1mm”会导致硬限位。限位传感器实际上也被触及。Y 家在另一端,请参阅配置。

  • 如果我对 X 或 Z 做同样的事情,就会经常触及软限位并弹出警报。

  • 如果我确实离开逻辑 Y 家,软限制是稳定的

  • 看起来在移动到逻辑 Y Home 时没有考虑 Y 软限制

$0=3
$1=250
$2=0
$3=2
$4=1
$5=0
$6=1
$10=1
$11=0.010
$12=0.002
$13=0
$20=1
$21=1
$22=1
$23=2
$24=200.000
$25=3000.000
$26=250.000
$27=5.000
$30=1000.000
$31=0.000
$32=0
$N1=
$N0=
$100=160.000
$101=160.000
$102=160.000
$110=5000.000
$111=5000.000
$112=1500.000
$120=200.000
$121=200.000
$122=200.000
$130=1000.000
$131=425.000
$132=120.000
硬限制 #494 JensHauser 添加了 漏洞 有些东西不工作标签 2020 年 7 月 23 日
硬限制 #494
所有者

这可能与 $23 … $Homing/DirInvert=2 这一事实有关。Y 轴反转。

回家后立即发送 ? 得到的位置。

Grbl 进入负空间。这是许多 CNC 机器的传统做法。这是我的测试机。所有最大行程均为 300 毫米。这意味着每个轴的机器工作区域为 -300 毫米至 0 毫米。归位拉距为 3 毫米,因此您可以在我的状态报告中看到该偏移量。

Grbl 1.3a ['$' for help]
[MSG:'$H'|'$X' to unlock]
ok
<Idle|MPos:-297.000,-3.000,-3.000,0.000|FS:0,0|Pn:P|WCO:-297.000,0.000,0.000,0.000>
ok
$Homing/DirInvert=X
$Homing/Pulloff=3.000
$X/MaxTravel=300.000
$Y/MaxTravel=300.000
$Z/MaxTravel=300.000

确保您的软极限测试移动将违反该工作区域。当同时使用软限制和硬限制时,请确保使用长距离移动来测试它们。如果你偷偷摸摸地接近极限,那么硬可能会先于软发生。如果距离为 10mm,请尝试移动 20 以测试软限位。

硬限制 #494
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 24 日  

归位后,位置是
<Idle|MPos:-5.000,-420.000,-5.000|FS:0,0>

Y 轴归位成功后直接以 10mm 或 100mm 步进点动,GRBL 否认并警告。
从 -420 到 -421 到 -422 到 -423 到 -424 到 -425 以 1mm 的步长每隔几秒慢跑一次,直到达到 -425 的硬限制。

也许我误解了 s.th.,但软件不应该已经拒绝慢跑超过 -420,与步长无关吗?

顺便说一句 – 你提到了最大行程。将负最大值。travel 是 Y 轴的解决方案吗?

硬限制 #494
所有者

轴行程是绝对值并相应应用。

我们正在处理重置问题。我将再次仔细研究软限制。

硬限制 #494
贡献者作者

太感谢了

硬限制 #494
所有者

@MitchBradley发现警报问题,包括硬限制,并将修复推送给 master。

明天我还是会看看软限制。

硬限制 #494
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 25 日  

也许在这方面有帮助,我利用

config.h

#define HOMING_CYCLE_1 (bit(X_AXIS)|bit(Y_AXIS))  // Homes both X-Y in one cycle. NOT COMPATIBLE WITH COREXY!!!

#define ENABLE_CONTROL_SW_DEBOUNCE // Default disabled. Uncomment to enable.
#define CONTROL_SW_DEBOUNCE_PERIOD 32 // in milliseconds default 32 microseconds

#define ENABLE_SOFTWARE_DEBOUNCE // Default disabled. Uncomment to enable.
#define DEBOUNCE_PERIOD 50 // in milliseconds default 32 microseconds

可以重现与 X/Z 轴相同的问题。超过 X/Z 原点 1 毫米的步数会导致硬限制。

硬限制 #494
所有者

你确定你在机器空间慢跑吗?软限制使用机器空间 (MPos)。由于警报直到距目标 5 毫米(您的归巢牵引距离)后才发生,因此值得怀疑。

尝试使用$rst=#清除所有偏移量并使用$ #确认所有偏移量均已删除

您可以使用 G53 在机器空间中移动。G53 说,为了这一步我要机器空间。因此G53G0X-50将移动到机器空间中的 x-50。对于这样的每一步,您都必须将 G53 放在第一位。

尝试使用G53G0X-421(假设您的 x MaxTravel 为 420)和G53G0X1移动到您的软限制之外。

硬限制 #494
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 26 日  

就我而言,我在清除所有偏移量后根据您的指导尝试了所有三种方法。
在执行任何 G 代码之前,我将机器放置在一个起点上。

a) X 轴

  • G53 G0 X1 // 我的范围是 0(家)到 -1000
  • 结果是它抛出软限制警报
    <Alarm|MPos:-5.000,-421.000,-5.000|FS:0,0>
  • 预期行为

b) Y 轴

  • G53 G0 Y-421 // 我的范围是 0(家)到 -420
  • 结果是它在没有任何警报/警告的情况下物理移动到此位置
    <Idle|MPos:-5.000,-421.000,-5.000|FS:0,0>
    与 -422、-423、-424 相同
  • 预计不会有动作
  • 在 -425 处有一个“警报”,其左侧带有警报图标。没有软限制或硬限制消息,只有“警报”

c) Z 轴

  • G53 G0 Z+1 // 我的范围是 0(家)到 -120
  • 结果是它抛出软限制警报
    <Alarm|MPos:-5.000,-421.000,-5.000|FS:0,0>
  • 预期行为

所以总而言之,Y 轴有问题。

硬限制 #494

在上面的 X 案例中,Y 已经在 -421 处。这可能是问题的一部分吗?

硬限制 #494
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 26 日  

再次尝试,可能有错字,所以现在完整的详细输出。希望这能给出一个提示。

X 轴(预期行为)

$H
<Home|MPos:-5.000,-420.000,3.537|FS:1500,0|Ov:100,100,100>
<Home|MPos:-5.000,-420.000,1.100|FS:200,0>
<Home|MPos:0.138,-0.138,-5.000|FS:283,0>
ok
<Idle|MPos:-5.000,-420.000,-5.000|FS:0,0>
G53 G0 X1
ALARM:2
Soft limit alarm. G-code motion target exceeds machine travel. Machine position retained. Alarm may be safely unlocked, click the Reset Button.
<Alarm|MPos:-5.000,-420.000,-5.000|FS:0,0>

带Y轴(无报警)

<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0>
$H
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0|WCO:0.000,0.000,0.000>
<Home|MPos:-5.000,-421.000,4.475|FS:1500,0|Ov:100,100,100>
<Home|MPos:-5.000,-421.000,-1.800|FS:1500,0>
<Home|MPos:-5.000,-421.000,1.906|FS:200,0>
<Home|MPos:-5.000,-421.000,-2.894|FS:1260,0>
<Home|MPos:-2.006,2.006,-5.000|FS:2142,0>
<Home|MPos:1.969,-1.969,-5.000|FS:283,0>
<Home|MPos:4.819,-4.819,-5.000|FS:0,0|Pn:XY>
ok
<Idle|MPos:-5.000,-420.000,-5.000|FS:0,0>
G53 G0 Y-421
ok
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0>
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0|WCO:0.000,0.000,0.000>
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0>
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0>

Z 轴(预期行为)

$H
<Idle|MPos:-5.000,-421.000,-5.000|FS:0,0|WCO:0.000,0.000,0.000>
<Home|MPos:-5.000,-421.000,0.081|FS:840,0|Ov:100,100,100>
<Home|MPos:-5.000,-421.000,-3.475|FS:900,0>
<Home|MPos:-5.000,-421.000,2.125|FS:200,0>
<Home|MPos:-5.000,-421.000,4.938|FS:0,0|Pn:Z>
<Home|MPos:5.131,-5.131,-5.000|FS:0,0|Pn:XY>
<Home|MPos:1.163,-1.163,-5.000|FS:283,0>
<Home|MPos:4.569,-4.569,-5.000|FS:283,0>
ok
<Idle|MPos:-5.000,-420.000,-5.000|FS:0,0>
G53 G0 Z+1
<Idle|MPos:-5.000,-420.000,-5.000|FS:0,0>
ALARM:2
Soft limit alarm. G-code motion target exceeds machine travel. Machine position retained. Alarm may be safely unlocked, click the Reset Button.
<Alarm|MPos:-5.000,-420.000,-5.000|FS:0,0|WCO:0.000,0.000,0.000>
<Alarm|MPos:-5.000,-420.000,-5.000|FS:0,0>
硬限制 #494
所有者

发送$MaxTravel的响应是什么

硬限制 #494
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 26 日  

$最大行程

$X/MaxTravel=1000.000
$Y/MaxTravel=425.000
$Z/MaxTravel=120.000

G53 G0 Y+1 也导致报警

硬限制 #494

所以 Y 限制为 -425 .. 0。看起来一切正常。Y 回到负极限,即 -425(因为 $Homing/DirInvert=Y 即 $23=2 和 $Y/MaxTravel=425),然后以 5($Homing/Pulloff 即 $27 = 5)开始在-420。Y 限制在 -425 和 0 开始。

pulloff 不影响限制。

硬限制 #494
贡献者作者

谢谢。看来我在这里有误会。

维基说
Soft limits use Grbl's internal position values to determine if the the motion will crash into the ends. It uses the max travel ($13x) to determine this.

我认为软限制会给我一个保存通道,例如慢跑到轴的两端并避免硬限制和重置。有时会发生点动超过机器限制的情况,友好的“点动目标超出机器行程。点动命令已被忽略”会很好。

但这似乎有所不同,所以我必须更加小心并按下重置按钮,以防我超出了家里的限制。

硬限制 #494
所有者

它不应该撞到尽头。您可能会触发限位开关,但机器并没有试图越过限位开关。所有好的限位开关都有一些超行程。

如果您通过达到软限制或硬限制来触发警报,那没什么大不了的。

我将关闭它,因为所有问题都已解决。