开源改变世界

使用以太网连接时,控制器在无效 G 代码命令后硬锁 #45

推推 grbl 3年前 (2023-02-08) 172次浏览
关闭
Dietz0r 打开了这个问题 2022 年 9 月 3 日 · 3条评论
关闭

使用以太网连接时,控制器在无效 G 代码命令后硬锁#45

Dietz0r 打开了这个问题 2022 年 9 月 3 日 · 3条评论

评论

使用以太网连接时,控制器在无效 G 代码命令后硬锁 #45
迪茨0r 评论了 2022 年 9 月 3 日  

控制器:
grblHAL2000 板上的 Teensy4.1
固件:
https
://github.com/Expatria-Technologies/iMXRT1062/releases/tag/v1.03 ioSender:2.0.40(7 月 18 日最新)

问题:
发出错误的 G 代码命令(例如:G1 x200,1)时,控制器会在发出任何其他新命令后硬锁定。键盘在工作之间慢跑,直到控制器硬锁。无法通过任何方式与控制器重新建立连接。问题仅出现在以太网连接上。无法在 USB 串行连接上复制问题。

我拍了一段异常视频:https ://www.youtube.com/watch?v=cb4VMLmiTxo

使用以太网连接时,控制器在无效 G 代码命令后硬锁 #45
贡献者

这是一个发件人问题,将很快创建一个带有修复的边缘构建。可以通过发送系统命令来清除锁定,例如。$I, 来自 MDI。

使用以太网连接时,控制器在无效 G 代码命令后硬锁 #45
作者

一如既往,我很惊讶你有多快。
您能否提供有关问题出在哪里的任何信息?我想更好地理解它。

另外:通过 Ehternet Telnet 使用 PuTTy 进行了检查,没有锁定……所以你似乎是正确的!

使用以太网连接时,控制器在无效 G 代码命令后硬锁 #45
贡献者

您能否提供有关问题出在哪里的任何信息?我想更好地理解它。

websocket/telnet 代码中的错误阻止向控制器发送空行(单个回车符),这用于重置错误状态。工作代码是:

        public void WriteCommand(string command)
        {
            state = Comms.State.AwaitAck;

            if (command.Length == 1 && command != GrblConstants.CMD_PROGRAM_DEMARCATION)
                WriteByte((byte)command.ToCharArray()[0]);
            else
            {
                command += "\r";
                WriteString(command);
            }
        }