开源改变世界

在某些情况下,单步模式会跳过整个循环内容。 #709

推推 grbl 3年前 (2023-01-29) 160次浏览
关闭
andypugh 打开了这个问题 2020 年 4 月 6 日 · 2 条评论
关闭

在某些情况下,单步模式会跳过整个循环内容。#709

andypugh 打开了这个问题 2020 年 4 月 6 日 · 2 条评论

注释

在某些情况下,单步模式会跳过整个循环内容。 #709
合作者
安迪普 评论了 2020 年 4 月 6 日  

以下是我重现该问题所遵循的步骤:

  1. 打开 sim/axis-mm
  2. X0 Y0 的家
  3. 使用单步按钮启动此 .ngc 文件。
#1 = 0
O100 repeat [6]
(DEBUG, 1)
G1 F50 X[5 + #1]
(DEBUG, 2)
G1 F50 Y[5 + #1]
(DEBUG, 3)
G1 F50 X[10 + #1]
#1 = [#1 + 5]
O100 endrepeat
M2

这是我期望发生的事情:

逐步运行的程序

这是发生了什么:

在前几个单步之后,机器直接运行到终点,忽略整个循环内容。

在此之前它工作正常:

#151之前

该问题是由一组特定情况和此处的代码引起的:
https ://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/task/emctaskmain.cc#L572

 if ( programStartLine != 0 &&
				 emcTaskPlanLevel() == 0 &&
				 ( programStartLine < 0 ||
				   emcTaskPlanLine() <= programStartLine )) {
				// we're stepping over lines, so check them
				// for
				// limits, etc. and clear then out

在单步模式下,programStartLine == 1 自始至终。
在进入循环时,因为循环在第 1 行(从零开始计数),所以条件得到满足,系统将跳过循环。
程序运行正常,在 O100 上方有一行代码间隔

在某些情况下,单步模式会跳过整个循环内容。 #709 安迪普 补充道 2.8-必须修复 在 2.8 发布之前必须解决的问题影响2.8 影响主人 不在 2.7 中 标签 2020 年 4 月 6 日
在某些情况下,单步模式会跳过整个循环内容。 #709
贡献者

我今天开始做这个。

在某些情况下,单步模式会跳过整个循环内容。 #709
贡献者

在 PR #852中修复。再次感谢,@andypugh

zultron 添加了对引用此问题的 zultron/machinekit 的提交 2020 年 5 月 12 日

喜欢 (0)