Contact me: hankecnc@gmail.com

Z轴故障 #119

推推 grbl 3年前 (2023-01-21) 251次浏览

关闭
gorbie35 打开了这个问题 2012 年 9 月 19 日 · 23条评论
关闭

Z轴故障#119

gorbie35 打开了这个问题 2012 年 9 月 19 日 · 23条评论

注释

Z轴故障 #119

我正在转换一台机器并启动并运行,x 轴和 y 轴移动完美,但 z 轴有时没有响应。如果我给它一个命令,它会很好地响应,但是在代码中它似乎会跳过一个命令?z 命令仍然有暂停,但没有任何反应,然后程序按计划继续运行。谁能给我一些关于寻找什么的建议?

我正在运行带有 2.8Nm 步进电机的 50v 7.2 安培电源。我的步进控制器具有衰减设置和微步设置以及参考电压。

Z轴故障 #119
成员

尽量确保您的 g 代码块不会太长。意思是,摆脱超出机器精度和重复语句的额外字符。如果这没有任何改变,请发送您的代码示例和您正在做的事情,以便我们更好地了解问题所在。

Z轴故障 #119
作者

谢谢,我刚刚读到一个关于我正在使用的 G 代码发送器的问题,似乎说其他人也有这个问题。你能推荐一个稳定的 g 代码发件人来感受 Grbl 吗?我正在使用 Grbl 0.7d

Z轴故障 #119

调试建议:

  1. Grbl 使用与串行接口行业标准(即 RTS/CTS 和/或 XON/XOFF)不同的流量控制方法,这意味着必须采取适当的预防措施以避免其接收缓冲区溢出并导致字符丢失。与源代码捆绑在一起的script/stream.py脚本与上述流控制方案完全兼容,可以确保正确流式传输 G 代码程序而不会出现任何错误。
  2. 由于只有一个轴导致问题,我会专注于它并仔细检查所有连接和驱动程序级设置(我是否使用相同的微步设置?相同的当前设置?其他驱动程序是否以任何方式干扰这个?是 Z轴在机械上具有与其他轴相似的性能?如果没有,我是否相应地修改了 Grbl 的参数?)
Z轴故障 #119
作者

谢谢 dexter,但我以前没有用过 python。我下载了它并尝试运行但无法执行此操作。你能给我指一个教程吗?

Z轴故障 #119

不幸的是,我无法读懂你的想法,所以除非你告诉我你遇到了哪个错误(以及你正在尝试使用哪个操作系统和 Python 版本),否则我无法帮助你。

Z轴故障 #119
成员

@gorbie35:如果您想排除 GCodeSender 作为问题的根源,您可以尝试 stream.py 脚本。您需要安装 Python 和 pySerial,您可以通过 Google 找到它们。您还可以使用许多其他流式 GUI,但由于我已经有一段时间没有使用它们,所以无法为您指出其中一个。

我认为您的问题听起来像是我们之前在这里看到的问题。它与 Grbl 如何解析 g 代码行有关。如果该行(又名块)太长,超过 56 个字符且没有空格,Grbl 将截断该行的其余字符。“Z”语句通常在末尾,并且是丢失的语句。Simen 和我已经讨论过为此创建一个修复程序,但这需要一些时间才能完成,因为它需要我们完全重构解析程序。

因此,就像我之前说过的那样,尝试从您的命令中删除任何超出机器精度的额外数字,例如 X5.000000 到 X5.000,并删除重复的轴命令,这意味着不要逐行更改值。然后重新测试看这是否改变了什么。请向我们发送 g 代码示例。

另外,也尝试使用 Grbl 0.8a。它可能有其他修复程序也可以解决您的问题。

Z轴故障 #119
作者

好的,抱歉,我缺乏 python 知识,但我已经下载了 python2.7.3 和 pyserial2.6。我熟悉 matlab 代码,所以我现在如何在 python 中运行这段代码?

我也会尝试使用 gcodesender,因为我还没有使用过它,然后再回复你。

Z轴故障 #119
作者

所以我有 gcodesender 工作并且它更好,z 轴没有问题但是程序在长代码期间在随机阶段失去与 arduino 的连接。是什么原因造成的?看来真的不是物理连接问题。所以我不知道它是否可以是 Windows 7?或者它可能是 Grbl?Grbl 0.8a 比 0.7d 更稳定吗?0.8a 的默认引脚是什么?

Z轴故障 #119
成员

大多数人一直在使用 0.8a,没有太大问题。引出线完全相同。并且没有任何其他已知问题会导致您的问题,所以我认为我们可以排除 Grbl 是来源。通常情况下,这通常是用户错误,与实际的 g 代码(请向我们发送您发送的内容的样本)、流媒体程序或硬件问题(如电磁干扰或接地不良)有关。

请解释您为使其“工作”所做的工作以及长代码的含义。我们越了解您的问题,就越能提供帮助。

Z轴故障 #119
作者

我运行的 g 代码每次都运行不同的长度,这让我相信它不是 g 代码,但我将在下面包含其中的一些。整个代码长9500行,运行4个半小时。我用 PyCAM 生成代码,然后自己在 excel 中稍微修改它并以 csv 格式保存。然后我通过 gcodesender 将它发送到 Arduino uno。有时它运行 7000 行,有时它运行 1000 行。我以管理员身份运行 gcodesender,但它仍然没有运行完成。我想调查你所谓的接地不良?和电磁干扰?什么会导致这些问题以及避免这些问题的良好做法是什么

这是代码示例,我认为它的格式非常适合 grbl,但让我知道您的想法

G0 Z41.000
X-7.000 Y-7.0000
G1 Z38.200
Z38.133
X57.000
Y-1.181
X-7.000
Y4.636
X57.000
Y10.454
X-7.000
Y16.272
X17.740
G0 Z41.000
X32. 260
G1 Z38.133
X57.000
Y22.090
X35.973
G0 Z41.000
X14.034
G1 Z38.133
X-7.000
Y27.909
X14.026
G0 Z41.000
X35.965
G1 Z38.133
X57.000
Y33。 727
X32.259
G0 Z41.000
X17.739
G1 Z38.133
X-7.000
Y39.545
X57.000
Y45.363
X-7.000
Y51.181

然后我把它剪掉并在程序中包含了更多的代码

X30.228 Z30.000
X30.227 Z30.000
X30.215 Z30.006 X29.843
Z30.254 X29.470 Z30.472
X29.098
Z30.667
X28.725 Z30.845
X28.352 Z30.992
X27. 607 Z31.238
X27.235 Z31.337
X26.862 Z31.424
X26.117 Z31.538 X25.372
Z31.600 X24.627
Z31.597 X23.882
Z31.542
X23.137 Z31.420
X22.392 Z31 .239
X22.019 Z31.129
X21.647 Z30.992
X21.274 Z30.839 X20.902 Z30.665
X20.529 Z30.470
X20.436
Z30.423
X20.413 Z30.410
X20.401 Z30.404

这就是所有代码看起来的样子,没有比这更复杂的了。

Z轴故障 #119

关于“接地不良”——如果主轴有电气噪音,它可能会导致 USB 故障。这些症状与您所经历的类似 – 在看似随机的点间歇性切断,由于显而易见的原因,较长的工作面临更大的风险。

尝试隔离主轴 AC 和计算机/电机电源之间的电路。最好的方法是找到 2 个独立的电路(不同的断路器)并分别为主轴供电。如果您从继电器(M 命令)切换主轴,请使用隔离继电器,如 Fotek(查看亚马逊)。

我们(合成器)正在研究针对这个问题的各种形式的电气隔离——比如电容器和变阻器,但仍在试验中。

Z轴故障 #119

如果我可以解决“主轴噪音”问题:

  • 为电子设备使用优质电源,绝大多数“噪音”问题都会消失。额定用于信息技术设备的开关模式电源比古老的基于变压器的设计要好得多。在 wall-wart 系列中,开关型总是比变压器型更小更轻,因此在购买时相对容易发现它们
  • 噪音问题看起来很像赛车道路上的颠簸:要么使悬架更硬,要么在颠簸较少的道路上行驶,颠簸越大,问题越大。因此,要么为您的数字电源增加更多的电源储备(提示:电容器),要么就像上面 aldenhart 所说的那样,将主轴插入另一个插座,最好是另一个电路(如果它是电源馈电主轴)。如果它是低压主轴,请务必不要其与用于步进器或电子设备的电源相同。

最后,我们能否提供您用于将 G 代码发送到 grbl 的实际软件的链接?谷歌的“gcodesender”给出了多个结果……

Z轴故障 #119
成员

还有一件事要补充。有一个用户遇到奇怪的间歇性问题的情况。事实证明,他的步进驱动器的冷却风扇离电路板和电线太近,以至于磁场产生了错误的步进脉冲。并不是说这可能是你的问题,只是检查并尝试解决 Alden 和 Radu 也提到的其中一些事情。

另一个问题是,您的 4 小时运行时间相当长,比我通常对典型用户的预期要长,而且肯定比我单次操作的运行时间要长。我会说我最长的不超过一个小时。那么,大约需要多长时间才能看到错误?是否一致?

Z轴故障 #119

我会对整个文件很感兴趣。这对长时间运行的操作来说是一个很好的测试。您可以通过任何方式发布或提供它吗?

Z轴故障 #119
作者

大家好,首先感谢您的反馈!非常感激。我的脊柱是三相的,因此与控制装置完全不同。

但我已经努力确保信号电缆与其他电子设备保持清晰,我计划明天进行更多测试。根据上面的描述,我相信我有一个很好的电源。我使用的实际软件的链接如下: https ://github.com/OttoHermansson/GcodeSender/downloads

然后回答 chamnit:错误似乎不一致,有时会在一个小时后发生,有时会在 3 个半小时后发生。然而,由于程序的较长性质,我只进行了 4 次测试运行,因此我需要进行更多测试以获得最终结果。

我有一个问题,我不知道它是否放错了地方,但我认为该错误可能是由于 Windows 7 关闭 USB 端口或检查端口造成的?这可能吗?

PS 我可以完整地发布代码,但我不知道这样做的最佳方式?它的9000行?

Z轴故障 #119

如果您有保管箱,您可以发布该文件,然后为其获取一个公共 URL。Dropbox 是免费的(适用于少量使用),而且非常易于使用。感谢您查看这个。我会通过尝试在我的设置上运行它来回报(空切,而不是实际切割)

Z轴故障 #119

好的,GCodeSender通过一次只发送一行来进行流量控制(并在发送更多之前等待另一端用 CRLF 回复)。它是粗糙和简陋的,但它与 grbl 管理串行通信的方式一起工作,至少只要一行 GCode 适合它应该的 grbl 串行接收缓冲区(当前设置为 256,而 GCode 要求一行中最多 256 个字符)。

您可以通过转到设备管理器,找到您的 Arduino 端口,转到属性并取消选择“允许 Windows 关闭此设备以节省电源”(如果存在任何此类复选框)来消除对 Windows 的怀疑。

Z轴故障 #119
作者

好的,所以我发现问题是紧急停止和限位开关在某个时候造成了干扰。不知道如何但那些断开连接的机器运行正常。

我正忙着重写上面的代码以节省一些时间。但我想知道人们用什么来换取价值 8 美元的 Grbl 或加速值?我将它设置为 10 毫米/秒,但我不确定这如何影响电机的扭矩?是越高越好还是越低越好?

Z轴故障 #119

(最大)加速度是一个机器参数:取决于电机能够承受的最大扭矩(这反过来又是驱动器可以提供的最大电流的函数)和运动部件的总组合重量(直接影响它们的惯性),您将获得在当前配置下可实现的最大加速度。通常它在您正在使用的 CNC 系统的数据表中给出。

Z轴故障 #119
成员

csdexter 是正确的。如果您的机器没有数据表,则加速度应设置为接近步进电机在最坏情况下开始失速的时间点。(通常是z轴上下)。我宁愿保守一点,这样以后你就不会有任何意外了。

此外,不久前,我们讨论了如何处理机械开关中的去抖动或噪音。可能最简单的方法是将一个小电容器与开关(低通滤波器)并联。这将消除由外部干扰引起的任何高频电子噪声。如果您有示波器,我建议您监控您的限位开关和急停开关,看看线路中是否存在一些噪音。

Z轴故障 #119

对于机械开关,可以插入一个去抖电路来缓解这个问题。10 年前,最奇特的版本是施密特触发器或由开关控制的 555,这样开关必须在整个 555 周期内“打开”,脉冲才能传到 MCU。
今天,随着 MCU 价格的下降,只在 MCU 中编写去抖动代码而不是安装额外的电子设备可能更便宜。

对于加速部分,如果手动测试,请确保测试全摆动(即完全停止然后向后退,而不是完全停止)。我在车间使用的方法是在机器上安装一个千分表,这样被测轴就靠在它上面产生一些指示;然后将指标归零;然后运行代码使轴远离指示器,直到它达到最大速度,然后制动到零,然后右转并最终到达起始位置。我逐渐增加加速度值,直到 TIR 开始上升,这是我开始失去步伐的明显迹象。

根据您使用的特定驱动器和电机,您可能会看到电机在 TIR 上升之前发生共振,因此此时您停止增加加速度值。

Z轴故障 #119
成员

对于大多数爱好者来说,基于 RC(低通滤波器)的去抖器就可以完成这项工作,
至少对于限位开关而言是这样。不需要太
花哨,只要不会意外触发即可。

csdexter说的加速测试应该可以,但这只是
告诉你绝对极限。我会把你的加速度值设置在
这个值的 75% 左右。实际上,这将考虑刀具切削压力以及
夹具和工件的附加质量。没有什么比
在您工作了一整天后毁掉一个工件更糟糕的了。

2012 年 9 月 27 日凌晨 4:43,Radu – Eosif Mihailescu <
notifications@github.com > 写道:

对于机械开关,可以插入一个去抖电路来
缓解这个问题。10 年前,最奇特的版本是
施密特触发器或由开关控制的 555,这样
开关必须在整个 555 周期内“打开”,脉冲才能
传到 MCU。 今天,随着 MCU 价格的下降,只在 MCU 中编写去抖动代码而不是安装额外的电子设备
可能更便宜。

对于加速部分,如果手动测试,请确保测试
全摆动(即完全停止然后向后退,而不是
完全停止)。我在车间使用的方法是
在机器上安装一个千分表,这样被测轴就靠在它上面产生
一些指示;然后将指标归零;然后运行代码使轴
远离指示器,直到它达到最大速度,然后制动到
零,然后右转并最终到达起始位置。我
逐渐增加加速度值,直到 TIR 开始上升,
这是我开始失去步伐的明显迹象。

根据您使用的特定驱动器和电机,您可能会看到
电机在 TIR 上升之前发生共振,因此此时您停止
增加加速度值。


直接回复此电子邮件或在 GitHub 上查看它
https://github.com/ /issues/119 #issuecomment-8932325。

Z轴故障 #119

糟糕的是,我忘了指定常识性的东西:预先在主轴套环/法兰上/上加载您期望拖拉的最大重量,并运行测试一段统计显着的时间(用简单的英语来说,会意味着至少 1 小时或您期望使用机器完成的最长(时间)工作的 1/3)。
找出最大加速度后(通过多次测量并取平均——至少),你应该降低它以达到你可以在生产中使用的实际值。

从上面 chamnit 给出的非常健康的 25% 开始,然后根据电机的热度再增加 25%。

喜欢 (0)