开源改变世界!!

双轴问题 #783

推推 grbl 2年前 (2023-01-23) 134次浏览

关闭
ArjanDeVries 打开了这个问题 2019 年 12 月 29 日 · 18条评论
关闭

双轴问题#783

ArjanDeVries 打开了这个问题 2019 年 12 月 29 日 · 18条评论

注释

双轴问题 #783
阿扬·德弗里斯 评论了 2019 年 12 月 29 日  

你好!

我目前正在努力使双轴配置正常工作。但它还没有按预期工作。
我的配置:
我有一个带有 CNC 屏蔽的 UNO,它在 1.1g 版本上运行良好。
我在 y 轴上有 2 个电机。
所有止动器都是 NC,y 轴上的第二个电机(防护罩上的电机 A)也有一个与 z 轴串联的止动器。
当我触发电机 Y 上的止动器时,状态显示 Y
当我触发电机 A 上的止动器时,状态显示 YZ

config.zip
#define ENABLE_DUAL_AXIS
#define DUAL_AXIS_SELECT Y_AXIS // 必须是 X_AXIS 或 Y_AXIS

通过移除 CNC 屏蔽上的跳线来关闭从 Y 轴克隆 A。
将 SpnEn引脚连接到 A.Step
将 SpnDir 引脚连接到 A.Dir

看起来 Y 电机的终点站被忽略了。因为在归位时它会在触发终点停止时保持移动。移动工作正常。只有归巢似乎有问题。

有人知道吗?

查看 limits.c 中的代码这对我来说很奇怪,因为为什么在配置 x 轴时取 y 轴?
#if (DUAL_AXIS_SELECT == X_AXIS) float fail_distance = (-DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT/100.0)*settings.max_travel[Y_AXIS]; #else float fail_distance = (-DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT/100.0)*settings.max_travel[X_AXIS]; #endif

双轴问题 #783
作者
阿扬·德弗里斯 评论了 2019 年 12 月 30 日  

在归位之前,我测量了从龙门架到桌子末端的距离。而且似乎旋转轴手动归位并不能纠正更改。距离越远意味着到终点站的距离也越远。

<Idle|MPos:-1.000,-1.000,-1.000|F:0|Pn:RHS> 41.5 41.5 (当前距离左右41.5)
开始归位
ok
<Idle|MPos:-1.000,-1.000,-1.000| F:0|Pn:RHS> 41.5 41.5(没问题,距离还是一样)
手动移动一轴
<Idle|MPos:-1.000,-1.000,-1.000|F:0|Pn:RHS> 41.8 41.5(手动改变左侧 0.3 mm)
Start Homing
ok
<Idle|MPos:-1.000,-1.000,-1.000|F:0|Pn:RHS> 41.4 41.1(初始值 41.5 改变了???)

双轴问题 #783

糟糕的是,似乎没有人回应如何解决这个问题。
我做了额外的测试,似乎两个 y 电机都在旋转,直到两个末端停止被触发,然后都向后移动。有人可以解释这是否是正常行为以及该系统应该如何工作?我希望电机会停止,而另一个电机可能会行驶最大 fail_distance。

双轴问题 #783
jsagot 评论了 2020 年 1 月 24 日  

嗨,Arjan,看来你没有正确插入限位开关:它们应该并联而不是串联,如 wiki 中所述。
但是如果 A 是 Y 的奴隶,为什么要使用 2 个开关呢?您只需要触发 1 个信号:如果 Y 停止,那么 A 也应该停止。
希望能解决你的问题(^_^)

双轴问题 #783
作者
阿扬·德弗里斯 评论了 2020 年 1 月 26 日  

嗨 jsagot,
感谢您的回复,非常感谢!

我想我做的一切都是对的。我拥有的设置是最新版本 1.1h的新设置。
y 轴上的两个电机都有一个止动器,因此您可以自行摆正龙门架。
一个终点挡块只是 Y 轴的一个 NC 开关。但另一个与Z轴串联(需要串联,因为它们是NC开关)。(见发行说明)

查看状态时开关也工作正常:
当我触发电机 Y 上的止动器时,状态显示 Y
当我触发电机 A 上的止动器时,状态显示 YZ

不过应该是你有NC开关的时候代码有问题。

双轴问题 #783
jsagot 评论了 2020 年 1 月 26 日  

这是一个不错的功能!(但对铣床来说非常危险……)
我不知道这个版本,我的错:-)
我多挖了一点,在定义的 DUAL_AXIS_CONFIG_CNC_SHIELD_CLONE 评论中发现了这个开关接线:
“……通过共享所有引脚 D9/D10[X,Y2]/[Y1,Z] 上的限位开关“
没有任何地方提到串联插入开关,但确实不清楚。
它看起来像你的盾牌,你只有 2 个引脚用于 X 的限制 D9 和 Z 的 D10 和 Y(Y2/D9 和 Y1/D10)的 D9+D10(Y1 应该是盾牌上的 Y 轴,Y2 应该是一个)

X -> D9
A -> D9
Y -> D10
Z -> D10

我没有准备好双轴的机器可以尝试

编辑:您必须独立地为每个轴进行归位(请参阅 config.h 中的注释) 编辑
2:不要忘记限制的低通滤波器!

双轴问题 #783

是的,这很危险,但我有一台便宜的自制数控机床,带有 3d 打印部件。
这台机器在以前版本的 grbl 上运行良好。我只添加了新的终点站。也首先完成 z 归位,然后在第二个循环中完成 x 和 y。我的配置也在上面可用。

双轴问题 #783
jsagot 评论了 2020 年 1 月 26 日  

就是这样:尝试像我解释的那样插入限制(A // X 和 Y // Z),然后一次做归位一个轴(cycle_0 -> Z,cycle_1 -> X,cycle_2 -> Y)看看配置。 h 第 105 至 107 行配置归位周期。
在归位时,您应该有这种行为:
Z 轴行进到 D10 上的极限
X 轴行进到 D9 上的极限
然后
Y 轴行进到 Y1(Y -> D10) 或 Y2(A -> D9) 或两者,如果龙门架是方形的.

然后 grbl 应该在需要时摆正龙门架。

双轴问题 #783
作者
阿扬·德弗里斯 评论了 2020 年 1 月 27 日  

查看 cpu_map.h 也没有启用 VARIABLE_SPINDLE:

#define X_LIMIT_BIT 1 // Uno Digital Pin 9
#define Y_LIMIT_BIT 2 // Uno Digital Pin 10
#ifdef VARIABLE_SPINDLE // Z Limit pin 和 spindle 启用交换以访问 Pin 11 上的硬件 PWM。
#define Z_LIMIT_BIT 4 // Uno Digital Pin 12
#else
#define Z_LIMIT_BIT 3 // Uno 数字引脚 11
#endif

此外,您的文本仅在您想要启用可变主轴速度时才有效。就我而言,我不使用它

// 可变主轴(即激光模式)不适用于配置的此防护罩。虽然
// 可变轴在技术上可以与此防护罩一起使用,但它需要太多更改
// 大多数用户设置无法适应。最好通过共享所有限位开关来实现
// 在引脚 D9/D10(如 [X1,Z]/[X2,Y] 或 [X,Y2]/[Y1,Z])上,独立地归位每个轴,并且
// 更新大量代码以确保一切正常运行。

同样来自 CPU _MAP:
//注意:默认情况下,双轴限制与 z 轴限制引脚共享。
#define DUAL_LIMIT_BIT Z_LIMIT_BIT
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)|(1<<DUAL_LIMIT_BIT))

因为 z 轴是共享的,所以应该分开归位。就我而言,这是真的。在第一个周期中,z 位于所使用的 z 引脚上。第二个周期归位 x、y1 和 y2,并使用引脚 9 (x)、10(y) 和 11(z),

双轴问题 #783

我对引脚配置感到困惑:
D9 -> limit X
D10 -> limit Y
D11 -> limit Z
D12 -> A.step
D13 -> A.dir
A3 -> spindle enabled
是否正确?
我对 y1/y2 开关接线更加困惑。你在哪里找到你使用的配置?因为像你一样串行,如果两个开关不同时触发,它们都不会触发……
我在盒子里找到了一个兼容的屏蔽(很酷)并且有一个框架(只有 x/y 但它应该做的工作)更有帮助。

双轴问题 #783 ArjanDeVries 提到了这个问题 2020 年 1 月 27 日
双轴问题 #783

是的,引脚是正确的

Y2 与 Z 串联。但它们是 NC 开关。这意味着它们通常在进行。因此,如果其中一个开关被触发,电路将被切断并且软件知道它已被触发。
没有开关是不同的,因为通常它们是打开的。所以在那种情况下你需要将它们并联。如果你按下开关,电路就会闭合。
当您使用 NC 开关时,您需要告诉软件状态已反转。

我还为我的盾牌设计了自己的 3d 打印盒。

双轴问题 #783

我几乎完成了构建(找不到连接头)。我的止动器是带有 3 个销钉的斜坡,所以它们应该充当 NO 开关。我会告诉你结果。

双轴问题 #783
jsagot 评论了 2020 年 1 月 30 日  

到目前为止它工作正常。我需要在上面放一些东西来测试准确性和可重复性。
(注意:我终于找到了“接线限位开关”维基页面(^_^))

双轴问题 #783
作者
阿扬·德弗里斯 评论了 2020 年 2 月 1 日  

添加大量调试代码后,我解决了我的问题。在测试期间,我使用了另一个 CNC 克隆屏蔽板。在那块板上,我从 Y 轴上移除了克隆跳线。这样电机 A 就可以独立移动。但是愚蠢的我忘了拆下机器板上的跳线。所以两个 Y 电机都只使用相同的转向脉冲 :-( 我还使用了一些跳线将 d12 和 d13 连接到步进驱动器。我发现即使这样也可以更容易地完成。只需将克隆跳线移动到另一个位置. 见图片:
双轴问题 #783

明天我要测量龙门架是否自动摆正。但现在看起来好多了。

双轴问题 #783
jsagot 评论了 2020 年 2 月 1 日  

对你很好!
在对新构建进行密集测试后,它完美地工作(它将一个蹩脚的 benbox 机器变成了一个非常好的 grbl 机器 :-))。
我很高兴你发现了你的烂摊子。!!!
但有一点我同意你的看法:
#if (DUAL_AXIS_SELECT == X_AXIS) float fail_distance = (-DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT/100.0)*settings.max_travel[Y_AXIS]; #else float fail_distance = (-DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT/100.0)*settings.max_travel[X_AXIS]; #万一

这段代码很奇怪。我使用方形配置来避免任何麻烦,但它仍然不能在 1:1 比例下工作吗?也许在引擎盖下有一些聪明的计算导致了这种代码,但我没有看到它(或者它是一个简单的反转)。

双轴问题 #783

我的三围也ok👍很高兴你的机器也工作正常。👍

我认为这很奇怪,但事实并非如此。这是合乎逻辑的。龙门架(x 轴)越长,在 y 轴上以相同的运动角度进行的运动就越多。所以它取决于另一个轴的长度。同一轴没有意义。

双轴问题 #783
哈菲兹普兹89 评论了 2021 年 6 月 26 日  

在 config.hi 中,您认为您必须选择哪种类型/版本的 cnc shield ur 使用例如 protoneer cnc shield V3.51 或克隆一个

支持 Arduino CNC 屏蔽克隆。对于这些,引脚 D12/D13 上的步进/方向和主轴启用移至 A3(旧冷却液启用),而冷却液启用移至 A4(SDA 引脚)。此防护罩不支持可变主轴/激光模式选项。

  • 支持 Protoneer CNC Shield v3.51。针脚 A3/A4 上的步进/方向,冷却液启用移至 D13(旧主轴方向针)。此防护罩支持可变主轴/激光模式选项。
双轴问题 #783

@ArjanDeVries你设法让这个工作了吗?我有一个和你类似的设置,并且即使在使用自平方时也确实有两个跳线,我认为这是有效的,因为到 A 的信号复制是在软件中而不是在板上完成的?因此,当我将跳线打开时,GRBL 使用 D12/13 驱动第二个电机,但跳线仍需要就位以允许 GRBL 通过这些引脚控制第二个跳线?至少那是我的假设,因为当我移除跳线时,没有任何动作,并且它们在自平方时实际上似乎有效。

但是关于我遇到的问题:我一直在尝试在常闭配置中连接限位开关,两个限位开关连接到 Z 并串联连接,但出于某种原因我仍然不能让这个工作。我有两种可用的限位开关,它们上面都有 LED、电容器和电阻器,这似乎会导致两个 Y 限位开关(Y 和 Z)之间的串联连接出现问题。您是否使用了类似的限位开关并使其正常工作,或者您是否使用了没有任何电路的限位开关?

https://www.amazon.com/dp/B08CDF3Q6T
https://www.amazon.com/dp/B01I1E84SG

附言!我正在使用 Arduino CNC Shield V3 克隆并且一切正常,但一直存在一些噪音问题,所以这就是为什么我要切换到常闭并且还计划构建一个简单的 RC 滤波器电路,如所述在维基中。

https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches

双轴问题 #783

嗨,
我确实让它运行了很长时间。我手头没有确切的配置,但会尝试回答一些问题。我的开关通常是接触开关,所以里面没有电子设备。z 和其中一个 y 是串联的。您可以通过命令显示状态并激活它们来轻松测试开关。我认为您需要发送“?” 命令。我也有一个克隆板。但我记得板上有一些奇怪的东西。但我不知道它到底是什么。如果你不让它工作,我可以试着找到它。所以首先从普通开关开始。如果您需要帮助,请告诉我。

喜欢 (0)