Contact me: hankecnc@gmail.com

[错误] 轴面板始终为零 #50

推推 grbl 3年前 (2023-02-02) 310次浏览
关闭
iceboundflame 打开了这个问题 2016 年 6 月 22 日 · 15条评论
关闭

[错误] 轴面板始终为零#50

iceboundflame 打开了这个问题 2016 年 6 月 22 日 · 15条评论

注释

[错误] 轴面板始终为零 #50

v1.3.0 on Mac(桌面版),GRBL 0.9 (Shapeoko 3)

当我慢跑时,坐标不会改变——机器和工作区坐标显示为 0。

[错误] 轴面板始终为零 #50
合作者

当 Grbl 在 Axes 显示面板上显示为零时,您可以输入?Console 小部件以检查 Grbl 状态吗?

> ?
<Idle,MPos:0.006,0.006,0.000,WPos:0.006,0.006,0.000>
[错误] 轴面板始终为零 #50
合作者

我在 OS X Electron 构建中发现了一个严重问题,它无法从已建立的串行端口正确接收数据。npm install -g cncjs@1.3.1您可以安装 Node.js 并在 Mac 上运行以安装基于 Web 的版本,而不是使用桌面应用程序 。

[错误] 轴面板始终为零 #50
作者

感谢您的快速回复 – 下次我去车间时会试一试!

[错误] 轴面板始终为零 #50
合作者
奇顿 评论了 2016 年 6 月 22 日  

有些奇怪。当我关闭 OS X 应用程序并使用相同的安装版本 (v1.3.0) 再次启动它时,它就会恢复工作。如果您下次可以继续重现案例,请告诉我。

[错误] 轴面板始终为零 #50
合作者

糟糕!它只发生在我同时运行基于网络的版本和 OS X 应用程序时,因为端口被两个 cnc 服务器实例占用。

下次遇到同样情况可以尝试查看Grbl状态(?)。

[错误] 轴面板始终为零 #50
合作者
奇顿 评论了 2016 年 6 月 22 日  

我看到您在chilipeppr/widget-axes#7发布了一个问题。

请问您在使用 chilipeppr 时是否还有同样的问题?

[错误] 轴面板始终为零 #50
作者

我确实仍然看到 Chilipeppr 上的其他问题:工作坐标很好,但机器坐标为零。但我也被告知我使用的是过时的 Chilipeppr 分支。可悲的是,Chilipeppr 的官方 Grbl 版本似乎根本没有工作坐标系。

您的界面如何确定要显示的轴位置?也许我使用的 Grbl 版本输出的状态格式有些不同。当我下次访问机器时,我会为你复制 Grbl 状态行。

[错误] 轴面板始终为零 #50
合作者
奇顿 评论了 2016 年 6 月 23 日  

cnc 服务器使用如下正则表达式解析 Grbl 状态行:

// <Idle,MPos:5.529,0.560,7.000,WPos:1.529,-5.440,-0.000>
const matchGrblCurrentStatus = (msg) => {
    return msg.match(/<(\w+),\w+:([^,]+),([^,]+),([^,]+),\w+:([^,]+),([^,]+),([^,]+)>/);
};

如果无法匹配线路,它将不会向 Web 界面报告当前的 Grbl 状态。

[错误] 轴面板始终为零 #50
作者

我明白了,看起来我的 Grbl 0.9g (Shapeoko 3 XXL) 报告了一些额外的状态。我在终端上得到这个:

<Idle,MPos:-148.000,-191.000,-5.000,WPos:-30.000,-30.000,1.150,Buf:0,RX:0,Ln:0,F:0.>

我尝试关闭所有状态报告标志,但状态行中还有其他无法禁用的内容:

> $10=0
ok
> ?
<Idle, Ln:0,F:0.>

顺便说一句,应用程序内控制台截断项目并从中复制似乎不会在我的剪贴板中放置任何内容:
[错误] 轴面板始终为零 #50

[错误] 轴面板始终为零 #50
合作者
奇顿 评论了 2016 年 6 月 28 日  

您可以单击“全屏”图标放大控制台小部件以查看完整消息。

顺便说一句,我可以修改能够支持各种输出格式的正则表达式。

[错误] 轴面板始终为零 #50 奇顿 添加了 增强 标签 2016 年 6 月 28 日
[错误] 轴面板始终为零 #50
合作者

我想你可能有一个自定义版本的 Grbl 0.9g,官方 Grbl 图像不输出Ln:0,F:0.

[错误] 轴面板始终为零 #50

[错误] 轴面板始终为零 #50
作者

固件似乎是使用 USE_LINE_NUMBERS 和 REPORT_REALTIME_RATE 构建的:

https://github.com/grbl/grbl/blob/da5c65b54b10b3ec27ebaa466275c25954667729/grbl/report.c#L482

但是处理和忽略在 WPos 之后打印的额外数据会很棒。当您设置 $10=31 时,您的 Axes 面板是否仍然适用?

[错误] 轴面板始终为零 #50
合作者
奇顿 评论了 2016 年 6 月 28 日  

我只是尝试了一段时间,发现这个正则表达式模式应该适用于大多数情况:

var msg = '';
var pattern = /[a-zA-Z]+(:([0-9\.\-]+(,[0-9\.\-]+){1,5})|:([0-9\.\-]+))?/g;

// $10=0
msg = '<Idle>';
msg.match(pattern);
// ["Idle"]

// 3-axis
msg = '<Idle,MPos:5.529,0.560,7.000,WPos:1.529,-5.440,-0.000>';
msg.match(pattern);
// ["Idle", "MPos:5.529,0.560,7.000", "WPos:1.529,-5.440,-0.000"]

// 4-axis
msg = '<Idle,MPos:5.529,0.560,7.000,0.000,WPos:1.529,-5.440,-0.000,0.000>';
msg.match(pattern);
// ["Idle", "MPos:5.529,0.560,7.000,0.000", "WPos:1.529,-5.440,-0.000,0.000"]

// $10=31
msg = '<Idle,MPos:-148.000,-191.000,-5.000,WPos:-30.000,-30.000,1.150,Buf:0,RX:0,Lim:000>';
msg.match(pattern);
// ["Idle", "MPos:-148.000,-191.000,-5.000", "WPos:-30.000,-30.000,1.150", "Buf:0", "RX:0", "Lim:000"]

// w/o MPos & WPos
msg = '<Idle,Buf:0,RX:0,Lim:000>';
msg.match(pattern);
// ["Idle", "Buf:0", "RX:0", "Lim:000"]

// Custom output
msg = '<Idle,MPos:-148.000,-191.000,-5.000,WPos:-30.000,-30.000,1.150,Buf:0,RX:0,Ln:0,F:0.>';
msg.match(pattern);
// ["Idle", "MPos:-148.000,-191.000,-5.000", "WPos:-30.000,-30.000,1.150", "Buf:0", "RX:0", "Ln:0", "F:0."]
[错误] 轴面板始终为零 #50
合作者

在此提交07a5acb中修复。现在它可以支持多达 6 轴和各种输出格式。

较新的版本 v1.4.0 将在未来几天发布。

[错误] 轴面板始终为零 #50
作者

试用了f68171e,效果很好。谢谢!