开源改变世界

停止时的非指令动作 #579

推推 grbl 3年前 (2023-01-29) 173次浏览
关闭
sheetcam 打开了这个问题 2019 年 4 月 23 日 · 17条评论
关闭

停止时的非指令动作#579

sheetcam 打开了这个问题 2019 年 4 月 23 日 · 17条评论

注释

停止时的非指令动作 #579
贡献者

这是我期望发生的事情:

当我按下停止键时,机器应该尽可能快地停止,然后停止主轴。

这是发生了什么:

这个问题是间歇性的,但有时当使用停止来停止正在运行的程序时,机器会停止主轴并移动到一些看似随机的点。我见过两种不同的症状。它要么以大约进给速率移动到某个点然后停止,要么缓慢移动并一直移动直到达到极限或您遇到紧急停止。在我的路由器上,这似乎主要发生在 X 和 Y 上。在我的铣床上,X、Y、Z 都在移动。每次我看到这个轴都朝负方向移动。

如果您使用进给保持,则停止它每次都能正常工作。只有在移动时停止才能显示问题。

附加代码每次在我的工厂上都会触发故障。运行它直到至少第 700 行,然后点击停止。确切的行号并不重要。代码大小似乎有影响。我尝试缩短代码以使测试更容易,但故障消失了。

我不确定这是什么时候开始的,但它已经存在至少 6 个月了。
LinuxCNC 最新的 buildbot,RT-Preempt,使用 Axis。请注意,使用硬件停止按钮或 GUI 具有相同的效果。
两台机器都使用 Mesa Ethernet Anything IO 卡
problem.txt

停止时的非指令动作 #579
合作者

听起来很糟糕!
您是否能够确定这是来自 LinuxCNC 的命令移动还是外部硬件的问题?

大问题:步骤/目录或其他?

GUI 中的位置显示是否改变?你是在显示命令还是反馈?

停止时的非指令动作 #579
贡献者作者

对不起,我忘了说这些都是伺服系统。这是命令的动作。您可以看到轴在 Axis 中移动,并且运行按钮被禁用,直到它停止移动。

停止时的非指令动作 #579

我的第一个猜测是硬件故障。尝试在显示问题的机器上运行 memtest86 过夜。

停止时的非指令动作 #579
贡献者作者

此故障出现在具有不同品牌计算机的两台不同机器上。唯一的硬件相似之处是两者都运行 Mesa Anything IO,我怀疑这是问题所在。

停止时的非指令动作 #579
合作者

哪些 Mesa 卡?

停止时的非指令动作 #579
贡献者作者

7I80HD-16 + 7I48

我用不同的文件在磨机上进行了更多测试,长度肯定有影响。在 302k 字节长时,它每次都能正常工作,而在 306k 字节时,每次我停止时它都会失败。这个锉刀本来就长得多,而且剪下来没有任何问题,虽然我在实际剪的时候远离了停止点。

在测试文件大小的同时观看它,每次停止移动的长度似乎都差不多。我从未在路由器上看到过这种确切的症状,但我也没有在其上运行大文件。在路由器上,它移动得非常缓慢,并且一直在移动。它也非常断断续续。我不能像在工厂里那样重复它。

停止时的非指令动作 #579
合作者

那么这可能是一个 hm2_eth 问题。

7i48 意味着模拟伺服控制?

你能回答关于这是否是命令的举动的问题吗?DRO是否改变?

停止时的非指令动作 #579
合作者

你在使用重映射吗?如果您愿意共享您的整个机器配置目录(只需将其压缩),它可能会有所帮助。

停止时的非指令动作 #579
贡献者作者

安迪,这是命令的举动。您可以看到轴在 Axis 中移动,并且运行按钮被禁用,直到它停止移动。

Cradek,我重新映射了 M6。注释掉重新映射没有任何区别。

这是我的配置。
config.tar.gz
我使用了一些自定义组件,所以我也包含了它们。

停止时的非指令动作 #579
贡献者作者

我找到了触发器。如果我使用 ON_ABORT_COMMAND 调用子程序:
ON_ABORT_COMMAND=O <on_abort> 调用
即使是空子程序也会使其失败。我把文件归结为这个,但它仍然失败了:

o<on_abort> sub
o<on_abort> endsub
m2

如果我注释掉 ON_ABORT_COMMAND,我就无法让故障发生。

停止时的非指令动作 #579
合作者
安迪普 评论了 2019 年 4 月 24 日  

嗯……
#241

#393

停止时的非指令动作 #579
合作者

https://sourceforge.net/p/emc/mailman/message/35669951/
看来这可能已经修复了一次?

停止时的非指令动作 #579
贡献者作者

是的,这很合适。我将为两台机器禁用 on_abort。这对工厂来说不是什么大事,但在更换工具时中止会使路由器处于潜在的危险状态,因为工具更换会改变软限制等。我猜不小心踩到换刀器造成损坏的风险小于潜在失控的风险。到目前为止,我只扔掉了一大块聚氨酯泡沫,但磨机可能会直接犁到桌子上。

停止时的非指令动作 #579
合作者

不过,我们确实需要为此做些事情,即使它完全删除了 ON_ABORT_COMMAND 函数。

停止时的非指令动作 #579
合作者

很确定这与 Issue 588 有关(Que buster 未更新)

诺伯特

mozmck 添加了引用此问题的提交 2019 年 8 月 16 日

喜欢 (0)