开源改变世界!!

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

推推 grbl 2年前 (2023-01-29) 131次浏览
关闭
gmoccapy 打开了这个问题 2018 年 2 月 18 日 · 19条评论
关闭

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险!#409

gmoccapy 打开了这个问题 2018 年 2 月 18 日 · 19条评论

注释

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者
gmoccapy 评论了 2018 年 2 月 18 日  

我检查了最近的主人:

  • 打开 sim/axis/random_tc.ini
  • 家用机
  • 在 MDI 输入 T2M6
  • 观察 iocontrol.0.tool-prep-number 和 iocontrol.0.tool-prep-pocket 改后都是0
  • 在 MDI 中输入 T12 工具并正确设置刀套
  • 在 MDI 输入 T3 也设置信息正确,
  • 现在在 MDI 中输入 T2M6:崩溃!!!!

您将被要求输入工具 3!!!!! 而不是工具 2!!!!
这肯定会导致自动换刀器发生碰撞或零件损坏!!!

诺伯特

恕我直言,第 330 期也与此有关!

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者作者

还有一个与随机换刀器相关的错误:
打开 simpockets.tbl ans 将第一行从 T3 P0 .. 更改为 T3 P2 ..
保存文件并启动 sim / axis / random_tc.ini

你会得到一个错误,命名你在你的 gcode 文件中使用负工具编号,但恕我直言,错误信息与随机工具更换器的工具处理有关,因为它没有在工具表中找到口袋 0。

诺伯特

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

有没有人使用随机工具更换器?他们似乎很容易出错。
也许它应该全部删除并在重新映射中处理?
linuxcnc 和 gui 都写入工具表不是问题吗?

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者作者

如果知道的人可以记录如何在 LinuxCNC 中处理工具内容,那将会很有帮助。
据我所知,它遍布整个代码,有时它使用 toolTable.toolno 来检查工具和代码 toolTable[pocket].toolno 的其他部分。

恕我直言:完整的工具处理需要更大的返工。不幸的是,我不明白我在做什么,但至少在尝试和哭泣。

到目前为止,我所看到的是,random_toolchanger 根本没有帮助,反而使工具处理变得复杂。

诺伯特

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者作者

@rene-dev

恕我直言,应该只允许 GUI 处理工具文件,而不是 linuxcnc。
LinuxCNC 应该有一个文档化的 API 来处理工具,并且那个 API 不能在 relatime 中运行!

诺伯特

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

不可能完全按照您的设想进行拆分。G 代码可以更改工具偏移量,运动规划器需要知道当前的工具尺寸。因此,您至少需要数据的解释器级别版本和实时层中相同数据的子集。然后你需要在正确的时刻写回数据。
几年前我确实对工具处理进行了大量重写,但我认为没有人尝试过。而且我还希望保留所有现有错误并引入新错误。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者作者

好,我懂了,

但这只需要为当前工具完成。对于不在主轴中的刀具,API 可以在非实时级别更改数据,对吧?

诺伯特

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

我认为安迪在谈论 G10 L1、L10 和 L11。那些写入工具表。
但是,是的,对于正常操作,解释器只需要知道当前工具。
我认为这是唯一写入工具表的非图形用户界面部分。

int Interp::convert_setup_tool(block_pointer 块,setup_pointer 设置){

 

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

LinuxCNC实时部分没有刀具信息。
TLO 和 cutter comp 之类的事情在解释器中非实时发生。从佳能层出来并进入实时运动控制器的东西已经包含了所有必要的工具信息。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

喔好吧。那时候我想过那个。
我知道解释器不在 rt 中运行。
那么 max toolnumbers 的奇怪限制是什么?
我认为这是共享内存中的一些限制?
如果它只在解释器和图形用户界面中,那么用适当的工具管理替换所有东西应该不会太难,就像安迪在他的分支中开始的那样。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

这个:

#define CANON_POCKETS_MAX 56 //处理的轮播 的最大尺寸

它似乎到处都在使用。我不完全理解一切是如何运作的。 

所以用户通过 gui 编辑工具表。那是图形用户界面的东西。
解释器仅通过 convert_setup_tool 和 convert_tool_change 使用工具表。
我在这里错过了什么?

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

工具计数限制是由于主要在非实时组件“任务”和“IO”之间的共享内存大小的限制。它可能会在没有太多努力的情况下增加,我想(但我从未尝试过)。
认为超过 56 个刀位的工具更换器非常罕见,但我认为支持即使是罕见的硬件也是一个好主意,如果它不会对常见硬件产生负面影响的话。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者作者
gmoccapy 评论了 2018 年 2 月 21 日  

@SebKuzminsky

口袋限制不是问题,但 linuxcnc 也限制了工具。如果有 200 个工具,您将永远无法使用 56 到 200 个工具,因为 LinuxCNC 会告诉您它们不在工具表中,即使它们在 tool.tbl 文件中!

要增加工具数量,您需要编辑两个文件,即 256 工具:

/configs/common/linuxcnc.nml
更改:
emcStatus 从 16384 到 33792
toolSts 从 8192 到 33792

和 /src/emc/nml_intf/emctool.h
CANON_POCKETS_MAX 到 257

这确实在我的机器上运行没有任何问题,但这不是线索。
问题是口袋的处理结果不是他们应该作为 toolTable.pocketno 自己的成员,因为工具 13 不能在口袋 13 中,您也可以将它放在口袋 5 中。

我的换刀器有 24 个刀槽,但我在 SK30 刀柄中有大约 50 个工具,已经过测量并可以使用。
如果我使用多个工具,我习惯于按照代码中需要它们的顺序放置它们,因为这确实节省了可观的时间,所以有时我想将工具 35 放在口袋 2 中。

使用实际的 LinuxCNC 无法完成,因为达到 T35 M6 将尝试从口袋 35 而不是口袋 2 中挑选工具。我可以将工具重命名为口袋 2 中的工具 2,但那样我还需要编辑 g -code 文件女巫已经从我可爱的摄像头中出来了。我尝试保持 cam 和 LinuxCNC 工具表同步。

我找到了一个解决 LinuxCNC 错误的 python 脚本解决方案,但这是解决我的问题的一种非常独特的方法。

恕我直言,我们需要做的工作是让工具处理和工具表像在工业控制上那样工作。

@rene-dev
工具的东西遍布代码,请参阅 /RS274/tool_parse.cc、interp_find、interp_convert、sai/saicanon 等等。

只需在命令行中尝试 src dir
grep -Ril “pocket” ./

必须检查所有这些代码。不幸的是,我没有将我的最后更改推送到我的测试分支,但恕我直言,我需要修复 interp_find 以获得正确的口袋。在德国论坛上有个人 CNC_Willi,他自己解决了口袋问题,他会把补丁发给我,这样我就可以复习一下。

如果有人可以在 LinuxCNC 中绘制工具处理图,那将是一个很大的帮助,这样我就可以准确地检查那部分。

诺伯特

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者
再生开发 评论了 2018 年 2 月 21 日  

我正在考虑将所有内容更改为 sqlite。
@gmoccapy你能看看如何改变 gladevcp/tooledit_widget.py 来使用 sqlite 吗?
还需要一个独立版本,否则 axis 用户将无法编辑他们的工具…
我使用此脚本将工具表转换为 sqlite:https
://pastebin.com/Xx1XQtdV 它的基本形式@andypughs 分支…
linuxcnc 只需要那里的字段,但如果 gui 可以显示其他字段就更好了。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

@rene-devgladevcp 的 tooledit_widget 可以更改为使用任何可用的 API。它可以独立运行,几乎没有变化。独立于运动控制器的需要,轻松添加其他信息以显示将非常好。例如,目前有一个 hack 可以显示磨损偏移量。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409
合作者

我仍在弄清楚一切是如何协同工作的。在解释器和 iocontrol 中有很多与工具更改相关的东西。看起来 Pocket Numbers 和 Random toolchangers 有很多问题,并且不能像预期的那样工作。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

@rene-dev如果你发现一个错误,请打开一个问题,最好有一个分支的链接,该分支添加了一个重现该错误的测试。

我们有一些人多年来一直在使用该代码而没有遇到任何问题,因此您遇到的这些错误一定不在他们使用的代码路径中。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

我确认最初报告的“加载了不正确的工具”错误@gmoccapy存在于 master 和 2.7 中。LinuxCNC 没有崩溃,但它确实错误地执行了对 T3 的工具更改,即使指定了 T2(大概是因为 T2 已经加载)。

RANDOM TOOL CHANGE 未正确处理 T 命令,非常危险! #409

此错误中的讨论与原始错误报告相去甚远。该错误与工具表在磁盘上的存储方式或 LinuxCNC 可以处理多少工具完全无关。

此错误与#330重复。我正在关闭这个错误,让我们在#330中进行所有进一步的讨论(仅关于这个错误!) 。

如果您想讨论更改工具表在磁盘上的存储方式,我对此持开放态度,但错误报告不是地方,让我们在开发邮件列表上进行该对话。