开源改变世界

限位开关好像倒了? 第197章

推推 grbl 3年前 (2022-10-30) 350次浏览 0个评论
关闭
MrTrick 打开了这个问题 on 8 Mar 2013 · 21 条评论
关闭

限位开关好像倒了?第197章

MrTrick 打开了这个问题 on 8 Mar 2013 · 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, step/mm)
$1=119.339 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=250.000 (默认进给, mm/min)
$5=2000.000(默认搜索,毫米/分钟)
$6=192(步进端口反转掩码,int:11000000)
$7=25(步进空闲延迟,毫秒)
$8=50.000(加速度,毫米/秒^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 start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=50.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, ms)
$22=1.000 (homing pull -关闭,毫米)

限位开关好像倒了? 第197章
成员

尚尼特 评论 on 8 Mar 2013

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

限位开关好像倒了? 第197章

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

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

限位开关好像倒了? 第197章

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

限位开关好像倒了? 第197章

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

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

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

我同意“引脚更改”的逻辑。但是限制销的状态(使用去弹跳软件或硬件)将决定机器轴是否在相应的开关上。

我知道现在归位功能还没有准备好。我不确定,但似乎 22 美元(1mm 拉出)不考虑 18 美元 = 归位 dir 反转掩码。我试着说:如果“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(归位周期,布尔值)***
$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

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


?
空闲,MPos:0.0000,0.0000,0.0000,WPos:37.9950,0.0000,0.0000
ok

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


坐标设置:

限位开关好像倒了? 第197章

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

在绝对坐标中:
X 和 y 轴有一个正值。

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

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

为了确定 WPos,我用左侧的工具接触工件,然后他的坐标是 X=(这个 X + 1/2 Ø 工具)
对于 YI 用工具从正面接触工件,然后 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 次?和“|”表示 OR 位到位?)

我理解值 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 bit 5
//#define Y_DIRECTION_MASK bit 6
//#define Z_DIRECTION_MASK bit 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 (homing pull-off, mm)] 也向上移动,这对我来说是 Z = 1。我期望一个-1的绝对值。
看我的 Z 轴是唯一的负数(在绝对坐标中)。

唯一的问题是我的Z轴是唯一一个倒置的。
[ $22=1.0000 (homing pull-off, mm)] 偷推开关。不要松开它。

谢谢你对我的耐心。

限位开关好像倒了? 第197章

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

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

但是我对 x 或 y 没有问题,在那里都可以正常工作。=/
仅使用 Z 轴:grbl 发现开关很好地将 Z 向上移动,但随后将
[$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 位归位 dir 掩码 grbl 尝试找到关闭的开关,但我还没有切换到那里。

只有 Z 在错误方向上进行归位拉断。

似乎我需要像 linuxcnc.org 一样设置我的 cnc 说是一个合适的 =/

限位开关好像倒了? 第197章

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

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

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

我必须说我现在有点困惑。
“归位寻道”是实现归位拉断的速度吗?

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


“它可能是相反的方式。尝试禁用 z 轴的步进方向位并禁用归位 dir 掩码中的相同位。这应该可以解决它。在正确的设置中,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 位归位 dir 掩码 grbl 尝试
找到关闭的开关,但我还没有切换到那里。

只有 Z 在错误方向上进行归位拉断。

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

“它可能是相反的方式。尝试禁用
z 轴的步进方向位并禁用归位 dir 掩码中的相同位。这应该可以
解决它。在正确的设置中,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 (默认进给, mm/min)
$5=2000.0000 (默认搜索, 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 (homing dir invert mask, int:10000000)
$19=500.0000 (homing feed, mm/min)
$20=500.0000 (homing seek, mm/min)
$21=100 (homing debounce, ms)
$22=-1.0000 (homing拉断,毫米)
好的

谢谢
,希望不会让你厌烦一阵子。

限位开关好像倒了? 第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 mm/min)

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

供您参考,这台机器可以达到的最大速度约为 6000 mm/min = 100 mm/s !!!但只有 100 mm/s2 或更低的加速度。(我知道这个小cnc很烂)

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

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

如果有一天您开始在闭环控件中工作,请告诉我,我会为您制作斧头测试仪。

谢谢你的python脚本。我会尽快尝试。

最后一个问题:

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

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

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

限位开关好像倒了? 第197章

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

归位使用不同的步进算法。非常直接的一步。它有加速,但当你走得这么慢时你可能不会注意到它。我们这样做的原因有很多。您可以在 limit.c 源代码中找到原因。

也没有真正的防弹跳软件。它在待办事项清单上。只有强制延迟等待去抖动。如果您想了解有关 grbl 工作原理的更多信息,请阅读源代码。它的评论非常好。

待办事项列表在问题页面上也被标记为“待办事项”。Wiki 和分支页面上的 README 中也有一些内容。在问这么多问题之前,请阅读这些内容。

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

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

限位开关好像倒了? 第197章
喜欢 (0)

您必须 登录 才能发表评论!