婚戒 评论 on 8 Oct 2019
本周晚些时候我会看看它是否可以轻松干净地添加。 |
婚戒 评论 on 12 Oct 2019
我想我有这个工作。我正在同时对主轴进行整体清理,因此我需要进行更多测试。 以前,如果您没有指定主轴引脚,您仍然需要定义一堆主轴值才能使其编译。现在,如果您不指定引脚,则不需要其他值。 |
欧文达菲 评论 on 12 Oct 2019
好的,听起来不错,巴特。准备好后很高兴进行测试。 请参阅与主轴控制和用户定制相关的问题#247 ……如果它符合您对用户定制的想法,它可能是对同一模块的一个非常简单的增强。 |
婚戒 评论 on 12 Oct 2019
我看到了那个问题。在查看其他问题之前,我想要一个关于反转问题的干净 PR。还有一个 您如何测量主轴转速? 它在负载下保持 RPM 的效果如何? |
欧文达菲 评论 on 12 Oct 2019
测量速度: 所有测试均在 CNC6040 1.5kw 2pole 感应电机 VFD 上空载。VFD 控制器显示 VFD 供电频率。感应电机具有与负载相关的滑差(这是电机电流增加以满足负载要求的机制),并且我已经使用轴上的光学转速计验证了卸载的主轴速度与频率显示相一致(即卸载的滑差非常正如预期的那样低)。 我认为空载速度是目标,因为刀具在轻切割时燃烧与接近空载速度有关。在这种情况下,我认为您在负载下会遭受速度损失,这是电动机的基本特征。 这种特殊的 VFD 在低转速下卸载时不是很稳定,我希望在加载时更不稳定。速度控制存在实际限制。 我预计高速时的滑差可能很小,但在绕组电抗相对于绕组电阻较低的最低频率/速度下,滑差曲线可能不太理想。我是否说过速度控制存在实际限制? 我提出的退出想法并没有将补偿限制为分段补偿,尽管我看到了保持代码路径长度短的警告。 |
婚戒 评论 on 12 Oct 2019
更改已上传到 devt 分支。在与主人合并之前,我会将它们留在那里一段时间。 感谢您可以进行的任何测试或您的反馈。 |
欧文达菲 评论 on 12 Oct 2019
我今天应该可以做到(UTC+11)。 |
欧文达菲 评论 on 12 Oct 2019
我最初使用输出范围对其进行了测试。 验证它是倒置的,但在速度低于 31 美元时存在问题,因为我预计 PWM 为 0%(倒置)但它提供 1.56µs(我假设 PWM=1/256)并且我们真的希望 PWM=0 时速度低于S31,不是吗? 如果我将速度设置为 S2000,我得到 10.15µs(反转很好),它们 M2 和 PWM=770ns,我们需要 0ns 来关闭电机。 我说清楚了吗? |
婚戒 评论 on 12 Oct 2019
我没有测试那个。我从不喜欢这种工作方式。好像不是很健壮。 这样做的目的是确保您以最低 RPM 或最低 PWM 运行主轴吗? 我认为它应该将低于最小值的任何非零 Sxxx 更改为最小值,并通过与任何其他 S 值相同的计算发送它。否则,除非 SPINDLE_PWM_MIN_VALUE 是完美的,否则您会出现从低于最小值到最小值的奇怪过渡。 还 我认为 S 应该在 gcode.cpp 中进行测试和修复。如果您发送 S100,它会将其更改为 S200(如果这是最小值)。现在 $G 报告和覆盖等工作在正确的值上。 |
欧文达菲 评论 on 12 Oct 2019
好的,我认为每当电机停止、程序停止或 Sxxxx<min 时,系统都需要发送 PWM 0%(根据配置不反转或反转)。它应该以可靠和一致的方式完成。 因此,对于倒置的情况,我希望当第 1 项中的任何条件适用时,主轴引脚上的 3V 电压会稳定。 我没有亲自进行更改的原因是缺乏对所有各种模块和参数(如果你喜欢的话,意大利面条)的交互的了解。 准备好后很高兴再次测试,我再次使用示波器。 感谢您的努力巴特,感谢。 顺便说一句,我可以忍受 grbl 线性化……忍受它???,它比没有好得多,并且与我实现和测试的基本相同。 做得好! |
欧文达菲 评论 on 12 Oct 2019
我可能会解释说,我认为应该为 sxxxx<rpmmin 停止主轴的原因是,以 rpmmin 旋转“工具”可能不安全,因此它不应该是默认速度。一个例子是在 600rpm 以上可能不安全的寻边器。 另一方面,将 sxxx 限制在 rpmmax 是有意义的。 |
婚戒 评论 on 12 Oct 2019
如果您将 RPM 设置得太高,我不确定它如何保存寻边器。 我想如果你真的担心所有这些东西,你会正确设置它。也许我大部分时间都会不理它。 这个怎么样… 示例: S0 = 0 PWM |
欧文达菲 评论 2019 年 10 月 12 日
让我试着说得更清楚些。 系统应发送 PWM=0%(反转或不按照配置): 推理:电机或驱动器命令速度太慢可能不安全,因此如果用户正确配置 rpm_min ($31),代码应在请求较低速度时保护电机。 (寻边器是题外话,速度过快可能会损坏它或工作。所以如果我订购s600并且系统配置为rpm_min = 1200,则发送PWM = 0%。) |
欧文达菲 评论 2019 年 10 月 12 日 •
S100 = 0 脉宽调制 推理: |
婚戒 评论 2019 年 10 月 12 日
我不同意。 推理: 永远不要接受 RPM 但不要旋转。 这是“原始”Grbl。
另一种方法是出错,停止作业,需要重置。 |
欧文达菲 评论 2019 年 10 月 12 日
好的,我理解并接受。 我即将进行 cal 运行以提供 py 脚本以进行分段线性化。我在 devt 版本上运行它,试运行看起来不错。光学转速计将记录实际主轴速度(空载)。 |
婚戒 评论 2019 年 10 月 12 日
伟大的。 您认为应该添加 SPINDLE_RPM_RANGE_ERROR 吗? |
欧文达菲 评论 2019 年 10 月 12 日 •
欧文达菲 评论 2019 年 10 月 12 日
我一直在研究这个问题,我认为仍然存在一个问题,即当主轴应该停止时,每个 PWM 周期都有一个非常短(790ns)的下降脉冲。 我发现如果我设置 sxxx>0 和 <rpmmin,我会得到像 rpmmin 一样的 pwm。 如果我设置 s0,我不会得到向下转换。 如果我然后击中 m2,我会看到 790ns 下降脉冲 这似乎是由我评论的那一行引起的: // grbl_analogWrite(SPINDLE_PWM_CHANNEL, (1<<SPINDLE_PWM_BIT_PRECISION) – 1); 这条修改后的线路问题就消失了。 |
婚戒 评论 2019 年 10 月 12 日
我也看到了这个问题。 |
欧文达菲 评论 2019 年 10 月 13 日
您已部分实施分段补偿。 我将代码添加到主轴控制.cpp:
和 cpu_map:
和config.h:
这是基于我昨天运行的 cal 的 cal 因素。 它适用于使用示波器观察的台架测试。 今天早上我应该可以在机器上跑步(天气允许的话)。 |
欧文达菲 评论 2019 年 10 月 13 日 •
我对模型进行了一些调整(更改了 py 文件中的参数),并且得到了更好的拟合。 该测试是使用 devt 分支进行的,具有前面显示的更改以适应主轴补偿的其余部分……重要的是,使用反向主轴 PWM。 补偿后: 更好的校准。 巴特,这是一种享受……如果你结合了主轴补偿的其余部分,你可以关闭它和#247。 谢谢你的工作……欧文。 |
婚戒 评论 2019 年 10 月 13 日
我看不到您的代码中在哪里使用了#define ENABLE_PIECEWISE_LINEAR_SPINDLE。 以 +/- 格式阅读该代码需要做很多工作。 |
婚戒 评论 2019 年 10 月 13 日
好的……看看原始的 Grbl。它围绕着一切以制作该功能的替代版本 |
欧文达菲 评论 2019 年 10 月 13 日
它在 config.h 的其他地方启用(就在我引用的内容之上)。没有它就不应该工作!!! 从本质上讲,我预计您将添加到主轴控制中的分段代码,从 grbl 逐字复制。 我希望你从 grbl 而不是我上面的代码中复制。我展示了它以显示已测试的范围。 当您将新内容合并到 devt 时,很高兴重新测试。 |
欧文达菲 评论 2019 年 10 月 13 日 •
您认为我应该分叉并进行更改…但是实际上,您是作者,并且您更熟悉代码库,我很高兴进行测试。 |
婚戒 评论 2019 年 10 月 13 日
我向 devt 推送了更多更改。对我来说测试并不容易。 我使线性拟合成为一个单独的函数来清理东西,它可以在将来允许更简单的方法添加其他拟合方法。 |
欧文达菲 评论 2019 年 10 月 13 日
很高兴测试。 好的,在使用范围的测试中看起来不错(它揭示的不仅仅是运行机器)。 我认为这很好推广。 再次感谢…欧文。 |
欧文达菲 评论 on 8 Oct 2019
我会找到一个选项来反转主轴 PWM 输出的优势。
一些“分线板”具有板载 PWM 到需要反向 PWM 的模拟转换器。
该功能将吸引装有此类板(并行端口 BOB)的流行中国 CNC 路由器的用户,以避免临时硬件逆变器。
似乎 Mach3 提供了这样的选项,当然 TX14692 等板及其许多变体都使用反向 PWM。