开源改变世界!!

归位期间的硬限制 #681

推推 grbl 2年前 (2023-02-05) 157次浏览
关闭
3 个任务中的第 1 个
daxliniere 打开了这个问题 2022 年 10 月 23 日 · 6条评论
关闭
3 个任务中的第 1 个

归位期间的硬限制#681

daxliniere 打开了这个问题 2022 年 10 月 23 日 · 6条评论

评论

归位期间的硬限制 #681

控制板

MKS DLC32

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

SWOLE-CNC铣床(改装CNC3040Z)

输入电路

没有反应

配置文件

board: MKS-DLC32
name: SWOLE-CNC
meta: V2.6.4 (2202.10.16) Dax Liniere, originally by Skorpi

kinematics:
  Cartesian:

stepping:
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0
  
axes:
  shared_stepper_disable_pin: I2SO.0
  x:
    steps_per_mm: 804.065
#was 802.341
    max_rate_mm_per_min: 1600.000
#was 1500.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 302.000
    soft_limits: true
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 20.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.36
      limit_pos_pin: gpio.34
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 1.000
      stepstick:
        step_pin: I2SO.1
        direction_pin: I2SO.2:low
        disable_pin: NO_PIN
        ms1_pin: NO_PIN
        ms2_pin: NO_PIN
        ms3_pin: NO_PIN
        reset_pin: NO_PIN

  y:
    steps_per_mm: 804.636
#was 802.322
    max_rate_mm_per_min: 1600.000
    acceleration_mm_per_sec2: 80.000
# was 300.000
    max_travel_mm: 186.000
    soft_limits: true
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 20.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.35
      limit_pos_pin: gpio.23
#this pin doesn't have the same input circuitry as the 3 dedicated on-board limit switch inputs
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 1.000
      stepstick:
        step_pin: I2SO.5
        direction_pin: I2SO.6:low
        disable_pin: NO_PIN
        ms1_pin: NO_PIN
        ms2_pin: NO_PIN
        ms3_pin: NO_PIN
        reset_pin: NO_PIN
  z:
    steps_per_mm: 802.497
    max_rate_mm_per_min: 1000.000
    acceleration_mm_per_sec2: 50.000
# was 500.000
    max_travel_mm: 100
#46.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 0.000
      feed_mm_per_min: 20.000
      seek_mm_per_min: 100.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_pos_pin: gpio.18
#this pin doesn't have the same input circuitry as the 3 dedicated on-board limit switch inputs
      hard_limits: true
      pulloff_mm: 1.000
      stepstick:
        step_pin: I2SO.3
        direction_pin: I2SO.4:low
        disable_pin: NO_PIN
        ms1_pin: NO_PIN
        ms2_pin: NO_PIN
        ms3_pin: NO_PIN
        reset_pin: NO_PIN

i2so:
  bck_pin: gpio.16
  data_pin: gpio.21
  ws_pin: gpio.17

spi:
  miso_pin: gpio.12
  mosi_pin: gpio.13
  sck_pin: gpio.14

sdcard:
  cs_pin: gpio.15
  card_detect_pin: NO_PIN
# This could be GPIO.39, but Card Detect has no supported functions in FluidNC

control:
  safety_door_pin: gpio.33:low:pu
  cycle_start_pin: NO_PIN
  feed_hold_pin: NO_PIN
  reset_pin: NO_PIN
  macro0_pin: gpio.19:low:pu
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

parking:
  enable: true
  axis: Z
  pullout_distance_mm: 5.000
  pullout_rate_mm_per_min: 250.000
  target_mpos_mm: 0.000
  rate_mm_per_min: 800.000
  
macros:
  startup_line0:
  startup_line1:
  macro0: $X&$H
#unlock and home XYZ
  macro1: G38.2 G91 Z-46 F100&G0 Z1&G38.2 G91 Z-2 F50&G10 L20 P1 Z4.985&G10 L20 P2 Z4.985&G10 L20 P3 Z4.985&G10 L20 P4 Z4.985&G10 L20 P5 Z4.985&G10 L20 P6 Z4.985&G53 G0 Z0
#z-probe
  macro2:
  macro3: $SD/Run=lasertest.gcode

coolant:
  flood_pin: gpio.0
# continuous air
  mist_pin:  gpio.4
# pulsed air 
  delay_ms: 0

probe:
  pin: gpio.22:low
  check_mode_start: true

10V:
# Spindle
  direction_pin: NO_PIN
  forward_pin: NO_PIN
  reverse_pin: NO_PIN
  output_pin: gpio.32
  enable_pin: gpio.5:low
  pwm_hz: 5000
  disable_with_s0: false
  s0_with_disable: false
  off_on_alarm: true
#switch off spindle when in alarm state
  spinup_ms: 10000
  spindown_ms: 12000
  tool_num: 0
  speed_map: 0=0% 0=25% 5868=25% 23237=99% 24000=100%
#DLC32 Spindle TTL max output voltage is 4.89v, so it can never reach 24000rpm/400Hz

user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN

start:
  must_home: false
# Pins that could be used: 0(SDA), 4(SCL), 5, 18, 19, 22, 23, 25, 26, 27, 32 (TTL spindle control), 33, 39, I2SO.7
# Pins not currently in use: 25 (TMC_CS_Y), 26 (TMC_CS_X), 27 (TMC_CS_Z), (39 SD card detect), I2SO.7

启动消息

*** Connecting to jserialcomm://COM5:115200
*** Fetching device status
*** Fetching device firmware version
*** Fetching device status codes
*** Fetching device state
*** Fetching device settings
*** Connected to FluidNC 3.6.4

用户界面软件

UGS开发 2022-09-30

发生了什么?

见下文。我打开 UGS,连接到运行 3.6.4pre1 的 FNC,按下我的硬件主页 XYZ 按钮(宏 0)并在归位周期中收到硬限制警告。

连接到 FluidNC 3.6.4
DBG:宏 0
DBG:归位周期 Z
DBG:归位 nextPhase FastApproach
DBG:从 301.223,185.952,0.000
DBG:计划移动到 301.223,185.952,110.000 @ 100.000
DBG:Z Pos Limit 1
DBG:归位limited XZ
DBG: Homing nextPhase Pulloff0
DBG: Starting from 301.223,185.952,0.999
DBG: Planned move to 301.223,185.952,-0.001 @ 20.000
ERR: Macro can only be used in idle state
DBG: Z Pos Limit 0
ERR: Macro只能用在空闲状态下使用
DBG: CycleStop Pulloff0
DBG: Homing nextPhase SlowApproach
DBG: Starting from 301.223,185.952,0.000
DBG: Planned move to 301.223,185.952,1.100 @ 20.000
DBG: Z Pos Limit 1
DBG: Homing limited XZ
DBG: Homing nextPhase Pulloff1
DBG: Starting from 301.223,185.952,0.994
DBG: Planned move to 301.223,185.952,-0.006 @ 20.000
DBG: Z Pos Limit 0
DBG: CycleStop Pulloff1
DBG:归位 nextPhase Pulloff2
DBG:mpos 为 301.223,185.952,-0.005
DBG:mpos 变为 301.223,185.952,0.000
DBG:mpos 转换为 301.223,185.952,0.000
DBG:归位周期 XY
DBG:从 301.223,185.952,0.000 开始
移动到 DBG:计划: 300.223,185.952,0.000 @ 28.284
DBG:X 位置限制 0
DBG:X 位置限制 1
DBG:X 位置限制 0
DBG:CycleStop PrePulloff
DBG:Homing nextPhase FastApproach
DBG:从 300.223,185.952,0.000 开始
DBG:计划移动到 -31.977,-18.648,0.000 @ 282.843
DBG:X Neg Limit 1
DBG:Homing limited X
DBG:Y Neg Limit 1
DBG:Homing limited XY
DBG:Homing nextPhase Pulloff0
DBG:从 -0.971、-1.008、0.000 开始
DBG:计划移动到 0.029、-0.008、0.000 @ 28.284
DBG:X 负限制 0
DBG:X 负限制 1
DBG:X 负限制 0
DBG:Y 负限制 0
DBG: CycleStop Pulloff0
DBG:Homing nextPhase SlowApproach
DBG:从 0.029、-0.007、0.000 开始
DBG:计划移动到 -1.071、-1.107、0.000 @ 28.284
DBG:X Neg Limit 1
DBG:Homing limited X
DBG:CycleStop SlowApproach
DBG:Y Neg Limit 1
DBG:Y 电机的限位开关跳闸 0
连接关闭

其他信息

没有反应

归位期间的硬限制 #681
所有者

你的宏实际上 $X&$H 比你在 Discord 上发布的 $X$H 稍微不奇怪。

我没有在消息中看到硬性限制。

我在我的一台机器上测试过。这是相关的配置部分。

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: gpio.25
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN
  
macros:
  startup_line0:
  startup_line1: 
  macro0: $X&$H
  macro1:
  macro2:
  macro3:

可以通过开关或命令执行宏


  • 通过命令

$Macros/Run=0或者$RM=0

机器完美归位

Grbl 3.6 [FluidNC v3.6.4-pre1 (wifi) '$' for help]
[MSG:INFO: '$H'|'$X' to unlock]
<Alarm|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0|WCO:0.000,-150.000,0.000>
$rm=0
[MSG:INFO: Running macro 0]
ok
[MSG:INFO: Caution: Unlocked]
<Idle|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0>

  • 通过开关

宏失败,因为它只能在空闲状态下使用,所以 $X 非常无用

Grbl 3.6 [FluidNC v3.6.4-pre1 (wifi) '$' for help]
[MSG:INFO: '$H'|'$X' to unlock]
<Alarm|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0|WCO:0.000,-150.000,0.000>
[MSG:ERR: Macro can only be used in idle state]
<Alarm|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0>

如果首先清除警报状态,它会正常返回。

Grbl 3.6 [FluidNC v3.6.4-pre1 (wifi) '$' for help]
[MSG:INFO: '$H'|'$X' to unlock]
<Alarm|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0|WCO:0.000,-150.000,0.000>
$X
[MSG:INFO: Caution: Unlocked]
ok
<Idle|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0>
<Home|WPos:0.000,150.000,0.220|Bf:15,128|FS:300,0>
<Home|WPos:0.000,150.000,1.000|Bf:15,128|FS:300,0|Pn:Z>
<Home|WPos:0.000,150.000,0.000|Bf:15,128|FS:533,0>
<Idle|WPos:0.000,150.000,0.000|Bf:15,128|FS:0,0>

如果我在归位期间继续按下宏按钮,我会收到 ERR 消息,但它可以正常完成。我注意到你有那些错误信息。你可能有一个弹性开关。


  • 多次尝试通过 $H 命令正常归位,看看宏是否不是问题所在。
  • 尝试将每个轴移动到一个单独的循环,看看是否有任何改变。
归位期间的硬限制 #681
作者
达克斯利尼埃 评论了 2022 年 10 月 24 日  

你的宏实际上 $X&$H 比你在 Discord 上发布的 $X$H 稍微不奇怪。

是的,我忘了我按要求在中间加上了&。我的错。

我没有在消息中看到硬性限制。

真的吗?这是我上面包含的日志中的倒数第二行,就在它与 UGS 断开连接之前。
DBG:Y 电机限位开关跳闸 0
连接关闭

我在我的一台机器上测试过。这是相关的配置部分。
机器完美归位

是的,大多数时候它对我来说也很完美。但是这次硬限制被触发了。

宏失败,因为它只能在空闲状态下使用,所以 $X 非常无用

但它通常不会失败,因此我报告这个的原因。而且我通常必须在 UGS 中按解锁,因此将解锁添加到宏中是有意义的。

我注意到你有那些错误信息。你可能有一个弹性开关。

是的,也许。它只是一个配置为gpio.19:low:pu的简单开关。您能否重新启用软件去抖动(仅适用于非限位开关输入)。

  • 多次尝试通过 $H 命令正常归位,看看宏是否不是问题所在。

为什么宏会成为问题?

如果再次发生这种情况,我可以启用更高级别的调试吗?

归位期间的硬限制 #681
所有者

除非我们有很长一段时间没有问题,否则我们不能考虑去抖动。一切都是时间、资源、线程等之间非常微妙的平衡。这可能就是为什么新的 Espressif 库引入了这么多问题,

归位期间的硬限制 #681

好的,不用担心,我完全理解。
debounce 库已经实现但被禁用了,对吧?我记得关于用户启用它而不是创建适当的输入电路的讨论。

归位期间的硬限制 #681

去抖动代码是早已消失的代码的一部分。

归位期间的硬限制 #681

啊哈,我明白了。不用担心。多谢你们。

归位期间的硬限制 #681 MitchBradley按计划 关闭了它 不会修复,无法复制,复制,陈旧2022 年 12 月 3 日
喜欢 (0)