注释
我能够重现 SF 问题 431 中的问题。SF 问题 432 中的问题用以下顺序演示:
|
@robEllenberg,我在 |
请注意,根据项目政策,新提交给 linuxcnc 的内容需要包含在 GPLv2+ 中。GPLv2(only) 不行。 |
@robEllenberg,我认为您的许可就足够了。感谢您的回复,并感谢状态标签的工作! |
我已经准备了一个基于最新 2.7的分支,其中包含最新的一组更新。它解决了问题@cradek在上述两个 SF 问题中报告,并修复了#138,其中 interp 和 canon 状态在中止后可能不同步,这与@cradek对中止恢复的额外关注。 我真的很感激评论@robEllenberg,@cradek和@SebKuzminsky,如果可能的话,我会尽快提交 PR。谢谢! |
对我来说看上去很好。我在模拟中快速验证了 SF 问题 431 和 432 已修复,并且中止恢复似乎在坐标系中按预期工作(活动 G 代码匹配佳能/运动坐标)。此外,我在这里添加了一些代码清理,但没有功能更改。 |
[zultron 和我亲自讨论] 在激活 G92 期间中止程序后,DRO 仍然显示 G92 偏移量,但如果你 MDI g0x0y0 它会回到原点,就好像没有应用 G92 一样。我认为解决方法是添加 G92.2/G92.3(也称为“应用 G92 偏移量”)作为新模式组,将其添加到活动 GCodes 读数中,并将其添加为新状态标志,也许像 state.flags[GM_FLAG_G92_APPLIED] = settings->parameters[5210] != 0.0; |
@zultron @SebKuzminsky请查看 glo/statetags 我认为它已准备好合并。(我添加了上面抱怨的 G92.x 处理) |
@zultron @robEllenberg再测试 glo/statetags,我发现一个新问题。当我在子例程的深处中止时,我收到解释器错误:Unknown oword number 要重现,构建 glo/statetags,运行 sim/axis/axis,F1 F2 home all,打开 flowsnake.ngc,必要时触发 Z 让它运行,运行,等到它到达 XY 运动,按 ESC。预期行为是没有错误消息,实际行为是上面的错误消息。 平分显示第一个错误提交为: |
谢谢@cradek, 我会看一看。 |
我对 G64 很担心——看起来单独对 G64 进行编程会重置 P 值和 Q 值,而状态标签正是这样做的。考虑到#177也会影响是否保留 P- 和 Q-,我不确定如何对此进行测试。查看 IRC 对话:http ://tom-itx.no-ip.biz:81/~tom-itx/irc/logs/%23linuxcnc-devel/2016-11-15.html |
对于最终用户来说,这听起来也是一个潜在的问题。使用 g 代码命令来更改混合模式而不更改公差值会很有用。如果我们有它,那么状态恢复就可以使用它。另一种可能性是将公差存储为标签的一部分(然后恢复它)。这样,即使用户在程序中更改了公差,它也能正常工作。 |
PR #283解决了 G64 问题。 |
至于@cradek的问题,由 bisect 发现的提交2a39e3a 提交之后,如果状态标记来自子或重新映射,则它被标记为不可恢复。至少在我的回归测试中,错误源于:
尽管打印了错误消息(启用状态标记和 interp 调试标志时会出现更合理的错误),但这不是致命错误。 我理解为什么标签至少在重映射中应该是不可恢复的。它似乎@robEllenberg认为在重新映射或子中中止是可以跳过恢复状态标记的极端情况。我还不知道后果,但会在考虑一下后报告。与此同时,我很想听听其他人的想法。 |
对这项工作还有兴趣吗?我有一段时间没有更新这个问题,因为我在非运动佳能命令中添加了对状态标签的支持,这解决了 M0/M1 程序暂停时状态缓冲区不正确等问题,并且仅在几个月内才合并到 Tormach 的生产分支中前摇出各种问题后。在这一点上,更新看起来非常可靠,所以可能是时候重新考虑将状态标签合并到 LCNC 中的可能性了。 |
有兴趣是的。克里斯米
|
任何更新?还是有兴趣的。 |
我们合并了吗? |
我创建这个问题是为了跟踪
state-tags-master
分支上的工作(最初在 emc-developers 上引入),目标是被 LinuxCNC 接受。线下交流中,@cradek指出他在该分支中发现的以下问题:
他还表示还有更多测试:“[我] 没有测试中止时恢复功能,这是我比较谨慎的地方。”