注释
|
@timothy-godfrey: 不好意思回复晚了。这个问题线程没有引起我的注意。这几乎看起来像是机器传动系统中的一些慢速/反冲,但很难判断,因为您在一个方向上运行所有东西。速度和/或方向如何改变这一点? |
|
@chamnit不用担心迟到的答复。对我来说,它已经被搁置了;也很抱歉我的回复太慢了。我将重做一些以交替方向和不同速度切割的测试,并发布结果。 |
|
你好@chamnit. 只是一个友好的碰撞,以防我对问题的更新没有引起您的注意。期待您的意见,谢谢! |
|
@timothy-godfrey: 感谢您的友好碰撞。我会尽快调查。在过去的几周里,我的日常工作变得出乎意料地疯狂。 |
|
我有同样的问题。我的显示更多,因为我有更高的进给率。我正在以 50,000 毫米/分钟的速度运行蚀刻作业,并进行 20 毫米的过扫描以排除加速问题,并且我在从左到右的线条和从右到左的线条之间有 6 毫米的间隔。激光发射和电机移动之间似乎有一些延迟。如果我的数学是正确的,激光似乎会在 7 毫秒内发射电机命令的头部。 |
|
@PhysicsAnonymous: 只是澄清一下。您正在运行 Grbl-LPC,因此您的案例可能涉及其他内容。不管怎样,我注意到你和@timothy-godfrey正在使用 M3 命令。你M4的时候有什么区别吗? 编辑:@PhysicsAnonymous把你和另一个与激光计时相关的类似问题搞混了,但问题是一样的。M3和M4有什么区别吗? |
|
@timothy-godfrey: 关于改变 PWM 关闭值,我认为这是一个错误。主轴关闭时,主轴 PWM 输出自动关闭。这导致 0V 输出。除了将它推到下一个主要版本之外,目前还不确定该怎么做,因为它可能会改变某些东西在现有机器上的工作方式。它可以打开一个更大的蠕虫罐头。 |
|
@timothy-godfrey: 你能告诉我在每个轴上运行相同的作业时是否会出现相同的计时错误吗?如果它是 Grbl,它应该以相同的速度显示相同的错误。如果不是,则可能是其他原因。 |
|
@chamnit @timothy-godfrey这里只有我的 2 美分。我在使用中国 K40 激光器时遇到了与此类似的问题。我发现步进电机驱动器有延迟。我用质量更高的驱动程序替换了便宜的驱动程序,问题就消失了。我与控制器本身无关。只是值得深思。 |
|
@chamnit很抱歉让您混淆了多个线程。我刚看到有人和我有同样的问题,我想我会确保他知道他并不孤单;)确实我正在运行 GTBL-LPC,所以这可能是另一个问题。我也用 M3 和 M4 试过,结果相同。 @timothy-godfrey你的问题看起来像这样吗? |
|
@timothy-godfrey: 供参考。我对 Grbl 的 AVR 版本进行了计步器测试。测试包括在无动力的情况下移动 X+20,在全主轴下移动 X+100,在无动力的情况下移动 X+20,在无动力的情况下移动 X+100,以及另一个 X+20。然后反转。速度范围为 5000 至 40,000 毫米/分钟。 我发现无论速度如何,主轴信号都在相同的步数上被触发和关闭。 这是针对标准 Grbl 构建的。除了使用非线性拟合代码外,您还需要告诉我您启用的任何其他构建选项,以便我进行一对一测试。我预计不会有任何问题。 |
|
@mayhem2408感谢您分享您的体验。值得考虑。 @chamnit在另一个轴上运行测试的好建议: 我以 40m/min 的速度运行这些测试,随着测试的进行,进给率或功率没有变化。Y 轴上的误差似乎比 X 轴上的更大,这很有趣,因为我在 X 轴和 Y 轴上确实有不同的驱动程序。考虑到您使用主轴信号触发和步数计数产生可靠结果的测试,也许我的问题不是“早期”激光,而是“晚期”步进电机驱动器(会产生相同的结果)。当我在测试中使用 M4 时,使用相同的主轴速度设置。激光线几乎没有在纸上留下痕迹。 @PhysicsAnonymous我没有做任何雕刻,所以我没有产生像视频中那样的结果。我在扫描线通道的矢量作业中切割共线,所以我得到的错误是我的角没有连接。 |
|
@timothy-godfrey: 很高兴知道。今天早上我还用你的非线性主轴设置重新编译了 Grbl。尽管由于数字输出(而且我很懒,没有连接电容器并重写代码以将 PWM 读取为模拟),我只能在全功率打开的情况下进行测试,但它工作正常。无论速度如何,主轴信号仍然以相同的步数计数。 |
|
弹性皮带传动?所以运动可以根据皮带张紧/放松的方式停止/开始晚/早? |
|
@langwadt: 绝对有这个可能。即使它很紧,皮带也具有相同的刚度,但通常最坏情况下它应该只移动 0.001″ 左右,尤其是在轻型激光机上。消除这个变量的一种方法是确保激光头在移动通过为每次通过添加引入和引出运动,在切割期间以恒定速度。 |
|
我也考虑了皮带张力。我在我的装置上使用了一些非常薄的皮带。但在我的雕刻测试中,我有足够的铅和铅来消除这种可能性。我认为@timothy-godfrey电机驱动器被延迟是正确的。当我从外部驱动程序转到我的 MKS 板上的内置驱动程序时,我得到了显着的改进,但问题仍然存在。@chamnit我认为你也是对的,代码与电机信号同时发出激光发射信号,但电机驱动器需要少量时间来“处理”数据。似乎根据驱动程序的不同,时间也会发生很大的变化。(我计算出我的外部驱动程序大约有 7 毫秒的延迟,而 MKS 板大约有 1 毫秒) 似乎显而易见的答案是建立一个可以为每个电机驱动器调整的延迟变量。据我所知,这对于其他激光软件来说并不少见。 |
|
不幸的是,为步进器或主轴添加准确的时间延迟需要进行大量重构。我可以在以后的版本中记住这一点。 但是,需要对此问题进行某种验证。不知道有没有中继器可以延迟主轴信号给你测试一下。为 Arduino 编写一个是很棘手的,但它是可行的。如果幸运的话,也许已经出版了一本。 对我来说,步进驱动器会有那么大的延迟似乎很奇怪。它应该是微秒而不是毫秒范围。也许它存在于预算中,但不是 Grbl 类型 CNC 上常见的典型 TI 和 Allegro IC 驱动程序。 |
|
只要激光需要延迟(并且时间是 pwm 周期的倍数),就不能简单地通过启用 pwm 定时器的中断来完成,并且有一个短的 ISR 在启用或禁用之前计算周期吗? 毫秒对于任何电子产品来说都是一个时代,但我认为步进电机和硬件的机械带宽处于低 kHz 范围内并不牵强 |
|
关闭这个问题,因为 Grbl 似乎在准时提供激光信号。@PhysicsAnonymous验证引入激光信号延迟程序完全消除了这里的时序问题。这似乎是由预算步进驱动器的响应时间较差引起的。在未来的版本中,我可以考虑添加一个由 Grbl 控制的延迟,但要做到这一点会有点棘手。 如果有更多证据表明情况并非如此,我们可以重新打开它。 |
|
大家好。感谢您分享您的见解。我想为了完整起见,我应该指出我的 Y 轴上的电机驱动器不是经济型步进驱动器,而是 Panasonic Minas 伺服电机和电机驱动器。因此,虽然伺服电机非常精确和强大,但似乎也有一些“适合目的”的考虑因素需要权衡。我的第一个猜测是伺服电机驱动器中有一些数字滤波增加了延迟。在 40m/min 下大约 1mm 的距离误差相当于大约 1.5ms 的时间延迟,这有点大但在可以想象的范围内。X 轴步进驱动器是一个外部高功率模块,因此它也可能针对替代用例(高功率低速)进行了优化; 我将不得不在设置中四处挖掘,看看是否可以减少任何延迟。如果我发现任何有趣的事情,我会发回。 |
|
@timothy-godfrey: 很公平。我将确保在未来版本的开发列表中添加激光延迟,以适应像您这样的电机驱动程序。 |
|
你好@chamnit, 完整性的更多细节。原来我记错了我的激光切割机的细节。X、Y轴采用相同的松下伺服电机和驱动器;Z 轴是带有不同外部驱动模块的轴。 我确实找到了影响步进电机延迟的设置,并且它为 Y 轴和 X 轴配置了不同的值,这解释了我在测试中获得的不同性能。我将设置调整为零,现在伺服电机和驱动器没有延迟(或至少更少)。 干杯! |








你好!
我正在努力让我的激光切割机在激光模式下以前后“扫描线”刀具路径精确切割,类似于雕刻应用中的运动。不过,我得到了一些令人困惑的结果。在我一直在运行的测试中,激光似乎过早关闭,然后又过早打开。
我在下面附上了一些测试照片。每条线是三个连续的 G1 运动,每个运动长 100mm,主轴以 M3 模式供电,从左到右切割。切割运动使用递增的“s”设置进行编程(我正在查看该行为是否与功率相关),非切割运动使用 S0 命令进行编程。进给速度为 20m/min。垂直线蚀刻在 100mm 和 200mm 作为参考。
主轴设置更改始终为时过早。令人困惑的是,如果激光管的开关频率太低,人们会预料到相反的行为,即切割会(可能,如果激光器有很长的衰减时间)关闭得太晚,并且(更有可能)打开再上来不及了。对可能导致我在测试中遇到的行为的任何见解?
当我一直致力于解决这个问题时,我一直在试验 SPINDLE_PWM_OFF_VALUE,看看它是否会改变开关时序的性能。目前我看不出它有什么不同;无论是在激光切割性能,激光管电流,还是在主轴PWM引脚上用电压表测量。(当然没有改善测试切割中的开关时间)。在具有 G1 运动模式、M3 恒定激光功率模式、S0 的激光模式($32=1)中,激光管电流为 0 mA,而不是我预期获得的~5%(~2 mA)(使用 SPINDLE_PWM_OFF_VALUE 16)。有什么我不明白的吗?
热心接收所有帮助,谢谢!
配置

我已经使用 fit_nonlinear_spindle.py 脚本来校准激光管。校准曲线低于 脚本中的线性拟合(缩放为具有从 0 到 1000 的命令) 脚本中的解决方案(我放入 config.h 和 cpu_map.h)
我还将 SPINDLE_PWM_OFF_VALUE 设置为 16。
我正在使用 grbl 1.1f。我的 grbl 配置是