评论
你在哪里设置速度大于或小于3000?这是在 gSender 的慢跑预设中,还是在您的 FluidNC 配置中? |
在 gSenders 慢跑预设中。FluidNC 配置中的最大速度为 5000 mm/min。你的问题的根本原因是什么?即使我使用 webUI 发送慢跑命令并且 gSender 仅同时连接到 FluidNC,也会发生这些中断。如果我断开 gSender,我可以在没有任何中断的情况下慢跑到 5000 毫米/分钟。 |
运行 gSender 的主机是什么?我在 Windows 上尝试过它,但在我更改 gSender 设置串行端口的方式之前无法让它连接到 FluidNC。在此更改之前,gSender 会导致 ESP32 进入引导加载程序模式。 |
展台上的主机是 Windows 11 或 Ubuntu 22.10 我有同样的问题。如果我连接,主机是 Windows 还是 Linux 都没有关系,我会执行以下操作:
|
刚刚尝试使用 gSender 使用 G0 和 G1 命令进行运动,运动中存在相同的中断。所以这个问题不仅与慢跑直接相关,而且与基本上所有的运动都直接相关。如果我首先使用 FluidTerm 连接到 FluidNC(我不必发送单个命令,只需 oben FluidTerm)然后关闭 FluidTerm,打开 gSender,连接到 FluidNC 并执行重置(Shift + 5)以将 gSender 与 FluidNC 同步,我在中看到gSender aprox 的控制台。每秒字符“$G”。似乎 FluidNC 一直在发送这个。也许此信息对您有帮助。 我很快也尝试用蜡烛 1.1.7 移动机器,并且在移动过程中出现中断时我得到了相同的行为。 |
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 不自动向他们报告更改,因此发件人必须询问。如果它频繁询问,以保持不滞后于状态变化的显示,它就有可能在快速操作中出现故障。所以需要权衡。 您似乎已经找到了权衡开始导致系统出现问题的边界。 |
这是在解释运动中断吗?为什么我对 Candle gcode 发件人有同样的问题?看来我不是唯一遇到这个问题的人。我现在应该如何进行? |
从 FluidTerm 发送慢跑或 gcode 运动命令时,您是否遇到任何中断。 这将有助于调试问题。我无法在我的机器上运行 Candle 或 gSender。Candle 不会启动并且 gSender 不会通信。我想我们知道 gSender 的问题。 |
不,使用 FluidTerm 一切都完美无缺。这让我感到奇怪,因为版本 3.5.1。我没有这样的问题。 |
我一直试图复制这个问题,但到目前为止我还没有成功。在 6 件装的情况下,我可以使用 gSender 以 4000 毫米/秒和 400 步/毫米的速度慢跑而不会受到干扰。我现在将尝试更紧密地复制您的硬件。所有这些都需要很多时间。 |
真奇怪。我不认为它与硬件有关,因为使用 FluidNC 它可以在我的硬件上正常运行,没有任何问题。只有当我使用 gSender 或 Candle 时,我才会受到干扰。(到目前为止我还没有尝试过其他 gcode 发件人) |
但是 6 件装使用的是 I2S 而不是 RMT,对吗? |
是的,6 件装是 I2S。所以现在我必须找到一个 RMT 板并将它连接到一个可以快速运行的电机上…… 时间。 |
也许只使用 esp 评估板并用逻辑分析仪检查步进脉冲?通常,您应该清楚地看到步进脉冲中的中断。 |
我无法同时完成工作和回复您的建议。 |
|
Bart 和我都无法重现该问题。我们可以不受干扰地高速慢跑。您是否尝试过反转步进脉冲或增加 pulse_us ? |
不,我没试过,但我也看到了直接从 esp 出来的步进信号中断。 |
好的 |
这真是一团糟。我在裸 ESP32 上使用 v3.6.4-pre1 复制了这个问题,用示波器查看 X step gpio。我可以看到步骤流中的中断。 然后我从 git 标签中获取用于构建 v3.6.4-pre1 的相同源代码,并在本地编译它。该版本不会失败。我来回几次以确保 – 发布文件失败,但本地编译的文件没有。这两个文件的长度相差 208 个字节。 发布构建器在 Linux 下的 Github Actions 虚拟机中编译,而本地构建在 Windows 上。我通过从 ELF 文件中提取 .comment 部分来验证他们使用的是相同版本的交叉编译器;该部分在两个文件之间是相同的。 我查看了二进制文件/ELF 文件,发现了明显的差异。这很难做到,因为由于错误报告中嵌入的文件路径名字符串,文件内的地址很快就会发生分歧。路径不同,所以字符串长度不同。这把事情推得足够远,以至于比较变得困难。 这非常烦人,可能会花费大量时间来解决。 |
感谢您坚持不懈的故障排除,出色的工作!! |
尝试 v3.6.4-pre3。我认为它解决了这个问题。UART 的中断服务例程与步进时序之间存在冲突。将 UART ISR 移动到不同的内核似乎可行。这让我失去了很多。 |
我试过 v3.6.4-pre3,看来它现在可以工作了。我听不到任何运动中断,我没有用示波器测量过,但我认为没问题。 gSender 控制台中 $G 的行为仍然存在。而且只有当我从 Windows 主机运行它并在打开 gsender 之前首先打开 fluidterm 时才会发生。如果我打开 gsender 并且没有其他任何东西,那么一切都很好。在 Linux 主机上不会发生这些行为。 |
控制板
自制
CNC-Controller_V2.pdf
董事会供应商的帮助
机器描述
带有 DM556T 步进驱动器、双 y 电机和限位开关的龙门铣床 Ratrig Killerbee。
输入电路
没有反应
配置文件
启动消息
用户界面软件
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 发件人并且有类似的问题?
其他信息
没有反应