注释
嗨朋友 我一直忘记你们现在正在使用更大更好的处理器 – 我仍然坚持使用我的 UNO。在 mega 上,可以分配任何数量的输入引脚,并且可以将条件累积到警报消息中,而不是发送警报:mot1,mot2 等我们只是选择了警报(二进制编码的十进制数,它是位加权的引脚被触发) 例如,ALARM:4 实际上是 00100000,因此设备 4 已触发(软件应列出让 GRBL 完成其工作的警报)。当您重新启动并发送 HOME 命令时,很明显哪个电机已经死了,它将死掉。另一方面,如果电机过热并发出警报,你最终会整天追着尾巴走,sods law 说,当你重新启动机器时,警报会清除,但会再次过热。 |
出于多种原因,我不喜欢用于驱动器故障的复位引脚。随着我对这些驱动器的了解越来越多,我改变了对如何处理它们的看法。 驱动器故障需要传回给控制软件,进而传回给用户,但也必须以特定方式进行处理。驱动器故障表示轴驱动器已超出位置误差跟随限制。这就是它的全部意思。这并不意味着存在严重的紧急情况。将其作为紧急停止处理(重置会执行)可能会导致更多问题。驱动器故障需要的是可控停止,使主轴保持运行,以免在切削过程中损坏刀具或使刀具停转。 理想情况下,也是我启动此线程的原因,我们将有一个可以在其响应中自定义的故障输入。例如,我认为理想的做法是停止轴,一旦轴停止,延迟几秒钟,然后关闭主轴和冷却液。也许用户可以自定义轴停止和主轴停止之间的延迟时间,以及是否停止主轴和/或冷却液。 我不认为复位不能用于此,因为一旦调用复位,主轴就会停止,并且驱动电机会以不受控制的方式停止。此外,控制器软件需要知道驱动器故障和复位之间的区别。在这台机器上,我计划使用连接到外部按钮的复位引脚,因此控制软件无法知道我按下按钮和驱动器故障之间的区别。因为我没有在这台机器上使用安全门功能,所以我可以使用这个引脚作为驱动器故障输入,这有助于安全门功能与我认为在驱动器故障情况下应该做的事情非常匹配,但它可能会更好如果它是可定制的。 虽然每个轴都有多个引脚,因此您知道哪个轴有问题可能对其他情况有帮助,但我不需要此功能,因为我的驱动器显示故障,因此我可以通过查看驱动器。在驱动器重新上电之前无法清除驱动器上的故障,因此不会是幻影故障。 |
我理解你关于主轴停止和保存刀具的观点,我认为实际上电机会丢失步骤并且 grbl 会发送电机可能试图执行的命令。我是根据我刚刚的经验说的,我的 Z 电机没有足够的保持力矩来将工具保持在高处,这让工具可以挖掘 – 幸运的是我的主轴是皮带驱动的,所以它打滑了工具咆哮起来。所有的电机最终都因卡住而失速,但也有过热保护。该工具是一体的,虽然它更钝了。我认为,如果您错过任何步骤,不将其视为紧急情况并不是一个好举动(没有双关语意)。然而,安全停车更有意义——需要触发警报,因为坐标系现在将失去平衡(我们错过了步骤)。在大多数情况下,除非卡住,否则主轴将进入自由运行(停止状态)并逐渐下降至停止,具体取决于是否使用直流制动注入。 |
处于故障模式的电机将不会尝试任何操作,因为它将被禁用,并且 GUI 程序的故障检测部分会关闭其他所有内容
我们可以同意不同意。我的驱动器会出现 0.05″ 的跟随误差。一个轴偏离位置 0.05″ 本身并不意味着紧急情况,我实施故障检测的全部目的是在它上升到紧急情况之前停止事情。 想象一下钻一个孔并且进给率有点太高。允许主轴在故障发生后继续运行将允许钻头清洁孔而不会损坏零件、工具或机器。立即停止会使工具埋入零件中,而钻头的切削刃仍嵌入金属中。根据情况,这可能会导致工具损坏或零件损坏。这只是一种情况,但我可以想出很多情况,在这些情况下,允许受控停止会更好。 |
你提出的观点很好,在辩论中肯定有其价值。很明显,grbl 的用户会从这样的安全功能中受益,而且我们肯定已经很好地了解了我们对这种功能的意图的两种立场。我敢肯定,在修改代码和添加其他功能方面,我们的共同努力会受到好评。 |
我对将来可以实现的功能有一个建议。现在我有一个解决方法,我也将描述它。
所以,这就是问题所在。我目前正在将一台新的铣床转换为 CNC,并且我正在使用闭环步进驱动器。驱动器和电机之间的环路是闭合的,因此对于 Grbl 或任何其他控制器,所需要的只是步进和方向,就像任何其他步进器一样。然而,驱动器也有一个引脚可以通知控制器跟随错误故障。如果一个驱动器出现故障,它会停止该电机的运动,但其他轴仍然可以正常运行,因此必须将故障反馈给控制器,以便控制器可以停止其他轴。
现在我将使用 Grbl 已有的安全门功能来实现这一点,我认为它应该可以正常工作,因为它会暂停所有轴上的运动,但它可能会更好,我将在下面讨论。我最终打算改变的唯一一件事是向计算机报告的消息(即:“门:”到“故障:”,“检查门”到“驱动器故障”等)
这些闭环驱动器的价格越来越低,并且会变得越来越普遍。出于这个原因,我认为使用一个/多个专用引脚来进行此故障检测是明智的。
至于如何以比安全门销更好的方式实现这一点,我认为上述实现中缺少一些东西。
将所有驱动器故障引脚连接到 Grbl 的一个输入是可行的,但这意味着操作员只知道驱动器发生故障但不知道是哪一个。驱动器本身会显示故障状态,但一旦机器完成,驱动器将位于机柜中,需要打开机柜才能查看哪个驱动器出现故障。知道哪个驱动器发生故障很重要,因为如果驱动器发生故障就会出现问题,并且知道要查看哪个轴将有助于首先解决导致故障的问题。
安全门功能实际上是一种保留交易类型。当出现驱动器故障时,真正应该发生的是发出警报,如果启用了归位,则应要求恢复归位。然而,使用安全门确实可以满足立即停止所有轴运动的需要。
从 Grbl 发送回用户界面的消息应该反映实际发生的情况。例如,如果每个轴都有单独的故障引脚,则可能会出现诸如“ALARM:Drive Fault Y”之类的警报消息,状态报告显示机器状态为“Fault:Y”。可以相应地实施其他消息。
为此使用安全门输入意味着它不再可用于门。对我来说这不是问题,因为无论如何我都不打算拥有它,但我知道其他人确实需要安全门输入。
谢谢。
约翰布兰南