开源改变世界!!

问题:使用 gSender 慢跑时运动中断 #678

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

问题:使用 gSender 慢跑时运动中断#678

ModuloFS 开启了这个问题 2022 年 10 月 21 日 · 27条评论

评论

问题:使用 gSender 慢跑时运动中断 #678

控制板

自制
CNC-Controller_V2.pdf

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

带有 DM556T 步进驱动器、双 y 电机和限位开关的龙门铣床 Ratrig Killerbee。

输入电路

没有反应

配置文件

name: "ModuloController"
board: "ModuloControl V1"

stepping:
  engine: RMT
  idle_ms: 255
  dir_delay_us: 5
  pulse_us: 5
  disable_delay_us: 5
  
start:
  must_home: true
  deactivate_parking: true
  check_limits: true

axes:
  shared_stepper_disable_pin: gpio.23
  
  x:
    steps_per_mm: 400.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 150.000
    max_travel_mm: 510.000
    soft_limits: true
    
    homing:
      cycle: 2
      mpos_mm: 510.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 400.000
      positive_direction: true

    motor0:
      limit_pos_pin: gpio.35:low
      hard_limits: true
      pulloff_mm: 5.000
      standard_stepper:
        direction_pin: gpio.27
        step_pin: gpio.26

  y:
    steps_per_mm: 400.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 150.000
    max_travel_mm: 750.000
    soft_limits: true

    homing:
      cycle: 3
      mpos_mm: 750.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 400.000
      positive_direction: true

    motor0:
      limit_pos_pin: gpio.34:low
      hard_limits: true
      pulloff_mm: 2.000
      standard_stepper:
        direction_pin: gpio.18:low
        step_pin: gpio.19

    motor1:
      limit_pos_pin: gpio.36:low
      hard_limits: true
      pulloff_mm: 2.000
      standard_stepper:
        direction_pin: gpio.22:low
        step_pin: gpio.21

  z:
    steps_per_mm: 400.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 150.000
    max_travel_mm: 150.000
    soft_limits: true
    
    homing:
      cycle: 1
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 400.000
      positive_direction: true

    motor0:
      limit_pos_pin: gpio.39:low
      hard_limits: true
      pulloff_mm: 5.000
      standard_stepper:
        direction_pin: gpio.32
        step_pin: gpio.25


probe:
  pin: gpio.4:high
  
control:
  safety_door_pin: gpio.33:low
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN

10V:
  forward_pin: gpio.5
  reverse_pin: NO_PIN
  pwm_hz: 5000
  output_pin: gpio.13
  enable_pin: NO_PIN
  direction_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 1000
  spindown_ms: 1000
  tool_num: 0
  speed_map: 0=10.000% 3000=10.000% 24000=90.000%
  off_on_alarm: false

启动消息

$SS
[MSG:INFO: FluidNC v3.6.4-pre1]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
[MSG:INFO: Local filesystem type is spiffs]
[MSG:INFO: Configuration file:config_ratrig_killerbee.yaml]
[MSG:DBG: Running after-parse tasks]
[MSG:DBG: Checking configuration]
[MSG:INFO: Machine ModuloController]
[MSG:INFO: Board ModuloControl V1]
[MSG:INFO: SPI not defined]
[MSG:INFO: No SD Card CS Pin]
[MSG:INFO: See http://wiki.fluidnc.com/en/config/sd_card#sdfallbackcs-access-sd-without-a-config-file]
[MSG:INFO: Stepping:RMT Pulse:5us Dsbl Delay:5us Dir Delay:5us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Shared stepper disable gpio.23]
[MSG:INFO: Axis X (0.000,510.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:gpio.26 Dir:gpio.27 Disable:NO_PIN]
[MSG:INFO:  X Pos Limit gpio.35:low]
[MSG:DBG:  X Pos Limit 0]
[MSG:INFO: Axis Y (0.000,750.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:gpio.19 Dir:gpio.18:low Disable:NO_PIN]
[MSG:INFO:  Y Pos Limit gpio.34:low]
[MSG:DBG:  Y Pos Limit 0]
[MSG:INFO:   Motor1]
[MSG:INFO:     standard_stepper Step:gpio.21 Dir:gpio.22:low Disable:NO_PIN]
[MSG:INFO:  Y2 Pos Limit gpio.36:low]
[MSG:DBG:  Y2 Pos Limit 0]
[MSG:INFO: Axis Z (0.000,150.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:gpio.25 Dir:gpio.32 Disable:NO_PIN]
[MSG:INFO:  Z Pos Limit gpio.39:low]
[MSG:DBG:  Z Pos Limit 0]
[MSG:INFO: safety_door_pin gpio.33:low]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: 10V Spindle Ena:NO_PIN Out:gpio.13 Dir:NO_PIN Fwd:gpio.5 Rev:NO_PIN Freq:5000Hz Period:8191]
[MSG:INFO: Using spindle 10V]
[MSG:INFO: Probe Pin: gpio.4]
[MSG:INFO: Connecting to STA SSID:MW8s3mb43P5jtbZKJyom]
[MSG:INFO: Connecting.]
[MSG:INFO: Connected - IP is 192.168.178.93]
[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]
ok

用户界面软件

gSender,webUI

发生了什么?

如果控制器连接到 gcode 发送器 gSender 1.1.4 ( https://github.com/Sienci-Labs/gsender ) 并且我使用慢跑功能,则机器确实以慢跑运动开始,但在运行时有一些非常严重的中断议案。速度越高,中断越频繁。我认识到大约速度的中断。3000 毫米/分钟。在此中断期间它会松动步骤,因为中断后限位开关的起始位置不同。
如果我使用 gSender 作为命令源以及使用 webUI 如果我的控制器同时仅与 gSender 连接,则在慢跑过程中会发生中断。
如果我断开 gSender 并使用 webUI 或 fluidTerm 进行慢跑,一切都会完美无缺。
我从 FluidNC 版本 3.6.3 和 3.6.4-pre1 开始发现了这种行为。使用 FluidNC 3.5.1 我无法检测到此行为。

有没有人使用 gSender 作为 Gcode 发件人并且有类似的问题?

其他信息

没有反应

问题:使用 gSender 慢跑时运动中断 #678

你在哪里设置速度大于或小于3000?这是在 gSender 的慢跑预设中,还是在您的 FluidNC 配置中?

问题:使用 gSender 慢跑时运动中断 #678
作者
模FS 评论了 2022 年 10 月 21 日  

在 gSenders 慢跑预设中。FluidNC 配置中的最大速度为 5000 mm/min。你的问题的根本原因是什么?即使我使用 webUI 发送慢跑命令并且 gSender 仅同时连接到 FluidNC,也会发生这些中断。如果我断开 gSender,我可以在没有任何中断的情况下慢跑到 5000 毫米/分钟。

问题:使用 gSender 慢跑时运动中断 #678

运行 gSender 的主机是什么?我在 Windows 上尝试过它,但在我更改 gSender 设置串行端口的方式之前无法让它连接到 FluidNC。在此更改之前,gSender 会导致 ESP32 进入引导加载程序模式。

问题:使用 gSender 慢跑时运动中断 #678
作者
模FS 评论了 2022 年 10 月 22 日  

展台上的主机是 Windows 11 或 Ubuntu 22.10 我有同样的问题。如果我连接,主机是 Windows 还是 Linux 都没有关系,我会执行以下操作:

  1. 启动 gSender
  2. 在gSender中连接到FluidNC的串口
  3. 按键盘上的 Shift + 5,这会导致 gSender 发送 Ctrl+X 命令并重置 FluidNC。
  4. 重置命令使 FluidNC 和 gSender 同步,然后您可以将 gSender 与 FluidNC 一起使用
问题:使用 gSender 慢跑时运动中断 #678 ModuloFS 更改了标题 使用 gSender 慢跑时运动突然中断 使用 gSender 慢跑期间运动中断 2022 年 10 月 22 日
问题:使用 gSender 慢跑时运动中断 #678 ModuloFS 更改了标题 使用 gSender 慢跑期间运动中断 问题:使用 gSender 慢跑时运动中断 2022 年 10 月 22 日
问题:使用 gSender 慢跑时运动中断 #678
作者
模FS 评论了 2022 年 10 月 22 日  

刚刚尝试使用 gSender 使用 G0 和 G1 命令进行运动,运动中存在相同的中断。所以这个问题不仅与慢跑直接相关,而且与基本上所有的运动都直接相关。如果我首先使用 FluidTerm 连接到 FluidNC(我不必发送单个命令,只需 oben FluidTerm)然后关闭 FluidTerm,打开 gSender,连接到 FluidNC 并执行重置(Shift + 5)以将 gSender 与 FluidNC 同步,我在中看到gSender aprox 的控制台。每秒字符“$G”。似乎 FluidNC 一直在发送这个。也许此信息对您有帮助。

我很快也尝试用蜡烛 1.1.7 移动机器,并且在移动过程中出现中断时我得到了相同的行为。

问题:使用 gSender 慢跑时运动中断 #678

FluidNC 未发送 $G – gSender 正在发送它。FluidNC 响应 gSender 发送的内容。这是 gSender 源代码中的行https://github.com/Sienci-Labs/gsender/blob/fb6db1509fc8a01be6135f81eb36d450e3e3d5eb/src/server/controllers/Grbl/GrblController.js#L822

封闭函数在 250 毫秒计时器上调用,因此您会认为 $G 每秒发出 4 次,但如果深入研究 queryParserState(),您会发现它被限制为不超过每 500 次执行多发性硬化症。此外,其中还有额外的时间相关代码,每 10 秒执行一次不同的操作,并且在 GCode 程序流式传输到控制器时阻止执行的锁定。

gSender 是 CNCjs 的一个分支,这部分 CNCjs 代码自分支以来几乎没有变化。从我作为 CNCjs 开发人员和维护人员的那一天起,我就想起了这方面的一些问题。一方面,CNCjs 想知道 G20/G21 等 $G 返回的 GCode 模态的状态,以便它可以正确显示单位、工作坐标系等内容。另一方面,GRBL 不自动向他们报告更改,因此发件人必须询问。如果它频繁询问,以保持不滞后于状态变化的显示,它就有可能在快速操作中出现故障。所以需要权衡。

您似乎已经找到了权衡开始导致系统出现问题的边界。

问题:使用 gSender 慢跑时运动中断 #678
作者

这是在解释运动中断吗?为什么我对 Candle gcode 发件人有同样的问题?看来我不是唯一遇到这个问题的人。我现在应该如何进行?

问题:使用 gSender 慢跑时运动中断 #678
所有者

从 FluidTerm 发送慢跑或 gcode 运动命令时,您是否遇到任何中断。

这将有助于调试问题。我无法在我的机器上运行 Candle 或 gSender。Candle 不会启动并且 gSender 不会通信。我想我们知道 gSender 的问题。

问题:使用 gSender 慢跑时运动中断 #678
作者
模FS 评论了 2022 年 10 月 23 日  

不,使用 FluidTerm 一切都完美无缺。这让我感到奇怪,因为版本 3.5.1。我没有这样的问题。

问题:使用 gSender 慢跑时运动中断 #678

我一直试图复制这个问题,但到目前为止我还没有成功。在 6 件装的情况下,我可以使用 gSender 以 4000 毫米/秒和 400 步/毫米的速度慢跑而不会受到干扰。我现在将尝试更紧密地复制您的硬件。所有这些都需要很多时间。

问题:使用 gSender 慢跑时运动中断 #678
作者

真奇怪。我不认为它与硬件有关,因为使用 FluidNC 它可以在我的硬件上正常运行,没有任何问题。只有当我使用 gSender 或 Candle 时,我才会受到干扰。(到目前为止我还没有尝试过其他 gcode 发件人)

问题:使用 gSender 慢跑时运动中断 #678
作者

但是 6 件装使用的是 I2S 而不是 RMT,对吗?

问题:使用 gSender 慢跑时运动中断 #678

是的,6 件装是 I2S。所以现在我必须找到一个 RMT 板并将它连接到一个可以快速运行的电机上……

时间。

问题:使用 gSender 慢跑时运动中断 #678
作者

也许只使用 esp 评估板并用逻辑分析仪检查步进脉冲?通常,您应该清楚地看到步进脉冲中的中断。

问题:使用 gSender 慢跑时运动中断 #678

我无法同时完成工作和回复您的建议。

问题:使用 gSender 慢跑时运动中断 #678
作者

问题:使用 gSender 慢跑时运动中断 #678

Bart 和我都无法重现该问题。我们可以不受干扰地高速慢跑。您是否尝试过反转步进脉冲或增加 pulse_us ?

问题:使用 gSender 慢跑时运动中断 #678
作者

不,我没试过,但我也看到了直接从 esp 出来的步进信号中断。

问题:使用 gSender 慢跑时运动中断 #678

好的

问题:使用 gSender 慢跑时运动中断 #678

这真是一团糟。我在裸 ESP32 上使用 v3.6.4-pre1 复制了这个问题,用示波器查看 X step gpio。我可以看到步骤流中的中断。

然后我从 git 标签中获取用于构建 v3.6.4-pre1 的相同源代码,并在本地编译它。该版本不会失败。我来回几次以确保 – 发布文件失败,但本地编译的文件没有。这两个文件的长度相差 208 个字节。

发布构建器在 Linux 下的 Github Actions 虚拟机中编译,而本地构建在 Windows 上。我通过从 ELF 文件中提取 .comment 部分来验证他们使用的是相同版本的交叉编译器;该部分在两个文件之间是相同的。

我查看了二进制文件/ELF 文件,发现了明显的差异。这很难做到,因为由于错误报告中嵌入的文件路径名字符串,文件内的地址很快就会发生分歧。路径不同,所以字符串长度不同。这把事情推得足够远,以至于比较变得困难。

这非常烦人,可能会花费大量时间来解决。

问题:使用 gSender 慢跑时运动中断 #678
作者

感谢您坚持不懈的故障排除,出色的工作!!
3.4.4 版本是否足够稳定,可以同时使用它?或者我应该使用哪个版本?由于双 y 轴中的不同步中断,我差点毁了我的机器,我不想再出现这种情况。

问题:使用 gSender 慢跑时运动中断 #678

尝试 v3.6.4-pre3。我认为它解决了这个问题。UART 的中断服务例程与步进时序之间存在冲突。将 UART ISR 移动到不同的内核似乎可行。这让我失去了很多。

问题:使用 gSender 慢跑时运动中断 #678
作者

我试过 v3.6.4-pre3,看来它现在可以工作了。我听不到任何运动中断,我没有用示波器测量过,但我认为没问题。
干得好米奇!!!

gSender 控制台中 $G 的行为仍然存在。而且只有当我从 Windows 主机运行它并在打开 gsender 之前首先打开 fluidterm 时才会发生。如果我打开 gsender 并且没有其他任何东西,那么一切都很好。在 Linux 主机上不会发生这些行为。
我知道,也许这是一个边界条件,它不会干扰正常使用,但我只是想让你知道。
我在将 FluidNC 与 gSender 一起使用时提到的第二件事是一些奇怪的断开连接行为。如果我使用 gSender 中的“断开连接”按钮断开 FluidNC 和 gSender,或者在不断开连接的情况下关闭 gSender,我会得到一些 FluidNC 的奇怪行为。
有时 FNC 会禁用所有步进器并打开 gpio.5。有时它不会禁用步进器但会打开 gpio.5。有时它什么都不做,步进器仍然启用并且 gpio.5 没有改变。有时它会很快启用 gpio.5 并在一秒钟左右后将其禁用。有时,在我想重新连接到 FNC 之后,我必须使用 FluidTerm 重置 FNC 才能在没有重启的情况下再次使用它。
我还没有弄清楚为什么以及何时会发生这种情况,而且它也根本不会干扰使用。至于上面的主题,我只想让你知道。