注释
是的,我有。在三个作业中运行@Harvie版本,一个随机失败并出现相同的错误。该控制器使用带有 CP2104 USB 至 UART 桥接器的自定义 Uno。 |
你能把你要运行的 g 代码发给我们吗? |
是的 grbl 版本 1.1f。gcode 可在此处获得:https ://pastebin.com/cyYP13HA 。 |
在我看来, |
我在这里阅读了有关 FT232 和 CH340G 设备发生这种情况的其他问题。现在 CP2104 似乎也被添加到这个列表中。这些是使用非常广泛的 USB-UART 桥接器,如果所有桥接器都出现此错误,则可能是解析器出了问题,而不是实际硬件出了问题。顺便说一句,我用 OpenCNCPilot 运行了四个这样的轮廓 gcode ,它们都完成了,没有任何故障。 |
对我来说它似乎运行正常。有没有可能你有一些硬件问题?USB 电缆太长或太松?或任何其他类型的松散连接?非屏蔽电机电缆?炸arduino? |
好的… |
某些品牌的 USB 串行转换器应该损坏 g 代码没有正当理由。如果他们这样做,他们就是越野车。我建议您将 arduino(和 bCNC)设置为较低的波特率。不知道这是怎么做到的。我想在 GRBL 的情况下你必须重新编译。不确定。 |
是的。USB 串行芯片中可能存在一些“缓冲区溢出”,当数据传输速度过快时会发生这种情况。这发生在我身上,使用便宜的 USB-MIDI 转换器。这就是为什么我建议降低波特率。也许它甚至需要在 g 代码行之间添加一些延迟。但那是硬件错误。 |
您是在模拟器上还是在真机上运行代码?如果我没记错的话,你不能用 grbl 1.1 降低波特率。它必须是 115,200 或更高。 硬件很好,因为这些作业与其他软件一起运行良好。末端止动器经过噪声过滤,电线很长但被屏蔽了。 |
但是:为什么 bCNC 可以在 raspi3+b 上运行很好?;-) 我发现:Windows 和他的设备驱动程序在快速硬件时序方面存在内部问题。 |
我可以越来越多地重复这个…… 您遇到的问题与 USB 到 UART 桥接器和 Windows 接近;-) 沃尔特 |
@Harvie谢谢!我知道您可以在 config.h 中更改波特率,但我记得在某处读到它不应更改为小于 115200 的值。我会查一下。 @walterwissmann感谢您的所有测试。您使用的是什么硬件?我将尝试更改设置中的波特并返回报告。但是,更改特定软件的通信设置似乎很不方便,尤其是当它与其他软件一起工作时。 |
好的,让我尝试使用另一根 USB 数据线。我硬件上的终点站有一个 RC 滤波器,后跟一个施密特触发器缓冲器。我知道终点站不是造成这种情况的原因。如果真是这样,那么我们就不会看到串行错误。 |
你确定吗?AFAIK 在 arduino 中没有 +12/-12V,因为它是 TTL 或 5V 逻辑。我只有在使用非屏蔽主轴电缆时才会遇到干扰问题。需要说我没有安装限位开关,因为我发现不需要使用它们。@classbproject您是否尝试过禁用 grbl 中的限位开关以确保它们不会被 EM 干扰意外触发?测试完全禁用它们比尝试微调硬件更容易。 |
(早上好,沃尔特 :-)) 是的,我自己找到并删除了它;-) |
@Harvie不,我不想禁用限位开关。这台机器又大又重,当我犯下愚蠢的错误时,我不想让任何东西崩溃。我知道他们没有被触发。在任何情况下,如果他们确实触发了,我的控制器就会有一个视觉指示表明它被触发了,但我什么也没看到。 快速更新:我将波特率更改为 19200。这现在将 CP2104 的波特时钟分频器设置为整数。现在唯一的错误是内部振荡器因温度等因素而偏移 – 这些因素无论如何都超出了用户的控制范围。我只试过运行该程序的一个实例,目前看来运行良好。这与您的 bCNC 版本有关。 |
我打算暂时禁用限位开关只是为了检查。但是如果您有视觉指示,那可能就足以确定了。但请注意,EMI 只会在极短的时间内触发它们,这可能无法像 LED 闪烁那样被肉眼捕捉到。除非你有一些闭锁机制。 你能用别的东西代替USB桥吗?例如。贸易投资?也许在那里切断痕迹并搭载一些 FTDI 模块。 无论如何,这肯定不是 bCNC 的问题。各种 g 代码发送器之间可能存在一些时间差异,这会导致 CP2104 错误不适用。但我认为正确的解决方案是使用没有问题的芯片。 |
我的终点站有一个低通 RC 滤波器,后跟一个施密特触发器。这使得它们极不可能因为 EMI 而触发。 RX 和 TX 引脚断开,所以我可以尝试使用 FTDI。CP2104 实际上是一个很棒的芯片,我也一直在其他项目中使用它,没有任何问题。事实上,Adafruit 在他们的 Huzzah 板上用这个替换了他们的 FT232。我不认为芯片有问题。 |
您可以将第二个 USB 串行桥连接到 CP2104 的 TX 引脚,以在发送到 arduino 时检查其输出。只要确保使用相同的电压电平即可。 |
你解决了吗? |
@Harvie不,我没有时间测试你的建议以查看 CP2104 输出。然而,我确实使用 UGS 来运行相同的部分并且运行完美。我最终放弃了 bCNC,并在 OpenCNCPilot 和 UGS 上完成了我所有的部分。在这些软件上运行的很好,说明CP2104没有问题。 |
无法重现。 |
我现在已经在两份工作中经历过这种情况。该程序只是在周期中间停止并终止所有内容。单击暂停或停止没有任何效果。这是它向我显示的错误消息。谁能帮助我理解为什么会发生这种情况以及如何解决这个问题?