开源改变世界

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

报告错误代码 38#615

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

评论

控制板

MKS DLC32

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

三轴数控铣床

配置文件

board: MKS-DLC32 V2.5
name: SWOLE-CNC
meta: (2202.09.07) 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:high
      limit_pos_pin: gpio.34:high
      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:high
      limit_pos_pin: gpio.23:high:pd
      #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: 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:high:pd
      #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+开发版

发生了什么?

这是由高于控制器预期/设置接受的工具编号触发的。它只是暂停并等待用户继续程序。
查找错误 38 显示“超出 Gcode 最大值”- 是通用的,如最大任何值,还是仅用于工具编号?
如果是后者,您能否更改该错误代码的文本以提及工具编号?(就像在 GRBL 中一样)
如果是前者,我们可以得到一个单独的“超出最大工具数量”的错误代码吗?

其他信息

没有反应

所有者
培养 评论了 2022 年 9 月 17 日  

导致此错误的 gcode 行是什么?

工具编号存储在一个无符号的 8 位值中。这将数量限制为 255。这与 Grbl 相同。该错误是一个通用的 gcode 解析错误。

FluidNC 将刀具编号范围分配给主轴。范围从该tool_num:值开始并转到下一个主轴tool_num: ,如果没有下一个主轴,则到 255。

错误在 FNC 中被捕获在这里

                     case 'T':
                        axis_word_bit = GCodeWord::T;
                        if (value > MaxToolNumber) {
                            FAIL(Error::GcodeMaxValueExceeded);
                        }
                        log_info("Tool No: " << int_value);
                        gc_state.tool = int_value;
                        break;

错误在Grbl中

case 'T': word_bit = WORD_T; 
  if (value > MAX_TOOL_NUMBER) { FAIL(STATUS_GCODE_MAX_VALUE_EXCEEDED); }
  gc_block.values.t = int_value;
  break;

我认为最好保持错误编号相同。新号码没有什么好处,它可能会导致与旧 gcode 发件人混淆。我们可以添加一个[MSG: Gcode T value exceeded max of 255]. 我们还可以增加工具编号范围。

作者
达克斯利尼埃 评论了 2022 年 9 月 18 日  

我使用长工具编号,这样我就可以识别工具,而无需在购买适合现有工具的新工具时对所有工具重新编号。
gcode 应该是 T= 某个数字 >100000 且 <1000000。

config.yaml 中的一行最大工具编号会很酷。

所有者

我会将建议添加到我们的开发跟踪器愿望清单中。

谢谢。

如果线路不存在则默认为 255。👍

所有者

嗯?

作者
达克斯利尼埃 评论了 2022 年 9 月 18 日  

我目前的数控工具:

前 2 位数字表示切削直径。

所有者

“如果行不存在则默认为 255”是什么意思?

作者
达克斯利尼埃 评论了 2022 年 9 月 18 日  

只是说,如果当前内置的默认是255个工具,如果实施这个改变后, config.yaml中缺少max_tools=这一行,FNC默认是255个工具。

所有者

没有可配置的最大值。它被硬编码到固件中。每个人都会改变。如果我们改变它,我们可能会使它成为一个无符号的 32 位数字。我们可以限制它,但为什么呢?

是的,当然,那更好。