打开 dvsingletary 打开了这个问题 2020 年 1 月 11 日 · 1条评论 注释 双单 评论了 2020 年 1 月 11 日 • 编辑 在少数情况下,如果在 grbl 向 gcode 发送方发送“ok”后立即触发重置/中止(通过 A0 引脚),grbl 将在重置后从发送方接收下一个命令。重置后,许多状态值被重置(例如 G20/G21),这可能导致机器崩溃。 我提出两种解决方案之一: 在主循环结束时添加延迟。延迟会在发送的最后一个“ok”和完成重置之间创建一个最小间隔,这意味着任何响应“ok”而发送的新命令都会在重置前的延迟后从串行缓冲区中转储。该解决方案不是防弹的。没有实时保证 gcode 发送者将以多快的速度响应下一个命令的“ok”,因此没有足够长的延迟来避免问题。 唯一的防弹解决方案是在中止/重置引脚被触发时始终向机器发出警报(EXEC_ALARM_ABORT_CYCLE),无论机器是否在运动中。这需要 gcode 发送器上的操作员有意“解锁”以确认重置,并确保重置后grbl 不会解释与重置同时发送的任何错误命令。 除了上面的解决方案 2 之外,还有其他方法可以以防弹方式解决这个问题吗? dvsingletary 提到了这个问题 2020 年 1 月 12 日 修复 #1341 绕线器/通用 G 代码发送器#1343 关闭 作者 双单 评论了 2020 年 1 月 13 日 • 编辑 仔细考虑一下,虽然从技术上讲,不能保证来自 gcode 发送方的“ok”-> 下一个命令的响应延迟,但实际上它通常非常低——如果不是这样,gcode 发送方将停止并且无法使用。我认为假设几乎 100% 的时间 gcode 发送器将在 500 毫秒内发送下一个命令是合理的。因为解决方案 2(每次在软复位中断时发出警报)更具破坏性,我认为解决方案 1 是两者中更好的。 喜欢 (0) 开发 #907 当我在成功归位序列后输入 g 代码时触发硬限制 #908 2.8inch_ESP32-2432S028R无法获取任何菜单 #56 2.8inch_ESP32-2432S028R显示屏支持 #55 编译错误 #54 文本部分超出了板中的可用空间 #53 2.8inch_ESP32-2432S028R无法获取任何菜单 #562.8inch_ESP32-2432S028R显示屏支持 #55编译错误 #54文本部分超出了板中的可用空间 #53编译失败:SdFat.h:没有那个文件或目录 #50esp32c3支持吗? #49慢跑算法 #48启用 WiFi 后,STA & AP 模式会暂停发送 G 代码。 #46
在少数情况下,如果在 grbl 向 gcode 发送方发送“ok”后立即触发重置/中止(通过 A0 引脚),grbl 将在重置后从发送方接收下一个命令。重置后,许多状态值被重置(例如 G20/G21),这可能导致机器崩溃。
我提出两种解决方案之一:
除了上面的解决方案 2 之外,还有其他方法可以以防弹方式解决这个问题吗?