评论
顺便说一句,我尝试启用“显示状态消息”和“将流量记录到文件”。没有生成任何状态消息,并且日志文件为空。 |
我安装了一个串行端口嗅探器(HDD 软件的免费串行分析器)并且看到了一些非常奇怪的东西。当我启动 Candle(重置原始位置并在探测后抬起工具)时,我得到以下信息:( 18。 3楼? (从 grbl 读取)000142 0D 0A 47 72 62 6C 20 31 2E 31 66 20 5B 27 24 27 ..Grbl 1.1f [‘$’ 3C 41 6C 61 72 6D 7C 4D 50 6F 73 3A 30 2E 30 30 <报警|MPos:0.00 当我启动 OpenCNCPilot 并连接时,我得到以下信息:( 0A 24 47 0A 0A 24 23 0A.$G..$#。 3楼? (从 grbl 读取) 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 8888888888888888 因此,在 OpenCNCPilot 的情况下,grbl 软件似乎有些“混乱”。两种情况下端口的波特率都是正确的,但我不知道大小、奇偶校验和停止位设置。此外,如果有任何 RS-232 控制信号(DTR、CTS 等)发挥作用。 也许这会有所帮助。
|
我忘了补充,在运行 OpenCNCPilot 后出现奇怪的行为,如果我启动 Candle,清除警报后一切正常。我不知道这个警报的来源。(您可以在蜡烛“嗅探”中看到警报。) |
嗨,马克, 感谢您使用分析仪对此进行调查。这是一些非常奇怪的行为。在这方面唯一的区别可能是 OpenCNCPilot 没有设置 DTR 信号,所以 grbl 在连接后不会重置(不知道 Candle 是否也这样做)。你用的是什么板,用的是什么USB串口转换器?你有没有闲置的Arduino?我很想看看它是否也发生了。 马丁 |
嗨,马丁,马克, 在处理另一个 G-Code 流光(GRBL-Plotter)时,我偶然发现了您在跟踪中遇到的这个神奇的“3F”,请参见此处。 据我所知,当在串行通信中使用标准 ASCII 编码时,字符 3F(65 dec,’?’)替换了 127 dec 之后的字符。 也许你,马丁,通过切换到另一种串行通信方案来破坏通信(我想我在其他一些问题上读过这个?但也许我弄错了……)。 Sven(GRBL-Plotter 的)必须将接收代码替换 有关他实现的完整字节处理代码,请参见此处。 HTH, |
Martin,我刚刚查看了Candle源代码,串口配置为8-N-1,没有流控。(因此不会使用 RTS/CTS。)我还有其他一些 Arduino (Uno) 板,但我必须检查代码是否能在裸板上正常工作;一个没有步进驱动器。 查看 OpenCNCPilot 源代码,似乎 SerialPort 类的设置非常标准。虽然我在类参考文档中没有看到任何指示 RtsEnable 属性默认值的内容。 哈拉尔德,“?” 被 Candle(和 grbl 1.1f)用作棋盘查询命令。(参见维基:https ://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands )在上面的蜡烛嗅探中,这是响应“?”的“警报”信息。查看链接,GRBL-Plotter 日志窗口似乎是将 0x85 转换为 0x3F 的地方。(嗅探器跟踪显示流中的真实 0x85。)
|
Martin,板子是啄木鸟数控板,采用CH340 USB转串口芯片。 顺便说一句,我刚刚尝试使用 Arduino IDE 和 PuTTY 使用 CON 端口连接到电路板,但都没有启动主轴。我能够毫无问题地将 G 代码命令发送到电路板。(他们确实工作了:-)
|
嗨马克, 哈拉尔德 |
一些更多的信息。查看 Woodpecker 原理图,CH340 提供 TxD 和 RxD(正如预期的那样),但也提供 DTR。所有这些都连接到 ATMEGA328P 芯片。然而,值得注意的是 DTR 用于切换 RST 引脚。 在 port.Open() 调用处设置断点,我启动了 OpenCNCPilot。正如预期的那样,当我尝试连接 com 端口时,我遇到了断点。查看字段和属性,我没有发现任何意外情况。当我从断点继续时,主轴启动了。 一时兴起,我重新启动了程序,并决定在遇到断点后将 DtrEnable 设置为 true。(在调用 port.Open() 之前。)在这种情况下,主轴没有启动,我可以正常使用该程序。 查看 Candle 用于可移植性的 Qt,QSerialPort 似乎默认设置 RTS 和 DTR。我不确定 Arduino IDE 和 PuTTY 的作用。 因此,似乎与操作系统(在我的例子中是 Windows 7 Ultimate)、com 端口和啄木鸟板有一些交互。由于我的 RS-232 分线盒不能与 CH340 一起使用,我可能必须将示波器(我没有逻辑分析仪 连接到 Woodpecker 上的 DTR/RST 引脚以查看实际情况在。 同样未知的是为什么程序不“工作”(主轴开始转动),然后开始“工作”(主轴没有开始转动),然后又回到“不工作”。
|
是的,DTR 通常连接到复位。Arduino IDE 也设置了这个,PuTTY 也可以配置为设置它(不知道默认值)。 我的猜测是 grbl 在未连接时收到一些垃圾,当 OpenCNCPilot 启动时,它会发送一些换行符,使其执行收到的任何内容。所有其他发送者通过重置板来刷新 rx 缓冲区。这可能是 CH340 的一些怪癖?(不知道为什么它总是启用主轴而不是一些随机动作)。 如果你擅长焊接,你可以尝试在 AtMega 的(grbl 的)RX 引脚上添加一个上拉电阻,这样如果 CH340 的 TX 输出为三态,它就不会对 EMI 敏感。 我想我会添加一个选项来启用 DTR(当然默认情况下是关闭的),这在我看来是最简单的修复方法。 |
嗨马克!
您确定 CH340 的 DTR直接连接到 AtMega328 的其中一个引脚吗? 我找到了啄木鸟板的示意图。这个串联电容器按预期实现。 哈拉尔德 |
马丁,奇怪的是我似乎是唯一一个看到这个的人;除非有其他东西(注册表设置?)在工作。无论如何,我认为设置中的“DTR”复选框是一个不错的选择。(在您确定要如何解决此问题之前,我将只使用修改后的代码。) Harald,CH340 的 DTR 线确实通过隔直电容器 (C6) 连接到 328。我不确定如何获得技术支持。(我从事软件和模拟/数字硬件已经 40 多年了,但我意识到它对很多人来说真的很陌生:-) 我知道啄木鸟示意图的两个版本。一个日期为 2016 年 10 月,另一个日期为 2018 年 10 月。不记得我在本地复制它们时找到它们的确切位置。 解决了这个问题后,我所要做的就是弄清楚为什么即使在应用高度图后工具也没有切穿 PCB 铜。它总是一些东西
|
嗨,马克, 也许我应该简短地解释一下为什么我对您的问题感兴趣: 当我开始使用我的 CNC 路由器时,我决定将控制器部分构建到标准 PC 外壳中。 我配备 CH340 的 GRBL Arduino 可以正常使用不同的控制软件: 啊,是的,要完整: 嗯,没有预期的那么短……;) 无论如何,请在 Martin 推出 DTR 选项时通知我们…… |
我正在尝试使用 OpenCNCPilot v1.5.4.0,但遇到了一些问题。此刻,
当我连接到 COM 端口时,主轴立即启动并且工作台开始
缓慢移动(Y 轴)。
令人费解的是它在我启动应用程序的前几次这样做,然后由于未知原因停止了。当我连接(并打开 ngc 文件)时,主轴不会启动。正确“连接”几次后,现在又回到了启动主轴的状态。
我确实尝试在连接之前打开 ngc 文件,并且主轴在连接时仍然启动。
我尝试运行 Candle 1.1.7(使用 grbl 1.1f),连接时一切正常。所以我不认为它是 grbl 板。
一个可能的线索是我不得不多次启动/停止/中止 OpenCNCPilot,所以可能有一些“东西”遗留在周围导致这个(注册表,配置文件等)
有任何想法吗?(难道我做错了什么?)