注释
|
使用当前 Grbl v1.1 版本在 Arduino 上运行您的 gcode 程序。没有错误,除了 M6 工具更换线,这是预期的。我使用 stream.py 脚本来运行作业。 请分享您的 Grbl $$ 设置、$I 构建信息输出,并列出您对 config.h 或其他源文件所做的任何更改。 |
|
UGS 具有过滤线路和更改发送到 GRBL 的数字精度的功能。 在 Fusion 中,我注意到导入和导出半径通常非常小,正是这些微小的弧线导致了错误。这些弧线通常是垂直方向的,这可能在某种程度上导致了这个问题。 您也可以尝试我的后处理器 |
|
@chamnit这可能是某些硬件问题(例如静电)的结果吗?地面不好?靠近我的笔记本电脑电源砖的 USB 线是否会引起干扰?真的很奇怪,它只出现在第一次传球的开头,而没有出现在其他任何地方。如果这是一个一致的问题,我之前的任何问题对我来说都会更有意义。有没有办法嗅探 Arduino 的接收缓冲区以查看 Arduino 实际接收到的内容? 我有一个备用的 Arduino,我将它闪存到 GRBL,然后一遍又一遍地在上面运行代码,我无法让它出错。 [VER:1.1f.20170417:SKIPPY] $0=10 @swarfer如果 UGS 正在修改文件或 Fusion 引入了一些错误的导入/导出,是否会导致我遇到的间歇性错误?该代码在某些情况下可以完美运行,但在其他情况下则不然。归位限位开关与 G28 结合使用非常有用。我强烈建议使用它。 |
|
重新阅读您所说的话,我现在认为您的电线中有噪音而不是电弧错误。 Fusion 不会产生 -bad- 导入/导出,它们只是非常小,因此需要在坐标中提供额外的精度,以便开始和结束半径在限制范围内。如果 UGS 限制了精度,那么微小的圆弧就会断开,但这将是一致的,所以不是你的问题。 我同意归位开关很有用,但它们确实设置正确,接线必须正确。家庭开关噪声是该论坛上问题的最大原因(-: |
|
通常 USB 错误表现为超时和断开连接,而不是破坏数据,但这并非超出可能性范围。我会系统地隔离您的 CNC 的组件,以确定问题出在哪里。通常来自您的主轴的功率尖峰和不良接地是这些类型问题的根源。 |
|
您应该能够通过将另一个 Arduino 连接到 RX 和接地引脚并打开串行监视器来嗅探接收缓冲区。另一种方法是在 config.h 中启用 echo 选项,但这通常会破坏 GUI,因为他们不希望额外的消息返回。 |
|
将 rx 中断中所有接收到的字节相加并在发送方中执行相同的操作很容易,那么所缺少的就是读回该值的方法,以便您可以进行比较 |
|
隔离部分的困难在于事件的间歇性。我想我将不得不对其进行大量测试,以确定一些关于它出错频率的基本统计数据(比它应该的多得多)。然后慢慢地从等式中删除一些东西,直到错误有望停止发生。有人可以建议使用不同的 GCode 发件人来帮助解决这个问题吗?它不必功能丰富,只要有用就行。 已多次提到 config.h 文件。我没有亲自编译任何东西。Inventables 的 Easel 程序将最新的 GRBL 作为设置的一部分上传到我的机器。如果隔离组件/更好地接地不能解决问题,我会进一步研究这个选项。 托管 GRBL 代码的“Arduino”是 Inventables X-Controller 的一部分,因此我不确定连接到 Atmega 的串行线路有多容易,因为它位于定制电路板上。我得把它打开看看。我希望他们为董事会上的人留下终端。 |
|
@jhndrx: 在你去对你的 X-controller 做任何事情之前尝试非侵入性测试。也可以尝试致电 Inventables 客户支持。他们非常擅长确保您得到妥善照顾,尤其是当您使用他们的产品时。 此外,检查以确保您使用的 UGS 版本支持 Grbl v1.1。UGS 1.09 似乎是一个旧版本。您可能应该使用 UGS 平台。虽然我听说 UGS Classic 的某些版本确实支持 v1.1 |
|
@chamnit强制性测试绝对是最后的手段。最新的UGS sports 1.0.9下载页面。然后在底部他们说 UGS Platform 是 Nightly builds 的一部分。我认为这意味着 UGS 平台还没有完全准备好/稳定。我现在看到他们在哪里声明每晚构建所基于的稳定构建。我会把它作为我改变的第一件事。 |
|
我不熟悉 XController,但你给出的描述与我在使用 arduino Nano for Grbl 时遇到的错误非常相似。Nano 使用 CH340G USB 转串口芯片,这就是我确定问题出在 Nano 上的原因。正如我所说,我不熟悉 xcontroller,也不熟悉他们使用的 USB 转串口芯片,但这可能是相关的。我发现的错误类型可能会在带有 atmega 8U2 USB 芯片的 Arduino UNO 上重复出现,但频率要低得多,而且不会出现在 115200 波特率下。WIKI 在“USB to Serial Transmission Errors”标题下对遇到的问题进行了简要描述. 维基描述有一个指向涵盖该问题的长问题线程的链接。无法在配备 ch340 的 Arduino 上纠正此问题,但可以减轻其影响。以下是您可以尝试的一些事情: 1 设置您的 GUI 以降低执行状态更新的频率。我使用 0.1 或 0.2 秒更新,有时将它们全部关闭。 再一次,我不知道这是否是你的问题,但我想我会把它扔在那里。 |
|
我尝试发送与最初发布的脚本相同的脚本,但我无法设法让它再次出错(没有软件或硬件的模组)。UGS 1.0.9 似乎是最后一个正式发布的版本。2.0.0 仍在开发中。对于很多人强烈推荐的软件,文档相当缺乏。1.0.9 似乎使用了字符计数,因为它发送了多个命令,因此错误会被跳过。版本 2.0.0 似乎一次发送一个命令并等待响应,允许它在发生错误时冻结。这解决了错误问题。我会认为这已经结束,因为我似乎无法轻易地复制这个问题。然而,这当然不能解决根本原因。 通过一些挖掘,我确定X-Controller使用 FT232RL 进行 USB 到串行通信。我为自制的“Arduinos”使用了相同的芯片,其中一个加载了 GRBL 1.1,我继续尝试重现错误但无济于事。我想有几天它不想合作。 |
|
我自己一直在寻找错误,并认为我已经找到了原因,本着帮助社区的精神,我想我会在这个帖子中发帖,因为它在谷歌上很显眼。 我有一个使用 9600 步/毫米的步进电机,我试图以 500 毫米/分钟的速度运行它。这相当于尝试以 80kHz 的频率运行电机。每当我试图以 500 毫米/分钟的速度移动它时,它似乎会重置 GRBL 板。在不重启电路板的情况下,我能够在单轴上达到的最大速度是 250mm/min 或 40kHz。现在我已经将它设置为最大 125mm/min,我希望当多轴同时运行时我不会有任何问题。事实上,我认为我的问题是由于电机扭矩不足引起的,所以我放了一个 3:1 的滑轮驱动器,这就是为什么我必须有 ~9000steps/mm,否则它是 ~3000。希望这对某人有帮助。 如果您有兴趣,我的设置是带有 1mm 导螺杆的 unimat 3 微型车床。 |


CAD/CAM:Fusion360
发送器:UGS v1.09 来自笔记本电脑
CNC:XCarve
控制器:使用 Grbl 1.1
路由器和真空的最新 XController 在 20 安培电路上。笔记本电脑、控制器和其他非电机项目位于单独的 15 安培电路上,因此路由器和真空吸尘器的电机不应受到影响。
错误码参考:
我遇到过许多毁掉我的雕刻的错误,但我无法查明是什么原因造成的。我可以运行一个 .nc 文件,它会在某些命令上出错,停止脚本并重新发送,它会无错误地运行。到了这样的地步,我不能在不弄乱某些东西的情况下进行一次雕刻。我觉得消息在传输过程中或在 grbl 控制器内部的某个时刻出现了乱码。我这样说是因为“G1”命令未在错误 33 下列出,但它们正在触发该错误。此外,我遇到的错误 35 是在一个在其他情况下有效的命令上出现的,它显然有一个“IJK”组件。
我已经将相关数据从 UGS 复制到 excel 文件中(从雕刻开始直到我停止)。您可以看到完全相同的一组命令一次有效,另一次出错。我注意到这些错误有一个奇怪的模式。它们只出现在雕刻开始附近。这通常会破坏围绕多深度轮廓的第一个循环,然后其余循环是完美的。
3)2F Downcut.txt(我的.nc 文件)
error.xlsx
工作正常.xlsx
你可以在下图中看到,在右下角,一旦到达弧线的起点,它就没有执行,而是直接向左射击。这再次在左下角直接向上重复。

在同一次雕刻过程中,我遇到了另一组错误,当再次运行时它运行得非常好。
3)2F Downcut.txt(我的.nc 文件)
error2.xlsx
工作正常_2.xlsx
下图显示了与第一个类似的事件。它没有完成工件拐角处的小圆弧,因此在第一次通过时就切入了材料。其余的通行证按他们应该的方式进行。

来自不同雕刻的最后一张图片(无数据)是我钻孔的地方,我第一次在库存中运行脚本它工作完美,然后我再次在我的废板上运行脚本(双面件的安装孔),第一遍向后循环,然后其余的切割都很好。(同样,第一遍错误,没有其他错误)。