注释
@JaakkoFagerlund: 好帖子。我一直有意支持电火花线切割机。然而,Grbl 需要从小而简单的传统 3 轴 CNC 开始,以保持开发紧凑。今年,我计划开放对许多其他类型的机器和新功能集的开发和支持。一方面,车床支架一直是我的宠儿。无论如何,我认为为诸如 EDM 运动控制之类的事情安装一个封闭的控制方案并不超出范围,但是,对我来说,不幸的是,它远远落后于要做的事情。 |
你好,查尼特!感谢您的发言和时间,很高兴听到您喜欢 车床支持也很好,因为它也离通常的 3 轴铣床/打印机/绘图仪/等有点远。这个 grbl 已被广泛使用,并且像鼻子一样坐在头上。我曾经有过一次很好的机会使用 CNC 车床(一个 2 轴和一个带有旋转工具的 4 轴),它们肯定与铣床不同。 现在,如果我理解正确,您就是将项目 grbl 置于他的保护之下并由其他人提供帮助的人,对吗?如前所述,我对此类项目的开发过程知之甚少,但我相信您不是唯一一个进行编码的人。如果是这样,我也想从其他编码人员那里听到关于这个想法的想法,以便有可能拥有一个 grbl EDM。 到目前为止做得很好,很高兴听到将来某个时候可能会有一点机会获得“特别”版:)我只需要在那之前使用上面详述的变通方法,看看它是如何进行的并保留这个如果可以的话,用信息更新线程。这样其他人也可以使用这些信息,如果 grbl 有一天分支到 EDM 世界,它也许可以作为基础研究信息:) 无论如何,如果有人有兴趣在某个时候开发这种版本,我会全神贯注并准备帮助测试、评估和提供有关 EDM 的有用信息。由于我自己的 EDM 项目和工作,我有几年的时间来收集关于这个和关于 EDM 系统的信息,因此我能够为这个项目提供很多细节。 |
我对你们 EDM 电源的细节很感兴趣。 |
@JaakkoFagerlund:是的,我是 Grbl 项目的首席开发人员,但在大多数情况下,我是过去 4 年持续 5 年的唯一开发人员。唯一的其他主要贡献者是原作者 Simen Skogsrud,他一直致力于这个项目,直到 2011 年。您可以在“图表”选项卡中查看 Grbl 的所有次要贡献者和各种分支。也就是说,那里有许多有趣的 Grbl 分支,但这是这些参考的主要存储库,因为该项目的目的是开发 CNC 运动控制核心,而不是支持特定机器类型的特定功能。 |
@matthewSorensen您可以从我的一个 YouTube 视频中找到一个很好的解释,但简而言之,RC 发生器只是一个 100 欧姆电阻器,用于限制电源的最大功率,而 0.47 uF 电容器与间隙并联。具有 PWM 脉冲控制的较新版本有 8 个并联电阻,可选择继电器以获得最大电流,PWM 脉冲控制一个 MOSFET,该 MOSFET 以 50 kHz 和可调节占空比(50% 是一个很好的起点)摆弄)。 @chamnit,哇,这两个人的工作量真是太棒了!我检查了图表选项卡,稍后必须返回,但似乎那里有一些叉子。我让你了解核心问题,所以基本上我可以尝试创建一个新的 grbl 分支以包含某种反馈循环并在此处引用它,以便它显示为“姐妹”项目? 现在,我刚刚从这里和那里阅读了 grbl 的源代码,看看它做了什么,即使编程比我的水平高一两个级别,它也非常简单,但是一切如何联系在一起的大图是还是有点缺。有点像想知道我是否可以在步进算法中插入“等到电压良好”的一段代码,或者它是否会完全搞砸。 |
它与THC(等离子切割机)基本相同。 |
@JaakkoFagerlund: 相当。但是,它保持了开源项目中经常缺少的一定水平的代码质量(它们通常会变成拼凑而成的代码)。正如您所说,代码看起来非常简单,但看似简单。最难做的事情就是把事情复杂化,让它看起来简单。如果没有严格的监督,作为一个系统很难做到。 为了帮助保持较低的工作量,我会不时审查已修补新功能的分叉或有趣的拉取请求,以了解该功能的要求。然后,我将研究以可持续且易于理解的正确方式集成到 Grbl 系统中。 至于 EDM 版本,看看安装闭环控制需要什么并没有什么坏处。其他人和我自己可以将这项工作作为推进这个想法的基础。这就是研究的工作方式。失败与成功同样重要。它通常会带来深刻的见解,并使理解水平更接近目标。 |
@cri-s: 基本上是的,跟随电压信号。我进行了一些搜索,但对现有解决方案一无所知。因此,电压良好信号必须以某种方式集成到运动中。与 THC 完全不同的唯一问题是,如果电压过低时间过长,机器可以/应该退出切割。基本上反向运行G代码文件,直到短路清除。 我不太明白设置分步器的目的或想法是什么?为什么你不能只是慢一点,而不是分步走快一点? @chamnit:如此真实,补丁上没有意大利面条或 MacGyver 补丁补丁。我一直在看代码,慢慢地它开始变得有意义,特别是因为我在 Google 上找到了某人的博客文章,解释了 grbl v0.8 的内部工作原理。因此,G 代码解释器和通信、环形缓冲区、运动规划器,然后在后台勾选一个用于步进电机的计时器。我认为这个核心功能与以前的版本没有太大变化? 没错,总是让我想起爱迪生……“我没有失败 2000 次,我只是想出了 2000 种不起作用的方法”:) 我想我会开始为 grbl 制作一个硬件包装器(基本上第二个Arduino)并尝试让机器以这种方式工作。如果这可行,那么只需弄清楚如何在可能的情况下将其直接实现到 grbl 中。可能是 UNO 没有为这个应用程序削减它,但必须将 grbl 移植到 MEGA。应该很容易,只需根据需要更改端口、位号和引脚即可满足所有引脚要求。 |
@JaakkoFagerlund: 整体功能差别不大。在 v0.9 中,在规划器和步骤执行之间引入了一个中间步骤缓冲区。大多数改进都是基于稳定性和性能的。仅供参考,Grbl 确实“非正式地”支持 Mega2560。引脚有点不同,但它有效。 |
如果您有 grbl 盾牌并想使用 Mega,请参阅这篇文章#390 |
@chamnit:你有任何关于我可以多快向进给保持和循环启动输入引脚发送脉冲的信息吗?目前我有一个 Arduino Pro Mini 配置为观察火花间隙电压,如果它高于设定点,它将循环开始拉低 5 微秒,然后再次返回高电平。如果间隙电压低于设定值,它对进给保持输入执行相同的操作。 通过发送 G1X50F50 之类的东西进行初始测试,然后用另一个电位器模拟间隙信号似乎很有希望,grbl 立即停止(嗯,以 1000 mm/s² 减速),然后在模拟信号再次变得足够高时恢复。但是,当前设置点没有滞后,所以每隔一段时间,grbl 似乎会以某种方式挂断并坐在那里,没有任何反应。我想它不喜欢这两个输入引脚的开关速率太高? 我真的不得不说谢谢你为 grbl 编写代码,它在做它应该做的事情时真是太棒了:) 我强奸它的方式看起来很残忍,真的真的很想看到一个闭环控制版本(模拟)输入信号。我可以编写一个代码,正如我在 YouTube 视频中使用的先前控制器版本所证明的那样,但它缺乏所有加速功能,因此即使在 G0 移动期间也必须非常缓慢地驱动。 但最起码想听听这两个输入引脚以及我必须发送多长时间的脉冲以及在不让 grbl 发疯的情况下我能以多快的速度切换它们:) |
好消息,这件事现在工作得很好:) 刚刚用 grbl 和前面提到的 Arduino Pro Mini 在 2 mm 铝板上做了一个简单的 X 轴切割,根据间隙电压信号粗暴地敲击进给保持和循环启动输入。我向 grbl 发送了 G1 X-20 F30 命令,它愉快地开始切割并保持相当稳定的间隙(+-10 V)电压,即使我没有对间隙信号进行任何过滤。不知道切割的实际速度,但它远低于我要求它去的 F30,所以它有效!:D 现在我要愉快地睡觉了,将开始围绕 grbl 控制器开发这个“解决方法”,希望我也能够弄清楚为什么 grbl 有时会挂起?它只是停止,说“QUEUE”,但没有任何反应,甚至没有软复位。@chamnit如果您对可能发生这种挂起的位置有任何想法,任何提示将不胜感激,因为您最熟悉代码流和结构。我所能描述的是,有些点 grbl 什么也没做,只在 UGS 屏幕上说“QUEUE”,我必须从 grbl Arduino 板复位开关进行硬复位。这种情况很可能是由于将那些进给保持和循环引脚不断拉低(不寻常地),连续脉冲之间只有大约 100 微秒的延迟(由我人为制造)。 也许我应该在我的代码中包含一些状态信息,以便它在已经处于进给保持模式时不会拉动进给保持,并且与循环开始相同。 |
我想我知道你的悬挂来自哪里:它在某个引脚或其他引脚上的 ESD。我猜你在 EDM 设置中有很多。 |
@JaakkoFagerlund:您可能会通过非常用力地按住提要来发现错误。一般来说,重构状态机是一个高优先级,因为此时它有点拼凑起来。我会确保在处理它时寻找错误。 后来,当我找到时间时,进给倍率将安装到 Grbl 中。也许这将是一个更好的控制工具,您可以在其中即时调整速度,而不是不断地强制保持和恢复。 |
@jgeisler0303:“邻居们好,请举手,因为今晚 Discharge-A-Lot 先生在家里!!!” 是的,这可能是一回事,虽然在 EDM’ing 期间没有发生挂断,但它是在没有打开发电机的测试期间发生的。但这仍然可能是干扰,因为我有一台运行 UGS 的笔记本电脑,连接到 Arduino 的屏蔽 USB 电缆,Arduino 坐在长凳上,那些脆弱的廉价快速原型板连接器线从 Arduino 跳到第二个 Arduino 并且其中一些经过步进器电机控制器。当我为所有这些构建实际案例并将适当的星形接地到位并将所有控制信号从电源信号路由走时,必须稍后对其进行整理。 @chamnit: 也许,时间会证明这是一个错误还是我只是把它推得太远了。基本上,我在设置中只有非常高的加速度(500-1000 mm/s²)和相当适中的进给速度(最大 200 mm/min),而在切割时,我给出的进给速度可能低于 30-50 mm/min。当我测试 grbl 时,我设置了慢速加速并将其移动很长一段距离,然后手动将进给保持和循环启动销切换到地面,以观察它是否在循环再次启动之前进给保持静止。高兴地发现,进给保持(减速)期间的循环启动会像以前一样重新启动步进顺序,这意味着它会加速到设定的速度。 我将不得不在我的第二个 Arduino 上尝试馈送保持和循环启动锁定,这样它就不会连续发送它们,而是在需要时只发送一次,所以 grbl 可能会更高兴一点。我还将尝试看看当我更改程序中的微秒延迟时会发生什么,因为我把它放在那里只是因为 grbl 有时间在获取下一个命令之前将事物处理到“稳定”状态。这是命令的初始进给率、发电机功率设置、所需间隙和加速度值之间的平衡行为。发出进给保持的延迟越多,火花间隙短路的可能性就越大。 顺便说一句@chamnit提出了一个问题:在 grbl 代码中有一行写着“最小进给率”,默认为 1 毫米/分钟,如果这个值更小,则会出现一些问题的警告。这会带来哪些问题,因为在许多情况下,EDM 往往比这慢(厚工件、低功率设置、冲洗不良等)?多少太低了,我可以在那里输入每分钟 0.1 毫米或 0.05 毫米的速度吗?如果它与我的问题相关,请提醒一下,EDM 不需要快速急流或快速进给速度,因为静水压力开始在可实现的运动速度中发挥重要作用。 进给率覆盖会很棒,最好的当然是模拟电压输入,但我不知道这是否会给其余代码带来任何问题。我只知道它需要一些时间来进行转换,但我记得它发生在后台并在完成时设置一些标志或中断或其他东西? 如果这最终会出现在 grbl(或 grblEDM)中,我建议从第 156 页开始查看http://content.heidenhain.de/doku/oma_controls/CD2/tnc/406_416/gb/thb416.pdf页,尤其是进给率图与(间隙)电压。基本上机器以设定的自由运行进给速率运行,直到电压达到上限阈值,然后切换到可设定的较慢进给速率,然后更接近设定的电压点,甚至更小进给速率或接近零。机器通常有一个伺服速度控制电位器或一个数据表设置,它给出了这些进给率值乘以的百分比,因此用户可以走得更慢但保持设定点值。 我希望我能对编码有所帮助,但我担心我的才能介于 C++/Arduino 之间,而指针是路边的那些箭头,指示要走的路;)我非常希望会有一个 grbl例如使用模拟电压输入和某种 P(ID) 回路控制 2/3/4 轴(线)EDM 回控制,更不用说除 EDM 之外的其他任何地方都不需要的功能——从在短路的情况下切断设定的距离。 至少 EDm 版本会很容易,因为它不需要太多提前刨,因为它很慢,所有定位快速运动都可以直线前进,停止,然后继续下一个方向。我不确定这是否对编码有很大帮助,但至少它会释放 AVR 芯片上的内存,因为不需要规划器块,只需要当前和下一条路径所需的步骤段(我相信)。 |
@JaakkoFagerlund,请参阅#432了解最小进给率背后的原因。本质上,如果移动太慢,浮点四舍五入将其修整为零并且系统挂起。具体 |
@ashelly和@JaakkoFagerlund:据我回忆,问题不在于 在当时和当前配置默认值下,我计算出0.1 mm/min 是绝对下限(设置为 1.0mm/min 有余量)和 Grbl 将用于可预见的 CNC 机器的实际下限。有了 EDM,这显然会改变。 我可以将其添加到要调查的事项列表中,但它应该可以通过一些编码来检查和解释异常情况。现在,您可以尝试将 ACCELERATION_TICKS_PER_SECOND 设置降低到 50-60 之类的值,这将按 |
这个项目是开源的吗? |
您必须联系 Heidenhain 以获取该文件,他们删除了他们的手册。 |
海德汉是谁?有联系方式吗? |
JaakkoFagerlund plz uplod adreno Mega code under gnu gpl.. |
JaakkoFagerlund 我喜欢你的思维方式,我的想法与探测进给保持和循环启动以控制编程的想法完全相同。幸运的是,在我想到这一点的那一刻,我偶然发现了你的帖子。你玩过v1.1吗?现在有进给率覆盖,但是我只是看了这个,还没有找到控制它的方法。看起来您需要向您的 gcode 发送者提供某种反馈,以便它向 grbl 发送适当的命令。不幸的是,它看起来不像是一个简单的模拟信号输入。我真希望我有一个电火花线切割机来和你一起测试。 |
进料保持和循环启动程序还有更多的运气吗?在您的辅助 arduino 中添加一个计数器和计时器非常容易,以便在它发送进给保持或循环启动信号时基本上将其发送到一个定时循环中,并强制它在该定时循环完成之前不发送任何信号。同样在该循环中,您可以在每次成功完成该循环时创建一个辅助计数器。您可以监控该计数器并修改您的初始进给率(更慢或更快),直到该计数器在测试切割中达到特定值。这可以帮助您针对给定的材料/厚度优化系统 |
@moulikgajjarHeidenhain 是欧洲的一家商业 CNC 控制器制造商,以其精密测量系统、对话式编程 CNC 控制器和出色的服务而闻名。但是,如果他们从网上提取了服务手册,那么您必须直接与他们联系。谷歌是你最好的朋友。 @zagmongor不,还没有检查最新版本,因为我正忙于编写我自己的控制器,该控制器面向线 EDM 使用,并且不受限制,因为这个 grbl 是在输入和输出的意义上。制作一个单独的控制器比尝试编写 grbl 代码或尝试解决其局限性要容易得多。 |
@zagmongor另外,我不使用 grbl 的原因之一是我需要比它提供的更多的轴。这就是为什么我自己的系统可以进行 8 轴同步运动 (XYUVWABC),因此几乎可以构建或扩展任何类型的 EDM。 |
亚科法格隆德 评论 on 11 Jan 2015
介绍
我是一名专业的芬兰工具和模具制造商,几乎每天都在工作中使用放电加工机 (EDM)。在空闲时间,我将加工作为一种爱好,并在工作中使用机器为自己制造东西。在过去的几年里,我完全从零开始构建了一个工作线 EDM 系统,它目前作为一个带有 Arduino MEGA 2560 R3 板的独立系统运行。我使用的唯一部分 grbl 是一些早期 grbl 版本的 G 代码解释器,并进行了我自己的运动控制。
要查看有关电火花线切割系统及其使用、机械和电子设备的视频和说明,请访问我的 YouTube 频道http://www.youtube.com/TheWireEDM,因为这些视频将回答我通常遇到的大部分问题。
典型的电火花加工功能
由于切割过程是非接触式的,因此运动部件几乎没有阻力。因此,唯一的摩擦来自驱动部件本身。典型的火花隙尺寸,即工件和电极之间的距离,约为 0.02 至 0.1 毫米,具体取决于许多变量。
电火花放电加工机
最简单的电火花放电加工机是单轴机床,只有 Z 轴在 CNC 控制下移动。更复杂的机器具有基本的 XYZ 配置,下一步是 4 轴机器,通常具有 C 轴,以便可以旋转电极。
沉降片的常见特征是液压或静压冲洗,其中电极周期性地上下“泵送”以更好地冲洗间隙。该缩回量和间隔时间通常是可选择的,并且移动通常以快速移动完成。尽管有足够大的电极表面积,但在流体下的力可能会变得如此之大,以至于不可能快速移动。
电火花钻
一种特殊情况是电火花加工机,其作用类似于单轴沉降片电火花加工机。Z 轴运动一个不断旋转 (0-300 rpm) 的管状电极,用于在工件上钻小孔 (0.1-6 mm)。通常的用例是电火花线切割的起始孔。
电火花线切割
最简单的线切割 EDM 是 2 轴机床,XY 由 CNC 控制,Z 轴(上线导轨)根据工件厚度手动定位。下一步是具有 XYUV 的 4 轴版本,因此可以完成锥形特征。
切割时机床进给速度在 0-20 毫米/分钟(电火花放电加工机)和 0-50 毫米/分钟(电火花线切割)范围内,因此速度/加速度不会突然变化。只有 G0 命令需要适当的加速度,因为它们用于快速从一个地方移动到另一个地方,并假设在这样的移动过程中没有进行切割。
火花发生器
典型沉降片的开隙电压在 100-200 VDC 范围内,而电火花线切割机的开隙电压为 100 VDC。典型的火花间隙电压在 30-70 VDC 之间,具体取决于电极尺寸、首选间隙尺寸、精加工/粗加工等。对于沉降片 EDM,典型的平均电流为 0 到几十安培,而在线 EDM 上平均电流为 0-6 A(脉冲电流可超过 1000 A)。
火花发生器是 RC 型自振荡系统或 PWM 脉冲控制电源。RC 类型是最容易构建和使用的,但更改 R 和 C 值以获得不同的加工参数需要大量的开关(数字或机械),当然还有零件。使用脉冲型发生器系统,通过改变输出的频率和占空比并使用一组固定值电阻器(简单)或可调有源电流限制(复杂)控制最大输出电流,可以轻松更改参数.
介电液
这些机器有某种介电流体,用泵通过过滤器循环。它用于冲洗被侵蚀的颗粒并保持一切凉爽。在电火花放电加工机中,这通常是一种重量非常轻的特殊油。
但在线 EDM 上最常用的电介质是水。这带来了一个问题,因为侵蚀的颗粒随着时间的推移使水导电。这就是为什么在线 EDM 中有一个水处理系统,其中另一个泵用于将过滤后的水泵送通过去离子树脂以去除电导率。该电导率由 EC 仪表监控,控制器试图将读数保持在 10-50 uS/cm 之间。
电火花行为
简而言之,EDM 系统不断观察火花隙电压,如果它高于设定值,它会将电极推向工件。当电压低于所需的设定点电压时,它进入馈电保持状态,直到电压再次上升到足够高。如果电压过低(即短路),机器将从切割中退出,直到电压回升到所需的限制,或者如果达到最大缩回距离(完全出错)则出错。
因此,EDM 是一种过程控制的加工情况,在这种情况下,您不能仅仅以恒定的速度进给它并感到高兴。它要么会导致短路,要么会比它可能的速度慢得多。并且由于 EDM 的启动速度很慢,这并不好,尤其是这种开关火花会由于不稳定的燃烧而导致切割条件不佳。因此,运动至少需要一个来自间隙电压的 P(ID) 回路。
在我自己的原始机器中,这样做是为了在步进电机前一步,机器检查间隙电压。如果还不够高,它就等到它高了,然后才迈出一步。这使我的电火花线切割加工以 30 毫米/分钟的速度接近工件,当火花开始时,它基本上减慢到一个完美的速度,即腐蚀过程规定的速度。
现有解决方案
几乎没有。我见过由爱好人群完成的 5 或 6 线 EDM,无数的沉降片 EDM,而不是单个电钻 EDM。所有这些都使用了不同程度的软件解决方案和不同的硬件。除了我制作的那个之外,线材 EDM 系统基本上没有任何好的运动控制器,除非你算上不是开源且也不是为 EDM 使用而设计的专有系统。
此刻的意图
在阅读了当前(v0.9)版本的 grbl 支持进给保持和循环启动输入之后,我倾向于使用 grbl 控制器设置和测试我的线切割机。在机器和 grbl 控制器之间我只需要一个小电路来观察火花间隙电压并根据该值控制 grbl 输入引脚。
问题和可能的解决方案
建议
由于与传统加工相比,EDM 的行为和控制方式完全不同,我建议开发一个与实际 grbl 分开的“grblEDM”分支。不同之处在于 grblEDM 将是一个过程控制的控制器,具有反转方向的可能性。大多数运动控制规划器都不需要,因为侵蚀运动是如此缓慢,以至于它们可以在运行中计算出来。只有快速移动是 G0 急流来定位机器,因为该条件假定没有切割发生。
我准备帮助开发这个系统,因为我在机械、电子、CNC 工作方面拥有技能,并且也可以编写足够多的代码,但没有达到 grbl 的水平,这不包括修改 grbl,因为我不太充分了解其内部工作原理。我也不知道 github 存储库如何工作或应该如何使用它们,因为大多数事物的名称对我来说并不熟悉(语言不是问题,但对多编码器项目和存储库的了解有限)。
我也有这样做的动力,因为我家里已经有一个电火花线切割机可以玩,如果需要的话,我还可以使用沉降片和钻孔电火花机进行测试(非常简单,作为电火花线切割机框架的附加物进行测试)。如有必要,我还可以访问 MasterCAM 3D 许可证以生成各种零件的测试工具路径。
我很想听到 grbl 开发团队关于这整个事情的回复,并想参与讨论这件事的可能性。可以通过这里联系我,也可以通过我的个人资料中显示的电子邮件地址最快联系我。
我希望看到可能的 grblEDM 是在 GPL 下保持开源社区和活动不受限制地蓬勃发展:)
TL;博士
这不是您正在寻找的项目;)
奥特罗
感谢您抽出宝贵时间,并希望听到开发团队和其他人对此主题的反馈。也欢迎提出想法,尽管它们是获得反馈后的下一步。
Jaakko Fagerlund
工具和模具制造商