开源改变世界

0.9e:第一次移动时进入软限制返回“警报:探测失败” #426

推推 grbl 2年前 (2023-01-22) 182次浏览

关闭
mschorer 打开了这个问题 2014 年 6 月 4 日 · 4条评论
关闭

0.9e:第一次移动时进入软限制返回“警报:探测失败”#426

mschorer 打开了这个问题 2014 年 6 月 4 日 · 4条评论

注释

0.9e:第一次移动时进入软限制返回“警报:探测失败” #426

当我手动将我的机器驱动到软极限时,比如在机器空闲时执行 G0Z-1000,我得到

结果:“探测失败”
预期:“硬/软限制”

  • 当调用 limits_soft_check() 并在第一步中达到软限制时,
  • 它调用 mc_reset(),其中 sys.state 仍然是 STATUS_IDLE(没有“(STATE_CYCLE | STATE_HOLD | STATE_HOMING)”),所以
  • EXEC_ALARM 不会被 ORed 到 sys.execute,所以
  • protocol_execute_runtime() 认为这是一个探测错误:
      if (rt_exec & EXEC_CRIT_EVENT) {
        if (rt_exec & EXEC_ALARM) { report_alarm_message(ALARM_LIMIT_ERROR); }
        else { report_alarm_message(ALARM_PROBE_FAIL); }
...
0.9e:第一次移动时进入软限制返回“警报:探测失败” #426
成员

@mschorer: 由于某种原因,我无法重现此错误。我已禁用自动启动,从全新重置开始,解锁警报,并超出轴限制。每次都给我错误的“硬/软限制”。我也试过移动它,然后当返回到 IDLE 时它仍然正确错误。你能概述一下实现这一目标的程序吗?

0.9e:第一次移动时进入软限制返回“警报:探测失败” #426
作者

我正在使用 UGS 1.07。

  • 打开设备
  • 发送 $x
  • 每按一次 z 向下移动 25mm
  • 默认设置(软限制除外)
  • 工作到-200
  • 然后
[verbose]<Idle,MPos:0.000,0.000,-200.000,WPos:0.000,0.000,-200.000>
>>> G91 G0  Z-25
ALARM: Probe fail
[Reset to continue]

设置

>>> $$
$0=250.000 (x, step/mm)
$1=250.000 (y, step/mm)
$2=250.000 (z, step/mm)
$3=500.000 (x max rate, mm/min)
$4=500.000 (y max rate, mm/min)
$5=500.000 (z max rate, mm/min)
$6=10.000 (x accel, mm/sec^2)
$7=10.000 (y accel, mm/sec^2)
$8=10.000 (z accel, mm/sec^2)
$9=200.000 (x max travel, mm)
$10=200.000 (y max travel, mm)
$11=200.000 (z max travel, mm)
$12=10 (step pulse, usec)
$13=0 (step port invert mask:00000000)
$14=192 (dir port invert mask:11000000)
$15=25 (step idle delay, msec)
$16=0.020 (junction deviation, mm)
$17=0.002 (arc tolerance, mm)
$18=3 (n-decimals, int)
$19=0 (report inches, bool)
$20=1 (auto start, bool)
$21=0 (invert step enable, bool)
$22=0 (invert limit pins, bool)
$23=1 (soft limits, bool)
$24=0 (hard limits, bool)
$25=1 (homing cycle, bool)
$26=0 (homing dir invert mask:00000000)
$27=25.000 (homing feed, mm/min)
$28=500.000 (homing seek, mm/min)
$29=250 (homing debounce, msec)
$30=1.000 (homing pull-off, mm)
0.9e:第一次移动时进入软限制返回“警报:探测失败” #426
成员

@mschorer: 唔。仍然没有区别。它在我这边的反应很好。在软限制函数中和 mc_reset() 调用之后,是否有如下语句?

mc_reset(); // Issue system reset and ensure spindle and coolant are shutdown.
sys.execute |= (EXEC_ALARM | EXEC_CRIT_EVENT); // Indicate soft limit critical event
protocol_execute_runtime(); // Execute to enter critical event loop and system abort
0.9e:第一次移动时进入软限制返回“警报:探测失败” #426
作者

啊。

我的版本只有:

sys.execute |= EXEC_ALARM;
喜欢 (0)