注释
没有人?:-( |
当连接打开时,LaserGRBL 进入连接状态并启动计时器。
现在,如果 LaserGRBL 从 grbl 收到任何报告机器状态的状态报告(空闲、运行、暂停、门…),右下角状态栏中显示的状态反映收到的状态,但如果它没有收到从在不到 10 秒的时间内连接到其他东西,超时到期并且连接将关闭。
发送“?” 是 LaserGRBL 必须强制 grbl 回复状态报告的唯一方法。 |
LaserGRBL 包含一个诊断模式,可以通过命令提示符设置,记录整个通信过程。 如果您从命令提示符或通过带有“comlog”参数“C:\Program Files (x86)\LaserGRBL\LaserGRBL.exe comlog”的快捷方式启动 LaserGRBL,程序将记录一个名为“comlog.txt”的文件,位于“C: \用户\你的名字\AppData\Roaming\LaserGRBL”。 在 comlog 文件中,您可以找到从 LaserGRBL 发送/接收的所有串行数据。 |
在尝试硬/软重置设置没有结果后,我发现将线程模式设置为慢速可以更好地连接。但并不完美。 我的猜测是,该软件并不总是正确地从 GRBL(版本)读取欢迎字符串,或者在连接后不清除 RX 管道。 |
哦,你比我快。我会尝试日志。 |
LaserGRBL 不需要“Grbl 1.1f [‘$’ for help]”欢迎字符串来认为自己已连接。 LaserGRBL 需要正确解析状态报告消息,如 <Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:S> 以认为自己已连接。 恕我直言,您的大型董事会没有回复“?” 带有状态报告,或者它正在回复格式错误(或不特定)的报告。 |
其他程序根本不使用状态报告中的数据,它们认为自己已连接,只是因为它们成功打开了 com。作为副作用,他们通常不使用状态(Idle、Run、Hold、Jog、Alarm、Door、Check、Home、Sleep)来过滤/调节他们的 UI 按钮,使其仅在正确的条件下处于活动/启用状态,从而为用户提供知道什么时候按下按钮是正确的或不正确的任务。 LaserGRBL 仅在知道按下按钮正确时才启用按钮,但它需要状态报告才能做到这一点。 |
如果上传 comlog.txt 还要上传 sessionlog.txt |
我有同样的问题,我设法忍受它的方式是点击连接,等待超时等待 10 秒,点击连接并且它有效,如果你只是继续尝试连接它永远不会,直到你在两者之间等待一段时间第一次和第二次连接尝试,我看到后面没有人,我会做通讯日志和上传,谢谢 |
您好,附件是文件,希望这有助于将 lasergrbl 干净地连接到我的 Mega, |
你好@sinfocomp 但是,感谢您提交文件。 comlog.txt 记录了 LaserGRBL 和 grbl 之间的所有通信,它清楚地显示了发生了什么。第一列是 LaserGRBL 启动的时间(以毫秒为单位),第二列是递增计数器,第三列是动作类型(tx 数据或 rx 数据,或 com 端口动作,如打开、关闭等),第四列是数据(读取或写入) ).
他做了 10 秒的工作,但没有收到 grbl 的响应:没有欢迎消息,也没有状态报告,所以 10 秒后它关闭了连接(在第 22 行,启动后 16.6 秒,连接后 10 秒)。字符串“[CORE]”表明主动关闭com口是内部超时逻辑。 几秒钟后,您再次按下连接按钮,LaserGRBL 打开 com 端口(第 23 行,启动后第 28.5 秒)。LaserGRBL 做完全相同的事情(0x18,比开始每 500 毫秒发送 0x3F)但现在 grbl 正确反应发送欢迎消息(Grbl 1.1l [‘$’寻求帮助]\r @ 第 27 行)并在每次 LaserGRBL 发送 0x3F 时发送状态报告. LaserGRBL 正确解析从 grbl 发送的状态报告并认为连接有效,并解析来自机器的空闲状态和位置信息。 在第 39 行,启动后的第 31.5 秒,您通过单击断开连接按钮 [USER] 关闭连接。 sessionlog.txt 确认所有信息
所有这些让我说 LaserGRBL 确实做了正确通信应该做的事情。 我不知道为什么grbl在第一次连接后没有反应。 在我看来,您应该将问题转发给 grbl-mega 固件的开发人员。 但很少有人问你。
让我知道 |
我看了 Grbl version 1.1l |
您好,感谢您的回复,是的,我尝试了所有软/硬重置组合同样的问题,最奇怪的部分是我尝试过的 UGS、蜡烛和其他 guis 都没有同样的问题,固件来自https:// github.com/fra589/grbl-Mega-5X会联系他看看会发生什么 |
如果你愿意,你可以转储(监视)UGS(和/或蜡烛)和你的板之间的通信会话,以及 LaserGRBL 和你的板之间的通信会话。 有一个软件可以为你做到这一点,叫做“串口监视器”。 下载、安装、选择菜单“session-new session”,选择要监听的com口,勾选除modbus以外的所有选项,开始监听。 然后打开 UGS,连接到电路板,做一些事情(比如发送一个简单的命令,如 G0 X10 Y10),最后断开连接。 回到串口监视器,选择“session – close session”,保存session,文件名为“UGS.spm”。 然后对 LaserGRBL 执行相同操作(但请使用此设置配置 LaserGRBL)。 然后压缩两个 .spm 文件(ugs.spm 和 lasergrbl.spm,如果您也想要蜡烛)并在此处上传 .zip 文件。 |
嗯,你的 Mega 固件似乎有点奇怪……我刚刚用我的 Mega 和 GRBL Mega 版本的新副本尝试了 LaserGRBL,它可以直接连接,没有问题。我认为它可能是一次性的,所以连接并重新连接了 10 次,它仍然可以。 不过,我使用的是 GRBL-Mega 1.1g – 也许是“I”版本导致的?我认为 1.1I 不是来自 GRBL,而是某个地方的修改版本? |
那么我的 Mega 固件肯定也有一些奇怪的地方,因为一年以来我一直有同样的问题。 |
我与 Mega-GRBL 有沟通问题。
固件为 Mega-GRBL 1f 的电路板适用于所有终端程序和工具,但 LaserGRBL 无法建立连接。
我必须多次重启开发板和/或软件,直到连接成功。
这在不同版本的 LaserGRBL 和不同的 PC 以及不同版本的 Windows(10、7、XP)中是相同的。
我现在使用了一个端口监视器工具,似乎 laserGRBL 没有读取起始字符串“Grbl 1.1f [‘$’ for help]”。
取而代之的是,它开始发送 13 HEX,后跟无限“?”。
读取请求大小 IRP_MJ_READ 仅设置为 2 个字节,这对于起始字符串来说太小了。
我测试了像 TERATERM 这样的终端程序,它使用 1024 字节的 IRP_MJ_READ。那里立即收到起始字符串,并且没有连接问题。
在我看来,某处的起始字符串挂在通信管道中,而 LaserGRBL 没有读取它。
相反,它可能正在等待一个永远不会出现的“ok”(或者在起始字符串之后挂在管道中)。
我阅读了有关 Mega-GRBL 和 LaserGRBL 的更多通信问题。但是大家大多认为是端口设置的问题。
我认为问题出在设置通信时。
LaserGRBL 是我测试的唯一开始发送 18H 后跟“?”的程序?“?” 立即无需等待起始字符串。
另一个想法是,Mega2560 板在启动时太快,所以 LaserGRBL 错过了字符串 (?)。
直到现在我还没有解决方案,但是尝试将 Mega-GRBL 连接到这个漂亮的激光软件是一件很痛苦的事情。
有什么建议么?
问候
约阿希姆