开源改变世界

进给保持后运动继续,然后取消 #1026

推推 grbl 3年前 (2022-10-30) 535次浏览 0个评论
关闭
DasWookie 打开了这个问题 on 27 Jun 2016 · 23 条评论
关闭

进给保持后运动继续,然后取消#1026

DasWookie 打开了这个问题 on 27 Jun 2016 · 23 条评论

注释

进给保持后运动继续,然后取消 #1026

所以我遇到了一个问题,这可能是设计使然,但与预期相反。我正在做一些棘手的 CAM,这要求我在跑步过程中保持进给。这使我可以停止运行,并进行测量……我的问题是,如果我点击 Feed Hold,然后取消,在点击 Feed Hold 之前发生的运动,然后恢复!这导致我不得不重做操作,在同一位置再次进给保持,然后点击我的 eStop,以确保一切都保持不变。当我点击取消时,我的期望是,一切都会停在那里……而不是尝试(我猜)“滑行”到停止……当机器已经被保持时.

我可能会生成一小段 gCode 来测试这个特定的操作序列,但相信我的解释足以重现该场景。

正如我所说……这很可能是设计使然,或者任何改变它可能太复杂而无法尝试解决……但在我看来,这并没有做预期会发生的事情,并可能导致某人崩溃或无法阻止他们期望的坏事发生。

进给保持后运动继续,然后取消 #1026
成员

络筒机 评论 on 27 Jun 2016

@DasWookie您使用的是什么 gcode 发件人?这听起来不像是 GRBL 错误。

进给保持后运动继续,然后取消 #1026
作者

达斯伍基 评论 on 27 Jun 2016

我正在使用 bCNC,但我正在按下保持/取消按钮以连接到 grbl。我正在使用 9j 的 GRBL,禁用可变主轴(连接到继电器以打开/关闭 DeWalt DWP611),但其他一切都是 GRBL 中的骨料设置。

进给保持后运动继续,然后取消 #1026
成员

尚尼特 评论 on 27 Jun 2016

@DasWookie: 这听起来绝对像是一个 GUI 问题。您需要查看如何在 bCNC 中设置按钮键绑定。特别是,取消按钮是否在取消时尝试将系统设置回空闲状态。

进给保持后运动继续,然后取消 #1026
作者

达斯伍基 评论 on 27 Jun 2016

嗯。有趣的。据我所知,当通过取消按钮(将引脚设置为接地)向 GRBL 发出 Cancel 时,我在 bCNC UI 上看到的情况往往与发出的命令行一致(也许只是缓冲区的价值)但被 GRBL 忽略。最终,用户界面“赶上了”取消命令,并识别出运行已中止。我想作为一个诊断测试,我可以点击 feed hold,拉出 USB,然后点击取消。这将告诉我 UI 是否以某种方式参与,以及它是否是 GRBL 试图滑行。

观察到的行为有所不同,当我直接点击取消时,一切都停止了,当我点击进给保持时,然后点击取消。

进给保持后运动继续,然后取消 #1026

您只需要从 gui 控制 Grbl,而不是硬件按钮和 gui 的某种组合。当您按下硬件按钮时,gui 无法知道您做了什么或打算做什么。
bCnc 的 ui 上没有按钮来完成此操作吗?

进给保持后运动继续,然后取消 #1026

@gerritv:是的,bCNC 有一个暂停按钮/进给保持。我不得不问一下,如果你支持从不使用它们而只使用 UI,那么在 GRBL 上设置馈送保持、循环启动和取消按钮引脚,连接到中断,有什么意义呢?

进给保持后运动继续,然后取消 #1026

杰瑞特 评论 2016 年 6 月 27 日  

问题是没有对 GUI 的直接反馈。除非它被编程为查看状态响应并做一些适当的事情,否则你会得到这个不协调的结果。
Grbl 有很多用例,对于某些外部引脚有用,而对另一些则没有。

我不确定 GrblPanel 会如何应对这种情况,我会在下一次更新之前尝试一下。bCnc 显然对造成的混乱不满意。

进给保持后运动继续,然后取消 #1026

我的期望是,在取消时,来自 UI 的任何进一步命令以及当前缓冲区都将被忽略。我很快就会去商店,并会尝试测试当 UI 断开连接时 GRBL 在取消时所做的问题,看看这确实是 UI 问题还是 GRBL。

进给保持后运动继续,然后取消 #1026

杰瑞特 评论 2016 年 6 月 27 日  

澄清一下,您正在从 bCnc 运行一个 gcode 文件,您按下一个物理 Feed Hold。机器停在它的轨道上。你在哪里按取消?有一个重置引脚,没有取消。

bCnc 很有可能会一直发送线路,直到它识别出保持状态。Grbl 中的队列中可能已经有一些。您可以在 Gui 上重置(当然,在 pin 上执行此操作不会及时与 gui 相关,以便它不会发送更多数据),这会杀死您运行,或者您可以使用 Resume 从您所在的位置继续。我假设您在进行测量时不会移动位置?因为如果你所有的赌注都关闭了,机器和 Gui 的东西在哪里的想法就不再相关了。

您可能希望改为考虑使用“开门”功能。

进给保持后运动继续,然后取消 #1026

Arduino 上的 GRBL 可能知道在 Feed Hold 上忽略来自 GUI 的任何进一步命令。但 GUI 可能会将其视为未执行上一个命令并尝试在取消/恢复时重新发送它。这是如果命令没有像 Gerrit 上面所说的那样反馈到 GUI。

如果 GUI 被编程为听 Arduino 进行按钮按下,那么 GUI 应该会做出正确的反应。

如果它没有被编程为监听,那么它就不会知道 Feed Hold 被按下,并且只能相信之前的命令没有执行并在按下取消/恢复按钮并且 GRBL 再次开始监听命令的那一刻重新发送它

进给保持后运动继续,然后取消 #1026

当按下软复位按钮(此处称为取消)时,GRBL 会发送其启动消息。此时,GUI 应该重置除机器位置之外的所有内容(或重置所有内容,并从下一个?查询中重新应用当前位置)。这就是 UGS 处理外部复位的方式。

进给保持后运动继续,然后取消 #1026

谢谢威尔,这包括取消 gcode 文件吗?取消似乎意味着排除简历。

进给保持后运动继续,然后取消 #1026

杰瑞特 评论 2016 年 6 月 28 日  

我确认了 GrblPanel 的反应。
在 Feedhold(物理按下)时,gui 进入保持模式(即 Resume 按钮亮起。
)在该阶段按下 Reset(物理按下)会导致 Err: 在等待的 gcode 行上并停止发送更多。此时您无法继续发送 gcode,您必须倒带并从本质上重新开始。

我将在 GrblPanel 的下一个版本中对此进行一些清理,以避免“错误:缺少进给率”并停止。

@DasWookie如果您测量的结果不满意,我可以假设您正在按下取消/重置按钮,否则您会使用 Resume 继续工作吗?

进给保持后运动继续,然后取消 #1026

如果您确实从 grbl 按下硬件进给保持,bCNC 将检测并报告处于保持状态。但是,如果您按下硬件重置,它将报告空闲并且 bCNC 将继续流式传输。
如果您想在按下硬件馈送保持后停止流式传输,您可以按 bCNC 中的软件“停止”,这将进行软重置并停止流式传输。

@winder提出了一个好主意,当它检测到来自 grbl 的欢迎消息以停止任何流式传输时

进给保持后运动继续,然后取消 #1026

我在 bCNC 中添加了对 grbl 的欢迎消息的检测并停止任何正在进行的运行

进给保持后运动继续,然后取消 #1026

伟大的

2016-06-28 15:32 GMT-03:00 Vasilis Vlachoudis notifications@github.com :

我在 bCNC 中添加了对 grbl 的欢迎消息的检测并停止
任何正在进行的运行


您收到此消息是因为您订阅了此线程。
直接回复此邮件,在 GitHub
#1026 (comment)
上查看,或 将帖子静音
https://github.com/notifications/unsubscribe/AK4bcQ-fqOFvVfdR39GIOHkMqBDKCdNcks5qQWi4gaJpZM4I_H1x

进给保持后运动继续,然后取消 #1026

昨天,当我在我的 oun GUI 中编程时,我发现完全一样,因为我正处于程序的开发阶段,我不断地打印到 consoie 以跟踪它。我发现,当发送保持命令时,GRBL 会进入受控停止状态,但它似乎在它已经在做的运动中确实如此,因此缓冲区没有被完全处理。当您发送简历时根本没有问题,但是如果您尝试取消(在我的情况下通过软件没有像 Hold 本身 ot 那样实时的 grbl 命令?绕过缓冲区中的剩余部分,所以如果您发送重置ctrl-x,首先在重置之前执行缓冲区中剩余的内容。我还尝试使用serial.flushOutput()来查看我是否可以摆脱剩余部分,但没有运气。我没有真的知道剩余部分是否留在串行缓冲区中,奇怪的是,serial.flushOutput() 在它应该完全按照需要做的事情时似乎什么都不做,或者其余部分在内存中被捕获。但事实是(据我所知)如果您发送暂停,请立即暂停任何其他命令,以确保您发送的最后一件事是暂停,然后蚂蚁发送一份简历,从一个到在执行进给保持之前发送的三个命令

进给保持后运动继续,然后取消 #1026

进给保持后运动继续,然后取消 #1026

进给保持后运动继续,然后取消 #1026

正如你这次可以看到的,三个逗号待定

进给保持后运动继续,然后取消 #1026

@juliolarab: 你说的不对。首先,Grbl 总是在软复位 (ctrl-x) 时刷新规划器缓冲区和串行缓冲区。这包括它已发送的任何内容,并且正在等待解析任何执行。Grbl 绝对不会在重置或允许执行任何操作之前等待。它实时重置系统。其次,如果重置没有发出警报,如果 Grbl 在那一刻处于运动状态,它将立即开始接受命令。您所描述的问题可能是您的自定义 GUI 中的错误以及 Grbl 期望数据的方式和 GUI 期望的方式的普遍不匹配。

至于串行刷新,Grbl 不允许故意为此使用显式命令。这是为了防止新手 GUI 编写者在不重置 g 代码模式的情况下重新启动/恢复作业。如果您不重置模式,而不是按照您第一次运行它时所期望的方式重新启动,您的作业可能会崩溃。这是 CNC 机器的标准行为,始终需要软重置以使机器恢复默认值。

进给保持后运动继续,然后取消 #1026

让我解释一下我在做什么。该算法从文件中读取并检测到“ok”写入行直到 124 个字节,这个保留是一个用于?commans and 3 for appendeng a $G in case line is like to change any G,当请求保持时写入的部分被禁止,所以它继续读取并发送轮询?(0.125 秒)。因此,如第一个屏幕所示,GRBL 确认了 Hold 状态,并且作为 ? 不是弯腰 DROS 上的数据必须是真实的。正如我之前所说,如果您恢复没有问题,但是如果您发送一个“~”以退出保持状态(在算法中也会中断),我 100% 确定没有写入任何其他内容,并且系统会像您看到的那样移动这些命令来自的 DROS 的变化。?

进给保持后运动继续,然后取消 #1026

谢谢你的时间,

进给保持后运动继续,然后取消 #1026

在简历中我正在做

用户请求暂停 = 发送“!”

如果用户请求简历 = 发送 ‘
如果用户请求取消
选项 1 = 发送 ‘

选项 2 = 发送 ‘~’ + 发送 ‘^X’ 我正在使用 (b’\030′)

我相信选项 1 应该足够了,如果已经处理,我可以看到重置系统的真正原因。
在这两种情况下,系统都会移动,然后系统会进入警报状态,因为在编译时选择了该选项

进给保持后运动继续,然后取消 #1026

@juliolarab

  • 请仔细阅读“与 Grbl 接口” Wiki。我已经在那里概述了如何与 Grbl 通信以及它是如何工作的。它相当完整。尽量不要发明自己的通信算法。你的很多问题都可以通过仔细研究得到解答。
  • 如果您在运行时重置 Grbl,它会发出警报,因为它在运动时停止并且由于不受控制的减速而无法保证位置。如果您打算保持位置并避免警报,请不要在进料暂停期间恢复 Grbl。
  • 实时命令不进入串行缓冲区。它们直接从串行中断中提取。所以不要数他们。
  • 我强烈建议您坐下来直接与 Grbl 互动,以了解 Grbl 在做什么,然后再发布更多问题。或者,既然您显然知道如何编程,请查看源代码,其中所有内容都经过很好的注释和布局。这通常是对 Grbl 实际工作方式的误解,数十个 GUI 可以毫无问题地控制 Grbl 就证明了这一点。
喜欢 (0)

您必须 登录 才能发表评论!