开源改变世界

问题:触发软限位后,通过 USB 重置不起作用 #494

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

问题:触发软限位后,通过 USB 重置不起作用#494

Avataar120 开启了这个问题 2022 年 6 月 16 日 · 6条评论

评论

问题:触发软限位后,通过 USB 重置不起作用 #494
贡献者

控制板

4 件装个人设计

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

4 个步进驱动器 – DRV8825
通过 I2S 驱动 – 74HC595
在个人设计期间遵循板设计指南 – 特别是当 ESP32 安装在我的板上时,我可以毫无问题地下载它(固件,文件系统(使用 PlatformIO 或 FLuidterm)

配置文件

name: K40_AvaShield
board: Ava_Shield_7.3

kinematics:
  Cartesian:

stepping:
  engine: I2S_STREAM
  idle_ms: 255
  dir_delay_us: 1
  pulse_us: 4
  disable_delay_us: 0

axes:
  shared_stepper_disable_pin: NO_PIN

  x:
    steps_per_mm: 78.74
    max_rate_mm_per_min: 20000.000
    acceleration_mm_per_sec2: 2000.000
    max_travel_mm: 300.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 5.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 2500.000
      settle_ms: 250.000
      seek_scaler: 1.500
      feed_scaler: 5.000

    motor0:
      limit_neg_pin: gpio.39
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 5.000
      stepstick:
        ms3_pin: I2SO.3
        step_pin: I2SO.2
        direction_pin: I2SO.1
        disable_pin: I2SO.0


  y:
    steps_per_mm: 78.74
    max_rate_mm_per_min: 20000.000
    acceleration_mm_per_sec2: 2000.000
    max_travel_mm: 200.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 5.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 2500.000
      settle_ms: 250.000
      seek_scaler: 1.500
      feed_scaler: 5.000

    motor0:
      limit_neg_pin: gpio.34
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 5.000
      stepstick:
        ms3_pin: I2SO.7
        step_pin: I2SO.6
        direction_pin: I2SO.5:low
        disable_pin: I2SO.4

  z:
    steps_per_mm: 1000.000
    max_rate_mm_per_min: 100.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 20.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: true
      mpos_mm: 5.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 2500.000
      settle_ms: 250.000
      seek_scaler: 1.500
      feed_scaler: 5.000

    motor0:
      limit_neg_pin: gpio.35:low
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 5.000
      stepstick:
        ms3_pin: I2SO.11
        step_pin: I2SO.10
        direction_pin: I2SO.9:low
        disable_pin: I2SO.8
    motor1:
      null_motor:

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

spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18

sdcard:
  cs_pin: gpio.5

control:
  safety_door_pin: gpio.27:low:pu
  reset_pin: gpio.12:low:pu
  feed_hold_pin: gpio.14:low:pu
  cycle_start_pin: gpio.13:low:pu

coolant:
  mist_pin: gpio.4
  delay_ms: 50.000

probe:
  pin: gpio.36:low
  check_mode_start: false

macros:
  startup_line0: 
  startup_line1: 
  macro0: 
  macro1: 
  macro2: 
  macro3: 

start:
  must_home: true
  check_limits: true
  deactivate_parking: false

user_outputs:

laser:
  tool_num: 0
  speed_map: 0=0.0% 1000=100.0%
  output_pin: gpio.15
  enable_pin: gpio.16:low
  disable_with_s0: false
  s0_with_disable: false
  pwm_hz: 15000

arc_tolerance_mm: 0.002
junction_deviation_mm: 0.010
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false

启动消息

[MSG:INFO: FluidNC v3.0.x (noGit)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
[MSG:INFO: Local filesystem type is SPIFFS]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine K40_AvaShield]
[MSG:INFO: Board Ava_Shield_7.3]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
[MSG:INFO: Stepping:I2S_stream Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (5.000,305.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
[MSG:INFO:     Neg Limit gpio.39]
[MSG:INFO: Axis Y (5.000,205.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.6 Dir:I2SO.5:low Disable:I2SO.4]
[MSG:INFO:     Neg Limit gpio.34]
[MSG:INFO: Axis Z (-15.000,5.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.10 Dir:I2SO.9:low Disable:I2SO.8]
[MSG:INFO:     Neg Limit gpio.35:low]
[MSG:INFO:   Motor1]
[MSG:INFO: Door gpio.27:low:pu]
[MSG:INFO: Reset gpio.12:low:pu]
[MSG:ERR: Reset pin is active at startup]
[MSG:INFO: FeedHold gpio.14:low:pu]
[MSG:INFO: CycleStart gpio.13:low:pu]
[MSG:ERR: CycleStart pin is active at startup]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Laser Spindle Ena:gpio.16:low Out:gpio.15 Freq:15000Hz Res:12bits Laser mode:On]
[MSG:INFO: Using spindle Laser]
[MSG:INFO: Mist coolant gpio.4]
[MSG:INFO: Probe Pin: gpio.36:low]
[MSG:INFO: Connecting to STA SSID:Avataar120_Orly]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connecting...]
[MSG:INFO: Connecting....]
[MSG:INFO: Connecting.]
[MSG:INFO: Connected - IP is 192.168.1.79]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]

用户界面软件

Lightburn 或 Fluidterm

发生了什么?

X soft limit is [5..305]
I home the machine
并请求手动移动到 X=500
Soft limit is triggered as expected

我按预期收到此错误消息:
[MSG:INFO: Soft limit on X target:500.000]
[MSG:INFO: Soft limit on Y target:0.000]
ALARM:2
G 代码运动目标超出机器行程。机器位置安全保留。警报可能被解锁。(右键单击“设备”按钮以重置连接)
在第 2 行或附近:
流在 0:00 完成
[消息:信息:重置以继续]

但是当我触发 SW 重置时(右键单击 Lightburn 中的设备按钮或取消选择 COM 并再次重新选择它),我收到等待连接…消息并且计算机无法连接到 ESP32。
我需要触发硬件重置(ESP32 上的按钮或拔下 USB 数据线)来恢复这种情况

当不处于警报模式时,SW 重置工作正常并且 ESP32 正确重启
此用例中控制台中的消息如下:

等待连接…
[VER:3.4 FluidNC v3.4.7 (main-062d169e-avataar120-Release):]
[OPT:MPHS]
[MSG: Machine: K40_AvaShield]
[MSG: No WifiNo Wifi]
ok

其他信息

没有反应

问题:触发软限位后,通过 USB 重置不起作用 #494
所有者

ESP32 通常不会通过循环 COM 端口来复位。我们希望能够在不强制重启的情况下连接到正在运行的机器。

通常使用 $X 清除警报而不是重置。软限制等警报并不重要,无需重置即可恢复。

问题:触发软限位后,通过 USB 重置不起作用 #494
贡献者作者

我会很高兴:)

但它不起作用。
当触发软限制时,控制台中的消息明确要求重置
如果我尝试输入任何命令,ESP32 没有回声或反应

问题:触发软限位后,通过 USB 重置不起作用 #494
贡献者作者
阿凡达120 评论了 2022 年 6 月 16 日  

我通过更改 protocol.cpp :: 解决了我的回购中的问题

static void protocol_do_alarm() {
    switch (rtAlarm) {
        case ExecAlarm::None:
            return;
        // System alarm. Everything has shutdown by something that has gone severely wrong. Report
        case ExecAlarm::HardLimit:
        case ExecAlarm::SoftLimit:
        blablabla

经过

static void protocol_do_alarm() {
    switch (rtAlarm) {
        case ExecAlarm::None:
            return;
        // System alarm. Everything has shutdown by something that has gone severely wrong. Report
        case ExecAlarm::HardLimit:
            blablabla


        case ExecAlarm::SoftLimit:
        default:
            sys.state = State::Alarm;  // Set system alarm state
            alarm_msg(rtAlarm);
            break;


问题:触发软限位后,通过 USB 重置不起作用 #494

在限制(硬限制或软限制)之后重置的 GRBL 标准方法是发送 CTRL-X 重置。在 FluidTerm 中,您可以通过直接键入 CTRL-X 来实现。在 Lightburn 中,您按下停止按钮
问题:触发软限位后,通过 USB 重置不起作用 #494

之后,您可以发送 $X 来取消警报。

我们正在考虑应用您的补丁,但它确实引入了与标准 GRBL 的不兼容性,因此我们不确定它是否会在未来和其他发件人中引起问题。

问题:触发软限位后,通过 USB 重置不起作用 #494
贡献者作者

谢谢,我不知道 STOP 按钮会发送 CTRL-X :)

问题:触发软限位后,通过 USB 重置不起作用 #494
所有者

我尝试了这个补丁,但并不认为它是最终的解决方案。我在我们的开发跟踪器中添加了一个项目,以重新审视如何处理软限制警报。在那之前,我们应该保留我们所拥有的。关闭这个问题。