注释
这有可能得到实施吗?在以下条件下,当前代码将始终抛出 GRBL 1.1 错误: 由于这会在探测功能期间引发错误,因此 bCNC 无法妥善处理它,需要完整的 Arduino 重新连接才能清除警报状态。 |
刚刚注意到一个问题 所以我想用 GRBL 1.1 中的新点动命令来解决这个问题。不幸的是,bCNC 认为“J”后面应该跟一个浮点数,并将“J=”替换为“J0”,这当然行不通。 这是一个完整的补丁。但因为它仅适用于 GRBL 1.1。我看到让它与 GRBL < 1.1 一起工作的唯一方法是添加一个用户可配置变量来设置“toolprobe pull-off”。即使这样,如果用户更改 G20/G21,它也会搞砸。虽然老实说方法中的所有变量都有同样的问题。我认为如果单位颠倒,即使转向触摸板也会搞砸。
|
谢谢。 |
这还是问题吗? |
我真的不能说,因为我不再使用 bCNC。对不起。 (在一台新机器上,我需要比 GRBL 所能提供的更高的步进率,所以我切换到 LinuxCNC。) |
我相信是的。在使用校准和换刀功能时,我遇到了一堆不同的错误情况。当它工作时它很棒,但我从来没有能够连续运行它 3 次而没有出现问题。 有时,无论是 Calibrate 还是 Tool Change,工具都会移动到探头位置并冻结在那里,需要重置连接。有时它会到达一个完全不正确的位置并开始降低 Z 就像探测一样。我还没有弄清楚该位置信息的来源。它距离实际探头位置大约 16 英寸… 我会更多地尝试这个,我很乐意帮助解决问题。当它正常工作时,这个功能是惊人的! |
我刚刚合并了听起来有点相关的PR #1139 。你能检查一下最新的 github master 版本是否解决了这个问题吗?否则我需要一些想法如何解决这个问题,这对我来说很难调试…… |
我今天会试一试。仅供参考,我认为这与 G20/G21 有关。也就是说,事实证明,是什么导致它进入我上面提到的“完全错误的位置”。在将 G20 重置为 G21 的幕后出了点问题,然后发送探测命令并使用相对坐标(但使用公制而不是英制)到达“探测位置”。 FWIW,我不是 Python 专家,但我有一定的编码能力(iOS 开发工作,主要是……),所以我认为我可以很快上手,并且可能在这里成为额外的一员。我很想能够回馈。我会为此进行设置 – 对 IDE 等有什么建议吗?我主要是 Mac 用户,但我可以访问所有 3 个平台…至少,我会更好地提供良好的调试信息并尽量减少猜测。 仅供参考,我在 Rasp Pi B+ 上运行 bCNC,驱动在 Arduino Mega 2560 上运行的 GRBL 1.1。该机器是一台 DIY 3 轴 CNC 铣床,工作区为 17”x18”x7”,NEMA23 步进电机和 D542T 驱动器@36v. 我在所有 3 个轴上都有限位开关、用于工具长度偏移的探针板、Flood 和 Mist 冷却剂继电器输出、主轴速度控制等。这是一个很好的调试测试平台,因为它几乎实现了 GRBL 的所有功能。 谢谢! |
我不使用任何 IDE。只是我最喜欢的文本编辑器。由于 Python 是解释型的,因此不需要特殊设置。安装并运行 bCNC 后,您可以编辑 .py 文件并重新启动 bCNC 以测试更改。然而,最好运行 bCNC 的最新 git 版本,这样你就可以保持最新状态。如果你设法在一些旧版本中解决了这个问题,我们仍然可以尝试将它移植到最新的 git master。但是为了开发目的运行最新的代码更容易…… |
啊,我被挂断了,不明白 GUI 是如何完成的——Tkinter……慢慢地,我正在学习…… 现在我的机器已经基本建成,我可以专注于它的软件端。我会更好地记录我遇到的错误等。我一直在使用 UGS,直到最近才切换到 bCNC,我发现它非常优越,但也有它自己的错误。我真的很高兴看到正在积极开展这项工作。我会尽快跟上进度,尽我所能提供帮助。至少,我可以在文档和测试等方面提供帮助。 谢谢(你的)信息! |
我做了一些测试,但是当我遇到其他不相关的问题时需要做更多的事情。不过,在那之前,我能够在出现错误之前运行 5 或 6 次背靠背工具更改。这超过了我之前的最高分 3。在此修复之前,我可以完成 2 次完整的工具更改,然后它会崩溃或返回警报等。 这一次,在换了 5 或 6 个工具之后,我得到了一个看似随机的、无法解释的软限位错误。我不确定这与此有任何关系,但我不确定还有什么可能导致它,因为我所做的只是在工具更换后更换工具。明天我会尝试重复一遍。 |
如果禁用软限制怎么办?您可以使用 bCNC 的“间谍”功能来检查是否发送了一些可能导致软限位错误的 g 代码命令? |
我想我可以禁用软限制,但我不认为这是一个合法的软限制错误,因为我只是在执行工具更改 – 除了工具更改代码中包含的任何内容之外,不发送任何 g 代码。我没有告诉机器去任何会触发旅行错误的地方。 我能想象的唯一可能发生的事情是,如果“零”被重置为执行工具更换之前的其他东西,并且在工具更换代码中,它会指示机器去它现在认为已经超出的地方的范围。该代码是告诉工具转到换刀位置、探测位置还是返回换刀之前的位置的部分,我不确定,但它似乎在中间变得混乱换刀操作。那有意义吗? 顺便说一句,我刚刚在新的 Raspberry Pi 上进行了全新安装。与我的实际机器运行的安装相比,我注意到此版本有几处不同。值得注意的是,配置;控制器; 字体;快捷方式等菜单现在位于 CAM 选项卡上,它实际上似乎在做一些事情!我无法让这些按钮执行任何操作,它们位于“文件”选项卡上。 我将继续记录我正在做的事情,包括使用非常酷的 Spy 功能,顺便说一下。我将重复“继续进行工具更改,直到出现问题”测试,看看昨天发生的事情是偶然的还是可重复的。我会尝试“监视”整个事情——谢谢你的提示! |
好的,进步了。我把机器更新到最新的,而不是在我拍了一张屏幕不同的照片之前,尽管报告了相同的版本号…… 这一次,我在另一个终端窗口中使用间谍功能运行,并在工具更改时进行观察。我注意到的是,在循环结束时,在换刀位置第二次暂停后,按恢复键返回工作。它将工具发送到正确的工作位置,但一旦到达那里,GRBL 就会重置。当它发生时,您可以在串行流中看到有趣的字符,然后当它备份时,您会看到与 GRBL 首次启动时相同的提示。 幸运的是,我一直在 $N0 中设置 G20,所以当它恢复时,它发送了 G20,我又回到了英寸。之前,如果 G20 没有被重置,它会重新启动,然后出现在公制中,这会导致任何后续动作不正确。 问题是,为什么GRBL终于回到工作地点了还要重启呢? |
我肯定会 – 我通常以英寸为单位工作。抱歉……美国……我所有的仪器都是千分之一…… GRBL 实际上应该在换刀结束时重置吗?这对我来说似乎不对。我将尝试重做此测试并将终端输出捕获到文件中。 |
最近我添加了在工作完成后重置 GRBL 的代码。在与 GRBL 开发人员讨论后,我根据其他一些问题完成了此操作。如果它是在工具更改后在作业中触发的,那就是一个错误。 |
好吧,我能够让这种行为重复,但好消息是它确实会重复再重复。我已经有一段时间没有失败了。在工具更换操作完成后,它似乎正在重置 GRBL,但由于我确实已正确设置所有内容,它以英寸为单位恢复并恢复正常工作。 附件是会话的输出。我在第 639 行看到第一个 Grbl 重置,然后在第 1368 行再次看到。我确信它在我执行工具更换的 5 或 6 次左右的每一次重复。在每次更换之间,我会稍微慢跑并运行主轴,只是为了在换刀之间发生一些事情。您还可以看出 GRBL 正在重置,因为 UI 会在几秒钟内处于非活动状态,没有可单击的按钮,然后它会恢复在线并正常工作。 你可能已经解决了这个问题!!我将尝试使用多种工具设置一个作业,看看它在更真实的场景中的表现。 |
但我没有改变任何东西……你改变了bCNC设置或版本吗? |
我确实认为我更改了版本,但我不确定我从/更改到哪个版本。我一直在使用的版本在更换工具时出现错误,配置、控制器、字体等菜单位于不同的位置,而不是像现在这样位于 CAM 选项卡上。自升级到最新版本以来,我已经能够连续进行 6 或 7 次工具更改而没有错误。从我之前的帖子中,您可以在附加的文本文件中看到 GRBL 在工具更换周期完成后重置,但它恢复正常。 不相关的,我也开始玩弄 Python 一点,我改变了 bCNC UI 以更好地与我的触摸屏一起工作。我将状态和控制框架更改为不再崩溃,这让我抓狂。我还使所有的用户和慢跑按钮更大,以尽量减少误触等。现在好多了! |
在换刀过程中,bCNC 发出以下命令(使用“fastprbfeed”时):
在 CNC.py:toolChange() 和 ProbePage.py:calibrate() 中
假设 z[toolprobez] 非常接近最大机器 Z,这会引发错误(至少对于 GRBL 1.1),因为 GRBL 认为它可能会在工作区域之外结束(如果 [prbcmdreverse] 在到达之前不会停止,这将是正确的z[工具距离])。
我认为用 g90 替换 g91 并移动到 z[toolprobez] 会解决这个问题,但它不会,因为 z[toolprobez] 在机器坐标系中。不幸的是,G53 不支持 G38.x 作为移动命令,所以没有办法(我可以看到)确保留在工作区域内。
作为妥协,我将最后一行替换为:
g91 [prbcmdreverse] f%f z2.0
我不喜欢这个解决方案,因为它只使用了一个随机常数。这就是为什么我没有创建 PR。
大多数时候它应该没问题(我猜),而且它显然比 z[tooldistance] 好,因为它有效。:-)