开源改变世界

多轴在同一个循环中归位,一个轴平方无压力模式崩溃 FluidNC #19

推推 grbl 3年前 (2023-02-05) 232次浏览
关闭
nxperera 开启了这个问题 2021 年 9 月 20 日 · 1条评论
关闭

多轴在同一个循环中归位,一个轴平方无压力模式崩溃 FluidNC#19

nxperera 开启了这个问题 2021 年 9 月 20 日 · 1条评论

评论

多轴在同一个循环中归位,一个轴平方无压力模式崩溃 FluidNC #19

当两个轴在同一循环中归位时(例如 X 和 Y 都有 /homing/cycle = 2)如果一个轴联动(有两个电机)并且每个电机上都有独立的限位开关并且启用了平方,FluidNC 归位崩溃并且 CNC 变得无响应。串口输出跟随

Backtrace: 0x401ae337:0x3ffb1d70 0x400d8f4d:0x3ffb1d90 0x400d904b:0x3ffb1dc0 0x400dc7ff:0x3ffb1df0 0x400e3832:0x3ffb1e10 0x400e38ad:0x3ffb1e30 0x401ae749:0x3ffb1e50 0x400e4226:0x3ffb1e70 0x400e4543:0x3ffb1ef0 0x400e456c:0x3ffb1f20 0x400e551c:0x3ffb1f40 0x400dbe32:0x3ffb1f60 0x40107e04:0x3ffb1fb0 0x4008be02:0x3ffb1fd0
  #0  0x401ae337:0x3ffb1d70 in Machine::Axis::pulloffOffset() at FluidNC/src/Machine/Axis.cpp:83
  #1  0x400d8f4d:0x3ffb1d90 in Machine::Homing::run_one_cycle(unsigned short) at FluidNC/src/Machine/Homing.cpp:304 

我的配置示例

axes:
     x:
      homing:
           cycle: 2
    motor0:
      limit_pos: gpio.33
      hard_limits: false
      pulloff: 2.000

 y:
    homing:
      cycle: 2

    motor0:
      limit_pos: gpio.34
      hard_limits: false
      pulloff: 2.000

    motor1:
      limit_pos: gpio.32
      hard_limits: false
      pulloff: 2.000

多轴在同一个循环中归位,一个轴平方无压力模式崩溃 FluidNC #19 nxperera 添加了 漏洞 仅供开发者使用标签 2021 年 9 月 20 日
多轴在同一个循环中归位,一个轴平方无压力模式崩溃 FluidNC #19
作者

发生这种情况是因为 X 和 Y 都处于相同的归位循环中,并且 Y 需要独立的限位开关,这使得 FluidNC 使用 squaredStressfree() 例程,最终调用以下 pulloffOffset() 方法,同时归位 x 轴,其中 _motors[1] 为空并且导致崩溃。

float Axis::pulloffOffset() { return  _motors[1]->_pulloff - _motors[0]->_pulloff }