Nomar记录一段历史
马林的 G30 代码有什么作用?

我正在使用 Marlin 1.1.0RC8 来控制 MPCNC,使用 RAMPS1.4。我们刚刚添加了一个触摸板来进行 Z 探测,它适用于单个探头(我只想要校准高度的变体位长度,而不是床调平,但我认为它相当于同一件事)。我在 Marlin 中将它设置为FIX_MOUNTED_PROBE ,这似乎最接近。

我可以让它做一个G38.2 Z-50G92 Z12.6 (将 Z 设置为触摸板的高度,12.6 毫米),可以继续使用,但似乎我有对 Z 偏移进行硬编码,我确定它确实应该由例如Z_PROBE_OFFSET_FROM_EXTRUDERM851

我的感觉是我应该能够调用 G 代码G30 ,它会做一个很好的快慢双击,相当于G92 Z+zzz来设置那个高度,然后退回到一个安全的高度。经过一些配置后,它确实做到了......

...除了它对它测量的高度没有任何作用!看起来很奇怪。 G30代码似乎是一种精心设计的方法,可以通过触摸板将头部向上移动间隙量(如果出现任何问题,还可以使床崩溃)!有什么意义?

我是否误解了G30 ?我已经阅读了此处的文档,并通过Marlin_main.cpp跟踪,并且确实没有“结果”。除非我错过了什么?

我注意到我在 Z 上没有终点站,所以我不能回家/`G28`那个轴。我看不出这有什么不同,但我稍后会检查代码,看看是否有问题。

2个回答

我相信G30是来自 CNC 的结转(G 代码起源于 CNC 而不是打印机)我相信它是用于转到辅助参考(原位)位置,并包括一个可选的旁路地址,可以包含在命令。

看着 Marlin 1.1.0-1(最新版本),它似乎按照你说的做:

  1. 移动到请求的位置(如果在命令中选择,否则 N/C)
  2. 部署探针
  3. 回家
  4. 斯托探头
  5. 报告请求的位置和探测的 Z 位置
  6. 报告当前位置(家?)

看来,对于马林来说,只有一个参考地址(家);因此, G30似乎与G28相同(转到主要参考资料);但是,并非如此。

看起来G28是一个不同颜色的家。看起来它一次一个定位轴并且不支持旁路位置。请注意,您可以通过在命令中添加字母“X”、“Y”和/或“Z”来选择要归位的轴。

除了允许您更改打印机的回家路径之外,我不确定此命令对 3D 打印机有什么好处。

注意:不幸的是,我现在没有在打印机上启动和运行 Marlin 代码,所以我无法确认我在代码中看到的内容。

马克,我没有忘记你写过这个!您将 G30 与 G28 的对比让我感到非常惊讶——我没想到 G30 是 HOME 的变体——这让我重新评估了我的所有假设,我正在等待一个下雨的周末坐下来适当地更新所有我的先入之见!特别是G30确实“报告”了探头位置(返回到监控应用程序);我期待它在内部存储它作为参考......将进一步调查。

我最近需要在我的 MPCNC + Ramps 1.4 + Marlin 1.1.5 设置上使用 Z-probe 触摸板。

以为我会分享最终对我有用的东西。

在 Marlin Configuration.h ,我进行了更改以启用 Z-probe:

 #define USE_ZMIN_PLUG #define Z_MIN_ENDSTOP_INVERTING true #define Z_MIN_PROBE_ENDSTOP_INVERTING true #define FIX_MOUNTED_PROBE #define PROBE_DOUBLE_TOUCH #define Z_MIN_POS -100

但是,以下可能是您问题的关键。
G30也没有为我做任何事情,直到我将这些值更改为G30现在降低 Z,直到 Z 探针被触发。我需要发送一个G92来设置新的 Z 值。
像冠军一样工作!

 #define X_PROBE_OFFSET_FROM_EXTRUDER 0 #define Y_PROBE_OFFSET_FROM_EXTRUDER 0

如果您有兴趣,在 lcd_prepare_menu() 下的ultralcd.cpp 中,我添加了一个菜单项来执行探测。这样我就不需要计算机来设置机器并从 SD 卡启动 gcode 文件。

 #if HAS_BED_PROBE MENU_ITEM(gcode, MSG_PROBE_Z, PSTR("G30\nG92 Z19.05")); #endif

希望这对你有帮助,即使晚了几年。

目前尚不清楚哪些参数设置为零。如果您指的是 ** 探针偏移值**,那 ** 不是一个好主意**。请注意,此问题涉及 Marlin 1.1.0,在 1.1.3 和 1.1.4 之间,`G30` 命令发生了变化。

随机文章