开源改变世界

挂在 ‘Hold’ – 最简单的 gcode 重现 #741

推推 grbl 3年前 (2023-01-22) 74次浏览

关闭
dirkx 打开了这个问题 2015 年 6 月 19 日 · 13条评论
关闭

挂在 ‘Hold’ – 最简单的 gcode 重现#741

dirkx 打开了这个问题 2015 年 6 月 19 日 · 13条评论

注释

挂在 'Hold' - 最简单的 gcode 重现 #741

Grbl(master 0.9i,针对今天的 git checkout 构建)偶尔会挂起。

附件是最简单的 gcode,它将可重复地挂在语句 3 左右(缓冲区中最多有语句 19)。

”'{{{

M5
M3
G01 Z5.0000 F200.0000(提升到安全退刀高度。)
G01 X385.7143 Y10.0000 F600.0000(移动)
G01 Z-3.0000 F10.0000(切入到切削深度)
G01 X385.7143 Y0.0000 F50.0000(切削)
G01 Z5.0000 F200.0000(提升至安全退刀高度。)
G01 X385.7143 Y10.0000 F600.0000(移动)
G01 Z-3.0000 F10.0000(切入切削深度)
G01 X391。 9048 Y10.0000 F50.0000(切削)
G01 Z5.0000 F200.0000(提升至安全退刀高度。)
G01 X385.7143 Y5.2381 F600.0000(移动)
G01 Z-3.0000 F10.0000(切入切削深度) )
G01 X389.5238 Y5.2381 F50.0000(切割)
G01 Z5.0000 F200.0000(提升至安全缩回高度。)
G01 X394.2857 Y6.6667 F600.0000(移动)
G01 Z-3.0000 F10.0000(切入到切削深度)
G01 X394.2857 Y0.0000 F50.0000(切削)
G01 Z5.0000 F200.0000(提升到安全退刀高度。)
G01 X394.2857 Y3.8095 F600。 0000(移动)
G01 Z-3.0000 F10.0000(切入到切削深度)
G01 X394.7619 Y5.2381 F50.0000(切削)
G01 X395.7143 Y6.1905 F50.0000(切削)
G01 X396.6667 Y6.6667 F50.0000(切割)
G01 X398.0952 Y6.6667 F50.0000(切割)
G01 Z5.0000 F200.0000(提升到安全缩回高度。)
G01 X400.0000 Y3.8095 F600.0000(移动)
G01 Z- 3.0000 F10.0000(切入切削深度)
G01 X405.7143 Y3.8095 F50.0000(切削)
G01 X405.7143 Y4.7619 F50.0000(切削)
G01 X405.2381 Y5.7143 F50.0000(切削)
G01 X404.7619 Y6.1905 F50.0000(切削)
G01 X403.8095 Y6.6667 F50.0000(切削)
G01 X402.3810 Y6.6667 F50.0000(切削)
G01 X401.4286 Y6.1905 F50.0000(
G01 X400.4762 Y5.2381 F50.0000(切削)G01
X400.0000 Y3.8095 F50.0000(切削)
G01 X400.0000 Y2.8571 F50.0000(切削)
G01 X400.4762 Y1.4286 F50. 0000(切削)
G01 X401.4286 Y0.4762 F50.0000(切削)
G01 X402.3810 Y0.0000 F50.0000(切削)
G01 X403.8095 Y0.0000 F50.0000(切削)
G01 X404.7619 Y0.4762 F50.0000(切割)
G01 X405.7143 Y1.4286 F50.0000(切割)
G01 Z5.0000 F200.0000(提升到安全缩回高度。)
G01 X414.2857 Y10.0000 F600.0000(移动)
G01 Z- 3.0000 F10.0000(切入到切削深度)
G01 X414.2857 Y0.0000 F50.0000(切削)
G01 Z5.0000 F200.0000(提升至安全退刀高度。)
G01 X414.2857 Y5.2381 F600.0000(移动)
G01 Z-3.0000 F10.0000(切入)至切削深度)
G01 X413.3333 Y6.1905 F50.0000(切削)
G01 X412.3810 Y6.6667 F50.0000(切削)
G01 X410.9524 Y6.6667 F50.0000(切削)
G01 X410.0000 Y6.1905 F50.0000(切削)
G01 X409.0476 Y5.2381 F50.0000(切削)
G01 X408.5714 Y3.8095 F50.0000(切削)
G01 X408.5714 Y2.8571 F50.0000(切削)
G01 X409.0476 Y1 .4286 F50.0000(切削)
G01 X410.0000 Y0.4762 F50.0000(切削)
G01 X410.9524 Y0.0000 F50.0000(切削)
G01 X412.3810 Y0.0000 F50.0000(切削)
G01 X413。 3333 Y0.4762 F50.0000 (切)
G01 X414.2857 Y1.4286 F50.0000(切削)
M9

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

状态(由 ? 报告)从“运行”变为“保持”——没有触发任何限制。

电子设备未连接 – 它可以在完全没有电子设备的单独 Arduino 上重现。

挂在 'Hold' - 最简单的 gcode 重现 #741
成员

@dirkx: 现在运行它,这里没有问题。你有什么东西连接到进给保持销吗?可能是 EMI。我会在没有任何连接到 Arduino 的情况下运行这项工作,先看看它是否是您的电子产品。

挂在 'Hold' - 最简单的 gcode 重现 #741

只是为了好玩,我还通过 Arduino Mega 和 Arduino Nano 运行了上面的代码,它们都运行今天下载的 GRBL 0.9i.20150618,并且都运行得很好,没有错误。

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

谢谢。所以我在准系统 Arduino 上运行它 – 没有任何连接。将在 A1、2、3 引脚上试验上拉电阻以进行验证。

挂在 'Hold' - 最简单的 gcode 重现 #741
成员

@dirkx: 能介绍下你的配置吗?我需要尽可能多地了解才能直接重现此问题。

  • 您使用的是 Arduino Uno 还是其他变体
  • 你是如何编译和上传Grbl的?什么版本的 Arduino IDE,如果那是你的主要方法?
  • 请提供您的 Grbl 设置的打印件。
挂在 'Hold' - 最简单的 gcode 重现 #741
作者

如下所示。此后检查了 A1/2/3 的上拉电阻。我现在正在检查功率(下降)和类似的。

  • 现在最干净的设置是没有附加任何东西的 Arduino UNO(修订版 r3)(依靠内部上拉)。
  • 从 master:git 编译——针对 avr-gcc (GCC) 4.8.1 使用“make”,使用带有“make flash”的 avrdude 版本 6.0.1 进行烧录。唯一的设置更改是设置 PROGRAMMER=”-P /dev/cu.usbmodemfd3231 -c arduino’。
  • 默认的 Grbl 设置:
    14:21:27: Grbl 0.9i [‘$’ for help]
    14:21:27: $$
    14:21:27: $0=10 (step pulse, usec)
    14:21:27 :$1=25(步骤空闲延迟,毫秒)
    14:21:27:$2=0(步骤端口反转掩码:00000000)
    14:21:27:$3=0(目录端口反转掩码:00000000)
    14:21:27 :$4=0(步进启用反转,布尔)
    14:21:27:$5=0(限制引脚反转,布尔)
    14:21:27:$6=0(探针引脚反转,布尔)
    14:21:27:$10 =3 (status report mask:00000011)
    14:21:27: $11=0.010 (junction deviation, mm)
    14:21:27: $12=0.002 (arc tolerance, mm)
    14:21:27: $13=0 (report inches, bool)
    14:21:27: $20=0 (soft limits, bool)
    14:21:27: $21=0 (hard limits, bool)
    14:21:27:$22=0(归位周期,布尔值)
    14:21:27:$23=0(归位方向反转掩码:00000000)
    14:21:27:$24=25.000(归位进给,mm/min)
    14 :21:27:$25=500.000(归位搜索,mm/min) 14:21:27:
    $26=250(归位去抖,毫秒) 14:21:27
    :$27=1.000(归位牵引,mm)
    14: 21:27:$100=250.000(x,步长
    /mm)14:21:27:$101=250.000(y,步长
    /mm)14:21:27:$102=250.000(z,步长/mm)
    14:21: 27:110 美元=500.000(x 最大速率,毫米/分钟)
    14:21:27:111 美元=500.000(y 最大速率,毫米/分钟)
    14:21:27:112 美元=500.000(z 最大速率,毫米/分钟)
    14:21:27:120 美元=10.000(x 加速度,毫米/秒^2)
    14:21:27:121 美元=10.000(y 加速度,毫米/秒^2)
    14:21:27:122 美元=10.000(z 加速度, 毫米/秒^2)
    14:21:27:130 美元=200.000(x 最大行程,毫米)
    14:21:27:131 美元=200.000(y 最大行程,毫米)14:21:
    27:132 美元=200.000(z 最大行程,毫米)
    14: 21:27:好的14:21:
    27:M5

构建设置

#!/bin/sh
set -e
rm -rf grbl
git clone https://github.com/grbl/grbl.git
cd grbl
make all
PROGRAMMER=”-P /dev/cu.usbmodemfd3231 -c arduino” make flash
退出0

挂在 'Hold' - 最简单的 gcode 重现 #741
成员

@dirkx: 除了我不使用make flash.

这是我的闪烁脚本:

#/bin/bash
AVRPATH=/Applications/Arduino.app/Contents/Java/hardware/tools/avr
$AVRPATH/bin/avrdude -C$AVRPATH/etc/avrdude.conf -pm328p -carduino -P$1 -D -Uflash:w:grbl.hex

我会看看如果我做你做的事会发生什么。

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

谢谢。管住你的马;我正在尝试交换电路板和 Atmega 芯片 – 现在有一个芯片,无论电路板如何,它都是不同的。所以它可能与硬件有关。

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

我们尝试使用不同的板(所有修订版 r3);并交换了不同批次的 Atmega 328P rev。D(DIL插座)周边:

  • 他们都没有在 GrblController 中出现这个问题。
  • 没有一个在 9600 波特时有问题。
  • 我们已经看到一些 Atmega*u2(USB 转串口)出现故障的情况 – 即 TTL 上的监听显示错过了转换。
  • 部分批次的AtMEGA(1437标示)在0.2秒延迟下发指令时不会出现问题;正常进食时会“保持”挂起;并会在以 115200“最大速度”输入时给出零星的“错误:无效的 gcode ID:24”和“错误:错误的数字格式” – 即 ok 的 \n\r 后 12 毫秒内的下一个命令。
  • 无论波特率/间距如何,带有 0723 的都会随机给出一个 Hold。
  • 标记为 1004 的那些只有在比 100mSecond 间隔器进给速度更快时才会给出错误数字/无效操作码;从来没有举行。

所以我们现在的猜测是在 115200 处我们达到了极限;首先是一些 328P,在少数情况下是 USB/TTL;但远非如此。

挂在 'Hold' - 最简单的 gcode 重现 #741
成员

过去,Grbl 控制器的流媒体协议存在问题。我建议尝试使用 UGS、bCNC 或 Grbl 流式 Python 脚本之类的东西。后者是最简单的,并且消除了 GUI 对解决此类问题的影响。

挂在 'Hold' - 最简单的 gcode 重现 #741
成员

@dirkx: 这个问题解决了吗?也可以使用 250000 波特,定时误差应该小于 115200,但实际上,115200 从来都不是问题。

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

@chamnit:正确 – 我们没有使用 GrblController(它太慢且容易出错) – 而是直接流式传输到串行套接字(https://github.com/dirkx/HersheyEngravingFontsForCocoaAndiPhone)。

@chamnit:我们无法使用任何芯片重现 250000 和 9600 的问题。

挂在 'Hold' - 最简单的 gcode 重现 #741
作者

关闭问题 – 因为它与串行时序相关 – 并且使用 250k 非常好。

喜欢 (0)