注释
我认为我在 V0.8c 上遇到了相同或类似的问题。我将运行一个程序(在简单的 3 轴 CNC 工作台 a la Skapeoko 上),它会在我重新获得对机器的控制之前通过强制硬重置部分冻结。UGCS 记录一个报警故障。我安装了限位开关但禁用了,因为尽管 LS 线上有屏蔽电缆、电容器和铁氧体,但它们仍然太抽搐。(我只是在设置过程中启用限制和归位,然后在运行零件之前禁用,这样错误的触发器就不会让生活变得更加困难)。我真的会完美地切割一个零件几次,然后再次运行程序并让它随机冻结。 我真的很困惑是什么原因造成的。除了触发限位开关之外,还有哪些其他条件会发出警报?想知道我是否在触发警报的电机信号线上受到间歇性干扰。 急于追查这个问题的根源。 |
@Mgilbride:据我所知,Grbl v0.8c 相当稳定,您不应该遇到这些类型的错误。Grbl v0.9b-c 的开发版本仍然存在一些问题,因此这里是停止问题。绝大多数情况下,此类问题是由外部来源引起的,至少来自过去的用户问题。首先,我将消除可能导致此问题的任何外部电噪声源,因为如果您有嘈杂的限位开关,那么这清楚地表明某些东西没有正确接地或其他东西。确保所有东西都通过星形接地共享同一个接地,以防止接地回路。确保所有电缆,尤其是与 Grbl 通信的 USB 电缆,远离任何潜在的电气干扰源。(如果没有,请尝试使用屏蔽 USB 电缆。它们更粗。) 最后,将您的流媒体程序作为变量消除。在我们的 repo 或其他使用不同库的 GUI 中尝试我们的 Python 流脚本。 如果您仍有问题,请不要犹豫,发布您的发现。另外,如果你解决了它,请告诉我们你做了什么来解决它。谢谢! |
谢谢。我会试试这些。特别是消除软件并 我正在使用星形地面,但会再次对其进行审查。 我的电子产品与电源一起装在一个外壳中。一个 我只能说的另一件事是,我认为,但不确定,这 会及时向大家发布。感谢您的精彩固件! 2014 年 1 月 25 日星期六下午 1:45,Sonny Jeon notifications@github.com写道:
|
你好 我有同样的问题。 http://zapmaker.org/projects/grbl-controller-3-0/ grbl 通常在批量上传后冻结在完全相同的位置。 GrblController 有一个选项“Aggresive Preload”…当我将其设置为 OFF 时,它不再冻结…但这有一个缺点是命令之间有短暂的延迟(GrblController 在发送下一个命令之前等待 OK )。 我什至尝试手动发送命令。一次发送一个命令时,它们会完美执行。但是当它们被批量发送时……这就是它发生的时候。 目前我没有安装限位开关。 锁定后,我必须重置连接才能让 grbl 再次工作。 谢谢! |
@robertnino: 你用的是哪个版本的 grbl?您是否尝试过使用不同的流媒体程序?您还在流中发送任何 G54-59 命令吗?访问 EEPROM 的某些命令尤其会导致 v0.9c 出现某些问题。我现在也在努力解决这个问题。 |
去年我在 UNO 上使用 0.8c、Zapmaker 和激进的预加载时遇到了同样的问题。我需要预加载,因为标准加载的命令序列太慢。它通常会在序列结束之前锁定。经过大量测试后,我发现这取决于我在代码结束前使用的浮点命令的数量和精度。这不是缓冲区溢出。就我而言,我经常使用 G4 Px.xx 来精确计时转台和相机快门。Zapmaker 说这是因为 GRBL 如何处理 G4 命令,这与模态操作有关。我有一个 100% 可重复的短代码序列。如果有人有兴趣,我可以挖掘它。 -安迪 发件人:Robert Voinea [ mailto:notifications@github.com ] 嗨 |
我忘了补充。Zapmaker 在他的下载器中添加了几行代码(在 3.something 中),基本上说“如果 G4 Px,等待“OK””。这解决了 grbl-controller 的问题,但让我的代码太慢了。 安迪 发件人:Andy Nobbs [ mailto:andy_nobbs@yahoo.com ] 去年我在 UNO 上使用 0.8c、Zapmaker 和激进的预加载时遇到了同样的问题。我需要预加载,因为标准加载的命令序列太慢。它通常会在序列结束之前锁定。经过大量测试后,我发现这取决于我在代码结束前使用的浮点命令的数量和精度。这不是缓冲区溢出。就我而言,我经常使用 G4 Px.xx 来精确计时转台和相机快门。Zapmaker 说这是因为 GRBL 如何处理 G4 命令,这与模态操作有关。我有一个 100% 可重复的短代码序列。如果有人有兴趣,我可以挖掘它。 -安迪 发件人:Robert Voinea [ mailto:notifications@github.com ] 嗨 |
@lakeside53:请发布您的示例代码的链接。我很好奇是什么导致了这个问题。这听起来像是流媒体客户端方面的流媒体协议问题,主要是由于可疑的“IF G4”声明。这可能意味着 Zapmaker 使用的流媒体协议可能不完全兼容。对于某些命令,如 G4 暂停或 M3/4/5 主轴控制,Grbl 必须清空其缓冲区以完成队列中的所有运动,以便按时按编程执行命令。G2/3 弧暂停流式传输以将小线段注入规划器缓冲区。如果流媒体程序并不总是提供“OK”响应,您将遇到您所描述的问题。在我们的高级流脚本中,通过跟踪发送的字符和“ok”响应的数量,同时保持 Grbl 的串行输入缓冲区满,有一些方法可以提高和强大的流性能。不过,我仍然会针对我们的流脚本进行测试,以确保它不在 Grbl 的末尾。 仅供参考,Grbl 的模态操作主要是由于内存限制,但如果事情正确地流式传输到 Grbl,它不应该真正影响性能或事情的运行方式。使 Grbl 非模态仍然是可能的,因为我一直在为此寻找简单而干净的解决方案,但这不是优先事项。基本上,它将涉及必须将任何非运动 g 代码块命令存储在内存中,并在步进模块完成前一个块时执行它们。 |
我搞砸了——Zapmaker 加入了“if Mx”修复,而不是“if G4”。对不起,那是从去年四月开始的,自从他们 J 之后发生了很多事情 我可以发送整个文件,但它们只是重复序列——旋转表执行短序列、旋转表等。 问题在于程序序列如何终止。我可以为其提供足够的数据以全速长时间(数小时?)执行以下操作,并且在退出之前不会失败。 以下两个示例之间的唯一区别是 G4 P0.11 有效,而 G4 P0.1 失败 – 但仅在程序退出时。需要明确的是——每个命令都按预期工作,但我无法重新控制 GRBL 我在后来的实验中发现我可以通过简单地添加一些“什么都不做”G 代码来解决这个问题(比如定位一个不存在的Z 轴)在最后一个序列之后,但在 M30 之前(参见最后一个示例)。如果使用“积极的预加载”,这只是一个问题;命令的标准加载速度要慢得多,但它可以工作。我是移除 M30 还是将它留在里面都没关系。 Zapmaker 提出的“if M7”修复只是一个快速解决问题的方法,但我不得不删除它,否则我的速度优势就消失了。就我而言,积极的预加载是要走的路。我必须查看他的最新代码,看看它是否仍然存在。如果您想知道……速度和设置延迟的能力很重要。在下面的“积极预加载”序列中,我可以在大约 30 秒内拍摄 90 张高分辨率照片(相机是限制因素);没有预载大约需要 1.5 分钟(grbl 限制)。将其乘以数千个序列,然后…… 为了清楚起见,我在伪造一个旋转轴 这每次都有效(grbl 0.8c) G92 X0(零 X = 当前位置) G0 X0(从这里开始) G0 X4(下一个位置(4 毫米/英寸 = 度) G0 X8 ….. G0 X352 G0 X356 M30(停止) 每次都在退出时失败(grbl 0.8c): G92 X0(零 X = 当前位置) G0 X0(从这里开始) G0 X4(下一个位置(4 毫米/英寸 = 度) G0 X8 ….. G0 X352 G0 X356 M30(停止) 这“修复”了退出上述“总是失败”序列的问题: …… G0 X356 (停止前一段时间什么都不做) G92 Y0 M30(停止) 发件人:Sonny Jeon [ mailto:notifications@github.com ] @lakeside53 https://github.com/lakeside53 :请发布您的示例代码的链接。我很好奇是什么导致了这个问题。这听起来像是流媒体客户端方面的流媒体协议问题,主要是由于可疑的“IF G4”声明。这可能意味着 Zapmaker 使用的流媒体协议可能不完全兼容。对于某些命令,如 G4 暂停或 M3/4/5 主轴控制,Grbl 必须清空其缓冲区以完成队列中的所有运动,以便按时按编程执行命令。G2/3 弧暂停流式传输以将小线段注入规划器缓冲区。如果流媒体程序并不总是提供“OK”响应,您将遇到您所描述的问题。在我们的高级流脚本中,通过跟踪发送的字符和“ok”响应的数量,同时保持 Grbl 的串行输入缓冲区满,有一些方法可以提高和强大的流性能。不过,我仍然会针对我们的流脚本进行测试,以确保它不在 Grbl 的末端。 |
我检查了 Zapmakers 的最新代码——仍然有 M9 的陷阱。我必须评论它以获得我需要的性能,我感觉有点糟糕,因为我是他添加它的人(不确定他是否有其他人有问题):-) 当然,我的应用程序使用 m8 /m9 有点不寻常。是的,它“解决了”问题,但我也只是在结尾处添加了几行“什么都不为我做”的代码。 这里的代码片段来自他的 https://github.com/zapmaker/GrblHoming GrblHoming / gcode.h 类 CmdResponse -安迪 发件人:Andy Nobbs [ mailto:andy_nobbs@yahoo.com ] 我搞砸了——Zapmaker 加入了“if Mx”修复,而不是“if G4”。对不起,那是从去年四月开始的,自从他们 J 之后发生了很多事情 我可以发送整个文件,但它们只是重复序列——旋转表执行短序列、旋转表等。 问题在于程序序列如何终止。我可以为其提供足够的数据以全速长时间(数小时?)执行以下操作,并且在退出之前不会失败。 以下两个示例之间的唯一区别是 G4 P0.11 有效,而 G4 P0.1 失败 – 但仅在程序退出时。需要明确的是——每个命令都按预期工作,但我无法重新控制 GRBL 我在后来的实验中发现我可以通过简单地添加一些“什么都不做”G 代码来解决这个问题(比如定位一个不存在的Z 轴)在最后一个序列之后,但在 M30 之前(参见最后一个示例)。如果使用“积极的预加载”,这只是一个问题;命令的标准加载速度要慢得多,但它可以工作。我是移除 M30 还是将它留在里面都没关系。 Zapmaker 提出的“if M7”修复只是一个快速解决问题的方法,但我不得不删除它,否则我的速度优势就消失了。就我而言,积极的预加载是要走的路。我必须查看他的最新代码,看看它是否仍然存在。如果您想知道……速度和设置延迟的能力很重要。在下面的“积极预加载”序列中,我可以在大约 30 秒内拍摄 90 张高分辨率照片(相机是限制因素);没有预载大约需要 1.5 分钟(grbl 限制)。将其乘以数千个序列,然后…… 为了清楚起见,我在伪造一个旋转轴 这每次都有效(grbl 0.8c) G92 X0(零 X = 当前位置) G0 X0(从这里开始) G0 X4(下一个位置(4 毫米/英寸 = 度) G0 X8 ….. G0 X352 G0 X356 M30(停止) 每次都在退出时失败(grbl 0.8c): G92 X0(零 X = 当前位置) G0 X0(从这里开始) G0 X4(下一个位置(4 毫米/英寸 = 度) G0 X8 ….. G0 X352 G0 X356 M30(停止) 这“修复”了退出上述“总是失败”序列的问题: …… G0 X356 (停止前一段时间什么都不做) G92 Y0 M30(停止) 发件人:Sonny Jeon [ mailto:notifications@github.com ] @lakeside53 https://github.com/lakeside53 :请发布您的示例代码的链接。我很好奇是什么导致了这个问题。这听起来像是流媒体客户端方面的流媒体协议问题,主要是由于可疑的“IF G4”声明。这可能意味着 Zapmaker 使用的流媒体协议可能不完全兼容。对于某些命令,如 G4 暂停或 M3/4/5 主轴控制,Grbl 必须清空其缓冲区以完成队列中的所有运动,以便按时按编程执行命令。G2/3 弧暂停流式传输以将小线段注入规划器缓冲区。如果流媒体程序并不总是提供“OK”响应,您将遇到您所描述的问题。在我们的高级流脚本中,通过跟踪发送的字符和“ok”响应的数量,同时保持 Grbl 的串行输入缓冲区满,有一些方法可以提高和强大的流性能。不过,我仍然会针对我们的流脚本进行测试,以确保它不在 Grbl 的末端。 |
@chamnit我用的是0.9c。看来我正在使用G54。
…不幸的是,即使在移除 G54 线后,它也会停在同一点。 |
@robertnino: 感谢您的错误报告。你能告诉我在这个命令之后它停止是什么意思吗?它会移动到 Z25.0 并停止吗?状态报告告诉您 Grbl 处于什么状态(即 IDLE、QUEUE、CYCLE)? 只是为了确保,这是否发生在主 v0.8c 上,您是否尝试过使用不同的流媒体程序,如 UGS?(并且,请注意前面的 M6 命令不支持将 |
@lakeside53:从您的意思来看,听起来 ZapMaker 中的某些东西导致 Arduino 断开连接,这可能会导致您在程序结束时出现锁定问题,而其他任何地方都没有。我记得当我使用我们提供的 Python 流式处理代码时,如果我在流式传输完成后立即终止连接,但程序仍在其缓冲区中运行,Grbl 将几乎完全像您所说的那样停止。我一直不明白为什么会发生这种情况。当我将 Python 串行驱动程序更新到较新版本时,这个问题在没有我的干预下神奇地消失了。 我怀疑在您的计算机/操作系统或 Zapmaker 程序上使用的流串行驱动程序的断开协议中的某些东西会导致电压尖峰或发送某种锁定的输入。似乎当您将 Mx 条件添加到 Zapmaker 时,它会强制缓冲区完成并干净地退出。我认为当您在 G4 命令中添加十进制时,它可能只是延迟处理,使其在与断开信号锁定之前完成。 不知道如何验证这一点..可能会更改 Mx 条件以寻找 M30,所以当它到达程序结束时,它会在断开连接之前等待“确定”。或者,如果您可以在 Zapmaker 程序中添加一些内容以等待剩余的“oks”,然后再断开连接也可以。 顺便说一句,您对 Grbl 的使用非常有趣。从来没想过有人会用这种方式。:) |
已经能够实现更多的硬件更改并运行更多的测试。没有尝试过不同的流媒体程序。但UGS似乎是值得信赖的。我似乎有两个不同的问题。1.) 每 25-35 分钟触发一次的限位开关和 2.) GRBL 定期冻结,UGS 没有发出警报。文件最大为 11,000 多行。所有文件都在某个时候成功完成。再次。即使禁用限制,也会发生 GRBL 冻结。所以我不认为这些问题是相关的。但不确定。 我想知道运行 windows xp 的旧 PC 是否可能是 GRBL 冻结问题的一部分。那里有任何已知问题吗?还怀疑我的 gcode 生成器 (dxf2gcode) 在解释圆弧和圆的方式上产生了一些问题。 让一个 EE 朋友在我的机器上放了一个内窥镜。他注意到没有噪音问题。注意到我的主轴非常无噪音。空切时使用 Scoped 机器 5-10 分钟。开始怀疑尖峰是否源自机器外部。例如 HVAC 的启动和关闭。 我的系统示意图位于此处:http ://www.shapeoko.com/forum/viewtopic.php?f=5&t=1268&p=19246#p19246 |
我有理由确定问题不在于每次都需要像 Zapmaker 那样等待 M9,而在于 M9 与退出时的程序完成有关(我可以删除 M30,这没有区别)。通过在最后一个序列之后和 M30 之前添加“什么都不做”代码的短序列,问题就消失了,所以就像需要一些延迟或其他什么。我会将此线程复制到 Zapmaker 以查看他是否有任何意见。对于大多数用户在 M9 之后等待“ok”(基本上杀死了激进的加载)是没有问题的,但对我来说,因为 M8/M9 的广泛使用,它是。在 M30 之后寻找“ok”是一个有趣的想法。 我倾向于打折电压尖峰理论。这个问题在许多计算机上是 100% 可重复的。如果它失败了-它总是失败。 感谢您考虑这个问题。 安迪 发件人:Sonny Jeon [ mailto:notifications@github.com ] @lakeside53 https://github.com/lakeside53 :从您的意思来看,ZapMaker 中的某些东西几乎会导致 Arduino 断开连接,这可能会导致您在程序结束时出现锁定问题,而其他任何地方都没有。我记得当我使用我们提供的 Python 流式代码时,如果我在流式传输完成后立即终止连接,但程序仍在通过其缓冲区运行,Grbl 将几乎像您所说的那样停止。我一直不明白为什么会发生这种情况。当我将 Python 串行驱动程序更新到较新版本时,这个问题在没有我的干预下神奇地消失了。 |
@lakeside53: 我认为我们在同一件事上达成一致。在节目流结束之前等待“确定”是一个问题。有一组特定的命令等待规划器缓冲区清空,然后再执行它并发送“ok”响应,以便流式传输可以恢复。M8/9 就是其中之一。这种与 Zapmaker 的流代码处理程序结束方式有关的延迟可能会导致问题。 我这样说是因为,今天早些时候,我查看了 Zapmaker 流代码。我没有机会阅读所有内容,但“激进”流媒体的工作方式看起来很奇怪。它似乎发送了一个恒定的字符流,只有 10 毫秒的延迟来控制它发送它们的速度。它看起来真的很奇怪,而且它不是预加载 Grbl 串行缓冲区的推荐方法。在 Grbl repo 的 stream.py 文件中有一个关于如何做到这一点的大纲。 老实说,我不知道在哪里可以诊断 Grbl 固件中的这个问题。没有任何突出的东西会导致我能想到或遇到的这个问题。这就是为什么这使我相信它的外部。如果确实有几台不同的机器、操作系统和流媒体程序(Zapmaker 除外)都有这个问题,那么另一种可能性可能是 Atmega8U2 芯片,它控制 USB 到串行数据流,导致 Arduino 上的某种芯片复位当数据流停止时。我想检查这一点的一种方法是在程序结束时保持串行连接短暂打开,并在延迟后关闭它。 @Mgilbride: 我想 HVAC 可能是冻结问题的根源。奇怪的事情,但这个奇怪的,被发现是电噪声问题的原因。像这样的问题很难诊断,所以我建议严格的排除过程。如果您还没有,请尝试我们的 repo 中的 Python stream.py。这是一个最小的流媒体程序,没有额外的代码可能会把事情搞砸。确保您的 XP 计算机的能源设置已关闭,我相信您已经尝试过了。断开 Arduino 的所有接线,除了步进控制线,以排除任何接线影响它。除此之外,我没有最起雾的。这里的用户(包括我自己)已经成功地在 Grbl v0.8c 上运行长时间作业并且没有遇到问题。让我了解您的最新进展,也许我们可以查明是什么’ |
@chamnit我没有使用流媒体程序。只需picocom并将其复制/粘贴到控制台中。 我将再次尝试使用 master 分支并回复您。 |
@robertnino: 啊,那是你的问题。您不能简单地将代码剪切并粘贴到终端程序中。如果你能这样做就好了,但我们不能这样做的原因有很多。当您粘贴程序时,Arduino 串行缓冲区会填满并在溢出时丢弃多余的字符。您必须在我们的 repo 中使用诸如 Universal G-code Sender 或我们的 stream.py Python 脚本之类的流程序。 |
@chamnit我正在使用流媒体程序。控制台中的剪切和粘贴只是为了测试。 我不能使用 v0.8c……它不支持开箱即用的 Arduino Mega,尽管我找到了一个支持 Arduino Mega 并添加了第四轴“C”的 grbl 分支。它是 0.81 版……或者至少这是源中存在的版本字符串和 grbl 报告的版本字符串。 对于这个版本,在控制台中剪切和粘贴我一直用于这个问题的几行 GCode(粘贴在上面的消息之一中)就可以了。我看到轴在移动,最终位置是 GCode 命令中指定的位置。 感谢您的耐心等待。 |
@robertnino: 好的,谢谢你的澄清。请记住,Grbl 并未正式支持 Arduino Mega。目前它是用户支持的,这意味着它可能存在一些尚未解决的问题。但是,由于内存空间的扩展,我计划最终支持它并扩展 Grbl 的功能。 此外,v0.9c 目前处于高度开发阶段,并进行了许多重大更改和改进,所以请耐心等待我处理这些错误。 |
@chamnit我知道这是一个开发版本。:) 我只是想帮忙。 你做得很好! |
好消息。电子设备的实施似乎确实是我所经历的问题的罪魁祸首。很多变化似乎已经解决了我的问题。希望长期测试/使用将证明这一点。仅在好奇的情况下阅读… 所做的更改: 1.) 增加了两端带有铁氧体扼流圈的屏蔽 USB 电缆。 再次,非常感谢。惊人的,启用的东西! |
你能分享你的设计甚至项目的图像/pdf吗?谢谢你 No dia sábado, 8 de Fevereiro de 2014, Mgilbride notifications@github.com
|
刚刚发布到QUERY:Grbl 的用途是什么?第332章 2014 年 2 月 7 日星期五晚上 9:31,José Xavier notifications@github.com写道:
|
好吧……说得太早了。运行实际作业时再次收到警报。真是令人沮丧。在软件中禁用了限制和归位,仍然可以得到它们!任何可能引起警报的事情的澄清。包括何时禁用硬限制? 回到断开所有东西与电路板的连接并对其进行测试。 |
@Mgilbride: 哎呀!很抱歉听到这个。要回答您的问题,可以引起警报的地方并不多:显然是硬限制;活动周期期间的软复位,可由用户发送 Ctrl-X 字符或 A0 上的软复位引脚变为低电平触发;或者,如果您使用的是带有软限制的 Grbl 版本,则可能会因超出轴的最大行程范围而引发警报。 我想我们没有解决的一件事是询问您是否将物理按钮连接到 A0、A1 和 A2 引脚。如果你这样做,这可能是你问题的根源。它们的工作方式与硬限位引脚非常相似,需要小心接线和屏蔽。回头看看你在 CNC 机器上的帖子,看起来你确实连接了开关。如果您还没有尝试删除它,请尝试删除它,看看这是否会有所改善。 |
作业因“发送状态命令时出现 IOException:writeByte 中的输入/输出错误”而中断。这个错误出现在 UGS 控制台中。听起来像是 USB 连接丢失? 是的。我在 A0、A1 和 A2 上连接了开关。它们没有被屏蔽。除了最后一次运行的限位开关之外,我还拉了那些。 |
@Mgilbride: 是的。这可能意味着 USB 连接丢失。我一直在关注你关于 UGS 问题主题的帖子,看来 Will Winder 同意你的观点。这可能是您的计算机正在馈送 Grbl 或工具运行时出现的一些接地问题,Will 提到他的 Dremel 会导致相同类型的问题。只是为了消除刀具,您可以在不打开主轴的情况下对刀具路径进行空运行吗? |
看起来这是一个侥幸。(十指交叉)这种事只发生 我在关闭主轴的情况下做了很多测试。实际上似乎从来没有成为 2014 年 2 月 12 日星期三上午 11:15,Sonny Jeon notification@github.com写道:
|
@Mgilbride: 伟大的!我希望事情是侥幸。让我们知道您的进展。 |
我现在遇到了这个问题,就像一开始就做的那样,但是你是怎么解决的我不明白,你能不能简单地用几个步骤来解决它。我已经在其他计算机上尝试了我的 arduino,它工作正常 – 所以问题出在我的笔记本电脑设置上。也许关闭报告消息?但如何? |
地铁 评论 on 23 Jan 2014
您好,
grbl 0.9c 版本无法正常工作。如果我们从文件发送命令,甚至在 Universal GcodeSender 之类的应用程序上使用键盘,板子就会停止工作,我们需要断开连接并重新连接它才能工作。
还有其他人有同样的问题#334我刚刚创建了另一个来关注这个问题。