注释
motion.requested-vel 至少被几个等离子割炬高度控制 (THC) 系统使用,以允许将角锁定阈值设置为进给率的百分比。不幸的是,motion.requested-vel 是 TP 请求的速度,而不是 gcodes 指定的进给速率 |
我认为此功能将需要状态标签分支才能正确执行。 |
… 或者可能不是。也许 |
@rodw-au, 整洁的!你有我可以看看的地方的分支机构吗? |
Seb,让我看看在我做更多测试以确保它有效之后我是否可以学习如何做到这一点。我也需要在 master 分支而不是 dgarr/external_offsets 上重做它。 |
当然,让我知道我是否可以在任何 git 方面提供帮助。 |
测试失败,因此回到方块 1。tc->reqvel 是 motion.requested-vel 的副本。我还尝试了 tc->target_vel |
这就是说:Motion 不知道编程的进给速率,它只知道每个段的请求速度。这个请求的速度由 Canon(Interpreter 和 Motion 之间的接口,在 Task 中)基于机器约束生成。 所以我又回到了我认为这必须等待状态标签的下意识反应。 我不熟悉 Torch Height Control,有人能告诉我这个用例吗,在这个用例中,编程的进给速率比当前可用的两种速度(motion.current-vel 和 motion.requested-vel)中的任何一种更有用? |
我不是专家,但我认为需要的是一种比较 gcodes 编程进给率 (FXXXX) 的方法,它是所需的等离子切割速度与实际速度(当前速度),因此可以禁用 THC(冻结在当前高度)当当前速度下降到编程进给率的指定百分比时(以避免在拐角处俯冲)。 |
割炬高度控制 (THC) 是等离子操作的基础。对于等离子,割炬电压和切割高度之间存在线性关系。制造商发布的切割表说明了给定材料和厚度的理想高度、切割速度和电弧电压。进给率通常根据这些参数设置。电弧电压用作对控制 Z 轴高度的 PID 的反馈。当 TP 减慢电流速度时,电压会增加,因此 PID 会降低割炬高度,有时会导致碰撞。解决方案是在电流值低于制造商数据设定的进给速率的 85% 时禁止 PID 控制。(速度保持) 此问题源于不正确的文档,指出 requested-vel 是 F 参数。 如果用户依赖于不正确的文档,THC 操作会由于片段的请求级别下降而意外启用,并且可能会发生剧烈和意外的更正,从而导致剪辑中出现草皮。 由于当前请求的速度行为,解决方案是从 Gcode 发送进给速率两次,一次作为 F 代码,另一次作为 M67/M68。这种数据重复是非常不受欢迎的,因为它会导致错误。 我花了几个小时研究代码,并开始理解 Seb 描述的模块之间的关系。我注意到 EMCMOTSTATUS 在源代码中被描述为全局的,我确实尝试从 canon 内部(来自 SET_FEED_RATE 过程)在结构中设置一个新变量,但是出现了运行时错误,所以我假设它只是全局的运动。 全局 EMCMOTSTATUS 数据可以从佳能更改吗? |
我不太确定文档是否不正确,只是它不完整 狡辩一下,真的应该叫速度,而不是速度…… |
2.8 文档位于http://linuxcnc.org/docs/devel/html/config/core-components.html#sec:motion-pins 除了速度和速度之外,没有任何关于它在每段基础上通过机器和 TP 约束进行调整的说法。 |
啊,我只是按照手册页说的更少: motion.requested-vel OUT FLOAT 文档比手册页更具误导性,尽管它确实是 |
我更新了文档(联机帮助页和 html 文档,在 2.7 和 master 中)以尝试更加清晰。 @pcw-mesa,我同意它是速度,而不是速度,但我认为称它 |
你能简要介绍一下“状态标签”的作用吗?我找到了关于合并它的讨论,但仍然没有人知道它会实现什么。 对于等离子使用,我认为可以在一个组件中合成一个进给率,该组件监控请求的速度并有一个输出引脚,只要请求的速度增加,它就会上升,并在运动停止时重置为零。 感谢您更新文档。我现在可以看到变化。 |
我只是所有这一切的新手,但我想我只是发现有一个简单的解决方法。也许等离子用户应该重新映射 Fnn 并发出 M68 E1 Pnn 以将原始进给率发送到 HAL。这种方法是否有任何可能的负面影响? |
我没有意识到 F 可以重新映射,但它似乎可以:http ://linuxcnc.org/docs/2.7/html/remap/remap.html#remap:remappable-codes 这应该工作得很好,因为它不需要后处理器是 THC 感知的。 |
哈 – 我也不知道 F 可以重新映射..很酷 – 我想我也有一个应用程序。 山姆 |
只是为了确认重新映射 F 代码是我们几个人测试过的解决方案,它会起作用。但是在我们关闭这个问题之前,虽然我们一直在更新这个问题的早期文档,但我可以指出重新映射文档很缺乏并且 F 代码部分有几个 TBD,我认为这意味着要完成。 这是一个基于 axis/remap sim 的 gcode setfeed.ngc sub 示例,它可以工作,也许它可以在文档中使用
|
没有提供说明。