注释
迈克:谢谢你的提醒!有一些可能导致此问题的设置限制。 现在,g 代码解析器对每个块有大约 49 个字符的限制,减去任何注释和空格。通常这就足够了,但如果块长度超过这个长度,字符将被丢弃,解析器可能会得到一个不完整的块。我们可以增加 g 代码解析器缓冲区的大小,但内存有限,我们可以将所有额外的空间用于其他事情。虽然,已经有一些线下讨论通过稍微重新组织代码并即时解析块来消除对 g 代码解析器缓冲区的需求,但这可能是我们应该标记以在下一个版本中更改的内容v0.9。 此外,grbl 上的串行输入也有大约 127 个字符的限制,这意味着主机发送的完整行(包括注释)不能超过此长度,否则字符也会被丢弃。不过,这似乎与您的问题无关。 最后一件事可能是每个数字中的位数,如果超过 8 位可能会吓坏。我必须检查是否存在与此相关的错误,但我建议您使用与你的机器的精度。所以在大多数实用的 CNC 机器上,这大约是 0.01 毫米或 0.001-0.0005 英寸。 |
糟糕,抱歉,我想我没有正确阅读整条消息。您遇到了中止问题。我的错。我将不得不查看源代码并测试一些东西以确定发生了什么。但这可能与没有正确重置缓冲区的长注释有关,或者与仍然与位数有关。 |
桑尼, 感谢您调查。与此同时,我将尝试对文件进行 preGrbl 以摆脱那些荒谬的数字。我的机器有 2.5 微米的分辨率,所以我只需要 4 dp,而不是 6! 麦克风 |
行。想我找到了问题所在。它是您的脚本(至少在我的 Mac 上)的一部分,也是 grbl 错误的一部分。首先,您的脚本需要调整发送到 grbl 的行。这仅意味着您需要发送一个回车符。为此,将 a 附加 grbl 错误原来与中止时的主轴关闭控制有关。由于某种原因它崩溃了。我将在今天晚些时候发布修复程序。感谢 Mike 报告此问题。 |
没问题 – 很高兴你能查个水落石出。感谢您提醒我的脚本。 |
我在中止函数中发现了一个错误。我认为这是由于发送和确认了很多长命令(例如,括号中的注释,或小数点后 6 位的命令),并且在此之后发出了中止命令,然后 grbl 停止响应。
我所说的“停止响应”是指在收到重置后发送到 Arduino 的任何命令,但没有任何回传。
这是我使用的流文件,它给了我这个错误:
如果文件一直持续到结尾,或者如果它在同一点暂停/恢复,则没有问题 – 只有中止才会执行此操作。
这是我使用的文件,它给出了这个错误:
http ://www.mediafire.com/?hsgrb5gy59km1h4
我有不会导致此错误的文件的较不详细版本,但我认为这个问题值得提出。
(顺便说一下,如果这只是我对 grbl 的编码/理解不佳,我深表歉意!)