Contact me: hankecnc@gmail.com

高探测的第一个坐标未命中表面 #10

推推 grbl 3年前 (2023-02-10) 306次浏览
关闭
deHarro 打开了这个问题 2017 年 3 月 10 日 · 15条评论
关闭

高探测的第一个坐标未命中表面#10

deHarro 打开了这个问题 2017 年 3 月 10 日 · 15条评论

评论

高探测的第一个坐标未命中表面 #10

我使用探测来铣削印刷电路。
当我开始在一个新的 40 x 30 毫米网格上进行探测时,对于第一个探头来说,传感器移入 PCB 的距离太远。
幸运的是,我使用了弹簧探测触点,所以没有发生任何问题,但生成的坐标场在左前边缘(XY 零)有一个扭结。
高探测的第一个坐标未命中表面 #10

既然你们都是自己制作 PCB 并且一切正常,我想我在设置探测过程时犯了一些错误?

高探测的第一个坐标未命中表面 #10
所有者

嗨,哈拉尔德,

这是一个非常奇怪的问题,我假设您检查了电路板是否有任何重大污染,并且,这也取决于您的弹簧探针。
这种情况是每次都发生还是只发生一次?
此外,通过在表面的实际高度设置 Z-0 可以节省大量时间,这样探针就不必每次都走完整个距离,然后您还可以将其用作换刀的参考表面容易地。

高探测的第一个坐标未命中表面 #10
作者

嗨,马丁,
它每次都会发生。

我意识到另一个效果,但我不确定我是否犯了一个错误:
你在图片中看到平面在探测网格下方一定量,该网格位于原始零点 (X=Y=Z=0) 上。
据我所知,我在 Z=0 开始探测(我在 Pete(Northernboy)版本的 OpenCNCPilot 的“Jog”菜单中点击“Probe”,所以程序应该知道零。

啊,这只是你应该提防的另一个提示!
Pete 和我目前正在“调试”使用 GRBL 1.1 时出现的一些错误消息。
当我在飞机上遇到那个问题时,我使用了 Pete 的版本。
在进步的路上,我第一次处理g代码文件时得到了一个移动的箭头!
这是正确解读GRBL状态答案的效果,所以这个探测错误可能是因为错误解读了GRBL的答案。
当皮特得到他的程序和报告的最终版本时,我将再次测试探测。
哈拉尔德

高探测的第一个坐标未命中表面 #10
作者
德哈罗 评论了 2017 年 3 月 14 日  

嗨,马丁,
在我潜入地下室测试 GRBL 1.1f 的新版本之前,也许我应该就如何开始高图探测征求一些建议。
我做了什么:

  1. 使用 Petes 版本的“Probe”应用 Z=0。在您当前的实施中,我必须通过光学方式或通过在手写笔和表面之间放一张纸来将 Z 轴归零?
  2. 开始探测高度图 -> Stylus 上下移动到零 Z 直到它碰到 PCB,然后逐步所有检查点直到最后一个。手写笔向上移动到 Z~10mm 并停止。
    -> 不错的功能是返回 X=Y=0,Z=10(左右)
  3. 菜单编辑 -> 应用高图
    —>> 在这里我看到,视口中的彩色地图位于探测网格下方约 1 毫米处。我希望网格和地图具有相同的高度?
  4. 下一步:再次将手写笔定位在 Z=0(通过某种适当的方式),就在 PCB 上方
  5. 文件 -> 开始。现在手写笔向上移动到 Z~10mm,然后向下移动。
    -> 然后它将这 1 毫米深入到 PCB 中,太过分了!

那么我的错在哪里呢?

为了测试新版本,我必须将我的 Arduino 升级到 GRBL 1.1。刚开始…

高探测的第一个坐标未命中表面 #10
所有者

嗨,哈拉尔德,

  1. 可以手动输入探测指令:G38.2 Z-10 F20,然后G92Z0
  2. 是的,第一个点应该向上移动 5 毫米,然后慢慢下降直到碰到表面。对于后续点,它只会上升约 2 毫米。
  3. 理想情况下,地图应与 XY 网格完全对齐
  4. 不。您已经设置了原点,所以机器知道它在哪里。
    我猜你的错误在于正确设置 Z 原点,在你的 gcode 中,该工具应该插入大约 0.15 毫米深,并且高度图应该只会稍微改变它。至少在原点(您设置 Z 参考的地方)深度在应用高度贴图时不应改变。
    在任何情况下,机器都将完全遵循新的刀具路径,因此如果您不确定,最好检查一下(在列表中搜索任何 Z 命令词)。
高探测的第一个坐标未命中表面 #10
作者
德哈罗 评论了 2017 年 3 月 14 日  

嗨,马丁,
我的工厂现在设置了 GRBL 1.1f,我用 G38.2 测试了探测(Z=0 探测)……正如你上面所说的。
-> Bit 向上移动几步并发出警报。
…稍后进行一些调查…
啊,我明白了!:-)
首先:视口中的手写笔位于原点下方的某个位置,所以我认为坐标和移动是倒置的(?),另外因为我低于零 Z 而引发警报。
第二:修复后(G92 X = Y =Z=0 -> 手写笔和原点合在一起),我可以输入您的代码 G38.2… 并开始探测并正确找到 Z=0。
现在我设置了网格并开始探测,一切都按预期进行。
探测结束:钻头向上移动并停止。

现在是我最后一次尝试的错误:我现在将钻头移到原点(就像我一生都在使用其他 g 代码拖缆一样)开始铣削。
正如你上面所描述的,OpenCNCPilot 已经知道它停留在探测网格末端的某个偏移位置,并且必须自行移动到零才能开始铣削。
所以 OpenCNCPilot 驱动回到零(再次,不知道我已经这样做了)并撞到 PCB 上,然后移动到 -X 和 -Y(负),这让我的手写笔崩溃了。
(错误处理结束)

好的,我知道了!让工具做它最擅长的事情,一切都会好起来的……:-)

我说过我非常想念Petes 版本的Jog 菜单吗?;-)

高探测的第一个坐标未命中表面 #10
所有者
马丁2250 评论了 2017 年 3 月 14 日  

钻头向上移动

如果输入“G38.2 Z-10 F20”,只有当机器设置为绝对坐标并且当前在Z-10以下时,机器才会向上移动。G38.2 的行为与任何其他运动命令一样。

如果它在开始向下移动之前已经检测到连续性,它只会发出警报。

除此之外,没有 gcode 流媒体应该有任何不同的行为。一旦你设置了你的原点,你就可以四处移动并在你想要的任何地方开始你的文件(除非文件是使用增量坐标编写的,这将是非常不寻常的(并且愚蠢的))并且机器将移动到文件中指定的位置.

OpenCNCPilot 不会在您启动文件时移动到零(或出于任何其他原因,除非您明确告诉它)。这必须是您的 gcode 文件的一部分。

无论如何,它现在是否按预期工作?

关于慢跑菜单: GRBL 引入了新的慢跑功能,可以让您在中途停止慢跑运动而不会丢失位置。这就是为什么我只实现了键盘点动(所以当你释放键时它会停止),不像皮特的“旧”方式只有固定距离的按钮。

高探测的第一个坐标未命中表面 #10
作者
德哈罗 评论了 2017 年 3 月 14 日  

嗯,好的。对你上面的文章只有一个轻微的干预:
你说,OpenCNCPilot“知道它在哪里”,我不需要(!!)在探测网格后再次归零。
了解到这一点后,我在地图探测后将 OpenCNCPilot 留在原处,加载我的文件并应用地图。
我点击 File-Start 和 OpenCNCPilot移动到零并开始追踪铣削路径。
好吧,正如我所料,就我对你上面的文字的理解而言。

我的 g 代码以:

(.../pcb-gcode-3.6.2.4/pcb-gcode.ulp) (Copyright 2005 - 2012 by John Johnson) (See readme.txt for licensing terms.) (This file generated from the board:) (.../Isolationsfräsen_Tests/Iso_1/Iso_1.brd) (Current profile is .../pcb-gcode-3.6.2.4/profiles/generic.pp ) (This file generated 10.03.2017 20:07) (Settings from pcb-machine.h) (spindle on time = 3.0000) ( Tool Size) (0.1000 ) (spindle speed = 30000.0000) (tool change at 0.0000 0.0000 40.0000 ) (feed rate xy = F508.00 ) (feed rate z = F254.00 ) (Z Axis Settings) ( High Up Down Drill) (12.0000 2.5400 -0.1778 -0.8128 ) (Settings from pcb-defaults.h) (isolate min = 0.0254) (isolate max = 0.5080) (isolate step = 0.1270) (Generated top outlines, top drill, bottom outlines, bottom drill, ) (Unit of measure: mm) (Metric Mode) G21 (Absolute Coordinates) G90 S30000 G00 Z12.0000 G00 X0.0000 Y0.0000 M03 G04 P3.000000 G00 Z2.5400 G00 X1.5551 Y1.8609 G01 Z-0.1778 F254.00 G01 X1.5184 Y1.9245 F508.00 G01 X1.4994 Y1.9953 G01 X1.4994 Y5.6247 G01 X1.5184 Y5.6955 G01 X1.5551 Y5.7591 G01 X2.2154 Y6.4194 G01 X2.2154 Y6.8437 G01 X2.5543 Y7.1826 G01 X3.0337 Y7.1826 .....

在中间的某个地方,我读到“(绝对坐标)”。
这可能是我的工厂在生成地图后开始工作时行为不稳定的原因?
如果是这样,当我在开始工作之前设置 X=Y=Z=0 时,它应该会按预期工作,对吗?
也许我错过了(只是将位移动到零但忘记通过输入 G92 X0 Y0 Z0 告诉 OpenCNCPilot)。
这能解释吗?

顺便说一句:我对您的 G 代码慢跑非常感兴趣。
我也在我的操纵杆上实现了它,但是 arduino 太慢了,无法为三轴并行生成 G 代码字符串。

nota bene:中途停止似乎无法正常工作,GRBL 1.1 已经有问题,Jeon 说,他会看看。这个问题不是我的,但我也意识到了这一点。

高探测的第一个坐标未命中表面 #10
所有者
G00 Z12.0000
G00 X0.0000 Y0.0000

确切地说,这两条线告诉机器移动到 PCB 表面上方的 XY 零点。
G90告诉机器切换到绝对坐标,因此这不会导致任何不稳定的行为。

同样,在开始探测过程之前只设置一次原点,否则您将放弃高度图的对齐。唯一的例外是,如果钻头没有完全切穿铜,则将 Z 原点升高或降低零点几毫米。

您能否将问题与停止点动命令联系起来?我找不到它(到目前为止我也没有遇到任何类似的问题)。

高探测的第一个坐标未命中表面 #10
作者

抱歉,也没有找到……可能会同时修复?有没有办法搜索已关闭的问题?

高探测的第一个坐标未命中表面 #10
作者

找到它:
gnea/grbl#95
它实际上是关闭的,他们在 4 天前发现了一个获取/保持同步的技巧。

高探测的第一个坐标未命中表面 #10
所有者

谢谢!看起来这是 gcode 发件人应用程序的问题。您在使用 OpenCNCPilot 时遇到过这个问题吗?
据我所知,当您重复发送许多点动命令时会出现此问题,而 OpenCNCPilot 不会这样做。

高探测的第一个坐标未命中表面 #10
作者

嗨 Martin,
你认为你什么时候向我们提供你的下一个版本?
您知道,启用了慢跑菜单,也许每个按钮的 Z=0 探测,以及我们甚至想不到的所有其他好东西……;-)

顺便说一下:我问皮特他是否可以实现第二个串行端口,我可以在其中连接我的 Arduino nano 以从我的操纵杆发送模拟值,这些值将被转换为 GRBL 的点动命令。
不知道他是否还在考虑,但你自己的慢跑方式似乎非常适合我的想法。
如果实施,我只需要发送三个模拟值,OpenCNCPilot 中的一些额外代码必须将其转换为已经可用的点动命令。听起来很简单。
如果您有这些额外的例程,甚至可以支持任何类型的操纵杆或游戏控制器。
只是一个想法……遗憾的是我无法自己扩展你的程序,我的 C# 技能略高于生菜:-(

哈拉尔德

高探测的第一个坐标未命中表面 #10
作者
德哈罗 评论了 2017 年 3 月 15 日  

哦,我忘了评论你的最后一篇文章……

我的操纵杆和 OpenCNCPilot 还没有交互,所以
不,就我而言,OpenCNCPilot 的慢跑没有问题。

但是我在第二个 Arduino 中实现的慢跑与 GRBL 1.1 有这个(或非常相似的)问题。
只要杆偏离中性,我就会尝试发送非常快的空头移动。我明白,这是推荐的慢跑方法。
F参数取决于偏转量,步长是固定的(例如0.1 mm。我尝试了不同的数字。不知道“chamnit”的“非常短的运动”应该是什么)。
我发送“$J=G92X-0.10F532”形式的字符串,其中几乎所有字符都是固定的。只有轴参数(X,Y,Z),符号(“-”,空白)和“F”后面的数字,表示进给速度。

除此之外,我的 Arduino 速度太慢,无法保持前瞻缓冲区填充以实现平滑运动,我遇到了问题,在发送“点动取消”命令后,轴停止,然后进行一些额外的移动。这种行为是任意的,并不总是适用,额外的移动量——如果有的话——也是任意的。

高探测的第一个坐标未命中表面 #10
所有者

抱歉,但这太具体了,无法实施。我必须用 Arduinos 读取的操纵杆或仅使用 USB 操纵杆等来涵盖各种设置。还有很多事情需要考虑使这个故障安全:-它可以在发送文件时执行命令吗?- 它是否应该在发送文件时传递特殊字符,如软重置?- 它应该接受特殊命令来启动文件/探测周期吗?

只是没有办法让它对每个人都可用。如果您确实找到了一种使其普遍可用并保持附加代码相当精简的方法,请告诉我并重新打开此问题。