Contact me: hankecnc@gmail.com

平滑板上的自动调平不起作用 #419

推推 grbl 3年前 (2023-02-01) 273次浏览
打开
modulab 打开了这个问题 2016 年 9 月 7 日 · 31条评论
打开

平滑板上的自动调平不起作用#419

modulab 打开了这个问题 2016 年 9 月 7 日 · 31条评论

注释

平滑板上的自动调平不起作用 #419

你好呀!
第一件事,感谢您提供此软件。
第二件事,我在自动调平序列方面遇到了一些麻烦。实际上它从来没有奏效。在探测器第一次接触后,我得到一个错误:“移动前触发探测器”。有时我会探测网格上的两个位置,但仅此而已。同样的错误和句号。
我在 smoothieboard 上运行,在 Windows 10 上使用固件和 bcnc 进行了更新。我已经用电尝试了所有东西:盖子、屏蔽线、电磁扼流圈。
我怀疑这与原生 smoothieware 自动调平或 bcnc 之间的区别有关。

你能给我一些建议吗?它困扰了我这么久。
谢谢,
保罗

平滑板上的自动调平不起作用 #419
贡献者

你好@modulab
这正是您在 bCNC 中读到的错误吗?您是否在终端输出中阅读了该消息?
我无法用冰沙进行测试,但我可以看看是由于 bCNC 还是仅仅是一些电噪声。

平滑板上的自动调平不起作用 #419

我对这个伟大的软件表示感谢。这是我用于 Smoothieboard 的“goto”CNC 控制器软件。在完全相同的条件下,我也遇到了完全相同的问题/错误。我已经有一段时间没看过了,所以我不记得消息是否在终端中。我似乎记得它在 bCNC 中。

平滑板上的自动调平不起作用 #419
贡献者

当探测例程失败时,您可以发布终端选项卡的输出吗?

平滑板上的自动调平不起作用 #419

平滑板上的自动调平不起作用 #419

以下是请求的输出。我正在运行 0.9.6 版本

G38.2Z-25F5
[PRB:123.262,-191.878,-10.310:1]
ok
G0Z3
ok
G0X31.739Y-32.879
ok
G38.2Z-25F5
错误:ZProbe 在移动前触发,中止命令。
运行结束
2016-09-25 14:21:06.963000
当前:16 [17] 已完成:23% [7s Tot:7s Rem:0s]

错误:ZProbe 在移动前触发,中止命令。

错误:ZProbe 在移动前触发,中止命令。

平滑板上的自动调平不起作用 #419
贡献者

@pda3k 仅供测试,您可以使用此设置发布输出吗?

平滑板上的自动调平不起作用 #419

同样从网络上的一些文档来看,似乎可以使用命令M119询问 smoothie 的探测状态。尝试使用终端选项卡并询问 smoothie 有关探针状态的信息,包括触点关闭和打开时。

平滑板上的自动调平不起作用 #419

平滑板上的自动调平不起作用 #419

根据您的要求,我做了上面提到的步骤,结果如下:

打开连接测试:

min_x:0 min_y:0 探针:0
M119
ok
$G
[G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F2000.0000]
ok

关闭连接测试:

min_x:0 min_y:0 探针:1
M119
ok
$G
[G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F2000.0000]
ok

探针测试:

<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:700304.8,0.0000,WPos:295.304.0 :0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.000MPos:0.0000,0.000MPos
> 295.4778,338.0000,4.7000,WPOS:0.0000,0000,0.0000>
<iDle,mpos:295.4778,338.0000,4.7000,WPOS:0.000000,0000,0000,0.0000
> 0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000 ,工作位置:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:700304.8,0.0000,WPos:295.304.0 :0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.000MPos:0.0000,0.000MPos
> 295.4778,338.0000,4.7000,WPOS:0.0000,0000,0.0000>
<iDle,mpos:295.4778,338.0000,4.7000,WPOS:0.000000,0000,0000,0.0000
> 0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000 ,工作位置:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:700304.8,0.0000,WPos:295.304.0 :0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.000MPos:0.0000,0.000MPos
> 295.4778,338.0000,4.7000,WPOS:0.0000,0000,0.0000>
<iDle,mpos:295.4778,338.0000,4.7000,WPOS:0.000000,0000,0000,0.0000
> 0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000 ,工作位置:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:700304.8,0.0000,WPos:295.304.0 :0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.000MPos:0.0000,0.000MPos
> 295.4778,338.0000,4.7000,WPOS:0.0000,0000,0.0000>
<iDle,mpos:295.4778,338.0000,4.7000,WPOS:0.000000,0000,0000,0.0000
> 0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000 ,工作位置:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:700304.8,WPos:295.304.8,MPos:295.4778,338.0000,4.7000 :0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<空闲,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.000MPos:0.0000,0.000MPos
> 295.4778,338.0000,4.7000,WPOS:0.0000,0000,0.0000>
<iDle,mpos:295.4778,338.0000,4.7000,WPOS:0.000000,0000,0000,0.0000
> 0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000,WPos:0.0000,0.0000,0.0000>
<Idle,MPos:295.4778,338.0000,4.7000 ,工作位置:0.0000,0.0000,0.0000>
$#
好的
G0Z3
好的
G0X0Y0
好的
G0Z30
好的
<Run,MPos:295.4764,338.0011,4.9947,WPos:-0.0014,0.0011,0.2947>
<Run,MPos:295.4764,338.0011,5.6604,WPos:
-0.0014,0.06R MPos:295.4764,338.0011,6.3341,WPos:-0.0014,0.0011,1.6341>
<运行,MPos:295.4764,338.0011,7.0334,WPos:-0.0014,0.0011,2.3334>
<运行,MPos: 295.47.55:295.47.64,0.0011,2.3334> -0.0014,0.0011,2.8585>
<运行,MPos:295.4764,338.0011,7.6932,WPos:-0.0014,0.0011,2.9932>
<运行,MPos:295.4764,338.0011,7.7071,WPos:-0.0014,3.00>
R MPos:295.4764,338.0011,7.9745,WPos:-0.0014,0.0011,3.2745>
<运行,MPos:295.4764,338.0011,8.6046,WPos:-0.0014,0.0011,3.9046>
<运行,MPos:295.4764,338.0011,9.3059,WPos:-0.0014,0.0011,4.6059>
<运行,MPos:295.4764,338.0011,10.0073,WPos:-0.0014,0.0011,5.3073>
<运行,MPos:247017,7.8.8.4,4 ,WPos:-0.0014,0.0011,4.0670>
<运行,MPos:295.4764,338.0011,8.1410,WPos:-0.0014,0.0011,3.4410>
<运行,MPos:295.4764,338.0011,7.4416,WPos:-0.07014,0.07014>
G0X0Y0
[PRB:295.476,338.001,6.885:1]
ok
G38.2Z-30F5
ok
G0Z30
ok
G0X5.5556Y0
错误:ZProbe 在移动前触发,中止命令。
运行结束
2016-09-25 18:53:35.886000
当前:17 [305] 已完成:1% [12s Tot:3m43s Rem:3m31s]

错误:ZProbe 在移动前触发,中止命令。

错误:ZProbe 在移动前触发,中止命令。

确定
<跑,MPos:295.4764,338.0011,7.5704,WPos:-0.0014,0.0011,2.8704>
<跑,MPos:295.4764,338.0011,8.6640,WPos:-0.0014,0.0011,3.9640>
<跑,MPos :6403,487.9640> 9.7537,WPos:-0.0014,0.0011,5.0537>
<运行,MPos:295.4764,338.0011,10.8454,WPos:-0.0014,0.0011,6.1454>
<运行,MPos:317.7008,338.0011,7.91,20.2011,7.91,4.2011,7.91,20.2011,7.91,20.2011,7.91,20.2012.2011,7.91,42.2011,7.91,338.0011,7.91,42.2020
<运行,MPos:317.7008,338.0011,6.9027,WPos:22.2231,0.0011,2.2027>

[PRB:317.701,338.001,6.730:1]
好的

确定
<运行,MPO:317.7008,338.0011,7.9567,WPOS:22.2231,0.0011,3.2567>
<RUN,MPOS:317.7008,338.0011,9.011,0484,WPOS,WPOS:22.2231,0.0011,0011,4.33484.3484.3484>
<Run,4.3484> <Run,<run,<run,<run,<run,<run,<run,<run,< WPos:22.2231,0.0011,5.4381>

平滑板上的自动调平不起作用 #419

此外,我使用下面的 Gcode(作为宏)进行简单的探针测试,并使用触摸板将 Z 轴设置为零。触控板厚9.6mm。一旦接触,它会将工具升高到 19 毫米。这一直非常可靠。

G30 Z9.6 G10 L20 P1 Z9.6 G0 Z19

平滑板上的自动调平不起作用 #419
贡献者

耐心一点@pda3k,我正在测试盲目。您是否尝试使用 G38.3 模式而不是 G38.2?
您可以从这里选择它:

平滑板上的自动调平不起作用 #419

也许我可以使用 G30 更改另一个分支中的探测命令,因为您报告它有效。

平滑板上的自动调平不起作用 #419

不用担心。很高兴我能成为你的“眼睛”。我尝试了你的要求并得到了相同的结果。当我自己执行 G38.3 命令时,它运行良好。我决定通过命令行手动执行每个 Z 探测步骤,看看我是否收到错误。当我这样做时,我没有收到任何错误。运行AutoIevel例程时,确实注意到在G38.3代码第一次接触板后立即产生错误。一旦被触摸,就会显示错误,然后探头缩回。你认为在 G38.3 代码完成之前,探针会以某种方式缩回吗?我确实在 Smoothie 固件中查找了以下代码。这是错误消息似乎源自的地方。如果你想让我尝试别的东西,请告诉我。

else if(gcode->has_g && gcode->g == 38 ) { // G38.2 Straight Probe 有错误,G38.3 Straight Probe 没有错误
// linuxcnc/grbl style probe http://www.linuxcnc.org /docs/2.5/html/gcode/gcode.html#sec:G38-probe
if(gcode->subcode != 2 && gcode->subcode != 3) {
gcode->stream->printf(“error:Only G38 .2 和 G38.3 受支持\n”);
返回;
}

    // make sure the probe is defined and not already triggered before moving motors
    if(!this->pin.connected()) {
        gcode->stream->printf("error:ZProbe not connected.\n");
        return;
    }

    if(this->pin.get()) {
        gcode->stream->printf("error:ZProbe triggered before move, aborting command.\n");
        return;
    }
平滑板上的自动调平不起作用 #419
贡献者

那很奇怪。我昨天从 smoothie 的 gitHub 看到了相同的代码,也许 G38.2/3 的规划器中存在一些问题。不管怎样,这里有 2 个文件,一个是探测例程的标准结果,另一个是在每个探测后添加 G4 1 的轻微修改版本。至少在 grbl 中,G4 应该清空缓冲区,这样也许它可以成功。请尝试运行它们并提供一些反馈。

探针.zip

平滑板上的自动调平不起作用 #419

两套G代码我都试过了。“等待”代码在第一次探测后仍然有错误。我尝试用 G30 替换 G38.3 代码并运行相同的文件。一切都很完美,一直到最后。每个探头都会返回 Z 高度。当您尝试通过数据流提供它时,smoothie 固件中一定存在触发此错误的问题。G30 代码可以替代 G38.2/3 吗?使用 G30 代码的唯一缺点是它使用默认的切入和缩回速率。它允许您使用 Fxxx 覆盖退刀率。

平滑板上的自动调平不起作用 #419
贡献者

做得好@pda3k.
如果确实存在错误,我们应该询问 smoothieware 团队(也许@wolfmanjm) 如果他们可以检查它。
如果无法修复,我们可以对 smoothieware 使用另一个命令,但它会弄乱代码。如果可能的话,应该避免。

平滑板上的自动调平不起作用 #419
贡献者

这不是 smoothie G38.2 或 .3 中的错误,非常适合我(尽管我从未在 BCNC 上尝试过)。
如果 G30 不符合您的预期,您不应使用它。

可能发生的情况是您的探头上有噪音导致它过早触发。或者在发出探测之前触发探测(这实际上是正在报告的内容)。
在我看来,bCNC 在发出移动命令之前没有等待探测器完成,从输出看来,在探测器仍处于活动状态时发送了命令。这将是一个 bCNC 错误,因为它必须等待任何命令的 OK,并且永远不会发送任何东西,直到它从上一个命令获得 ok。

FWIW Smoothie 内置了自动调平功能,我建议您改用它。

平滑板上的自动调平不起作用 #419
贡献者

你好@wolfmanjm,感谢您的澄清。
可能关键在于将命令流式传输到控制器的方式不同。
在 grbl 中,建议尽可能用大多数命令填充小的 RX 缓冲区(保持发送字符的计数)。这样刨床就可以正确计算出加速斜坡。
我不确定 bCNC 是否正在为冰沙做一些不同的事情,甚至没有等待 OK。我错了吗@vlachoudis

平滑板上的自动调平不起作用 #419
所有者

@effer正确的 bcnc 总是用命令填充缓冲区,除非有明确的 %wait。不需要使用 grbl 自动加载,因为它会在控制器返回时异步记录探测数据。@wolfmanjm如果 smothie 需要这样做,我可以在探测命令后添加一个显式等待

平滑板上的自动调平不起作用 #419
贡献者

smoothie 仅在探测完成后才发送 ok,只要您与 smoothie 进行乒乓通信,它就应该可以工作。不等待事先确定就发送任何命令会导致问题。

平滑板上的自动调平不起作用 #419

Vlachoudis – 我很乐意测试所做的任何更改。请告诉我。感谢大家提供如此出色的硬件和软件。

菲尔

2016 年 9 月 29 日下午 5:52,Jim Morris notifications@github.com写道:

smoothie 仅在探测完成后才发送 ok,只要您与 smoothie 进行乒乓通信,它就应该可以工作。不等待事先确定就发送任何命令会导致问题。


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub 上查看它,或将线程静音。

平滑板上的自动调平不起作用 #419
贡献者
人魔 评论了 2016 年 9 月 30 日  

在 grbl wiki中,发送/等待 ok 握手现在似乎是首选的通信方式。
我们是否应该评估使用该协议而不是填充缓冲区?

平滑板上的自动调平不起作用 #419

有没有我可以试用的测试模块/代码?

平滑板上的自动调平不起作用 #419
贡献者

你好@pda3k,只是另一个测试,直到定义了与冰沙的握手。
如果你想测试:
probeWait2.zip

平滑板上的自动调平不起作用 #419

谢谢。我试试看!

菲尔

2016 年 10 月 18 日下午 1:33,Filippo < notifications@github.com mailto:notifications@github.com > 写道:

嗨@pda3khttps://github.com/pda3k,只是另一个测试,直到定义了关于与冰沙握手的东西。
如果要测试:
probeWait2.zip https://github.com/vlachoudis/bCNC/files/536944/probeWait2.zip

你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub 上查看它https://github.com/ /issues/419 #issuecomment-254581113,或将线程静音 https://github.com/notifications/unsubscribe-auth/ATjeiuhuO6r5MfzC9HrrFZovuUv76ITFks5q1QLkgaJpZM4J233e。

平滑板上的自动调平不起作用 #419

它似乎奏效了——几乎。开始很好。每个探测都会被执行,然后它会暂停大约 10 秒。它下降到第一行,然后回到 X=0。然后出现“移动前触发探测”错误。

我尝试再次重复相同的步骤,但这一次,它似乎在暂停之间执行得更快(<1 秒),但在大约 4 个探测周期后抛出错误。


发件人:Filippo notifications@github.com
发送时间:2016 年 10 月 18 日星期二下午 1:33
收件人:vlachoudis/bCNC
抄送:pda3k;提及
主题:回复:[vlachoudis/bCNC] smoothieboard 上的自动调平不起作用 ( #419 )

嗨@pda3khttps://github.com/pda3k,只是另一个测试,直到定义了关于与冰沙握手的东西。
如果要测试:
probeWait2.zip https://github.com/vlachoudis/bCNC/files/536944/probeWait2.zip

你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub 上查看它https://github.com/ /issues/419 #issuecomment-254581113,或将线程静音 https://github.com/notifications/unsubscribe-auth/ATjeiuhuO6r5MfzC9HrrFZovuUv76ITFks5q1QLkgaJpZM4J233e。

平滑板上的自动调平不起作用 #419
yoch2015 评论了 2016 年 12 月 23 日  

你好。
我想是因为自动调平在 smoothieboard 上不起作用。
好好观察一下操作,发现在触摸板后马上就出错了,甚至在执行G38之前就出错了。
据说没有定义与smoothie ware的握手,并且在扫描执行时将vlachoudis注释中的’%wait’插入到G代码中,自动调平没有错误完成。
‘%wait’ 插入位置没有依据。
谢谢你。
修改文件名:cnc.py
平滑板上的自动调平不起作用 #419
平滑板上的自动调平不起作用 #419
平滑板上的自动调平不起作用 #419

平滑板上的自动调平不起作用 #419

刚开始将 bCNC 与冰沙板一起使用。优秀的项目,谢谢。
autoleveling 例程给了我与上面提到的相同的错误。
并且进给率变化没有响应,如问题#466
#466
使用 yoch2015 的示例,谢谢,我第一次尝试 python 编码。
这个 gcode 序列运行时没有错误,并且在任何代码更改之前都有预期的进给率。
G00 Z5
G00 X1 Y1
G00 F1
G04 P1
G38.3 Z-10
G00 F4000
G00 Z5
G00 X100 Y1
G00 F1
G04 P1
G38.3Z-10
G00 F4000
G00 Z5
G00 X100 Y100
G00 F1
G04 P1
G38.3Z-10
G00 F4000
G00 Z5
G00 X0 Y100
G00 F1
G04 P1
G38.3Z-10
G00 F4000
G04 P1
G00 Z5
G00 X0 Y0

通过对 cnc.py 进行以下更改,Autolevel“似乎”对我有用。
我将我微弱的编码尝试提交给这里的编码大师。

G00 到 prbfeed(G38 似乎抓住第一个进给率并将其锁定,需要重置才能更改)
G04 停留 1ms(在每个 G38 清除我的错误之前执行此操作)
然后发出 G38(这里的 prbrate 似乎没有做任何事情)
G00 到 4000 返回正常进给(不知道变量所以我不得不硬编码)
不确定 GRBL 将如何处理这个序列。


#----------------------------------------------------------------------
# Return the code needed to scan for autoleveling
#----------------------------------------------------------------------
def scan(self):
	self.clear()
	self.start = True
	self.makeMatrix()
	x = self.xmin
	xstep = self._xstep
	lines = ["G0Z%.4f"%(CNC.vars["safe"]),
		 "G0X%.4fY%.4f"%(self.xmin, self.ymin)]
	for j in range(self.yn):
		y = self.ymin + self._ystep*j
		for i in range(self.xn):
			lines.append("G0Z%.4f"%(self.zmax))
			lines.append("G0X%.4fY%.4f"%(x,y))
			lines.append("G0F%g"%(CNC.vars["prbfeed"]))
			lines.append("G04P1")
			lines.append("%sZ%.4f"%(CNC.vars["prbcmd"], self.zmin))
			lines.append("G0F4000")
			x += xstep
		x -= xstep
		xstep = -xstep
	lines.append("G0Z%.4f"%(self.zmax))
	lines.append("G0X%.4fY%.4f"%(self.xmin,self.ymin))
	return lines

平滑板上的自动调平不起作用 #419
所有者

In Grbl the G0 doesn’t use the F##, so there is no variable containing the feed rate of the G0 since this is in the setup of grbl. I can put a patch that for Smoothie to add a dwell of 1s before the probe, but I don’t know what feed rate to put in the g0.

平滑板上的自动调平不起作用 #419
Contributor

Please note that to match Smoothie the G4 Pxxx has been changed in smoothie to be in floating seconds not milliseconds, BUT only if smoothie is in grbl compatibility mode (ie the firmware-cnc build) which people would be using anyway for BCNC.
Unfortunately for whatever reason reprap/Marlin decided to define the P as milliseconds. We do have an G4 Sxxx which is always seconds regardless of the build.

平滑板上的自动调平不起作用 #419
Contributor

FYI G0 in smoothie uses the last feedrate specified for a G0 move if Fxxx is not specified on the G0 line.

喜欢 (0)