开源改变世界

Grbl 0.9c:一些测试结果 #334

推推 grbl 3年前 (2022-10-30) 306次浏览 0个评论
关闭
rverhag 打开了这个问题 on 19 Jan 2014 · 21 条评论
关闭

Grbl 0.9c:一些测试结果#334

rverhag 打开了这个问题 on 19 Jan 2014 · 21 条评论

注释

Grbl 0.9c:一些测试结果 #334

今天找了一些时间来测试连接到CNC机器的Grbl 09c。

首先:干得好!几乎所有东西都像它应该的那样运行(并且在手动时很顺利)。归巢只是有趣的观看和聆听。

还测试几个 Gcode 文件(在材料上方空气铣削 +20 毫米)。我能够在没有随机警报锁的情况下保持启用硬限制。=> 似乎还可以。

但是,有一件事:主轴不会以 M3 开头,所以这是我测试过的(按顺序)

在 Grbl 源代码中:确保 config.h 中未启用 VARIABLE_SPINDLE(否则 D11 与 D12 切换)=> 这没关系!

在连接状态(步进驱动器和传感器)并且所有设备都通电:
首先 M5(主轴关闭)=> gnd 和 D12 之间的电压 ~0v
然后 M3(启动主轴)=> gnd 和 D12 之间的电压 ~1.02 v(对于固态来说还不够继电器)。无主轴启动。

然后我将所有东西与机器断开连接并再次测量。
首先 M5 => gnd 和 D12 之间的电压 ~0v
然后 M3=> gnd 和 D12 之间的电压 ~4.68v (???)

那么现在怎么办?是软件还是硬件?

第二次测试:回到 Grbl 0.9a 并做同样的测试。
在连接状态和机器供电。
M5 => 0v
M3=> ~4.7v => 固态启动并且主轴启动(所以它不是硬件)

最后处于断开状态:
M5 => 0v
M3 => ~4.75v

也许我遗漏了一些东西,但我认为这是一个 Grbl 0.9c 问题/错误。

2014 年 1 月 20 日更新

今晚在 Uno 上使用 0.9c 进行了更多测试

外部进给保持(A1 上的接地)=> 不工作。(或者它应该是 A1 上的 5v?)
循环开始 => 未测试。
外部复位(A0 上的接地)=> 复位正常。

测试加速/减速和速度增加。多么好的进步!x、y 和 z 的当前设置现在是 300 mm/s^2 和 3000 mm/min!这台机器像一个真正的机器人一样说话。(据我所知,没有任何步骤丢失)。在 0.9a 中,如果不使发动机熄火,这些数字是不可能的。

2014 年 1 月 21 日更新:下一步不是问题,只是我的愚蠢!似乎 Grbl 比我的 Gcode-streamer 更快可以填充串行缓冲区。(RTFM)
<— 可能是 G02/G03 的问题。就在每次 G03/G02 之前,运动完全停止,然后开始圆周运动。当有许多(小)曲线要铣削时,运动不平滑但非常不稳定。–>

2014 年 1 月 22 日更新:
上一个问题发生在逐行发送 gcode 时(并在每行之间等待“ok”)。这是预期的(缓冲区是空的,所以没有什么可计划的)。

但是当我尝试将串行缓冲区填充到大约 RX_BUFFER_SIZE(使用 stream.py 中的代码并将其转换为 C#)时,Grbl 本身在几行后停止发送“ok”。(s.inwait 是假的(python)或 serialport.BytesToRead==0 (C#) 是永远)。在此之前的行数取决于下一行之间的时间。我无法将完整的 gcode 文件流式传输到最后。(约 30k)。

希望它是值得的。

Grz,
罗纳德

Grbl 0.9c:一些测试结果 #334

我遇到了同样的问题。我创建了另一个问题,因为它在这里有点隐藏。

Grbl 0.9c:一些测试结果 #334
成员

尚尼特 评论 on 23 Jan 2014

感谢您的错误报告。请耐心等待这个错误,因为我认为找到它并编写一个好的修复程序需要一些时间。在过去的几周里,我的空闲时间有点少。我会尽快解决这个问题。

Grbl 0.9c:一些测试结果 #334

如果您还没有该信息,我可以尝试查找错误是从哪个提交开始的。

Grbl 0.9c:一些测试结果 #334
成员

尚尼特 评论 on 23 Jan 2014

@metropt: 这个错误很可能与系统状态管理有关。它过于复杂,这个问题似乎是导致系统进入排队状态而失败的情况。(如果它确实进入排队状态,循环启动应该重新启动卡住的过程。)我正在努力彻底改革整个代码库中的状态管理,使其更直观,希望更健壮。

Grbl 0.9c:一些测试结果 #334

@chamnit: 慢慢来。我只是出于好奇进行测试,并为开发过程做出贡献(非常微小)。对我来说没问题。我会回到0.9a。

我想进一步测试 0.9c 没有任何意义?

Grbl 0.9c:一些测试结果 #334

@chamnit您认为在以前的版本中合并 PWM 主轴控制有多难?

Grbl 0.9c:一些测试结果 #334

@chamnit: 比较一下状态管理的笔记可能会很有用。这是我一直用于 TinyG 的模型。并不是说它不能被简化——它可能可以。我对你的想法很感兴趣。
https://github.com/synthetos/TinyG/wiki/TinyG-State-Model

Grbl 0.9c:一些测试结果 #334

@metropt: 相当容易。大多数代码独立于代码库的其余部分,因此可变主轴功能可以集成到几乎任何旧的 grbl 版本中。

@aldenhart: 这是肯定的一种方法。Grbl 做了类似的事情,除了为循环状态创建一个子组来定义它在做什么。我可能会使用您概念的那一部分,尽管可能有一些地方可以进一步简化。我将不得不考虑一下。

现在,我正在研究可能适用于 grbl 的状态机概念,以控制事情的执行方式和时间。我知道 TinyG 使用调度程序和循环风格的概念,但我会研究我能找到的任何东西,以使事情保持简单和紧凑。如果有人对状态机概念有任何线索,请告诉我。我不是专业的程序员,尽管我知道足以阅读堆栈溢出以获得好的信息。

Grbl 0.9c:一些测试结果 #334

@chamnit: 我使用了 Miro Samek 的方法 – 或多或少。这是他写的一个好的 PDF 的链接:http:
//classes.soe.ucsc.edu/cmpe013/Winter14/LectureNotes/UMLCrashCourse_III.pdf

这本书名为“C/C++ 中的实用 UML 状态图:嵌入式系统的事件驱动编程”,
我无情地抄袭了这本书,但没有实现他的整个设计(因为我并不需要它全部)。

Grbl 0.9c:一些测试结果 #334

@aldenhart: 谢谢你的链接。它似乎是有限状态机和有限自动机理论的一个很好的资源。

因此,昨晚,我仔细查看了代码库以及为正确的状态机进行必要更改所需的内容。这看起来比我现在有更多的工作,因为 g 代码解析器需要完全重写,我必须想出一些节省内存的技巧来处理额外的变量需要存储。我认为这将不得不等到 v1.0。

我将努力修补问题,而不是重构它以完全修复它,以便可以更快地推动 v0.9 掌握。

Grbl 0.9c:一些测试结果 #334

@chamnit: 你需要更多的错误报告吗?或者你知道问题出在哪里吗?

我正在使用 grbl 和 ugs https://github.com/winder/Universal-G-Code-Sender。曾经与 0.8.c 很好地配合使用。

我得到了额外的“ok”,使 ugs+grbl 组合失速。
例如。如果我手动发送 $X,ugs 大约每 5 秒开始显示一个额外的“ok”。这似乎干扰了 ugs 的流量控制方法。
我也可以通过快速发送多次慢跑来使其停止。

但是,如果它移动,则移动(和听起来)非常流畅!

Grbl 0.9c:一些测试结果 #334

感谢大家的错误报告。在新的开发版本上修复这个错误是我现在的首要任务。

Grbl 0.9c:一些测试结果 #334
贡献者

酚类 评论 2014 年 1 月 27 日

@mschorer如果您使用的是 ugs 的 1.6 版,它将向 grbl(我认为每 5 秒一次)发送带有状态命令(?)的垃圾邮件,因此它可以获得机器位置。尝试使用 v1.5 ugs 并查看是否可以重复您的问题。

Grbl 0.9c:一些测试结果 #334

@henols回到 1.0.5 并没有帮助。

Ugs 和 grbl 现在确实在相互理解方面存在问题……

Grbl 0.9c:一些测试结果 #334

@mschorer:如果 v0.8c 之前在 UGS 上运行良好并且最近进行了更改,这听起来像是另一个问题。你有没有在 UGS 的 github 网站上发布过关于这个的问题?您最近是否对设置进行了任何更改,例如系统更新或其他内容?

Grbl 0.9c:一些测试结果 #334

状态消息现在返回“ok”吗?那肯定会破坏UGS。

@mschorer有一个 UGS 的 beta 版本可以让你关闭状态消息,如果你想继续测试 GRBL,你可以暂时解决这个问题https://github.com/winder/builds/raw/master/UniversalGCodeSender/UniversalGcodeSender-v1 .0.7-prerelease.zip

Grbl 0.9c:一些测试结果 #334

@winder: 谢谢。没有帮助。
@chamnit:我正在发送一个小文件并在控制台中获取以下内容。没有“?” 已发送状态请求 …
——————–8<——————— —
grbl 0.9ms4 [‘$’ for help]
[‘$H’|’$X’ to unlock]

$X
[警告:已解锁]
ok
g0x0y0z0
g1x5f120
ok
g1x10
g1x20
g1x30
g1x35
g1x30
g1x20
g1x10
g1x0
ok
(我听到像单步一样的“tok”,电机未启用,没有进一步移动)
(按下暂停)
****暂停文件传输。****
(按恢复)
**** 恢复文件传输。****
(机器移动前 10 毫米,然后停止)
ok
—————–8<————- ————

我可以为每一个动作重复停止/恢复。如果我确实请求“?”,我会得到:
[详细]<Queue,MPos:5.000,0.000,0.000,WPos:5.000,0.000,0.000>

Grbl 0.9c:一些测试结果 #334

@mschorer: 好的。所以 v0.8c 仍然可以正常工作,但是您使用的是 v0.9 版本(无法确定它是哪个版本)。如果您使用的是 v0.9b 或 c,请避免进一步测试,直到我为某个问题推送修复程序。显然,当我在 12 月尝试修复运动问题时,它创建了一个新问题,这是许多报告错误的根源。不是 100% 关于你的,但我会等到修复被推送。

Grbl 0.9c:一些测试结果 #334

我正在运行 0.9b 并且已经运行了几个星期,没有出现重大问题。您是否建议我应该降级,直到您推出一些修复程序?

Grbl 0.9c:一些测试结果 #334

@twforeman: 不必要。我不记得发布了什么 v0.9b 版本。在我搞砸之前,你可能正在使用一个。如果它正常工作,只要你遇到潜在问题没问题,你应该没问题。在大多数情况下,我认为旧的 v0.9b 版本运行良好。它只是有一些我正在锻炼的微小运动滴答声,并且比新的 v0.9c 运行得更粗糙一些,因为它没有新的步进平滑功能。

Grbl 0.9c:一些测试结果 #334

@chamnit抱歉,这是直接来自 github 的 0.9c。

是的,0.8c 正在工作,我没有抱怨…… :-)

我已经重建了我的机器,用 0.8c 进行了测试,现在想为主轴/冷却/等集成 i2c 控制。
这就是为什么我从最新的代码开始。

我会阻止测试/报告,让你做你的事。

Grbl 0.9c:一些测试结果 #334
 
添加标题文本添加粗体文本,<Ctrl+b>添加斜体文本,<Ctrl+i>
添加引号,<Ctrl+Shift+.>添加代码,<Ctrl+e>添加链接,<Ctrl+k>
添加项目符号列表,<Ctrl+Shift+8>添加编号列表,<Ctrl+Shift+7>添加任务列表,<Ctrl+Shift+l>
直接提及用户或团队引用问题、拉取请求或讨论

添加已保存的回复

喜欢 (0)

您必须 登录 才能发表评论!