Contact me: hankecnc@gmail.com

归位循环仅 x 和 y 轴问题 #293

推推 grbl 3年前 (2023-01-21) 134次浏览
关闭
Philmurp 打开了这个问题 2013 年 11 月 29 日 · 58条评论
关闭

归位循环仅 x 和 y 轴问题#293

Philmurp 打开了这个问题 2013 年 11 月 29 日 · 58条评论

注释

归位循环仅 x 和 y 轴问题 #293

所以我在 X 轴和 Y 轴上连接了限位开关。当我连接我的限位开关,然后以 $16=1 启用硬限位时,我无法移动我的步进器。无论我输入什么命令,它都不会执行。好像我的限位开关冻结了我的系统。我的 G 代码发送器没有发出任何警报或限位开关已被触发的任何指示。当我尝试移动说 G0 X-2 时,我的 X 轴灯闪烁了一秒钟,然后系统无法识别超出该点的任何命令。当我此时尝试软重置 GRBL 时,它显示“等待被用户中断”。我试过只使用一个 X 轴限位开关和各种组合,但我无法弄清楚是什么导致了这个问题,甚至不知道是什么问题。当我关闭我的 grbl 控制器并重新启动系统并输入 $16=0 时,一切正常,所以它似乎是我的限位开关的问题。我正在使用 grbl .8c,并在引脚和 Vcc 之间连接一个 10K 欧姆电阻,以 NO 方向在引脚和地之间连接我的限位开关。

在阅读了一些文档之后,似乎在启用硬限制的情况下,grbl 被锁定,直到有一个归位循环运行。但是,我只有 X 和 Y 限位开关,当我输入 $H 时,它会指向 Z 轴。无论如何设置grbl以便只有X和Y轴归位以便解决这个问题?

在此先感谢您提供的任何帮助或建议,我真的被这个问题困住了,并且无法在网上找到任何解决此类问题的文档。

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp: 是的!这个问题有一个解决方案。您将需要下载 grbl 源代码并更改 config.h 文件中的归位循环配置以仅在两个轴上运行。重新编译源代码并将十六进制闪存到您的 Arduino。

归位循环仅 x 和 y 轴问题 #293

所以我在 github 站点上对 config.h 进行了更改。所以它告诉我我
最近“推了一个分支”我不确定这个术语,但我
认为这意味着我已经创建了我自己的个性化 .hex 文件,其中包含
我所做的更新更改。因此,如果我现在向下滚动页面并下载
hex 文件,当我将 .hex 文件闪存
到我的 Arduino 时,我对配置的更改是否会生效?

还是我现在需要“重新编译源代码”才能使我的更改生效?你能告诉我怎么做吗?

2013 年 11 月 28 日星期四晚上 10:37,Phillip Murphy
phillipmurphy47@gmail.com 写道

config.h 文件是十六进制文件还是我需要
闪存到 arduino 的第二个文件?

任何更多的解释都是有帮助的,因为我不熟悉这个技术
grbl 代码

2013 年 11 月 28 日星期四,Sonny Jeon 写道:

@philmurp https://github.com/philmurp:是的!
这个问题有一个解决方案。您将需要下载 grbl 源代码并更改
config.h 文件中的归位循环配置以仅在两个
轴上运行。重新编译源代码并将十六进制闪存到您的 Arduino。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/293 #issuecomment-29480449

归位循环仅 x 和 y 轴问题 #293
贡献者

你好@philmurp
您将需要重新编译您修改过的源代码。

对于 grbl,因为它是基于 avr 的芯片,这可以通过为 windows 安装 Winavr 或为 linux 安装 avr-gcc 来完成。安装这些程序中的任何一个后,执行此操作的命令将是 >make grbl.hex 并且应该在与 grbl 文件相同的目录中执行。

我希望这有帮助。

归位循环仅 x 和 y 轴问题 #293

我要问的是如何确保我下载的 .hex 文件与我的 config.h 更新一起更新。例如,当我第一次将 grbl 闪存到我的 arduino 时,我从 git hub 主页下载了 grbl.hex 文件,然后将其闪存到 arduino。如果我从我的分支 git 中心页面下载 .hex 文件,该下载是否会更新,或者我是否必须做其他事情才能使我的更改永久下载 .hex 文件?

抱歉,如果我的问题不清楚。

归位循环仅 x 和 y 轴问题 #293
贡献者

您将使用自述文件中的链接从您的分支下载的十六进制文件仍然来自官方 grbl github 站点,因此不会包含您的更改。您对 *.c 或 *.h 文件所做的任何更改都不会自动反映在任何十六进制文件中,无论是在 github 上还是在本地副本上。您需要重新编译代码。

我建议您下载 github 软件,它会下载您所做更改的本地副本,并允许您将任何更改上传到 github。

归位循环仅 x 和 y 轴问题 #293

好的,如果我下载 github 软件然后下载本地副本,我
可以从该软件重新编译代码吗?我正在为如何
重新编译代码而苦苦挣扎。谢谢!

2013 年 11 月 29 日星期五,Russell Oliver 写道:

您将使用
自述文件中的链接从您的分支下载的十六进制文件仍然来自官方 grbl github 站点,因此
不会包含您的更改。您对 *.c 或 *.h
文件所做的任何更改都不会自动反映在任何十六进制文件中,无论是在
github 上还是在本地副本上。您需要重新编译代码。

我建议您下载 github 软件,它会下载
您所做更改的本地副本,并允许您
将任何更改上传到 github。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/293 #issuecomment-29510109

归位循环仅 x 和 y 轴问题 #293
贡献者

你需要一个编译器。对于 Windows 使用 winavr。网上有关于如何使用它的指南。虽然最简单的方法是安装程序后,但在开始菜单/Winavr 下的所有程序中应该有一个名为程序员记事本的程序。

使用该程序打开 grbl 目录中的“makefile”文件。然后在菜单栏的工具下运行 make all 命令。这应该会生成一个新的 grbl.hex 文件,其中包含您所做的更改。

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp: 得知您在执行此操作时遇到很多问题,我们深表遗憾。如果您不习惯,源代码可能会变得非常神秘和混乱。要使其正常工作,您需要进行以下更改:

  • 第一行必须是:#define HOMING_SEARCH_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))
  • 删除或注释掉带有 的行HOMING_SEARCH_CYCLE_1
  • 另外,最后一行必须是:#define HOMING_LOCATE_CYCLE ((1<<X_AXIS)|(1<<Y_AXIS))

如果您需要,我也可以为您发布一个 2 轴编译版本,但听起来您已经差不多了。

归位循环仅 x 和 y 轴问题 #293
作者

如果我有:

#define HOMING_SEARCH_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // 然后同时移动 X,Y。
// #define HOMING_SEARCH_CYCLE_2 // 取消注释并添加轴掩码以启用
#define HOMING_LOCATE_CYCLE ((1<<X_AXIS)|(1<<Y_AXIS)) // 必须包含所有搜索轴

然后从 limits.c 文件中评论 Homing_Search_Cycle_0?

还是必须包含名称#define Homing_Search_Cycle_0?

我按照上面提到的方式进行了操作,并且能够创建一个 .hex 文件,但我想确保我的变量名是正确的

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp: 哪个都好。

归位循环仅 x 和 y 轴问题 #293
作者

进行更改并上传新的 .hex 文件后,我的 grbl 冻结问题仍然存在。我用 $H 运行一个归位周期,完成归位周期后,我的 grbl 仍然冻结,不允许我输入和移动。

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp:您的 NO 限位开关需要接地,而不是 Vcc。试试看。

归位循环仅 x 和 y 轴问题 #293
作者

我的限位开关连接在地线和限位引脚之间,我让每个引脚都通过一个电阻连接到 VCC,同时充当上拉电阻以降低噪声。所以我的限位开关是 NO 并且并联连接在接地和限位开关引脚之间。

归位周期现在仅归位 X 轴和 Y 轴,因此看来我的一些更改已生效。但是我确实评论了初始归位锁,这也不起作用,因为它在启动时被锁定。

当我尝试在归位后移动时,有一个脉冲发送到我的电机,然后它卡在等待循环中

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp:我不确定你的 Vcc 连接是做什么的,但你需要做的就是通过 NO 开关将限制引脚连接到地。限制引脚已经通过内部上拉电阻保持在高电平。

归位循环仅 x 和 y 轴问题 #293
作者

重新布线后,我仍然遇到同样的问题,我的 grbl 没有响应。
另外,达到限制后重置 grbl 的最佳代码是什么?我一直在使用 (CTRL-X),但似乎效果不佳。

当我尝试运动后点击重置时,我收到错误消息:等待用户中断,错误命令:G0 X1

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp:尝试在与限制线并联的小电容器中接线。这充当低通滤波器,以消除系统中任何潜在的电噪声。从理论上讲,您的系统应该可以像许多用户系统一样正常工作。最可能和最常见的原因是电噪声。请尝试将限位开关和信号线远离其他一切,包括交流线路。系统地检查它们在未安装到您的机器上时是否正常工作。

当你的限位开关固定时,Ctrl-X 也应该工作正常,如果这是你的问题的原因。

最后,我无法识别您的“等待被用户打断,命令错误:g0 x1”错误。Grbl 永远不会响应此错误。您正在使用的 GUI 可能也会给您带来问题。

归位循环仅 x 和 y 轴问题 #293
作者

首先,我一个一个地测试了我所有的开关和连接,它们都按预期运行。

澄清一下,您认为我的问题可能是,一旦归位周期完成,系统就会发出噪音,认为限位开关仍在接合,这会导致我的 grbl 冻结?当我手动按下限位开关进行测试时,我得到以下反馈:“ALARM:Hard Limit.MPos?” 然而,在运行归位周期后,我没有得到任何这样的反馈,它只是不会接受我的任何命令。

为了开始测试,我移除了所有限位开关连接,然后运行我的系统,它确实运行良好。所以我确信我的更改是最新的,并且初始归位锁已被删除。然而,只要我插入任何其他限位开关,我就会立即再次遇到问题。我已经尝试将我的电线尽可能远地移动而没有任何变化。

测试开关时,当我拔下 Y 轴开关并开始归位循环时,机器仅运行 Y 轴。我认为这是由于连接了 X 轴限位开关,因此系统立即认为它是原点,然后尝试将另一个轴原点定位。当我拔下 X 轴限位开关时,反之亦然。如此多的电噪声并且始终如一地出现这种情况是否常见?

通过连接电容器,您能解释一下与限制线并联的意思吗?

这是由于我对限位开关的接线吗?我没有将它们连接到任何方向,但是我将开关的标记为“C”的连接点接地,并将标记为“NO”的连接连接到限位引脚。这是倒退并导致问题吗?

如果我仍然无法获得解决方案,您会建议我使用以下步骤切换我将开关连接到 NC 的方式:“将每个轴上的两个限位开关串联连接,在 VCC 和相应的输入引脚之间。添加一个拉-每个引脚的接地电阻(必需,大约 1 Kohm)。这种方法具有更好的抗噪性,实际上消除了错误的限位开关触发。如果你是一个纯粹主义者,你会想要用内部弱拉力重新编译 GRBL- ups 已禁用,但即使启用它们也能正常工作。”

布线 NC 会解决我的问题,还是您希望在任一方向上出现相同的问题?

谢谢!

归位循环仅 x 和 y 轴问题 #293
作者

所以我尝试更改 G 代码接口以查看这是否是一个问题。
我再次检查了所有连接,它们都按预期工作。当我第一次启动我的系统时,所有限位开关引脚都保持在 5V 的高电平。当我尝试进行诸如 G0 X1 之类的移动时,所有限位开关都会将电压降低约 .02,但我不希望触发限位开关。但是,每次我发送 G0 X1 命令时,界面中都会出现 ALARM Limit Switch 错误。所以基本上,限位开关在限位开关引脚电压没有任何下降的情况下触发。那么这可能是程序员的错误吗?以及从哪里开始寻找错误的任何建议?

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp:这不太可能是编程错误,但更有可能是设置中的某些东西引起的电子噪音。如果 Grbl 检测到限制引脚有任何变化,它将触发硬限制。因此,如果您的系统中的其他东西出现尖锐的电压尖峰/下降。它会绊倒它。

你有示波器吗?电压表将无法测量噪声。另一种方法是快速编程另一个 arduino 来检测线路中的引脚变化。但首先,请确保您有与限制线并联的小电容器。这对消除电子噪声有很大帮助。

另外,检查限位销上是否有浮动接地。众所周知,这会导致此类问题。

归位循环仅 x 和 y 轴问题 #293
作者

电容器应该如何接线,我有一个 10 uF 的额定值有效吗?在接地和引脚之间,每个轴一个电容器?

归位循环仅 x 和 y 轴问题 #293
成员

@philmurp: 并联。所以是的,在接地和限位销之间以及开关线旁边。建议为每个轴。

确保您的开关正常运行。在正常操作中,开关两端应该有无穷大的电阻。触发时,它的电阻应该接近于零。如果没有,那么这是您的问题之一。

归位循环仅 x 和 y 轴问题 #293
作者

开关在有电阻的情况下可以正常工作,尽管一旦触发电阻会在大约 1-2 秒内变为 0,因此它不是即时的。我并联连接了 10uF 电容器,但我仍然遇到令人担忧的问题。我还将限位开关的接线与一个全新的面包板分开,以尝试消除噪音但没有成功。有任何想法吗?谢谢你。

归位循环仅 x 和 y 轴问题 #293

我的限位开关有各种噪音问题。我的线路上有电容器,但我最终还是用屏蔽电缆重新连接了整台机器。

它运行良好了一段时间,然后我又开始随机限位开关跳闸。

我最终重新布线路由器的电源线,使其尽可能远离其余布线。(我把它绑在我用来收集灰尘的真空软管上。)这似乎已经解决了问题。

电气噪声是故障排除和解决的主要难题。

归位循环仅 x 和 y 轴问题 #293
作者

你认为限位开关线之间有噪音吗?因为我在每个轴上都有两个限位开关,每个轴上的一个面包板点彼此远离?

还是噪音通常来自电源线等……靠近限位开关线?

更强的电容器会有帮助吗?

归位循环仅 x 和 y 轴问题 #293

噪声的主要来源是路由器的电源线(如果路由器未运行则不是问题)、路由器中的电刷(同样,如果未运行则不是问题)以及步进电机电线中的脉冲.

通过在路由器关闭的情况下空运行程序,我确定是路由器导致了我的问题。如果我打开路由器,限位开关会在一两分钟内跳闸。

我不能强调你应该使用屏蔽电缆 – 至少用于限位开关线,但我也将它用于步进器。

这就是我最终做的事情:http: //timf.anansi-web.com/wp/shapeoko-limit-switches-update/

归位循环仅 x 和 y 轴问题 #293
作者

看来我需要去 Radioshack 找一趟屏蔽电缆。在电缆之外,您有什么建议可以让我尝试让我的系统更可靠吗?主要问题是步进信号,因为在限位开关触发之前我什至不能得到超过一个脉冲。我的限位开关线离步进线很远,所以我不确定我还能做些什么来尝试消除步进电机的噪音。

归位循环仅 x 和 y 轴问题 #293

屏蔽电缆对我来说是最大的改进。我会先试试看。

归位循环仅 x 和 y 轴问题 #293
成员

确保你所有的系统组件都是星形接地的(google it)。这将有助于防止接地不良和浮动接地引起的限位引脚误跳闸。说到这一点,通过测量地线中不同点之间的电位来检查是否存在浮动接地。当您遇到问题时,尤其是在极限接地和步进驱动器接地之间。它应该是零,而不是让步。

归位循环仅 x 和 y 轴问题 #293
作者

我将限位开关连接到电机护罩上的地面,我认为所有地面都是公共的。我应该将限位开关连接到 arduino 板上的地面而不是电机护罩上的地面吗?

归位循环仅 x 和 y 轴问题 #293
作者

好的,我相信我正在使用明星技术,因为我将所有开关都连接到同一地面。当我测量极限和步进器接地并得到 0 电位时,我似乎没有浮动接地。我担心我的实际接线可能是错误的,因为它并不是随机限制触发,而是每次我尝试发送步进脉冲时都会发生。我正在购买屏蔽线,所以我会尝试并希望它能起作用,对于 2 芯屏蔽线,我可以连接两根导线并让它们作为一根吗?

归位循环仅 x 和 y 轴问题 #293
作者

我正在使用屏蔽线,但仍然遇到此限制触发问题,不确定此时我还能尝试什么

归位循环仅 x 和 y 轴问题 #293

我建议在 ShapeOko 论坛上发布您的问题。那里有很多人帮忙。

http://www.shapeoko.com/forum/

归位循环仅 x 和 y 轴问题 #293
作者

好的也可以,我的屏蔽线确实可以消除主轴控制的错误触发,所以它似乎确实有帮助。也许我需要屏蔽我所有的步进电机电线。我试图避免这种额外的布线,但我想不出要进行的任何其他更改。谢谢!

归位循环仅 x 和 y 轴问题 #293

在 Arduino 板上的止动输入引脚和地之间添加 4.7nF。将这些盖子放在 Arduino 板上。另一个选项是在所有停止线上添加钳位铁氧体(http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Ferrite_clamp-on.jpg/220px-Ferrite_clamp-on.jpg
这肯定会解决你的问题。

问候,

机顶盒

归位循环仅 x 和 y 轴问题 #293
作者

I should add 7 nF capacitors(assuming thats what caps stood for)? And how should I wire 4 of them? 2 in series for each input pin or in parallel? Also, you recommend not setting this up on my breadboard but rather on the arduino?

I currently have on 10uF capacitor wired between input pin and ground in parallel with my switches to no affect.

喜欢 (0)