评论
贡献者
您可能必须研究代码并进行一些调试才能回答该问题。我不知道我脑海中的答案。也许其他人会这样做,但我怀疑世界上只有极少数人详细看过那部分代码。您需要查看 src/server/controllers/Grbl/GrblController.js 和 src/server/lib/Feeder.js 。如果您触发的代码路径通过馈线,那么它可能会起作用。如果它绕过馈线,那么它可能会堵塞 Grbl 缓冲区。我想另一种可能性是 feeder.next() 没有被正确调用。该区域的控制流程异常复杂。 |
贡献者
我还怀疑你处在几乎未知的领域。大多数人通过其主要接口使用 CNCjs,因此套接字接口可能没有经过压力测试。 |
作者
描述
您好,感谢制作 CNCJS。它已成为我们仅用于运动控制(不涉及切割)的机器的默认界面,我目前正在为其编写更高级别的界面,以便技术水平较低的用户也可以使用我们的机器。
我目前正在使用Controller API通过 websockets 发送和接收数据(遵循 wiki)。具体来说,我不想提前加载 gcode 文件(因为我们在两行之间动态地执行一些操作),所以我使用
command
套接字事件,gcode
命令字符串发送单行 gcode 在一个时间。这适用于小型测试,但我发现如果我们必须发送大量命令,例如,像这样:我向机器发送 50 行 GCode 以生成运动模式,问题是在某一行之后,GCode 的其余部分没有得到执行。我正在使用 GRBL 控制器,我在 CNCJS 中注意到规划器缓冲区和接收缓冲区都变为 0(所以我假设它们已满)。
我的问题是:这是因为当 GRBL 规划器/RX 缓冲区已满时,CNCJS 不会延迟发送 GCode 吗?我确定它在某个地方管理这个,因为它能够执行大型静态 GCode 文件、许多排队的键盘命令等,但这不适用于来自套接字的 gcode 命令吗?
非常感谢你提前。
版本
你如何安装CNCjs?
数控系统
硬件
操作系统