开源改变世界

DIY控制端口,不支持立即命令 #34

推推 grbl 2年前 (2023-02-03) 200次浏览
关闭
deHarro 打开了这个问题 2018 年 9 月 4 日 · 35条评论
关闭

DIY控制端口,不支持立即命令#34

deHarro 打开了这个问题 2018 年 9 月 4 日 · 35条评论

注释

DIY控制端口,不支持立即命令 #34

为了支持通过第二个 DIY 控制端口根据“GRBL V1.1 慢跑”使用专用操纵杆硬件进行慢跑,必须支持即时命令的处理。

这意味着:

  • GRBL-Plotter 中的接收线程必须通过串行端口接受单个字符
  • GRBL-Plotter不得等待 CR LF 处理接收到的字符
  • 相反,GRBL-Plotter 必须在到达时接受此端口上的每个字符,并立即将其转发到 CNC 端口上的 GRBL。

除此之外,为了防止意外转发点动命令,只要 CNC 作业正在运行,GRBL-Plotter 就必须阻止 DIYcontrol 端口上的输入。
我想,这已经得到保证,因为 GRBL-Plotter 中有“虚拟操纵杆”。

DIY控制端口,不支持立即命令 #34
所有者

我将实现这样的事情:
逐个字符接收字符,过滤字符 > 0x7F -> 发送实时命令,或收集更多字符直到达到 /r/n,然后通过常规函数发送。

DIY控制端口,不支持立即命令 #34
作者

可能有用,让我们看看它的表现如何…… :-)
谢谢!

DIY控制端口,不支持立即命令 #34
所有者

尝试测试版本https://github.com/svenhb/GRBL-Plotter/blob/master/GRBL-Plotter_1202_test.zip
我实施了我的建议。无法测试实时命令,因为没有可以发送的硬件,我希望它能工作。

DIY控制端口,不支持立即命令 #34
作者
德哈罗 评论了 2018 年 9 月 6 日  

出了点问题 :(
你将每个 Jog 命令加倍,而 GRBL 不明白这一点。

DIY控制端口,不支持立即命令 #34

DIY控制端口,不支持立即命令 #34

GRBL-Plotter 中的坐标不会改变。

不清楚实时命令是否转发给 GRBL。

(你说,你有一个备用的Arduino。你愿意在ebay上买一个摇杆
吗? 如果是这样,我很乐意把我的摇杆控制器的源码发给你测试。
但是我们可以一起调试,没问题)

[编辑]
对于您自己的测试,我可以为您的备用 Arduino 提供一个固件,该固件在触发开关时发送点动命令。
[/编辑]

DIY控制端口,不支持立即命令 #34
作者

这是我在开发计算机上的测试设备:
DIY控制端口,不支持立即命令 #34

DIY控制端口,不支持立即命令 #34

正确的 Arduino 在 X 轴上有一个步进器来获得步进时的感觉,因为有时我在开发时使用的不同应用程序中的数字变化会愚弄人。

左边的Arduino运行摇杆固件,我可以控制X和Y,Z在软件中固定居中。
如有必要,我可以附加一个按钮,拇指操纵杆通过按下旋钮提供一个 NO 开关。

DIY控制端口,不支持立即命令 #34
所有者

但是实时命令有效吗?

DIY控制端口,不支持立即命令 #34
作者

正如我所写,我无法验证这一点。
为了验证功能,GRBL-Plotter 和 GRBL 必须执行点动命令,然后点动取消可以切入并停止正在进行的运动。

只要点动命令没有正确转发……就没有机会测试。对不起。

DIY控制端口,不支持立即命令 #34
所有者
svenhb 评论了 2018 年 9 月 7 日  

尝试新版本,希望它能按预期工作:https
://github.com/svenhb/GRBL-Plotter/blob/master/GRBL-Plotter_1203_test.zip 也许看看问题#27#29#30#31 , #33如果可以就关闭它们

DIY控制端口,不支持立即命令 #34
作者

对不起,和以前一样的效果:

DIY控制端口,不支持立即命令 #34

DIY控制端口,不支持立即命令 #34
作者

好的,更进一步?:-)
现在可以完美转发点动命令。

但是你有多确定 0x85 字符是异步传输并绕过已经采样的字符串(或字符串部分)?

据我所见,这部分工作有潜力……会说:那表现不佳。

我只是将非常小和缓慢但随后快速移动到 GRBL-Plotter 中的几秒钟,步进电机跟随。
到目前为止还好。
(解释:“非常小”:X=1 mm,“慢”:F=84,“快速跟随”:每 10 ms)

然后我松开操纵杆,应该发出点动中止命令(0x85)。
但是步进器愉快地移动了大约半分钟左右,然后更快的运动来到了 GRBL。
我什至改变了一段时间的旋转方向。大约一分钟后,它到达了我的马达。

这让我假设中止命令没有被转发通过已经采样的点动命令。

我试图设法将我的操纵杆中的字符动态地可视化到 GRBL-Plotter …

DIY控制端口,不支持立即命令 #34
作者

好吧,启动并运行了一个串行端口监视…
我发送连续的点动命令,当松开操纵杆的旋钮时,发出一两个 0x85:

DIY控制端口,不支持立即命令 #34

到目前为止,我确信罪魁祸首在 GRBL-Plotter 的某个地方。

也许您设法在操纵杆的监听端口上处理得很好,但忘记处理绕过 GRBL 的发送端口?

DIY控制端口,不支持立即命令 #34
所有者

我今晚需要检查…

但是你有多确定 0x85 字符是异步传输并绕过已经扩充的字符串(或字符串部分)?
至少 0x85 显示在 DIY 控制窗口中,并带有解释文本?

DIY控制端口,不支持立即命令 #34
作者
德哈罗 评论了 2018 年 9 月 7 日  

嗨 Sven,
“至少 0x85 显示在 DIY 控制窗口中,并带有解释文本?” 在上面的评论中,你问我一个问题?

如果是这样,不,我在 DIY 窗口中没有看到任何“0x85 with explanation”。

这是我得到的:

DIY控制端口,不支持立即命令 #34

这是在关闭/打开两个端口(以清除窗口)并使用操纵杆执行短的正 X 移动之后直接进行的。

现在又是正 X 的短线移动:

DIY控制端口,不支持立即命令 #34

你看,有一个“?” 在第二步的第一个点动命令之前。
你看,这个“?” 在对 GRBL的下一个点动命令之前也被回显到 GRBL !(您可以计算两张图片中的点动命令以验证这一点)

[编辑]
我看到一个“?” 在两个窗口中的所有命令前面。
我用串行间谍工具检查了这一点:在第一个点动命令 ($J=G91X…) 之前,操纵杆没有发送任何字符。
[/编辑]

DIY控制端口,不支持立即命令 #34
所有者

我的意思是你 2 小时前的帖子:“我发送连续的点动命令,当释放操纵杆的旋钮时,发出一两个 0x85”
当你发送 0x85 时,在 DIY 控制窗口中看到它了吗?

DIY控制端口,不支持立即命令 #34
作者

不,我只看到我的慢跑命令和那些“?” 人物。

DIY控制端口,不支持立即命令 #34
所有者

这 ‘?’ 字符是否与您的 Jog-Stop 命令匹配?

DIY控制端口,不支持立即命令 #34
作者
德哈罗 评论了 2018 年 9 月 7 日  

我会说是的。
我不能确定,但​​从我提供给您的图片中,可以想象到这一点。
在间谍工具图片中,此时您可以看到“85”。

DIY控制端口,不支持立即命令 #34
作者

喜欢 (0)