Contact me: hankecnc@gmail.com

问题恢复工作 #195

推推 grbl 3年前 (2023-01-24) 315次浏览

关闭
kareemtawab 打开了这个问题 2017 年 12 月 3 日 · 14条评论
关闭

问题恢复工作#195

kareemtawab 打开了这个问题 2017 年 12 月 3 日 · 14条评论

注释

问题恢复工作 #195

我通常从远离机器零的位置开始,并设置一个新的工作/家庭位置。发生错误时,我会重置 arduino。之后我运行 gcode 并选择从发送的最后一行开始恢复。它不会从我存储的工作/家庭位置恢复工作。发生的情况是它正确地到达机器零位 X0 Y0,然后以绝对机器位置到达最后停止的线并从那里恢复,就好像机器和工作位置都在 X0 Y0。这意味着它忽略了我开始时保存的工作位置。

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 4 日  

你好@HK89
求职简历做得很好,但它不能创造奇迹!

设置新起始位置时分配的工作偏移量在 grbl 中存储和管理(而不是在 LaserGRBL 中,它仅将其显示为第二对坐标),因此如果您执行软重置(即使用 thunder),它会丢失按钮)。你可以看到偏移量丢失了,因为第二对坐标消失了。

由于“Job Resume”系统仅使用 gcode 文件中可用的信息工作,所有可能改变世界的“外部”命令都应手动恢复。

我的意思是:如果您已经移动(慢跑)到 100,100 并且在开始工作之前设置了新家,您应该重新定位到 100、100 并在恢复工作之前再次设置家。

我认为这个过程的某些部分可以由 LaserGRBL 管理,通过跟踪以前的工作偏移量并在检测 grbl 被重置并且偏移量丢失时尝试重新应用偏移量。

此外:如果您执行硬重置(即按下电路板的重置按钮 – 或断开电源),您会丢失所有位置信息,因此从这种情况中恢复的唯一方法是使用限位开关并执行归位以感知绝对可靠的“0,0”点。

问题恢复工作 #195 arkypita 添加了 增强 标签 2017 年 12 月 4 日
问题恢复工作 #195

您好,
感谢您的快速回复。我试了两次,不幸的是它没有用。我想我错过了什么。

  1. 加载矢量图像并生成 gcode
  2. 使用限位开关归位我的机器
  3. 以X70 Y20为例,设置工位
  4. 运行 gcode 程序并在发送 422 行后按住
  5. 从 LaserGRBL 重置 grbl
  6. 使用最后发送的命令(选项 3)恢复作业,并选择重做归位并使用起始位置 X70 Y20

然后它开始归位,之后机器从 X0 Y0 开始雕刻,尽管我可以看到发送的 G92 命令。然后它触发了我的限位开关并停止了。

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 4 日  

在第 6 步尝试不重做归位。我还没有完全测试归位 ($H) 和设置归位 (G92) 之间的交互(和可能的冲突)。

问题恢复工作 #195

是的!成功了!谢谢

我不知道为什么它不适用于重做归位。

问题恢复工作 #195

我想我知道发生了什么。重新归位后,它会在归位的机器坐标 X0 Y0 处发送 G92 命令。我想应该是这样的:

  1. 重做归位
  2. 点动到 LaserGRBL 已知的工作位置
  3. 从那里使用 X 和 Y 值设置 G92 命令
  4. 从发送的最后一行恢复

也许它在第 2 步缺少慢跑部分。

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 4 日  

是的,类似的东西。

我已经实现了这样的恢复 WCO(工作坐标偏移):

CurPoint = MachinePosition (read from actual) - LastValidWCO (stored when executing job)
G92 CurPointX CurPointY

这相当于说“您现在放置的点的坐标为 X、Y”
例如:如果在挂起之前我们的 WCO 为 100,100,并且当我们重置 grbl 时作业为 10,10,则绝对(机器位置)为110,110。

Compute MachinePosition (110,110) – LastValidWCO (100,100) 给出结果 10,10
发送 G92 X10 Y10 足以将 WCO 恢复为 100,100,无需慢跑。

这是因为 G92 不仅可以用 X0 Y0 调用,还可以用任何 XY 位置调用,意思是说“当前位置现在应该被称为 X,Y”

但是,如果您执行归位,此技巧将不起作用,因为 CurPoint 坐标是在发送 $H 之前计算的,因此它们被计算为 10,10(当它们必须被计算为 -100、-100 时)

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 4 日  

我现在将其更改为

if (setwco)
{
	//compute current point and set offset
	System.Drawing.PointF pos = homing ? new System.Drawing.PointF(0, 0) : MachinePosition;
	System.Drawing.PointF wco = mTP.LastKnownWCO;
	System.Drawing.PointF cur = new System.Drawing.PointF(pos.X - wco.X, pos.Y - wco.Y);
	mQueue.Enqueue(new GrblCommand(String.Format("G92 X{0} Y{1}", cur.X.ToString(System.Globalization.CultureInfo.InvariantCulture), cur.Y.ToString(System.Globalization.CultureInfo.InvariantCulture))));
}

该行System.Drawing.PointF pos = homing ? new System.Drawing.PointF(0, 0) : MachinePosition;说:“如果需要归位,则从当前位置的 0,0 计算位置”

这应该工作。(我怀疑归位后位置是否定义为 0,0,或者在 grbl 中应该有所不同)

问题恢复工作 #195 arkypita 添加了 漏洞 标签 2017 年 12 月 4 日
问题恢复工作 #195
作者
卡里姆塔瓦布 评论了 2017 年 12 月 6 日  

这是一个有趣的问题,您的修复速度非常快@arkypita. 保持良好的工作。

问题恢复工作 #195

你好,

抱歉再次撞到,但最新版本只是没有从原位恢复的选项。我没有看到复选框。昨天,我遇到了一个问题,无法恢复。请帮忙。

谢谢

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 18 日  

我猜你是在谈论 Homing $H。

自 v2.8.16 – v2.8.20 LaserGRBL 使用从 grbl ($$) 读取的配置来自行配置某些功能。这些功能之一是归位。LaserGRBL 读取 $$ 响应并检测启用归位的 $22 值(或旧版本的 grbl 为 $17),并且仅当启用归位时才启用其 UI 的归位按钮。这也会影响从恢复界面进行归位的能力。

只有当您从新的配置界面配置时,LaserGRBL 才会读取配置,如果您配置从命令行发送 $NUM=VAL LaserGRBL 不会拦截它。

问题恢复工作 #195

如果您的 UI 中有 Homing 按钮,您也应该在简历中有 Homing 选项复选框。

问题恢复工作 #195

如果没有,请打开 grbl-configuration 表单并读取/刷新配置。

问题恢复工作 #195

你好,

我想我还不够清楚。对不起这是我的错。我的意思是,在恢复对话框窗口中有任何选项复选框可以从上次发布的“工作”位置恢复,并且它位于“重做归位”复选框旁边。

LASERGrbl 将在 grbl 停止前获取最后的工作位置,并在 grbl 复位后发出 G92 命令。复选框在 v2.8.30 之后消失了(我猜)

问题恢复工作 #195
所有者
阿尔基皮塔 评论了 2017 年 12 月 19 日  

问题恢复工作 #195

如果您正在谈论复选框“Home @ XY”,它也仅在必要时出现,

LASERGrbl 将在 grbl 停止之前获取最后一个工作位置

是的,LaserGRBL 在文件流传输期间存储最后已知的工作位置,但只有在设置了工作偏移(它不是零)时才会显示恢复对话框中的归位复选框。如果未设置工作偏移量,则不会显示任何复选框。

您确定完成此测试后已确定工作偏移量吗?我现在已经试过了,看起来很管用。

喜欢 (0)