开源改变世界

X 方向归位不起作用 #869

推推 grbl 3年前 (2023-01-23) 202次浏览

关闭
cong-99 开启了这个问题 2020 年 5 月 21 日 · 6条评论
关闭

X 方向归位不起作用#869

cong-99 开启了这个问题 2020 年 5 月 21 日 · 6条评论

注释

X 方向归位不起作用 #869

grbl 版本:啄木鸟 3.2 控制器上的 1.1h。

$20=0
$21=0
$22=1

奇怪的问题 – 我最近安装了一组限位开关,设置了归位方向掩码等。发送 $H 命令正确启动整个过程,Z 轴移动。一旦完成,机器就会停止并看似挂起(不通过串口响应任何进一步的命令输入,不在串口终端上产生任何消息)。

我修改了 config.h 以启用单独的 X、Y 和 Z 归位并发现 Z 和 Y 归位正常工作,而 X 归位总是产生“卡住”机器(步进器供电,控制器对任何命令无响应)。解决这个问题的唯一方法似乎是硬重置。

使用 G1 X25 F100 之类的 X 运动可以正常工作。

我努力了:

  • 交换 A4988 驱动模块(只是为了运气)——没有效果
  • 使用硬限位测试($21=1)- 这按预期工作,即
    G1 X 50 F250 使 X 轴移动,当我手动触发 X 限位开关时,系统停止并产生警报消息。
  • 做一个 $HX,并手动触发 X 限位开关以模拟主机“到达”限位开关等 – 但控制器永远不会脱离其看似锁定的状态(没有“ok”消息)。
  • 检查它是否是限位开关的误触发(它们配置为否 – 我添加了 2.2K 上拉电阻以确保噪声进入的可能性很小;每个引脚上已经有一个 RC 网络) – 看起来很干净。

简而言之——只有 X-homing 不起作用,任何“调用”例程的东西都会导致控制器挂起。

我很乐意尝试任何 mod(软件或硬件)来解决这个问题,即这是否是焊桥问题,导致仅在 X-homing 期间允许通过的中断?如果我知道要查看哪些中断/引脚,我也许能找到这个……

X 方向归位不起作用 #869

啄木鸟3.2的板我不知道,我有一块3.4的板,X和Z开关输入是反标的。即:X 标记为 Z,Z 标记为 X。只是一个想法。

您的电路板图片有助于查看 3.2 电路板是否标记相同。

X 方向归位不起作用 #869
作者

感谢您的评论/输入!我相信开关接线正确,如硬限制操作(在所有 3 个轴上测试)所证明的那样,即 

G1 X50 F250

然后当头部移动时,我按下 X 限位开关:确实停止了。  

我使用 DMM 快速查看了一下,以验证 XEND 引脚是否连接到 ATMEGA-328P(PB1,又名 Arduino 的 D9)的引脚 13。是的,它是……

X 方向归位不起作用 #869
雕刻机 评论了 2020 年 5 月 21 日  

也许你已经看到了这一点。但希望它有所帮助。
https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches

要检查您的开关,将其中一个短接并启动 PicSender。
PicSender 完成 sratup 后,单击“$X”按钮清除警报(如果有)。
然后单击“?” 按钮。您应该会看到如下消息:<Idle|MPos:0.0000,0.0000,0.0000|FS:0.0,0|Pn:X> ,其中Pn:X表示“X”切换已完成。每关闭一个开关,“X”就会变为“Y”或“Z”。轴字母后可能还有其他字符,因为 grbl 每次“?”时都会循环通过其检查点。命令被发送。

注意:为了更容易和更快地测试,将 grbl 设置为无硬限制($21=0)以阻止 PicSender 发出硬限制警报消息并锁定控件。

X 方向归位不起作用 #869
作者
聪99 评论了 2020 年 5 月 22 日  

谢谢 – 恐怕这只是确认开关接线正确。我通常使用 PUTTY 与控制器通信。我按下了 X、Y 和 Z 限位开关,每次都查询控制器:

<报警|MPos:0.000,0.000,0.000|FS:0,0>
正常
<报警|MPos:0.000,0.000,0.000|FS:0,0|Pn:X>
正常
<报警|MPos:0.000,0.000,0.000 |FS:0,0>
ok
<Alarm|MPos:0.000,0.000,0.000|FS:0,0|Pn:Y>
ok
<Alarm|MPos:0.000,0.000,0.000|FS:0,0>
ok
<Alarm |MPos:0.000,0.000,0.000|FS:0,0|Pn:Z>
正常
<报警|MPos:0.000,0.000,0.000|FS:0,0>
正常

可以看出,Pn:__ 显示每个开关已激活和释放。我真的希望接线开关和让它们工作是我不应该遇到的问题,但检查它是一件好事!

所以现在我已经探测了 X 驱动信号(步进和方向)。这是设置:
X 方向归位不起作用 #869

这是当 X 电机沿 X 限位开关的方向(使用 G1 X-5 F200)驱动时产生的 Step(黄色迹线)和 DIR 信号,即正常工作 – 你可以看到黄色迹线变得更密集随着时间的推移,显示 X 步频率上升(加速度):
X 方向归位不起作用 #869

相反,这是发送 $H(home)时的驱动信号:
X 方向归位不起作用 #869

您可以看到 STEP 脉冲 – 或者没有它 – 它在高电平状态停留了一段时间。

RESET 然后另一个 $H 尝试:
X 方向归位不起作用 #869

可以看出,它基本上做同样的事情。我真的很难过!

我希望有人能告诉我在代码中的哪个位置查看:这是 GRBL 中的规划器错误或其他…?

顺便说一句 – 另一件事 – 我正在使用 Arduino IDE 来编译和上传固件(如 Github wiki 页面所建议的那样)。实际上有几个编译器警告:


在 C:\Users\Arduino\libraries\grbl/grbl.h:43:0 包含的文件中,

             from C:\Users\Arduino\libraries\grbl\examples\grblUpload\grblUpload.ino:27:

C:\Users\Arduino\libraries\grbl/nuts_bolts.h:56:0: 警告:“最大”重新定义

#define max(a,b) (((a) > (b)) ? (a) : (b))

在 sketch\grblUpload.ino.cpp:1:0 包含的文件中:

C:\Program Files\Arduino168\hardware\arduino\avr\cores\arduino/Arduino.h:93:0:注意:这是前面定义的位置

#define max(a,b) ((a)>(b)?(a):(b))

在 C:\Users\Documents\Arduino\libraries\grbl/grbl.h:43:0 包含的文件中,

             from C:\Users\Documents\Arduino\libraries\grbl\examples\grblUpload\grblUpload.ino:27:

C:\Users\Documents\Arduino\libraries\grbl/nuts_bolts.h:57:0: 警告:“min”重新定义

#define min(a,b) (((a) < (b)) ? (a) : (b))

在 sketch\grblUpload.ino.cpp:1:0 包含的文件中:

C:\Program Files\Arduino168\hardware\arduino\avr\cores\arduino/Arduino.h:92:0:注意:这是前面定义的位置

#define min(a,b) ((a)<(b)?(a):(b))

在 C:\Users\Documents\Arduino\libraries\grbl/grbl.h:43:0 包含的文件中,

             from C:\Users\Documents\Arduino\libraries\grbl\examples\grblUpload\grblUpload.ino:27:

C:\Users\Documents\Arduino\libraries\grbl/nuts_bolts.h:61:0: 警告:“位”重新定义

#定义位(n)(1 << n)

在 sketch\grblUpload.ino.cpp:1:0 包含的文件中:

C:\Program Files\Arduino168\hardware\arduino\avr\cores\arduino/Arduino.h:124:0:注意:这是前面定义的位置

#define 位(b) (1UL << (b))


以上所有内容似乎都是对相同代码的重新定义,除了最后一个 – 我不知道这是否是问题的根源?

最后是 STK() 上传错误,通过选择“Arduino Nano”和“old 328P bootloader”作为处理器来解决。

X 方向归位不起作用 #869

那么,您正在使用 Woodpecker 3.2 板,现在有一个 3.4 可用。也许您有硬件问题,而不是固件问题?不管怎样,你有一个原始的 Arduino Uno(不是中国克隆)可以用来测试你编译的 grbl 吗?我确实知道有各种关于 grbl 和 Uno 克隆问题的报告。可能有助于消除硬件或固件问题。无论如何,我自己没有建议。

X 方向归位不起作用 #869
作者

感谢所有帮助 – 发现问题!

归结为“用户愚蠢”。我将 X、Y 和 Z 最大行程设置为非常大的值(一定是以微米为单位)。由此产生的 Xmax 一定在某处造成了溢出(尽管关闭了软限制)。

结论 – Woodpecker 3.2 Board 很好。正确获取配置参数!

现在关闭它… :-)

喜欢 (0)