开源改变世界!!

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435

推推 grbl 2年前 (2023-01-26) 141次浏览
关闭
jack-zande 打开了这个问题 2016 年 7 月 5 日 · 9条评论
关闭

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY#435

jack-zande 打开了这个问题 2016 年 7 月 5 日 · 9条评论

注释

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435

大家好,

我已经制作了自己的 CNC 铣床,使用以下设置来控制我的机器:

Arduino UNO(克隆)
GRBL V0.9j(在 Arduino UNO 上闪烁)
通用 g 代码发送器 V1.0.9(2015 年 11 月 11 日)

为了正确移动步进电机 X、Y 和 Z,我在 GRBL V0.9j 中的设置是:

$3=2 (dir port invert mask:00000010) Z正常,Y只反转,X正常,后3位。
$20=0(软限制,bool)
$21=1(硬限制,bool)
$22=1(归位周期,bool)
$23=3(归位方向反转掩码:00000011)
$27=1.000(归位牵引,mm)

$130=200.000(x 最大行程,毫米)
$131=190.000(y 最大行程,毫米)
$132=95.000(z 最大行程,毫米)

我在 X、Y 和 Z 方向的开始和结束行程处在两个方向上使用 X、Y 和 Z 限位开关。

原点开关 X 在左端行程。行程 X 从左到右从 0 到 200 毫米。
原点开关 Y 在后端行程。行程 Y 为从后到前从 0 到 190 毫米
(Y 方向移动铣床工作台)。
Home swith Z 位于最顶端的旅行方式。行程 Z 从上到下从 0 到 -95 毫米。
移动完成是给出负位置。

$3 = 2(或二进制 0000_0010)> 步进电机
方向 根据 FREECAD
或 CAD 程序 X、Y、Z 平面,步进电机的所有运动均按照 X、Y 和 Z 方向进行。所以使用 $3 命令正确地创建了行进方式。

$23 = 3 (or binairy 0000_0011) > homing directions z,y,x (last 3 bits)
要移动到 home switch Z,不需要改变。
要运行到原点开关 X,使用 $23 命令进行更改以将其行程位置反
转到左侧原点开关 X。
要运行到原点开关 Y,使用 $23 命令进行更改以反转其行程位置以
移动铣削表到背原点开关 Y。

使用通用 g 代码发送器 V1.0.9 给出以下结果。

从“工作位置”和“机器位置”中的 X、Y 和 Z 的全零开始。
在 $H 之后,归位位置处于“工作位置”:X= -199,Y= -189 和 Z = -1。
对于“机器位置”:X= -199,Y= -189 和 Z = -1。归位牵引力为 1 毫米。

找到原位开关给出位置:X = -200,Y = -190 和 Z = 0。

???????—– 令我惊讶的是,为什么不为 X = 0、Y = 0 和 Z = 0 归位?—– ??????????
我想归位应该给零位置。

所有 X、Y 和 Z 步进电机都根据 FREECAD 或 CAD 中的 X、Y、Z 平面正确移动(左为 -X,右为 +X。后为 +Y,前为 -Y。上为 +Z,下为 – Z).

更多信息:
我可以使用 [RESET ZERO] 按钮将 X、Y 和 Z 的“工作位置”重置为全零。但不适用于“机器位置”。移动 X、Y 和 Z 步进电机可通过机器控制正确完成。
如果我用硬件开关重置 Arduino UNO 板,那么
在用 $X 清除警报以解锁 Arduino UNO 板后,我可以获得“机器位置”的零。

问候杰克赞德

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435

grbl wiki 上有关于如何重新编译代码以使
归位位置为 0,0 而不是 -X,-Y 的指南。这是非常基本的,是在我的
机器上完成的。IMO 它应该是标准的方式。
在 2016 年 7 月 4 日下午 2:47,“jack-zande” notifications@github.com写道:

大家好,

我已经制作了自己的 CNC 铣床,使用以下设置来
控制我的机器:

Arduino UNO(克隆)
GRBL V0.9j(在 Arduino UNO 上闪烁)
通用 g 代码发送器 V1.0.9(2015 年 11 月 11 日)

为了正确移动步进电机 X、Y 和 Z,我在
GRBL V0.9j 中的设置是:

$3=2 (dir port invert mask:00000010) Z正常,Y只反转,X
正常,后3位。
$20=0(软限制,bool)
$21=1(硬限制,bool)
$22=1(归位周期,bool)
$23=3(归位方向反转掩码:00000011)

$27=1.000(归位牵引,毫米)

$130=200.000(x 最大行程,毫米)
$131=190.000(y 最大行程,毫米)
$132=95.000(z 最大行程,毫米)

我在 X、Y 和 Z 方向的开始和
结束行程处在两个方向上使用 X、Y 和 Z 限位开关。

原点开关 X 在左端行程。行程 X
从左到右从 0 到 200 毫米。
原点开关 Y 在后端行程。行程 Y 为从后到
前从 0 到 190 毫米
(Y 方向移动铣床工作台)。
Home swith Z 位于最顶端的旅行方式。行程 Z 从上到下
从 0 到 -95 毫米。
移动完成是给出负位置。

$3 = 2(或二进制 0000_0010)> 步进电机方向 根据 FREECAD 或 CAD 程序 X、Y、Z 平面,步进电机
的所有运动都按照 X、Y 和 Z 方向进行。 所以使用$3 命令正确地创建了行进方式。

$23 = 3 (or binairy 0000_0011) > homing directions z,y,x (last 3 bits)
要移动到 home switch Z,不需要改变。
要运行到原点开关 X,使用 $23 命令进行更改以将
其行程位置反
转到左侧原点开关 X。
要运行到原点开关 Y,使用 $23 命令进行更改以反转
其行程位置以
移动铣削表到背原点开关 Y。

使用通用 g 代码发送器 V1.0.9 给出以下结果。

从“工作位置”和“机器
位置”中的 X、Y 和 Z 的全零开始。
在 $H 之后,归位位置处于“工作位置”:X= -199,Y= -189
和 Z = -1。
对于“机器位置”:X= -199,Y= -189 和 Z = -1。归位牵引力
为 1 毫米。

找到原位开关给出位置:X = -200,Y = -190 和 Z = 0。

???????—– 令我惊讶的是,为什么不为 X = 0、Y = 0 和 Z = 0 归位
?—– ??????????
我想归位应该给零位置。

所有 X、Y 和 Z 步进电机都根据
FREECAD 或 CAD 中的 X、Y、Z 平面正确移动(左为 -X,右为 +X。后为 +Y,前
为 -Y。上为 +Z,下为 – Z).

更多信息:我可以使用 [RESET ZERO] 按钮
将 X、Y 和 Z 的“工作位置”重置为全零。
但不适用于“机器位置”。移动 X、Y 和 Z
步进电机可通过机器控制正确完成。
如果我用硬件开关重置 Arduino UNO 板,那么 在用 $X 清除警报以解锁 Arduino UNO 板后,我
可以获得“机器位置”的零 。

问候杰克赞德


您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#435
上查看它,或 将线程静音
https://github.com/notifications/unsubscribe/AQlzDICCYpav4ok6f5qj5wIPc3s3F0Wfks5qSUdDgaJpZM4JEjnL

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435
作者

你好呀,

我是 GRBL v0.9j 的新手。如果我没记错的话,你的意思是更改 GBRL v0.9j 中的代码。

我找到了文件 LIMITS.C 和 LIMIT.H,它们也处理归位循环位置。

我不确定对此有什么改变。见附件。

问候杰克


Van: jahnj0584 notifications@github.com
Verzonden: maandag 4 juli 2016 12:25:48
Aan: winder/Universal-G-Code-Sender
CC: jack-zande; 作者
Onderwerp: Re: [winder/Universal-G-Code-Sender] Homing XYZ with $H gives negative max travel XY in machine position

grbl wiki 上有关于如何重新编译代码以使
归位位置为 0,0 而不是 -X,-Y 的指南。这是非常基本的,是在我的
机器上完成的。IMO 它应该是标准的方式。
在 2016 年 7 月 4 日下午 2:47,“jack-zande” notifications@github.com写道:

大家好,

我已经制作了自己的 CNC 铣床,使用以下设置来
控制我的机器:

Arduino UNO(克隆)
GRBL V0.9j(在 Arduino UNO 上闪烁)
通用 g 代码发送器 V1.0.9(2015 年 11 月 11 日)

为了正确移动步进电机 X、Y 和 Z,我在
GRBL V0.9j 中的设置是:

$3=2 (dir port invert mask:00000010) Z正常,Y只反转,X
正常,后3位。
$20=0(软限制,bool)
$21=1(硬限制,bool)
$22=1(归位周期,bool)
$23=3(归位方向反转掩码:00000011)

$27=1.000(归位牵引,毫米)

$130=200.000(x 最大行程,毫米)
$131=190.000(y 最大行程,毫米)
$132=95.000(z 最大行程,毫米)

我在 X、Y 和 Z 方向的开始和
结束行程处在两个方向上使用 X、Y 和 Z 限位开关。

原点开关 X 在左端行程。行程 X
从左到右从 0 到 200 毫米。
原点开关 Y 在后端行程。行程 Y 为从后到
前从 0 到 190 毫米
(Y 方向移动铣床工作台)。
Home swith Z 位于最顶端的旅行方式。行程 Z 从上到下
从 0 到 -95 毫米。
移动完成是给出负位置。

$3 = 2(或二进制 0000_0010)> 步进电机方向 根据 FREECAD 或 CAD 程序 X、Y、Z 平面,步进电机
的所有运动都按照 X、Y 和 Z 方向进行。 所以使用$3 命令正确地创建了行进方式。

$23 = 3 (or binairy 0000_0011) > homing directions z,y,x (last 3 bits)
要移动到 home switch Z,不需要改变。
要运行到原点开关 X,使用 $23 命令进行更改以将
其行程位置反
转到左侧原点开关 X。
要运行到原点开关 Y,使用 $23 命令进行更改以反转
其行程位置以
移动铣削表到背原点开关 Y。

使用通用 g 代码发送器 V1.0.9 给出以下结果。

从“工作位置”和“机器
位置”中的 X、Y 和 Z 的全零开始。
在 $H 之后,归位位置处于“工作位置”:X= -199,Y= -189
和 Z = -1。
对于“机器位置”:X= -199,Y= -189 和 Z = -1。归位牵引力
为 1 毫米。

找到原位开关给出位置:X = -200,Y = -190 和 Z = 0。

???????—– 令我惊讶的是,为什么不为 X = 0、Y = 0 和 Z = 0 归位
?—– ??????????
我想归位应该给零位置。

所有 X、Y 和 Z 步进电机都根据
FREECAD 或 CAD 中的 X、Y、Z 平面正确移动(左为 -X,右为 +X。后为 +Y,前
为 -Y。上为 +Z,下为 – Z).

更多信息:我可以使用 [RESET ZERO] 按钮
将 X、Y 和 Z 的“工作位置”重置为全零。
但不适用于“机器位置”。移动 X、Y 和 Z
步进电机可通过机器控制正确完成。
如果我用硬件开关重置 Arduino UNO 板,那么 在用 $X 清除警报以解锁 Arduino UNO 板后,我
可以获得“机器位置”的零 。

问候杰克赞德

您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#435
上查看它,或 将线程静音
https://github.com/notifications/unsubscribe/AQlzDICCYpav4ok6f5qj5wIPc3s3F0Wfks5qSUdDgaJpZM4JEjnL

您收到此消息是因为您创作了该线程。
直接回复此电子邮件,在 GitHub 上查看它 https://github.com/ /issues/435 #issuecomment-230344824,或将线程静音 https://github.com/notifications/unsubscribe/ALLSEkqudXGP_ENdHQqc2gmjYqkKnnOAks5qSV48gaJpZM4JEjnL。

//活动循环轴现在应该归位并且机器限制已经定位。默认
情况下,Grbl 将机器空间定义为全负,就像大多数 CNC 一样。由于限位开关
// 可以位于轴的任一侧,因此请适当检查并设置轴机器零位。也,
//从已归位的轴限位开关设置牵引机动。这提供了
// 开关的一些初始间隙,并且还应该有助于防止它们
在启用硬限制或多个轴共享一个限位销时误触发。
#ifdef COREXY
int32_t off_axis_position = 0;
#endif
int32_t set_axis_position;
// 设置归位限位开关的机器位置。不要更新非归位轴。
for (idx=0; idx<N_AXIS; idx++) {
// 注意:settings.max_travel[] 存储为负值。
如果 (cycle_mask & bit(idx)) {
#ifdef HOMING_FORCE_SET_ORIGIN
set_axis_position = 0;
#else
if ( bit_istrue(settings.homing_dir_mask,bit(idx)) ) {
set_axis_position = lround((settings.max_travel[idx]+settings.homing_pulloff)_settings.steps_per_mm[idx]);
} else {
set_axis_position = lround(-settings.homing_pulloff_settings.steps_per_mm[idx]);
}
#endif

  #ifdef COREXY
    if (idx==X_AXIS) { 
      off_axis_position = (sys.position[B_MOTOR] - sys.position[A_MOTOR])/2;
      sys.position[A_MOTOR] = set_axis_position - off_axis_position;
      sys.position[B_MOTOR] = set_axis_position + off_axis_position;          
    } else if (idx==Y_AXIS) {
      off_axis_position = (sys.position[A_MOTOR] + sys.position[B_MOTOR])/2;
      sys.position[A_MOTOR] = off_axis_position - set_axis_position;
      sys.position[B_MOTOR] = off_axis_position + set_axis_position;
    } else {
      sys.position[idx] = set_axis_position;
    }        
  #else 
    sys.position[idx] = set_axis_position;
  #endif

}

}

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435

https://github.com/grbl/grbl/wiki/Frequently-Asked-Questions#why-is-grbl-in-all-negative-coordinates-after-homing-or-it-so-annoying-and-not-我习惯了什么

“对于 CNC 铣床以外的用例或对机器处于负空间中的人感到恼火,有一个编译时选项将强制 Grbl 将原点设置为归位周期结束的任何地方。所以,如果你想要一台机器在所有正空间中,只需取消注释 config.h 文件中的 HOMING_FORCE_ORIGIN 选项,将限位开关设置在行程的负端,Grbl 将在归位完成后设置原点 [0,0,0]。”

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435
作者

你好,

我应该在 GRBL v0.9j 中尝试这个推荐的更改并编译它并在明天将其闪存到我的 Arduino UNO 克隆。


取消注释文件 config.h 中的行

// #define HOMING_FORCE_SET_ORIGIN // 取消注释以启用。


应该很容易做到。如果解决方案有效,我让你。先谢谢您的帮助。

问候杰克


Van: jahnj0584 notifications@github.com
Verzonden: maandag 4 juli 2016 14:34:01
Aan: winder/Universal-G-Code-Sender
CC: jack-zande; 作者
Onderwerp: Re: [winder/Universal-G-Code-Sender] Homing XYZ with $H gives negative max travel XY in machine position

https://github.com/grbl/grbl/wiki/Frequently-Asked-Questions#why-is-grbl-in-all-negative-coordinates-after-homing-or-it-so-annoying-and-not-我习惯了什么

“对于 CNC 铣床以外的用例或对机器处于负空间中的人感到恼火,有一个编译时选项将强制 Grbl 将原点设置为归位周期结束的任何地方。所以,如果你想要一台机器在所有正空间中,只需取消注释 config.h 文件中的 HOMING_FORCE_ORIGIN 选项,将限位开关设置在行程的负端,Grbl 将在归位完成后设置原点 [0,0,0]。”

您收到此消息是因为您创作了该线程。
直接回复此电子邮件,在 GitHub 上查看它 https://github.com/ /issues/435 #issuecomment-230356406,或将线程静音 https://github.com/notifications/unsubscribe/ALLSEsQYOrwiOjzfi3O8QX3USy2GKhpfks5qSXxJgaJpZM4JEjnL。

用 $H 归位 XYZ 在 [机器位置] 给出负最大行程 XY #435
所有者

谢谢@jahnj0584