开源改变世界

支持换刀M0暂停 #378

推推 grbl 2年前 (2023-02-04) 206次浏览
打开
tbfleming 打开了这个问题 2017 年 7 月 14 日 · 63条评论
打开

支持换刀M0暂停#378

tbfleming 打开了这个问题 2017 年 7 月 14 日 · 63条评论

评论

支持换刀M0暂停 #378
成员

支持这个以允许工具更改会很好:

  • 程序暂停在 M0
  • 通知显示对 M0 行的评论。例如“切换到工具 7”
  • 用户可以点动、设置零和输入手动命令
  • 恢复按钮(可能是运行按钮)继续运行代码

我们可能不得不做这个客户端。grbl 允许在 M0 暂停期间点动,但在暂停期间不执行任何同步命令,例如置零。

支持换刀M0暂停 #378
成员作者

我认为弹出窗口是为数不多的几个地方之一。它会收到消息,但不会干扰左侧。

支持换刀M0暂停 #378
成员

Smoothieware 不支持 M0-M2(根据http://smoothieware.org/supported-g-codes),但 M600 听起来也支持。如果 M600 有效,我将能够用 M600 替换服务器端的 Smoothieware 的所有 M0。

支持换刀M0暂停 #378
成员

Mach3 使用 Tx M6 进行换刀。

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 15 日 通过电子邮件
支持换刀M0暂停 #378
成员作者

如果我们做这个客户端,那么 Smoothie 和 grbl 都不会看到 M0。

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 15 日 通过电子邮件
支持换刀M0暂停 #378
成员作者

是的。

支持换刀M0暂停 #378
成员

好的,这听起来也可行。

支持换刀M0暂停 #378
成员
开胃菜 评论了 2017 年 7 月 15 日  

但是如果 gcode 从 SD 卡运行呢?

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 15 日 通过电子邮件
支持换刀M0暂停 #378
成员

从 SD 卡运行的 gcode 文件中的 M600 是否没有暂停作业并且可以恢复?

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 15 日 通过电子邮件
支持换刀M0暂停 #378
成员
开胃菜 评论了 2017 年 7 月 19 日  

我正在研究用于工具更换的 M0。目前,当队列检测到 M0 时,流式传输停止并将 runStatus 设置为暂停。然后前端等待单击“恢复作业”按钮。Peter 有时在暂停时实现了禁用所有点动按钮,但我认为我们需要点动来换刀,对吧?

@tbfleming @openhardwarecoza @cojarbi手动换刀所需的确切流程是什么?

支持换刀M0暂停 #378
成员作者

车床短期计划:

  • M0 与消息
  • 用户慢跑到可以安全更换工具的地方
  • 用户更改工具
  • 用户慢跑并设置为零
  • 恢复

车床长期规划:

  • CAM 生成 gcode,移动到可以安全更换工具的位置
  • M0 与消息
  • 用户更改工具
  • 恢复。CAM 使用工具表来调整它生成的 gcode。grbl 的刀具长度偏移现在不适用于车床;我可以解决这个问题。

Mill 可能类似,但用户也可以使用探测来设置刀具偏移。

支持换刀M0暂停 #378
 评论了 2017 年 7 月 19 日 通过电子邮件  

支持换刀M0暂停 #378
成员

好的。我使toolchange成为一个附加状态,并且在此状态下只允许执行特殊命令,例如点动、探测或 Z 的 setZero。

让用户定义 M0 之前和 M0 之后的 gcode 可能会很好。这样,用户可以定义换刀的位置/方式以及如何返回到之前的位置。

支持换刀M0暂停 #378
 评论了 2017 年 7 月 19 日 通过电子邮件
支持换刀M0暂停 #378
成员作者

现在,@tbfleming您知道用不了多久我们现在就需要 CAM 中的工具(;大声笑。

是的。我需要为车床添加一个工具表。

支持换刀M0暂停 #378
 评论了 2017 年 7 月 19 日 通过电子邮件
支持换刀M0暂停 #378
合作者
jorgerobles 评论了 2017 年 7 月 19 日 通过电子邮件
支持换刀M0暂停 #378
成员作者

好的。我使 toolchange 成为一个附加状态,并且在此状态下只允许执行特殊命令,例如点动、探测或 Z 的 setZero。

短期:车床需要 X 的 setZero

长期:车床将需要设置 X 的直径:用户点动以将刀具接触到工件,并输入测量的直径。将 X 设置为 +Diameter/2(对于后部工具)或 -Diameter/2(对于前部工具)。

支持换刀M0暂停 #378

那我们不应该也赶上M6吗?由于许多其他 CAM 使用 M6 Tx 作为命令?万一

支持换刀M0暂停 #378
成员作者

我刚刚意识到:车床也需要将 Z 设置为用户输入的值。第一个操作通常会去掉 Z=0,留下 Z=一些其他值作为接触点。

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 19 日 通过电子邮件
支持换刀M0暂停 #378
 评论了 2017 年 7 月 19 日  

很清楚差异…但是…CP 处理主机中的 M6…与 Grbl 和 TinyG 配合良好(记住,我们是多固件主机)

支持换刀M0暂停 #378
亚瑟狼 评论了 2017 年 7 月 19 日 通过电子邮件
支持换刀M0暂停 #378
 评论了 2017 年 7 月 19 日  

grbl/grbl#1103(评论) (解释 M6 的 Grbl 实现)

synthetos/TinyG#186 (comment) (解释CP+TinyG使用M6)

https://github.com/vlachoudis/bCNC/wiki/Tool-Change (bCNC M6)

Mach3:遇到 M6 时调用宏:

Here is the default Mach3 M6 tool change macro scripts.

C:\Mach3\macros\Mach3Mill\M6Start.m1s
Code:
  tool = GetSelectedTool()
  SetCurrentTool( tool )
C:\Mach3\macros\Mach3Mill\M6End.m1s
Code:
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
if(IsSafeZ() = 1) Then
   SafeZ = GetSafeZ()
   if  SafeZ  > z then StraightTraverse x, y,SafeZ, a, b, c 
      StraightFeed  x, y,  z  , a, b, c
else
Code"G00 X" & x & "Y" & y
end if

Tormach:https ://www.tormach.com/m6.html也调用宏

LinuxCNC:暂停和提示(与 LW 中的 M0 相同):http ://linuxcnc.org/docs/html/gcode/m-code.html#mcode:m6

由于 M6 的广泛使用(滥用),我们不能真正忽视它。没有一个目标控制器具有对 M6 做出反应的自动工具更换器。像 XTC (Xpix) 这样的东西也会依赖于宏……所以如果有的话,我们应该只让 M0 暂停,而 M6 应该暂停,也许调用宏?

支持换刀M0暂停 #378
成员

杰普,我们应该支持M0M6 Tx。M0 必须在后端实现,因为它必须停止流式传输。M6 可能在前端实现(在将 gcode 发送到后端之前)并使用前置和后置宏(其中可以使用 M0)。

支持换刀M0暂停 #378
成员
开胃菜 评论了 2017 年 7 月 19 日  

@arthurwolf是的,使 M0/M6 的行为可配置或依赖于所使用的固件可能是有意义的。

支持换刀M0暂停 #378
成员
开胃菜 评论了 2017 年 7 月 31 日  

目前我只允许 Z 轴的 setZero 和 Probe,因为在铣床上接受它在 X 和 Y 轴上是有风险的。
如何在机器设置(激光、铣床、车床等)中添加一个“机器类型”下拉列表,可以将其发送到服务器进行配置?

支持换刀M0暂停 #378
 评论了 2017 年 7 月 31 日 通过电子邮件
喜欢 (0)