开源改变世界!!

g2core 工作杀 #428

推推 grbl 2年前 (2023-02-02) 103次浏览
关闭
MitchBradley 打开了这个问题 2019 年 3 月 18 日 · 7条评论
关闭

g2core 工作杀#428

MitchBradley 打开了这个问题 2019 年 3 月 18 日 · 7条评论

注释

g2core 工作杀 #428

描述

使用 g2core,当您暂停带有进给的作业时,主轴会(正确地)停止,但如果您随后决定终止作业,则主轴会重新启动,让主轴在机器应该空闲时继续运行。危险的!
我认为这个问题的根本原因是 TinyG 和 g2core 协议之间的差异。g2core 支持一个“job kill”字符 – ^d – TinyG 没有。在 src/app/controllers/TinyG/TinyGController.js 中,如果 gcode:stop 处理程序发出 ‘!\x04’ 而不是 ‘!%’,问题就会消失。
但这可能不适用于 TinyG。我在 g2 区域中打开了一个问题,以寻求有关正确解决方案synthetos/g2#404的指导

g2core 工作杀 #428
合作者
奇顿 评论了 2019 年 3 月 18 日  

https://github.com/synthetos/TinyG/wiki/TinyG-Feedhold-and-Resume
https://github.com/synthetos/g2/wiki/Feedhold,-Resume,-and-Other-Simple-Commands#jogging -using-feedhold-and-queue-flush

对于 g2core,文档中提到这些应该各占一行。你能帮忙检查一下它是否有助于使用单独的线路吗?谢谢。

this.writeln('!'); // feedhold
this.writeln('%'); // queue flush
g2core 工作杀 #428
合作者
奇顿 评论了 2019 年 3 月 18 日  

我认为这个问题的根本原因是 TinyG 和 g2core 协议之间的差异。g2core 支持一个“job kill”字符 – ^d – TinyG 没有。在 src/app/controllers/TinyG/TinyGController.js 中,如果 gcode:stop 处理程序发出 ‘!\x04’ 而不是 ‘!%’,问题就会消失。

对于g2core,我觉得把!and^d分开发一个程序结束比较好。我将等待可以同时支持 TinyG 和 g2core 的正确解决方案的响应。


我还想知道是否应该将Resetg2core 的命令从“^x”更改为“%d”?

https://github.com/cncjs/cncjs/blob/v1.9.17/src/app/controllers/TinyG/TinyGController.js#L1165-L1171

'reset': () => {
    this.workflow.stop();
    this.feeder.reset();
    this.write('\x18'); // ^x
},

这里的reset命令代表的是软复位,不是硬件复位。我想我可能多年来都弄错了。

g2core 工作杀 #428
贡献者作者

我试过了 !和 % 在不同的行。那没有用。问题是 % 的语义不包括停止主轴。

我目前在一个 writeln 中发布 !^d 的解决方案工作得很好。我不确定!部分是必要的;只是做 ^d 可能会起作用。!有利于以后可以恢复的馈电。

^x 对于重置是正确的。当我想确保控制器已完全重新启动时,我会使用它。请不要将其更改为 ^d。^d 用于取消 GCode 文件运行。它就像一个坚硬、直接的 M30

我还通过 GPIO 进行了硬件重置,但我很少需要使用它。

g2core 工作杀 #428
贡献者作者

经过更多测试后,我认为为 g2core 执行 gcode:stop 的最佳方法是简单地发出 ^d ,不需要 ! 根本。所以是否在不同的行上执行它们的问题消失了,因为你只需要发出一个字符 ^d
延迟的 {clear:null} 也是不必要的。{clear:null} 的唯一操作是从 ALARM 状态转换为 PROGRAM_STOP 状态,或从 SHUTDOWN 状态转换为 READY 状态。它在任何其他状态下均无效。由于 ^d 导致立即转换到 PROGRAM_END 状态,因此在 ^d 之后(甚至在 ! 或 !% 之后)发出 {clear:null} 是多余的。

g2core 工作杀 #428
合作者

@MitchBradley

发行说明指出,Job Kill (^d) 命令已添加到固件版本 101{fb:101.xx}中。
https://github.com/synthetos/g2/releases/tag/101.02

我应该只对固件版本 101{fb:101.xx}和更高版本进行更改吗?

g2core 工作杀 #428
贡献者作者

@cheton
g2core 命令解析器至少从 100.00 版本开始就支持 ^d,甚至可能更早,因为该代码出现在开发中的版本 079 中。很难说该作业终止功能何时真正开始正常工作。
您将其限制为版本 >=101 的补丁看起来不错,但我认为您不需要在 ^d 之后发布 M30。

g2core 工作杀 #428
合作者