Contact me: hankecnc@gmail.com

归位 Y 轴移动两次错误的方向并说 OK #830

推推 grbl 3年前 (2023-01-23) 477次浏览

关闭
Shanjaq 打开了这个问题 2015 年 10 月 29 日 · 11 条评论
关闭

归位 Y 轴移动两次错误的方向并说 OK#830

Shanjaq 打开了这个问题 2015 年 10 月 29 日 · 11 条评论

注释

归位 Y 轴移动两次错误的方向并说 OK #830

所以我早些时候进行了归位工作,但今天当我调用 $H 时,X 轴会正确归位,但 Y 轴会在错误的方向上进行两次短距离移动,控制台输出会说“OK”,就好像它成功地推动了一样进入限位开关,但它完全没有。

什么会导致它在错误的方向上进行两次短暂的移动然后假设一切都很好?

我通过打开硬限位 $21=1 并手动将平台推入限位开关来测试限位开关,这会在软件 (bCNC) 中触发警报。

这是我在使用“加载库”方法编译和上传之前对 config.h 所做的:

定义 HOMING_CYCLE_0 (1<<X_AXIS) // 必需:首先移动 X

定义 HOMING_CYCLE_1 (1<<Y_AXIS) // 可选:然后移动 Y

我还将归位方向掩码设置为 $23=3 并将限制引脚 0x5=1 反转,因为它们是光学的并且位于原点。

归位 Y 轴移动两次错误的方向并说 OK #830

您可能以错误的方式连接了归位开关。

您始终可以在设置中更改方向的遮罩。

2015-10-29 10:29 GMT+00:00 Shanjaq notifications@github.com

所以我早些时候进行了归位工作,但今天当我调用 $H 时,X
轴会正确归位,但 Y 轴会在错误的方向上进行两次短距离移动,
控制台输出会说“OK”,就好像它
成功地推动了一样进入限位开关,但它完全没有。

什么会导致它在错误的方向上进行两次短暂的移动
然后假设一切都很好?

我通过打开硬限位 $21=1 并手动将平台推入限位开关来测试限位开关,这会在 软件 (bCNC)
中触发警报。

这是我在使用
“加载库”方法编译和上传之前对 config.h 所做的:

#define HOMING_CYCLE_0 (1<<X_AXIS) // 必需:首先移动 X
#define HOMING_CYCLE_1 (1<<Y_AXIS) // 可选:然后移动 Y


直接回复此电子邮件或在 GitHub
#830上查看。

Com os melhores cumprimentos,
Vinicius Silva

归位 Y 轴移动两次错误的方向并说 OK #830
作者

归位开关接线正确,经过五重检查和探测以确保良好测量。

方向掩码是正确的,因为前几天它的归位很好。

奇怪而有趣的行为是它向错误的方向移动了两次。比如,它移动半秒,停顿半秒,然后再移动半秒,然后说“OK”。

归位 Y 轴移动两次错误的方向并说 OK #830
maaadbob 评论了 2015 年 10 月 29 日 通过电子邮件
归位 Y 轴移动两次错误的方向并说 OK #830

我想你描述的可能是末端挡块的反冲补偿?

在这种情况下,这是归位周期的常见行为。

Am 29.10.2015 um 11:53 schrieb Shanjaq notifications@github.com

归位开关接线正确,经过五重检查和探测以确保良好测量。

方向掩码是正确的,因为前几天它的归位很好。

奇怪而有趣的行为是它向错误的方向移动了两次。比如,它移动半秒,停顿半秒,然后再移动半秒,然后说“OK”。


直接回复此电子邮件或在 GitHub 上查看。

归位 Y 轴移动两次错误的方向并说 OK #830

我和maadbob的想法一样,这似乎是接线临时错误连接,或临时短路…

归位 Y 轴移动两次错误的方向并说 OK #830
成员

@Shanjaq:您所描述的行为通常是由开关或开关接线上的电气噪声引起的。归位周期将开关噪声检测为触发开关,并且仅移动远离开关的拉离距离。听起来您还配置了两个归位定位周期,这可以解释双重运动。

您可以通过移除 Y 开关并使用一根短线手动将 hi 和 low 带入 Arduino 引脚来验证这一点。

归位 Y 轴移动两次错误的方向并说 OK #830
作者

好的,我想我发现了问题:我使用的 Instructable 说使用引脚 12 作为激光切换/启用引脚。看grbl pinout,就是Z轴限位引脚!

http://www.instructables.com/id/Pocket-laser-engraver/

卸下激光模块更正了归位周期。现在要弄清楚激光使用哪个引脚。

归位 Y 轴移动两次错误的方向并说 OK #830

我把它连接到主轴 pwm … M3 打开它,M5 关闭 … 在程序 S8000 的开头

归位 Y 轴移动两次错误的方向并说 OK #830
作者

好的,我通过在 config.h 中注释掉这一行让它按我想要的方式工作:

#define VARIABLE_SPINDLE // 默认启用。评论禁用。

现在 pin 12 用作主轴启用/禁用,我不需要拆焊任何东西。好极了!:)

归位 Y 轴移动两次错误的方向并说 OK #830

请问你用哪个程序生成gcode?我使用 flatcam 但后处理器不可编辑。所以我必须编辑 gcode(用 M3 替换 Z-,用 M5 替换 Z+)

归位 Y 轴移动两次错误的方向并说 OK #830
作者

@TadyTheFish此 Python 脚本可能有助于转换 FlatCAM gcode 输出以使用 M3 和 M5 控制激光:

import sys, getopt

helpmsg = 'gcode_laser_convert.py -i <inputfile> -o <outputfile>'
z_negative = ('G01 Z-', 'G00 Z-')
z_positive = ('G01 Z', 'G00 Z')
default_toggle = ('M03', 'M05')

def main(argv):
    inputfile = ''
    outputfile = ''

    try:
        opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
    except getopt.GetoptError:
        print helpmsg
        sys.exit(2)

    for opt, arg in opts:
        if opt == '-h':
            print helpmsg
            sys.exit()
        elif opt in ("-i", "--ifile"):
            inputfile = arg
        elif opt in ("-o", "--ofile"):
            outputfile = arg

    with open(outputfile,'w') as o:
        with open(inputfile) as f:
            content = f.readlines()
            for r in content:
                if any(s in r for s in z_negative):
                    o.write('M03\n')
                elif any(s in r for s in z_positive):
                    o.write('M05\n')
                elif any(s in r for s in default_toggle):
                    print "skipping default toggles"
                else:
                    o.write(r)

    print "DONE"

if __name__ == "__main__":
    main(sys.argv[1:])
喜欢 (0)