开源改变世界

carousel.comp 中的诊断可能表明存在问题 #1943

推推 grbl 3年前 (2023-01-31) 189次浏览
打开
jepler 打开了这个问题 2022 年 8 月 20 日 · 8条评论
打开

carousel.comp 中的诊断可能表明存在问题#1943

jepler 打开了这个问题 2022 年 8 月 20 日 · 8条评论

注释

carousel.comp 中的诊断可能表明存在问题 #1943
成员

在重新定位#1278时,我在 carousel.comp 中注意到了这个诊断:

hal/components/carousel.comp:249:21: warning: ‘align_pin’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  249 |         align_pin = ! align_pin; // Not supported, but wiggle the pin to escape
      |                     ^~~~~~~~~~~

align_pin是一个函数级变量,但看起来第 249 行的使用是为了给它一个交替值,低于 state ofalign_pin用于控制定位状态机中从状态 6 到 8 的传递。

如果align_pin在未初始化的情况下使用,它有时可能看起来有效,因为它可能会得到一个不时更改的剩余值,但不能保证这会实际发生。相反,可能应该更改代码以便不需要这种交替,也许可以通过显式跳过不适用于 E(dge) 型轮播的状态。

这都是猜测,因为我没有任何东西可以试用该组件。

carousel.comp 中的诊断可能表明存在问题 #1943
合作者

奇怪的是,我也没有什么可以试穿的……

carousel.comp 是对明确需求的回应,但我自己却没有。

这里的想法是绕过边缘情况。也许 align_pin 可以在设置中初始化为零。或者可以删除该行。

但是,在我看来,即使它是统一的垃圾,第一次通过它也会被解释为布尔值 true 或 false,从那时起,每个伺服周期都会将 true 切换为 false,将 false 切换为 true?

carousel.comp 中的诊断可能表明存在问题 #1943
合作者
彼得赖因霍尔特森 评论了 2022 年 8 月 21 日 通过电子邮件
carousel.comp 中的诊断可能表明存在问题 #1943

我是 Andy 帮助的边缘案例。是的,当引脚对齐慢速搜索功能启用时,点动仍然在一个方向上出现故障。在关闭慢速搜索的情况下,计数模式没有问题。

我可以做些什么来帮助诊断或测试?

jepler 添加了一个提交到 jepler/linuxcnc 引用了这个问题 2022 年 8 月 24 日

carousel.comp 中的诊断可能表明存在问题 #1943
成员作者

#1953align_pin中,我添加了作为诊断主题的局部变量的显式初始化。这修复了未定义的行为诊断,但几乎肯定会使 ‘E’edge 型轮播始终卡在状态 6 或 7,而不是由于未初始化值导致的未定义行为而无法预测地进行。

carousel.comp 中的诊断可能表明存在问题 #1943
合作者

这是正确的 PR 号码吗?似乎无关。

carousel.comp 中的诊断可能表明存在问题 #1943
合作者
彼得赖因霍尔特森 评论了 2022 年 10 月 11 日 通过电子邮件
carousel.comp 中的诊断可能表明存在问题 #1943

也许您可以以类似于 tests/ 中其他集合的形式提供模拟测试用例来演示您的问题?通过这种方式,我们都可以重现问题,并希望也能找到解决方法。

不太确定如何提供模拟测试用例。对观察到的行为的解释在讨论该问题的论坛线程中。如果有帮助,我可以在这里再次解释。

https://forum.linuxcnc.org/38-general-linuxcnc-questions/46405-carousel-comp-jog-fwd-still-an-issue?start=10#248503

考虑一下,我不确定模拟将如何工作。计数模式不仅依赖于 stepgen 输出来移动旋转木马,而且还依赖于似乎触发 Andy 编写的“慢速搜索”功能的输入引脚。如果某人设置了一个 sim 并使用 halshow 来观察 stepgen 计数在它对 carousel.comp 命令作出反应时上升/下降,则必须在大约正确的时间触发袖珍感应针以使 carousel 进行慢速搜索(退出引脚)。

老实说,我下注关闭了慢速搜索功能。我的 ATC 现在处于“哑”计数模式,我依靠步进驱动器在错过步骤时发出警报。该错误仍然存​​在于 carousel.comp 中,但现在对我来说不是问题。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

4人参加
carousel.comp 中的诊断可能表明存在问题 #1943carousel.comp 中的诊断可能表明存在问题 #1943carousel.comp 中的诊断可能表明存在问题 #1943carousel.comp 中的诊断可能表明存在问题 #1943

喜欢 (0)