Contact me: hankecnc@gmail.com

工具测量 #495

推推 grbl 3年前 (2023-01-30) 264次浏览
打开
JensHauser 打开了这个问题 2020 年 7 月 24 日 · 7条评论
打开

工具测量#495

JensHauser 打开了这个问题 2020 年 7 月 24 日 · 7条评论

注释

工具测量 #495
贡献者

你好,

一段时间以来,我一直在使用像这样的 X/Y/Z 寻边器并且它工作正常

工具测量 #495

现在我买了这个小东西,以便能够在加工作业期间更换工具:
工具测量 #495

似乎“G43.1 动态刀具长度偏移”是这里的主题。在其他论坛中,他们使用一些脚本语言来计算“旧”和“新”偏移量并告诉 GRBL 使用差异。但是使用当前的 GRBL 和 ESP32 网络界面?

很高兴

还是我走错了路?

工具测量 #495
贡献者作者

有没有可能认识

  • WCS 中的当前 Z 位置或
  • G38.2之后的位置


void user_tool_change(uint8_t new_tool)
函数中?

这可以帮助执行旧工具和新工具位置之间的计算

工具测量 #495
所有者

是的,

查看 reporting.cpp 如何报告这些值。

工具测量 #495
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 27 日  

在学习 C 以及如何分叉GRBL/ESP32 以便为工具更改功能提供一些游乐场时,有一些问题。

我的机器叫做 4axis_xyxz,链接到4axis_xyxz.h4axis_xyxz.cpp

自定义初始化和自定义工具更改功能被触发并基本正常工作。

我添加了一些 G 代码以移动到换刀位置,按住,然后按下 Z 探针按钮(先快后慢)。

几个问题

  1. 慢速 Z 探头 (G38.2 Z-2 F30) 不起作用。手动执行该 G 代码有效,但不适用于换刀功能。输入缓冲区已满?

  2. 当我调用 getLastZProbePos() 以获取它刚刚按下按钮的位置时,我从之前的事件中获取值。我想要当前值。

  3. 执行了一些 G 代码,然后我想停下来,做一些计算并继续。现实中,整个功能好像一下子贯穿了所有的功能内容?

我的猜测是,除了愚蠢的初学者错误之外,还有一些带有 ESP32 时间片的东西。如果那是真的,你能给我一些建议,告诉我如何深入研究吗?

工具测量 #495
所有者

我要出城一周探亲。我将无法审查或测试任何代码。我也不能花太多时间在非标准机器上。

在 Grbl_ESP32 中创建自定义机器功能非常强大,但需要对 Grbl_ESP32 和 C++/RTOS 开发有很好的了解。

Grbl 缓冲命令。当每个命令完成时,它将接受一个新命令。如果您有 3 个命令并且缓冲区中有空间,Grbl 可能会立即执行 3 个命令。它只是将它们放入队列中,并会在可能的时候执行它们。有一些方法可以强制 Grbl 在函数中等待,直到排队的命令完成。

您还可以创建新的任务和状态机。状态机将执行命令并循环等待状态更改。循环的单独任务不会影响主要任务的性能。

================================================ =========

我用 8 位 grbl做了这台机器。我计划在 8 月下旬将其转换为具有自动 Z 触摸和工具长度偏移补偿的 Grbl_ESP32/ 6 Pack(在 6 Pack 控制器生产尘埃落定之后)

在那之前请不要问这件事。

工具测量 #495
贡献者作者
詹斯豪瑟 评论了 2020 年 7 月 31 日  

我想为我使用工具更改功能,学习 C 并以相反的顺序为项目做出贡献:-)

所以我花了很多时间听取 Bart 的建议,希望能带来一些好处。

输出是一个基本工作的手动换刀功能,Z 探针作为用户机器(4axis_xyxz.h4axis_xyxz.cpp)。

到目前为止它是如何运作的?

  • 通过输入 ESP3D 触发工具更改(“Tx M06”)
  • 测量刀具长度(第一把刀具仅测量一次)
  • 转到换刀位置。手动更换工具并按“恢复”
  • 测量新刀具的刀具长度
  • 计算G43.1并设置

技术上?

  • 状态机是一个 RTOS 任务
  • RTOS 任务在“machine_init”中启动,并在“user_tool_change”中由初始机器状态(整数值)触发
  • 键入“T1 M06”即可,执行所有步骤,包括 G38.2 和 G43.1

什么是开放的?

  • 任务运行时调用函数“user_tool_change”出现问题
  • 一旦设置了任务的触发器,“user_tool_change”返回并继续执行主 g 代码
  • 它不等待任务的最终状态(我知道为什么)
  • 此行为似乎混淆了工具更改代码和常规 g 代码文件。奇怪的举动,当然。

在达到最终状态之前,我不知道在 do/while 循环中要做什么。睡眠/时间/等。没有工作,机器没有采取可靠的行动。也许这种方法具有误导性。

到目前为止我有这段代码,但它需要改进(状态输出和机器移动不同步):

void user_tool_change(uint8_t new_tool)
{
	newtoolNo = new_tool;
	tc_state = TOOLCHANGE_INIT; // trigger to let the RTOS task start working.

	while (tc_state != TOOLCHANGE_IDLE)
       {
            sleep(25);
       }

      return;
}

有没有人知道如何从具有最终状态(TOOLCHANGE_IDLE)的 RTOS 任务返回,然后从“user_tool_change”返回以继续使用 g 代码文件?

工具测量 #495
贡献者作者

Atari 示例令人印象深刻,但我觉得要为我实现它,必须全面了解 grbl 编程上下文。
是否有任何计划实施维基页面以提供一些建议以单独编程换刀/刀具长度偏移功能?

工具测量 #495
贡献者作者

你好@bdring,

前段时间我们改变了对工具测量的想法。
我记得你几个月前考虑过从你最近的项目中实施:

“我用 8 位 grbl 做了这台机器。我计划在 8 月下旬将它转换为具有自动 Z 触摸和工具长度偏移补偿的 Grbl_ESP32/6 Pack(在 6 Pack 控制器生产尘埃落定之后)”

我不确定你的计划——在路线图上找不到这个增强请求。
youtube 视频中的链接无效。

我自己试过(见上面的叉子),它是独立工作的,但我在处理多任务时遇到了问题。因此,一些更专业的评论可能会有所帮助。

也许这是一个沟通的事情,它迷路了,或者我误解了你的时间表/路线图,你介意帮忙吗?谢谢你。

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

还没有

发展

没有分支机构或拉取请求

2名参加者
工具测量 #495工具测量 #495

喜欢 (0)