开源改变世界

限位开关好像倒置了? #197

推推 grbl 3年前 (2023-01-21) 84次浏览
关闭
MrTrick 打开了这个问题 2013 年 3 月 8 日 · 21条评论
关闭

限位开关好像倒置了?#197

MrTrick 打开了这个问题 2013 年 3 月 8 日 · 21条评论

注释

限位开关好像倒置了? #197

(使用0.8c,仅修改config.h如下)

我有一台只有 X 轴和 Y 轴的机器,配置如下;

定义 HOMING_SEARCH_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))

定义 HOMING_LOCATE_CYCLE ((1<<X_AXIS)|(1<<Y_AXIS))

限位开关按照所有文档的建议进行设置;
NO 开关一侧接地,一侧接地 D9 和 D10。(参见http://imgur.com/RZdbT5H

我已经手动测试了开关的操作;未按下时,D9/10 上的电压永远不会低于 4.5V。当按下相应的开关时,D9/10 上的电压直接下降到 0V。

当我使用 $17=1 启用归位时,$H 命令只会使机器“摆动”,无论它在哪里。如果我尝试使用限制 $16=1,我发现每当我尝试点动机器时机器都会进入警报模式。在 $16=0、$17=1 并按住开关的情况下,$H 命令以归位速率移动该轴,直到我松开开关。

听起来我已经倒转了我的开关,但测量结果表明它已按照文档所述进行设置。这是怎么回事?

为了进一步参考,这是 $$ 输出;
$0=119.339(x,步进/mm)
$1=119.339(y,步进/mm)
$2=250.000(z,步进/mm)
$3=10(步进脉冲,usec)
$4=250.000(默认进给,mm/min)
$5=2000.000(默认搜索,mm/min)
$6=192(步进端口反转掩码,int:11000000)
$7=25(步进空闲延迟,毫秒)
$8=50.000(加速度,mm/sec^2)
$9=0.050 (连接偏差,mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto开始,布尔)
$15=0(反转步启用,布尔)
$16=0(硬限制,布尔)
$17=1(归位周期,布尔)
$18=0(归位方向反转掩码,int:00000000)
$19=50.000(归位进给,mm/min)
$20=250.000(归位搜索,mm/min)
$21=100(归位去抖动,毫秒)
$22=1.000(归位拉动-关闭,毫米)

限位开关好像倒置了? #197
成员

一切看起来都是正确的,而且没有倒置。限制引脚检测引脚变化,而不是特别从高到低。这是由于 328p 芯片引脚更改中断的工作方式所致。您可能看到的是电磁干扰,这可能是由于您的限位针线太靠近步进电机接线、电源甚至风扇造成的。尝试将它们移开并确保接地线也被隔离。在某些情况下,添加一个与地和引脚并联的小电容器将有助于抑制这些电压尖峰。无论如何,让我们知道结果如何,或者如果您有任何其他问题,

限位开关好像倒置了? #197

我会尝试使用电容器,但我无法移动电线。(我还将测试一个单独的轻触开关)

您能否确认对于归位,grbl 将 5V 视为“未命中”,将 0V 视为“命中”?这与文档一致,但与我观察到的行为恰恰相反。

限位开关好像倒置了? #197
成员

是的,Grbl 将 high 视为未参与,将 low 视为参与,如果它知道它的状态。就像我之前说的,它只能感知带有硬限制的引脚变化,因为没有去抖动,无法判断状态是什么。如果基本上有任何变化,它会触发硬限制。对于归位,它会经历多个循环,首先找到限位开关并接合它们,然后是定位循环,在此循环中它会断开所有开关并慢慢重新接合它们。因此,当您经历这些循环时,您可能会看到相反的行为。

限位开关好像倒置了? #197

你好,
我的数控系统每个轴只有一个开关。
这是为了确定零机器或主机器位置。
每个轴的另一侧在旧的和坏的软件中定义为最大坐标 X、Y 和 Z

在我拥有的绝对坐标机中。
X=0 => 最左边的位置。X=300 右侧最大位置
Y=0 => 最接近机器前部的位置。Y=400 最大可能坐标 Y。
Z=0 => 工具的上部位置。Z= – 80 !!! 工具的最低位置。

如果未接合,我的开关的连接为 NC(GND 或 0),如果接合则为“打开”或“1”或 +5 伏(现在在 Arduino 中将电阻器上拉至 +5V)。
我认为这很好,因为如果开关未激活/接合,则阻抗非常低,因此很难诱发寄生虫。这不是 100% 正确,但如果它暴露在像步进电机电流可以产生的强可变磁场中,它比高阻抗电路要好。

我同意“pin change”的逻辑。但是限制引脚的状态(使用去抖动软件或硬件)将决定机器轴是否在相应的开关上方。

我知道归位功能目前还没有准备好。我不确定,但似乎 22 美元(1 毫米拉出)没有考虑 18 美元 = homing dir invert mask。我试着说:如果“dir”被反转,则相应轴的拉离距离也必须被反转。

这个问题的第一个观点的一个可能的解决方案:
限位开关好像倒置了? #197

感谢这个非常好的固件。并为我糟糕的英语找借口。

?

限位开关好像倒置了? #197
成员

@Sualc:归位周期基本完成,保留一些它需要的改进。方向应该考虑到拉动机动。你能把你的设置和你的坐标是如何在你的机器上设置的简要描述发给我们吗?坐标系可能有点偏离。

限位开关好像倒置了? #197

@chamnit:

grbl V0.8
设置 ($$):
$0=133.3333 (x, step/mm)
$1=133.3333 (y, step/mm)
$2=133.3333 (z, step/mm)
$3=20 (step pulse, usec)
$4 =200.0000(默认进给,mm/min)
$5=1800.0000(默认寻道,mm/min)
$6=224(步进端口反转掩码,int:11100000)
$7=25(步进空闲延迟,毫秒)
$8=100.0000(加速度, mm/sec^2)
$9=0.0500 (交点偏差, mm)
$10=0.1000 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=4 (n-decimals, int)
$13=0 (报告英寸,布尔值)
$14=1(自动启动,布尔值)
$15=0(反转步骤启用,布尔值)
$16=0(硬限制,布尔值)
$17=0(归位周期,bool)***
$18=128(归位方向反转掩码,int:10000000)**
$19=50.0000(归位进给,mm/min)
$20=250.0000(归位搜索,mm/min)
$21 =100(归位去抖,毫秒)
$22=1.0000(归位牵引,毫米)

*** 暂时禁用,因为归位牵引在 Z 轴的错误方向上,但在 X 和 Y 的正确位置

#define X_STEP_BIT 2
#define Y_STEP_BIT 3
#define Z_STEP_BIT 4
#define X_DIRECTION_BIT 5
#define Y_DIRECTION_BIT 6
#define Z_DIRECTION_BIT 7

我假设“homing dir invert”具有相同的结构。
(我没有在文档中看到这个)
使用此设置($18 = 10000000)Z 向上移动以搜索限位开关。
X 向左移动 OK。Y 移到前面 OK。



空闲,MPos:0.0000,0.0000,0.0000,WPos:37.9950,0.0000,0.0000
正常

我没有找到将 Wpos 设置为 0,0,0 的方法


坐标设置:

限位开关好像倒置了? #197

3 个限位开关为 NC,将返回“0”。然后在接合“1”时打开。

在绝对坐标中:
X 和 y 轴始终为正值。

Z 轴曾经是负值。这意味着,Z0 是可能的上位。
这是因为 Z 限位开关可检测到“安全 Z 位置”。
(工具不能碰到桌子上方的任何东西)。

如果要铣削的材料高度为 20 毫米并且位于 X = 100 处,则 Y 100(左下角)
Z 将为 -60,以 MPos 为单位。(绝对坐标)
这将是 WPos 的相对坐标中的 XYZ = 0。
限位开关好像倒置了? #197

为了确定WPos,我用左侧的工具接触工件,然后他的坐标是X=(这个X + 1/2 Ø工具)
对于Y我用前面的工具接触工件,然后Y =(这个Y + 1/2 Ø 工具)
对于 Z,工具接触工件的上表面,则 Z = 此 Z。

这是设置 WPos 的精确方法,对我来说效果很好。

我不担心改变一个良好归巢所需的东西。

在 config.h 中我读到:
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // 所有方向位

请记住,我不是程序员。
因为我不知道 ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) 到底是什么意思。(<< 是左移?对于 vlaue1?X_DIRECTION_BIT 次?和“|”表示或位到位?)

我理解值 1 向左移动了 7 次(对于 Z_DIRECTION_BIT = 7)= 2^7 = 128 … 或 64_Y_DIRECTION_BIT 或 32_X_DIRECTION_BIT。

** 然后,如果我只需要设置 Z_DIRECTION_BIT,则 $18 中的值为 10000000 = 128

也许文档需要这样的东西:

归位反转掩码:
//#define X_DIRECTION_MASK 位 5
//#define Y_DIRECTION_MASK 位 6
//#define Z_DIRECTION_MASK 位 7

或者如果我错了,不管是对的,对于像我这样的傻瓜。

(*) 我坚持使用限位开关 NC 并在不接合时带上“0”值以避免寄生虫。
但是如果在不接合时需要一个 NO 开关带来一个“1”值,我可以改变这个并在这个限制输入中放置过滤器“C > 100nF”。
我偷了 V08.. V09 在哪里?需要转09版吗?

很抱歉这篇评论的长度。

谢谢您的帮助。

限位开关好像倒置了? #197
成员

我感觉你机器上的坐标系设置不正确。它认为 Z 轴没问题,但 XY 被翻转了。归位周期假定您已正确设置。当您将 y 轴向正方向移动时,您的铣床应该向您移动。对于正 x,研磨台应向左移动。归位循环反转方向设置仅翻转搜索位置的方向。它会自动向所有轴的负方向移动。如果您的设置在正端有一个限位开关,您可以在方向遮罩中翻转那个位。

您可以使用 G10 L2 命令设置工作坐标。请参阅 linuxcnc.org,了解有关它们的功能和使用方法的详细描述。

可配置的限位开关已成为一种常见的要求。它已经在要做的事情清单上了。

限位开关好像倒置了? #197

但是我对 x 或 y 没有任何问题,在那里都可以正常工作。?
只有 Z 轴:grbl 发现开关很好地将 Z 向上移动,但是然后将 [$22=1.0000(归位牵引,mm)] 也向上移动,这对我来说是 Z = 1。我期望 -1 绝对值。
看我的 Z 轴是唯一的负轴(绝对坐标)。

唯一的问题是我的 Z 轴是唯一倒置的。
[ $22=1.0000 (homing pull-off, mm)] 窃取开关。不脱离它。

谢谢你对我的耐心。

限位开关好像倒置了? #197
成员

它可能是相反的。尝试禁用 z 轴的步进方向位
并在归位方向掩码中禁用相同的位。这应该解决
它。在正确的设置中,z 轴正方向将主轴/工具
向上移动。我很确定这只是一个坐标问题。首先确保您的
轴在没有归位的情况下正确移动。
当您的限位开关不在正方向
(z-up,x-left,y-front)时,仅启用归位方向掩码中的任何轴位。

在 2013 年 3 月 16 日星期六上午 8:56,Sualc notifications@github.com写道:

但是我对 x 或 y 没有任何问题,在那里都可以正常工作。=/
Only with Z axis: grbl found the switch well moving Z up,但是然后移动
[$22=1.0000 (homing pull-off,mm)]也向上,这对我来说是Z=1。我
期望 -1 值。
看我的 Z 轴是唯一的负轴(绝对坐标)。

唯一的问题是我的 Z 轴是唯一倒置的。
[ $22=1.0000 (homing pull-off, mm)] 窃取开关。不
脱离它。

谢谢你对我的耐心。


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

限位开关好像倒置了? #197

行。
谢谢你。
现在进行测试。

PS:为什么使用 Linuxcnc.org 定义而不是 NIST 一个http://code.google.com/p/rs274ngc/ ?

限位开关好像倒置了? #197
成员

NIST 标准不是一个完整的功能集。它们只定义
基本功能。Linuxcnc.org 使用 NIST,但也扩展了 g 代码集以
使其更有用。这是唯一的原因。

在 2013 年 3 月 16 日星期六上午 9:03,Sualc notifications@github.com写道:

行。
谢谢你。
现在进行测试。

PS:为什么使用 Linuxcnc.org 定义而不是 NIST 一个
http://code.google.com/p/rs274ngc/


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

限位开关好像倒置了? #197

似乎 0.8c 版本不支持 G10 L2。

我试过:
G10 L2
G10 L2 X0 Y0 Z0
G10 L2 X0 Y0 Z0 P0
G10 L2 X0 Y0 Z0 P0 R0

grbl 的回答是:
错误:
在所有情况下都不受支持的陈述。

编辑:如果我的 grbl 在 G54 中,它会被接受!!!
现在测试更多!

限位开关好像倒置了? #197
成员

看起来你发现了一个错误。
P0 更改当前不支持的活动坐标系。Linuxcnc 偶尔会更新他们的 g 代码,这可能就是这种情况,因为 大约一年前
我安装 G10 时我不记得这个 P0 命令。
我会把它放在待办事项清单上。现在,
只需使用 P1-P6。

在 2013 年 3 月 16 日星期六上午 9:18,Sualc notifications@github.com写道:

似乎 0.8c 版本不支持 G10 L2。

我试过:
G10 L2
G10 L2 X0 Y0 Z0
G10 L2 X0 Y0 Z0 P0
G10 L2 X0 Y0 Z0 P0 R0

grbl 的回答是:
错误:
在所有情况下都不受支持的陈述。


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

限位开关好像倒置了? #197

编辑:如果我的 grbl 在 G54 中,它会接受 G10 L2 命令!!!
现在测试更多!

限位开关好像倒置了? #197

我的 X 和 Y 开关不在正方向。
我的 Z 轴开关在正方向。

在绝对坐标中,所有轴移动并报告良好,“步端口反转掩码” 11100000
所有标志都正确。
如果我尝试 $h 并且如果我不更改 Z 位归位目录掩码 grbl,请尝试找到向下的开关,但我没有在那里切换。

只有 Z 在错误的方向上进行归位牵引。

似乎我需要像 linuxcnc.org 所说的那样设置我的 cnc =/

限位开关好像倒置了? #197

此设置在机器的负绝对值处具有 +X 限制。-X 限制是 0 硬开关绝对 X0 坐标,但同时是 X 的正方向 =/ 如果您查看工具方向图。

在这个图中,Y 起源和限制对我来说更符合逻辑。因为Y0 absolute(开关)和0 absolute是一样的。

Z原点与我的cnc相同。但不是方向。

我必须说我现在有点困惑。
“归航搜索”的速度是使归航成功吗?

我会发现我的设置有什么问题!!!>.<


“它可能是相反的方式。尝试禁用 z 轴的步进方向位并在归位方向掩码中禁用相同的位。这应该修复它。在正确的设置中,z 轴正方向移动主轴/tool up。我很确定这只是一个坐标问题。首先确保你的轴在没有归位的情况下正确移动。只有当你的限位开关不在正方向(z-up,x -左,y-前)。”

限位开关好像倒置了? #197
成员

如果您的主轴头向上移动,您的 z 轴开关必须处于正方向。您的步骤反转掩码应该类似于
“01100000”,因此当您命令“g0z1”时,您的主轴应该从 z0 向上移动。
请再次查看机器配置图表。

在 2013 年 3 月 16 日星期六上午 10:30,Sualc notifications@github.com写道:

我所有的3个开关都不在正方向。

在绝对坐标中,所有轴移动并报告良好,“步端口
反转掩码” 11100000
所有标志都正确。
如果我尝试 $h 并且如果我不更改 Z 位归位目录掩码 grbl,请尝试
找到向下的开关,但我没有在那里切换。

只有 Z 在错误的方向上进行归位牵引。

似乎我需要像 linuxcnc.org 一样设置我的 cnc 说是一个合适的 =/
[图片:轧机配置] https://f.cloud.github.com/assets/3724754/267079/ba386afc-8e56-11e2-8156- 72a9f3c25d6e.JPG

“它可能是相反的方式。尝试禁用
z 轴的步进方向位并在归位方向掩码中禁用相同的位。这应该
修复它。在正确的设置中,z 轴正方向移动
主轴/tool up。我很确定这只是一个坐标问题。首先
确保你的轴在没有归位
的情况下正确移动。只有当你的限位开关不在
正方向(z-up,x -左,y-前)。”

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

限位开关好像倒置了? #197

这里不对劲。当我在“11100000”处制作带有步进反转掩码的“g0z1”
时,我的主轴向上移动当我发送带有相同步长反转掩码的“g0z-10”时,主轴向下移动。

限位开关好像倒置了? #197

我找到了解决问题的方法。现在一切正常。
$22= -1
现在归巢工作正常。

我认为两者之间存在一些不一致

-step端口反转掩码
-homing pull-off

但我只知道现在这里一切都好。

我现在在这里复制我的设置以供您调试:
$$
$0=133.3333 (x, step/mm)
$1=133.3333 (y, step/mm)
$2=133.3333 (z, step/mm)
$3=20 (step pulse, usec )
$4=200.0000 (default feed, mm/min)
$5=2000.0000 (default seek, mm/min)
$6=252 (step port invert mask, int:11111100)
$7=25 (step idle delay, msec)
$8=100.0000 (加速度, mm/sec^2)
$9=0.0500 (交界偏差, mm)
$10=0.1000 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=4 (n-decimals, int)
$13= 0(报告英寸,布尔)
$14=1(自动启动,布尔)
$15=0(反转步启用,布尔)
$16=0(硬限制,布尔)
$17=1(归位周期,布尔)
$18=128(归位方向反转掩码,int:10000000)
$19=500.0000(归位进给,mm/min)
$20=500.0000(归位搜索,mm/min)
$21=100(归位去抖动,毫秒)
$22=-1.0000(归位拉断,毫米)
好的

谢谢
,我希望不会让你厌烦一会儿。

限位开关好像倒置了? #197
成员

我想我知道问题出在哪里。这不是面具,在
你的第一篇文章中漏掉了这个。您正在使用常闭开关。Grbl 假设
常开,此时只支持常开开关。

使用您的 NC 开关,这会使您的铣床跳过
归位的快速搜索阶段,并立即进入定位拉出模式。让 grbl 看起来
像是走错了路。它不是。

作为测试,尝试接合 z 轴限位开关,使其打开并处于 5v。运行
归位循环。
你应该看到它在相反的方向上移动得更快。

在 2013 年 3 月 16 日上午 11:45,Sualc notifications@github.com写道:

我找到了解决问题的方法。现在一切正常。
$22= -1
现在归巢工作正常。

谢谢
,我希望不会让你厌烦一会儿。


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

限位开关好像倒置了? #197

再次感谢你。

看来你不知道归巢现在在这里工作得很好。

轴向开关移动(同时 3 个)。
当开关接合时,轴停止。
当所有 3 个轴都停止时,所有轴移动 1 mm 离开开关。

只有最后 3 步需要好兆头 $22=-1

这不是应该的行为吗?

你说:

“使用你的 NC 开关,这会导致你的磨机跳过
归位的快速搜索阶段,并立即进入定位牵引模式。让 grbl 看起来
像是在错误的方向移动。事实并非如此。”

请注意,不会跳过快速搜索阶段。是吗?

如果我连接到 +5V 开关,我将需要防反弹滤波器。
(电容器> 100nF?我需要知道上拉电阻值来计算斜率时间,但无论如何这都会给中断触发增加一些抖动或滞后)
一个单稳态电路可以以非常低的成本/时间完成这项工作-工作,没有明显的抖动。

换句话说:防弹跳软件在 grbl 0.8c 中是否处于活动状态?
我在那里看到了 100 毫秒的防弹跳时间。

你知道我对这个开关的看法。未接合时的低阻抗有利于噪声感应。
在这个不推荐的机器(Profiler Colinbus)中,限位开关的电线和电机电线都在一根多芯电缆中,并与 DSUB9 连接。

即使我现在有一个合理的归巢,我也会尝试你说的。
(切换到 +5V 而不是 GND)
因为你已经向我提供了很好的帮助。
我会把结果发给你。
让我暂时完成测试并进行更改。
我将使开关连接远离电机连接。

也许最好选择反转或不反转固件中的开关。
但随着 22 美元的符号似乎是可能的。
我认为没有人有一些开关到 +5 而其他开关到 GND。

当然我有很多问题,但我不能占用你所有的时间。

我注意到归位时没有加速。
我知道规划器无法在未知距离下工作。
但如果不加速,归位循环将以低速进行。
(这里没有加速的绝对最大速度为 500 毫米/分钟)

我相信你有这个问题的解决方案,如果还没有解决,你正在努力解决这个问题。

供您参考,这台机器可以达到的最大速度大约为 6000 毫米/分钟 = 100 毫米/秒!!!但只有 100 mm/s2 加速度或更小。(我知道这个小数控很烂)

当然,我默认设置了 4000mm/min G0。这个速度没有问题。
对于铣削,G1 速度永远不会超过 600 毫米/分钟。这是木材中的快速速度,即

对于激光或塑料,这个速度可能太慢了。我现在不在。

如果有一天你开始在闭环控制中工作,请告诉我,我会为你制作 ax 测试器。

感谢您提供 python 脚本。我会尽快尝试。

最后一个问题:

下一个版本的 TO-DO 信息在哪里?

我对这里和其他分支机构的所有信息有点迷茫。

我保证不会开始另一个问题,例如“工具更换器位置”或任何其他问题。
看来你对这种事情不满意。=)

限位开关好像倒置了? #197
成员

是的。我看到你的帖子说你让它工作了,但它没有按预期工作。您找到了 NC 开关的解决方法,但您失去的是归位周期的快速搜索阶段。也从未打算将牵引行程设置为负数。

Homing uses a different algorithm for stepping. A very straightfoward stepping. It has acceleration, but you may not notice it when going so slow. There a number of reasons why we do it this way. You can find it in the limit.c source code as to why.

There is no true anti-bouncing software either. Its on the to-do list. There is only a enforced delay to wait for debouncing. Please read the source code if you want to learn more about how grbl works. It’s very well commented.

Also the to-do list are tagged as “todo” on the issues page. There is also things in the Wiki and in the READMEs on the branch pages. Please read these before asking so many questions.

工具偏移请求是一个旧请求,您可以在已关闭的问题中查看我们之前关于此主题的对话。基本上 grbl 已满,在安装 grbl 所需的其他关键功能之前,我们没有太多空间来添加这些东西。

请记住,我们在空闲时间支持 grbl,并将您的问题限制在关键问题上。您可以通过阅读 Wiki、源代码和以前的问题线程在别处找到大部分内容。

喜欢 (0)