Contact me: hankecnc@gmail.com

反向间隙补偿功能请求 #272

推推 grbl 3年前 (2023-02-02) 361次浏览
关闭
4个任务完成
mediaplateau 打开了这个问题 2018 年 2 月 6 日 · 2 条评论
关闭
4个任务完成

反向间隙补偿功能请求#272

mediaplateau 打开了这个问题 2018 年 2 月 6 日 · 2 条评论

评论

反向间隙补偿功能请求 #272

描述

我希望在 Cncjs 中看到一些基本的反冲补偿。除非有人有动力去实现它,否则我愿意尝试一下,尽管我不确定我的编程技能是否能胜任这项任务。

基本上所有的机器都有一定的反冲。每当机器改变方向时,在机器开始向相反方向移动之前,都会有一定的游隙(需要的步数)。我认为实现可以像在正方向变化时增加几步,在负方向变化时减去几步一样简单。这些步骤需要控制速度。这些附加步骤不应改变工作位置/机器位置。

当然,必须为每个轴的反冲量添加一些新的配置值。

Mach3 中的间隙补偿示例
https://www.youtube.com/watch?v=A27nOkTFYDY

版本

  • CNCjs:1.9.12

你如何安装CNCjs?

  • NPM

数控系统

  • Grbl

硬件

  • 树莓派

操作系统

  • 不适用
反向间隙补偿功能请求 #272

我不认为 CNCjs 是做这件事的合适地方。CNCjs 是机器控制软件(例如 GRBL、TinyG、Smoothieware 等)的用户界面。机器控制软件又在嵌入式板上运行,通常是 Arduino。机器控制软件对低级机器状态有足够的了解——以及足够的实时能力——来进行反向间隙补偿,而 CNCjs 则没有。CNCjs 不知道机器参数——每毫米步数和速度等。

另一种分工方式是,CNCjs 负责向控制器发送 GCode 命令,而控制器负责解释那些 GCode 命令来移动机器。齿隙补偿处于“移动机器”级别。

Mach3 在同一个软件包中包含了机器控制功能和用户界面功能。它的反向间隙补偿几乎肯定是在代码的机器控制部分完成的;类似于 GRBL 或 TinyG 的部分。

虽然 CNCjs 肯定有可能“即时编辑 GCode”以期修复反弹,但这增加了一定程度的复杂性,我个人认为这不是一个好主意。让它正确并在面对 CNCjs 支持的所有不同机器类型时保持它的工作将是非常困难的。

反向间隙补偿不仅仅是摆弄 GCode 坐标那么简单。对于圆/圆弧,在单个 G2 或 G3 命令期间,方向可以在不同轴上多次更改。还有其他并发症。如果更改 G1 移动中的坐标,然后是 G2 圆弧,则可能会弄乱圆弧的起点并使半径无效。

现在,既然机器控制软件是进行反向间隙补偿的“正确位置”,您可能会问当前机器控制软件中该功能的状态。事实证明,尽管提出了许多建议,但 GRBL、TinyG、Marlin 或 Smoothieware 都不支持它。这些开发人员之间的共识是,即使在具有实时运动状态详细知识的低级固件的情况下,它也可能导致比解决的问题更多的问题。

反向间隙补偿功能请求 #272
合作者

对于G2/G3弧线,需要实现一个预处理器将一个弧线扩展为多条G1线,避免将弧线分割开来。反向间隙补偿超出了当前开发计划的范围,我将在通用 G 代码发送器 (UGS) 中添加时返回检查。

绕线器/通用-G-代码-发送器#132