开源改变世界

如果在归位时已触发限位开关,则忽略该限位开关 #618

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

如果在归位时已触发限位开关,则忽略该限位开关#618

daxliniere 打开了这个问题 2022 年 9 月 16 日 · 37条评论

评论

如果在归位时已触发限位开关,则忽略该限位开关 #618
达克斯利尼埃 评论了 2022 年 9 月 16 日  

控制板

MKS DLC32

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

三轴数控铣床

配置文件

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

kinematics:
  Cartesian:

stepping:
  engine: I2S_STATIC
  idle_ms: 0
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0
  
axes:
  shared_stepper_disable_pin: I2SO.0
  x:
    steps_per_mm: 800.000
    #was 802.341
    max_rate_mm_per_min: 1700.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
# was 100 in first SWOLE-CNC iteration running MKS firmware
      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: 802.322
    #tested 806.062, features too small
    max_rate_mm_per_min: 1700.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_neg_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
# Does the start pin need to be wired to the other side of the switch??
  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

macros:
  startup_line0:
  startup_line1:
  macro0: $X&$H
  macro1:
  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: gpio.5:low
  reverse_pin: NO_PIN
  output_pin: gpio.32
  enable_pin: NO_PIN
  pwm_hz: 5000
  disable_with_s0: false
  s0_with_disable: true
  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


#pwm:
#  direction_pin: NO_PIN
#  output_pin: gpio.32
#  enable_pin: gpio.5:low
#  pwm_hz: 5000
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 10000
#  spindown_ms: 12000
#  tool_num: 0
#  speed_map: 0=0% 0=25% 5868=25% 23237=99% 24000=100%


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.0

用户界面软件

UGS 2.0.12+开发版

发生了什么?

FNC 3.6.1-pre1-FS

如果在归位时已经触发限位开关,则忽略限位开关,导致托架再次磨削停止,直到控制器重置。

在这里看到它发生:https ://www.youtube.com/watch?v=aow6SEUhhIM

其他信息

没有反应

如果在归位时已触发限位开关,则忽略该限位开关 #618

我想看看你的限位开关电路。发生了一些奇怪的事情,我无法复制,

如果在归位时已触发限位开关,则忽略该限位开关 #618

在具有双电机和双负限位开关的激光龙门架上使用 3.5.1-pre1-FS,方形归位完美无缺。如果在我发出 $HY 时开关被触发,第一步是拉出,然后归位周期按预期进行。

如果在归位时已触发限位开关,则忽略该限位开关 #618

对我来说同样的问题。只有固件 3.4.4 可以完美运行。固件 3.5.1-pre1-FS 也有同样的问题。

如果在归位时已触发限位开关,则忽略该限位开关 #618
贡献者

这里有同样的问题(请在我重新打开它时查看我在#602中的最后评论)

如果在归位时已触发限位开关,则忽略该限位开关 #618

我想看看你的限位开关电路。发生了一些奇怪的事情,我无法复制,

如果在归位时已触发限位开关,则忽略该限位开关 #618

如果在归位时已触发限位开关,则忽略该限位开关 #618

那么为什么要为这样的开关启用 :pd 呢?pd 有效地在晶体管两端连接了一个电阻,使其看起来总是处于开启状态。

如果在归位时已触发限位开关,则忽略该限位开关 #618
合作者
米奇布拉德利 评论了 2022 年 9 月 17 日  

我可以想象为什么它曾经“工作”。由于某些版本的 FluidNC 存在始终启用 pullups 的错误,即使您没有要求它们,因此 :pu 会变成 :pu + :pd。pu 和 pd 的组合创建了一个分压器,将晶体管关断状态电压设置为恰好高于输入阈值的某个中间值,尽管噪声容限很窄。

如果在归位时已触发限位开关,则忽略该限位开关 #618
作者
达克斯利尼埃 评论了 2022 年 9 月 17 日  

那么为什么要为这样的开关启用 :pd 呢?pd 有效地在晶体管两端连接了一个电阻,使其看起来总是处于开启状态。

根据我的记忆,我尝试了正确的解决方案,但它没有按预期运行,但我会再试一次(使用 3.6.1-pre1-FS),看看 TF 会发生什么。

如果在归位时已触发限位开关,则忽略该限位开关 #618

我在 MKS github 上没有看到 DLC32 v2.5 的原理图。我能找到的最接近的是 v2.1。它显示了 X-、Y-、Z-(GPIO 36、35、34)的电路,但没有显示这些电路中上拉电阻和串联电阻的值。缺少这些值,就无法计算 :pd 处于活动状态时的电压。但我可以肯定地说 :pd 对这些情况没有帮助。

对于 GPIO 18 (Z limit_neg_pin) AKA LCD_SCK,:pd 肯定是错误的,根本没有上拉。所以那个别针永远不会变高。你真的应该添加一个外部上拉,因为 ESP32 上的内部上拉太弱,即使你说:pu

如果在归位时已触发限位开关,则忽略该限位开关 #618

GPIO 23 – 与 GPIO 18 相同的注释 – 省略 :pd 并添加 10K 的外部上拉。一个 0.1uF 的接地电容也不会造成伤害。

如果在归位时已触发限位开关,则忽略该限位开关 #618

V2.5 是我的文件版本。DLC32 是 v2.1 rev1

如果在归位时已触发限位开关,则忽略该限位开关 #618

GPIO 23 – 与 GPIO 18 相同的注释 – 省略 :pd 并添加 10K 的外部上拉。一个 0.1uF 的接地电容也不会造成伤害。

当然。今晚我会做出这些改变。

如果在归位时已触发限位开关,则忽略该限位开关 #618

那么我应该从 3 个内置限制输入中删除 :pd 吗?

如果在归位时已触发限位开关,则忽略该限位开关 #618

:pd 唯一有用的情况是连接在 V+ 和输入之间的高侧开关。即便如此,最好使用外部下拉电阻。ESP32 上的内部电阻实际上是为了防止输入浮动到不确定状态。它们太弱了,无法让信号脱离机载。

如果在归位时已触发限位开关,则忽略该限位开关 #618

我在归巢时注意到了几次。我的 pulloff_mm 设置为 1.500 mm,我将其更改为 2.000 mm。但也可能是我想得太简单了。而此时此刻又是在工作。

如果在归位时已触发限位开关,则忽略该限位开关 #618

1.5mm确实有点短。许多开关的“投掷”比这更多。我倾向于选择至少 3 毫米。

如果在归位时已触发限位开关,则忽略该限位开关 #618

在那种情况下:你让 fluid-nc 变得更好了:-)

如果在归位时已触发限位开关,则忽略该限位开关 #618
杰诺姆 评论了 2022 年 9 月 17 日  

很抱歉打断我的新鲜事。但我似乎有同样的问题。每当发生不好的事情并且我到达限位开关时(完全不知道为什么会发生这种情况 – 限制不应该是 0-pulloff_mm 吗?)然后我无法重新回家并且如果我重新启动控制器然后回家 -它直接驶过极限。
我的版本是3.6.0;我的相关配置是

x:
steps_per_mm: 80.16339034975746
max_rate_mm_per_min: 8000.000
acceleration_mm_per_sec2: 1500.000
max_travel_mm: 740
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 5000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.22
hard_limits: TRUE
pulloff_mm: 4.000

如果在归位时已触发限位开关,则忽略该限位开关 #618

我关闭它是因为 OP 的问题已解决。如果@jnoam仍然有问题,请根据问题模板打开一个新问题,提供有关您机器的完整信息。