注释
|
是否有可能因为不等待“确定”响应而导致 GRBL 中的接收缓冲区溢出? |
|
我明白,但在发送另一个命令之前我已经在使用“等待确定”协议。可能我没说清楚,抱歉。 在流式传输期间,我可以在处理控制台上看到(感谢我放在代码上的一些 println() )在每个命令之后收到响应“ok”,直到阻塞命令(随机)。这就是为什么我找不到原因的原因,我认为我正在正确地等待“确定”… 当我在旋转计算(旋转方向、步数、旋转频率)和命令发送之间添加延迟时,就会发生冻结问题。 但是你对 GRBL 中的接收缓冲区是正确的。我认为它在某些“随机”时间不会自行清除……但目前无法检测到原因…… 我知道我的解释并不完美,所以我会尝试为您开发我的 Processing streaming 的算法: WHILE (line < file.length) ……….} 这是非常恢复的我的流式算法。我很确定我在 USB 通信上做了坏事,但我看不到在哪里。 |
|
您使用的是带有 CH340g USB 转串口转换器芯片的进口 Arduinos 吗? 这听起来好像与我发现的一个错误有关,该错误发生在使用 CH340g 芯片的克隆 Arduino 板上。发生的情况是,芯片偶尔会截断一些发送到 GRBL 的数据。被截断的数据通常是从一行中间的某个地方到下一行的中间。这会导致 GRBL 无法获取行尾字符,并可能导致 GRBL 发回错误。 您的流代码是否有响应 GRBL 生成的错误以停止运动的规定? 您可以在 wiki 的“已知错误”页面上阅读有关此错误的更多信息,链接如下: |
|
非常感谢您的回答,我今天会试试这个。 |
|
好的好消息! 因为我没有成功将我的 GRBL 程序刷新到我的 Mega 板上(因为库冲突),我决定重新安装所有东西:Arduino IDE + GRBL 并删除我电脑上所有以前的 GRBL 版本。之后我尝试安装最新版本的 GRBL (0.9j) 但它在 UNO 上有效但在我的 MEGA 上无效! 所以最后我找到了仅适用于 Mega 的 0.9f 版本,并且由于该更改我的 G 代码文件已完全流式传输成功! |


大家好,
首先,我是新来的,我不会说一口流利的英语,所以如果您不明白我的问题的一部分,请随时告诉我。这个问题是 – IMO – 链接到 USB 连接,但我不能 100% 确定。问题是 GRBL 似乎冻结在“随机”位置(运动的开始或结束,从不在运动中)我会尽可能清楚地解释我的问题:
布线:我们在一台 Windows 7 PC 上有处理应用程序,一个 Arduino MEGA(包含 GRBL)和一个 Arduino UNO(命令 3 个分别命令的电机,以快速恢复:
当前行为当我只等待 GRBL 的“确定”时,流式应用程序已在 15 日完成 15 次尝试。但是,当我在等待一个新角度(由 Arduino Uno 的 Processing 应用程序接收)时取消注释该部分时,它似乎导致随机冻结(在 15 次尝试中,只有 6 或 7 次完成)。我准备给你所有你需要的代码来帮助我,当然,不要犹豫。我真的希望这个项目能成功。
问题可能的原因是我在 Google 上搜索了太多次,以至于我目前被屏蔽了。我只是想知道一些事情,比如:
但我真的不认为问题来自于此,因为当我添加旋转功能时行为发生了变化。
要恢复,只要我需要在继续流式传输之前等待某些东西,应用程序或 GRBL 就会冻结。我不确定真正的原因……
我真的需要为我的流媒体程序添加功能,否则 GRBL 解决方案对我们来说可能没有好处……这意味着我这一年的工作没有用:(
请帮我!提前感谢任何可以给我一些想法的人。
最好的祝福