注释
|
尽量确保您的 g 代码块不会太长。意思是,摆脱超出机器精度和重复语句的额外字符。如果这没有任何改变,请发送您的代码示例和您正在做的事情,以便我们更好地了解问题所在。 |
|
谢谢,我刚刚读到一个关于我正在使用的 G 代码发送器的问题,似乎说其他人也有这个问题。你能推荐一个稳定的 g 代码发件人来感受 Grbl 吗?我正在使用 Grbl 0.7d |
|
调试建议:
|
|
谢谢 dexter,但我以前没有用过 python。我下载了它并尝试运行但无法执行此操作。你能给我指一个教程吗? |
|
不幸的是,我无法读懂你的想法,所以除非你告诉我你遇到了哪个错误(以及你正在尝试使用哪个操作系统和 Python 版本),否则我无法帮助你。 |
|
@gorbie35:如果您想排除 GCodeSender 作为问题的根源,您可以尝试 stream.py 脚本。您需要安装 Python 和 pySerial,您可以通过 Google 找到它们。您还可以使用许多其他流式 GUI,但由于我已经有一段时间没有使用它们,所以无法为您指出其中一个。 我认为您的问题听起来像是我们之前在这里看到的问题。它与 Grbl 如何解析 g 代码行有关。如果该行(又名块)太长,超过 56 个字符且没有空格,Grbl 将截断该行的其余字符。“Z”语句通常在末尾,并且是丢失的语句。Simen 和我已经讨论过为此创建一个修复程序,但这需要一些时间才能完成,因为它需要我们完全重构解析程序。 因此,就像我之前说过的那样,尝试从您的命令中删除任何超出机器精度的额外数字,例如 X5.000000 到 X5.000,并删除重复的轴命令,这意味着不要逐行更改值。然后重新测试看这是否改变了什么。请向我们发送 g 代码示例。 另外,也尝试使用 Grbl 0.8a。它可能有其他修复程序也可以解决您的问题。 |
|
好的,抱歉,我缺乏 python 知识,但我已经下载了 python2.7.3 和 pyserial2.6。我熟悉 matlab 代码,所以我现在如何在 python 中运行这段代码? 我也会尝试使用 gcodesender,因为我还没有使用过它,然后再回复你。 |
|
所以我有 gcodesender 工作并且它更好,z 轴没有问题但是程序在长代码期间在随机阶段失去与 arduino 的连接。是什么原因造成的?看来真的不是物理连接问题。所以我不知道它是否可以是 Windows 7?或者它可能是 Grbl?Grbl 0.8a 比 0.7d 更稳定吗?0.8a 的默认引脚是什么? |
|
大多数人一直在使用 0.8a,没有太大问题。引出线完全相同。并且没有任何其他已知问题会导致您的问题,所以我认为我们可以排除 Grbl 是来源。通常情况下,这通常是用户错误,与实际的 g 代码(请向我们发送您发送的内容的样本)、流媒体程序或硬件问题(如电磁干扰或接地不良)有关。 请解释您为使其“工作”所做的工作以及长代码的含义。我们越了解您的问题,就越能提供帮助。 |
|
我运行的 g 代码每次都运行不同的长度,这让我相信它不是 g 代码,但我将在下面包含其中的一些。整个代码长9500行,运行4个半小时。我用 PyCAM 生成代码,然后自己在 excel 中稍微修改它并以 csv 格式保存。然后我通过 gcodesender 将它发送到 Arduino uno。有时它运行 7000 行,有时它运行 1000 行。我以管理员身份运行 gcodesender,但它仍然没有运行完成。我想调查你所谓的接地不良?和电磁干扰?什么会导致这些问题以及避免这些问题的良好做法是什么 这是代码示例,我认为它的格式非常适合 grbl,但让我知道您的想法 G0 Z41.000 然后我把它剪掉并在程序中包含了更多的代码 X30.228 Z30.000 这就是所有代码看起来的样子,没有比这更复杂的了。 |
|
关于“接地不良”——如果主轴有电气噪音,它可能会导致 USB 故障。这些症状与您所经历的类似 – 在看似随机的点间歇性切断,由于显而易见的原因,较长的工作面临更大的风险。 尝试隔离主轴 AC 和计算机/电机电源之间的电路。最好的方法是找到 2 个独立的电路(不同的断路器)并分别为主轴供电。如果您从继电器(M 命令)切换主轴,请使用隔离继电器,如 Fotek(查看亚马逊)。 我们(合成器)正在研究针对这个问题的各种形式的电气隔离——比如电容器和变阻器,但仍在试验中。 |
|
如果我可以解决“主轴噪音”问题:
最后,我们能否提供您用于将 G 代码发送到 grbl 的实际软件的链接?谷歌的“gcodesender”给出了多个结果…… |
|
还有一件事要补充。有一个用户遇到奇怪的间歇性问题的情况。事实证明,他的步进驱动器的冷却风扇离电路板和电线太近,以至于磁场产生了错误的步进脉冲。并不是说这可能是你的问题,只是检查并尝试解决 Alden 和 Radu 也提到的其中一些事情。 另一个问题是,您的 4 小时运行时间相当长,比我通常对典型用户的预期要长,而且肯定比我单次操作的运行时间要长。我会说我最长的不超过一个小时。那么,大约需要多长时间才能看到错误?是否一致? |
|
我会对整个文件很感兴趣。这对长时间运行的操作来说是一个很好的测试。您可以通过任何方式发布或提供它吗? |
|
大家好,首先感谢您的反馈!非常感激。我的脊柱是三相的,因此与控制装置完全不同。 但我已经努力确保信号电缆与其他电子设备保持清晰,我计划明天进行更多测试。根据上面的描述,我相信我有一个很好的电源。我使用的实际软件的链接如下: https ://github.com/OttoHermansson/GcodeSender/downloads 然后回答 chamnit:错误似乎不一致,有时会在一个小时后发生,有时会在 3 个半小时后发生。然而,由于程序的较长性质,我只进行了 4 次测试运行,因此我需要进行更多测试以获得最终结果。 我有一个问题,我不知道它是否放错了地方,但我认为该错误可能是由于 Windows 7 关闭 USB 端口或检查端口造成的?这可能吗? PS 我可以完整地发布代码,但我不知道这样做的最佳方式?它的9000行? |
|
如果您有保管箱,您可以发布该文件,然后为其获取一个公共 URL。Dropbox 是免费的(适用于少量使用),而且非常易于使用。感谢您查看这个。我会通过尝试在我的设置上运行它来回报(空切,而不是实际切割) |
|
好的,GCodeSender通过一次只发送一行来进行流量控制(并在发送更多之前等待另一端用 CRLF 回复)。它是粗糙和简陋的,但它与 grbl 管理串行通信的方式一起工作,至少只要一行 GCode 适合它应该的 grbl 串行接收缓冲区(当前设置为 256,而 GCode 要求一行中最多 256 个字符)。 您可以通过转到设备管理器,找到您的 Arduino 端口,转到属性并取消选择“允许 Windows 关闭此设备以节省电源”(如果存在任何此类复选框)来消除对 Windows 的怀疑。 |
|
好的,所以我发现问题是紧急停止和限位开关在某个时候造成了干扰。不知道如何但那些断开连接的机器运行正常。 我正忙着重写上面的代码以节省一些时间。但我想知道人们用什么来换取价值 8 美元的 Grbl 或加速值?我将它设置为 10 毫米/秒,但我不确定这如何影响电机的扭矩?是越高越好还是越低越好? |
|
(最大)加速度是一个机器参数:取决于电机能够承受的最大扭矩(这反过来又是驱动器可以提供的最大电流的函数)和运动部件的总组合重量(直接影响它们的惯性),您将获得在当前配置下可实现的最大加速度。通常它在您正在使用的 CNC 系统的数据表中给出。 |
|
csdexter 是正确的。如果您的机器没有数据表,则加速度应设置为接近步进电机在最坏情况下开始失速的时间点。(通常是z轴上下)。我宁愿保守一点,这样以后你就不会有任何意外了。 此外,不久前,我们讨论了如何处理机械开关中的去抖动或噪音。可能最简单的方法是将一个小电容器与开关(低通滤波器)并联。这将消除由外部干扰引起的任何高频电子噪声。如果您有示波器,我建议您监控您的限位开关和急停开关,看看线路中是否存在一些噪音。 |
|
对于机械开关,可以插入一个去抖电路来缓解这个问题。10 年前,最奇特的版本是施密特触发器或由开关控制的 555,这样开关必须在整个 555 周期内“打开”,脉冲才能传到 MCU。 对于加速部分,如果手动测试,请确保测试全摆动(即完全停止然后向后退,而不是完全停止)。我在车间使用的方法是在机器上安装一个千分表,这样被测轴就靠在它上面产生一些指示;然后将指标归零;然后运行代码使轴远离指示器,直到它达到最大速度,然后制动到零,然后右转并最终到达起始位置。我逐渐增加加速度值,直到 TIR 开始上升,这是我开始失去步伐的明显迹象。 根据您使用的特定驱动器和电机,您可能会看到电机在 TIR 上升之前发生共振,因此此时您停止增加加速度值。 |
|
对于大多数爱好者来说,基于 RC(低通滤波器)的去抖器就可以完成这项工作, csdexter说的加速测试应该可以,但这只是 2012 年 9 月 27 日凌晨 4:43,Radu – Eosif Mihailescu < 对于机械开关,可以插入一个去抖电路来 对于加速部分,如果手动测试,请确保测试 根据您使用的特定驱动器和电机,您可能会看到 — |
|
糟糕的是,我忘了指定常识性的东西:预先在主轴套环/法兰上/上加载您期望拖拉的最大重量,并运行测试一段统计显着的时间(用简单的英语来说,会意味着至少 1 小时或您期望使用机器完成的最长(时间)工作的 1/3)。 从上面 chamnit 给出的非常健康的 25% 开始,然后根据电机的热度再增加 25%。 |


我正在转换一台机器并启动并运行,x 轴和 y 轴移动完美,但 z 轴有时没有响应。如果我给它一个命令,它会很好地响应,但是在代码中它似乎会跳过一个命令?z 命令仍然有暂停,但没有任何反应,然后程序按计划继续运行。谁能给我一些关于寻找什么的建议?
我正在运行带有 2.8Nm 步进电机的 50v 7.2 安培电源。我的步进控制器具有衰减设置和微步设置以及参考电压。