注释
|
@109JB: 帖子很长,所以我可能漏掉了一些具体的要点,但是,是的,使用另一个电机绝对是一种实现主轴同步的方法。这个想法并不新鲜,但这个概念的主要问题是每次需要进行螺纹操作时都必须拆下普通主轴并连接伺服/步进器。IMO,最好有一个主轴编码器,它可以为 Grbl 提供主轴角位置和速率。Grbl 只需要按时开始运动。另外,您的主轴电机通常更强大,应该提供足够的扭矩来通过外部电机进行螺纹操作。 |
|
我不是在谈论主轴上有 2 个电机,而是一个伺服电机。在 2 种模式下使用电机。第一种模式作为同步运动的伺服。在所有其他时候只是一个电机,但仍然使用伺服驱动器来控制它。Grbl 只需要知道将其作为与其他轴同步的伺服驱动器来驱动,或者仅在将其用作电机时向其发送适合 rpm 的恒定脉冲流。 |
|
@109JB:好的,你想要一个单独的闭环 MCU 用于电机主轴,输入是 Grbl 的步进脉冲。那是可行的。如果我还记得的话,这是大多数专业 CNC 控制器在其大型机器上使用的方法。虽然成本更高,但这使主 CNC 控制器独立于各种伺服系统,其中每个伺服控制器都专门针对它负责的电机进行了调整。 闭环控制可能非常棘手,因为您必须对反馈回路进行数值调整以提高性能并避免数值谐波。这始终是一种平衡行为。要求 Grbl 处理这个在 AVR 上太过分了,但我确信可以编程一个单独的 Arduino Nano 来做这个。 长话短说,是的,你可以做到这一点。是的,这可能是对刚性攻丝等精密事物进行伺服/主轴同步支持的方式。至于使用螺纹刀具的普通螺纹加工,主轴编码器就足够了。您需要做的就是按时开始动作。 |
|
闭环控制将完全由 Gecko 伺服驱动器处理。这是一种可在驱动器内关闭伺服环路的市售驱动器。Grbl 会将主轴伺服视为与其他轴一样只是另一个步进驱动电机 |
|
对此做了什么吗?我得到一台需要 Windows 98 PC 的小型 CNC 车床。我想摆脱旧 PC 并使用 GRBL 运行它。我知道目前的车床在主轴上有一个编码器,因为它目前可以用旧的 windows 98 PC 进行螺纹加工。 谢谢! |
|
没有。一直在忙别的事情,连这个都没机会看。项目太多。时间太少了。 |
|
我在主轴上放了一个 Nema23 (2 Nm) 步进器。使用杠杆,我可以在步进电机或原装主轴电机之间切换。这适用于螺纹,但在螺纹较大时,由于步进器的“小”扭矩,切口需要很小。 |
|
连续主轴运行:只需大约 5 美元,就可以获得一个以可编程速率和可编程占空比生成脉冲的模块。DPDT 开关将选择 grbl 或模块控制,使用步进和方向引线。方向通常是硬连线的“向前”运动。假设您的步进器足够坚固,能够在所需速度下提供足够的扭矩 |
|
更多主轴控制想法:XY-LPWM |
|
您可以使用冷却剂或喷雾针来控制(启用)主轴步进器。 如果它只是用于线程,为什么不使用grbl-L-mega或grblHAL |
|
谢谢,我试试看/mark |


我一直在考虑缺乏主轴同步的问题,因为它与车床操作有关,我想我至少对小型车床有一个想法。我有一个 9 x 20 车床,我还有一个多余的直流电机,我打算将其用于主轴驱动。如果我要在电机上添加一个编码器并使用 Gecko G320X 等伺服驱动器驱动它,GRBL 会将电机视为另一个步进/方向电机,如步进电机。所有的编码器和伺服反馈控制都在 Gecko 驱动器内部。然后可以使用同步带驱动将电机挂到主轴上,以便电机位置可以与主轴位置相关联。由于 GRBL 只有 3 轴,普通车床的 X 轴和 Z 轴将占用两个可用轴,留下第三个可用轴通过 Gecko 驱动器控制主轴电机。由于电机将被视为只是另一个轴,因此可以进行协调运动,从而允许车床螺纹加工。问题是如何在 GRBL 中实现这一点。
例如对于车床,假设您将主轴设置为 Y 轴,距离为 1 英寸,对应于主轴旋转一圈。G1 z-1 y10 的 G91 命令将提供每英寸 10 个螺纹的移动类型。但这不是车床螺纹通常编程的方式,并且不考虑您希望主轴以设定的 rpm 连续运行的非螺纹使用。
这也可以以类似的方式应用于铣削主轴同步,允许刚性攻丝,但需要第四个“轴”。
我认为使用伺服驱动主轴可以提供一种方式来整合主轴同步,这可能比将编码器和索引脉冲安装到主轴更容易,GRBL 必须监控和调整其他轴。主轴上的伺服驱动器会进行调整以跟上速度,而不是由于主轴速度波动而必须让 GRBL 调整其他轴。
我认为应该可以让 GUI 界面处理 GRBL 的大部分繁重工作,只需通过跟踪发送给驱动程序的步进脉冲数来跟踪主轴位置。然后,GUI 可以转换任何类型的罐装将螺纹循环转化为一系列 G1 协调运动命令。例如。对于这个 G33 线程代码片段:
G90(绝对距离模式)
G0 X1 Z0.1(快速到位)
S100 M3(开始主轴车削)
G33 Z-2 K0.125(以每转 0.125 的速度将 Z 轴移动到 -2)
G0 X1.25 (快速移动工具离开工作)
Z0.1 (快速移动到起始 Z 位置)
M2 (结束程序)
gui 可以很容易地计算出 Z 轴必须总共移动 2.1 英寸,并且 K 值为 0.125,则主轴需要旋转 2.1/0.125=16.8 圈。如果设置为 1 单位 = 1 转,要从主轴中获得 300 rpm 的转速,发送到 GRBL 的进给率必须考虑 Z 轴行程。因此,发送到 GRBL 的进给率为 (300/16.8)*(16.8^2_2.1^2)^0.5=302.33 IPM,螺纹将被切割。GRBL 只会看到 G1 F302 Z-2 Y16.8,其中 Y 是主轴伺服。我使用 G33 是因为它易于说明。对于此示例,您必须在行程结束时提供螺纹退刀槽,因为在此示例中主轴将在切割结束时停止。
我唯一不确定的是,对于非螺纹命令,您将如何保持主轴转动。也许是一个简单的二进制变量,grbl 使用它来了解当时的意图是否是同步运动。或者在 GRBL 中实现 G33,它与 G01 完全相同,只是使用它告诉 GRBL 将 M3/M4 SXXX 命令转换为同步运动。然后,GUI 可以通过将 G76 命令转换为 GRBL 处理的一系列 G01、G00 和 G33 命令来处理其他固定循环,例如 G76。
只是想我会把它扔在那里作为实现主轴同步的可能更简单的方法。上面的大部分内容只是在考虑这个问题时漫无边际。这样的事情可能吗?