Contact me: hankecnc@gmail.com

功能请求:个别轴电机禁用 #459

推推 grbl 3年前 (2023-01-30) 269次浏览
打开
bdring 打开了这个问题 2020 年 6 月 29 日 · 10 条评论
 Open

Feature Request: Individual Axes Motor Disable#459

bdring opened this issue on Jun 29, 2020 · 10 comments

注释

功能请求:个别轴电机禁用 #459
所有者

Devt 分支支持发送到每个电机的单独信号以启用/禁用电机。目前,如果有多个信号,它们都会像标准的全局禁用信号一样一起起作用。这只是暂时的,直到有命令来控制它们。

关于这应该如何工作有什么建议吗?如何禁用轴?当一个轴被禁用然后你移动时会发生什么?移动之后会发生什么?它会产生同步丢失警报吗?“步怠速延迟”是如何发挥作用的?

请不要建议 Marlin 或 Reprap 命令。

功能请求:个别轴电机禁用 #459

步进电机是否在禁用时移动到最近的整步位置?

功能请求:个别轴电机禁用 #459
所有者作者

目前,它转到最接近目标的任何微步。如果步空闲延迟小于 255,将在运动停止后的微秒数发生禁用。

功能请求:个别轴电机禁用 #459
所有者作者

一种方法是将$StepperIdleTime与新的$StepperIdleMask设置结合起来。一切都会保持不变,除非$StepperIdleTime过期,只有掩码中的轴会禁用。

如果您更改$StepperIdleMask,它将更改禁用的当前状态,因此它可用于按需禁用轴。所有轴都会像当前一样在每次移动时自动重新启用。

优点是对代码的影响较小,性能与传统 Grbl 相似。

功能请求:个别轴电机禁用 #459
想念 评论了 2020 年 6 月 29 日  

目前,它转到最接近目标的任何微步。

I do not see how the stepper motor will remain at the nearest micro-step position without power. The motor will attempt to allign poles and fall back to the nearest pole pair ( full-step position ) when power is cut. You can feel this motion when turning the shaft by hand.
In this case there is the possibility for some fairly large errors between desired step count and actual step count considering that most applications will be using micro stepping and could then loose almost half the number of steps( micro-steps) as the set number of micro-steps on the driver.
Although this issue is discussing a software solution, I did also find a possible hardware solution to automatically reduce the holding current when a motor is idle.

Around page 5
Various Reference Voltage Driving Techniques for Motor …
https://www.ti.com/lit/sloa170

This should allow the motor to retain its position.
Expanding on the idea we could look at driving the Vref by software controlled DAC, I am not sure which direction would be best.

功能请求:个别轴电机禁用 #459
OwnerAuthor

@ithinkido Most of us know how motors work.

This is how Grbl currently works. Most people do not set $StepperIdleTime to values other than 255. Some machines with lead screws may hold their position. The previous microstep position is resumed once motion starts again.

Some people want to completely disable a motor. This issue is discussing how to do that.

电机类功能是一个单独的主题,可以添加高级功能,如怠速转矩控制和模拟 vref 控制。

功能请求:个别轴电机禁用 #459

当您完全禁用电机时,位置取决于机器。在某些机器上,它可能移动得很少(如果有的话)。在其他情况下,例如滚珠丝杠 Z 轴,主轴可能会掉落到工件或工作台上。当电机被禁用时,用户通常也很容易手动重新定位,而软件无法知道。

考虑到所有这些,谨慎的假设是,当电机被禁用时,位置不再可靠。

功能请求:个别轴电机禁用 #459

这有哪些用例?

功能请求:个别轴电机禁用 #459
所有者作者

人们想要手动移动轴。我自己在皮带驱动机器上做过很多次。

I have also used machines with encoders in manual mode with the axes positions updating.

功能请求:个别轴电机禁用 #459
Collaborator

Here is a concrete proposal for how the user interface for motor disable could work. Note that this does not address the details of position management and machine state, it only addresses that command that you use to tell Grbl to initiate the disabling.

New $ command:

$motor/disable=motor or axis list

motor or axis list is a case-insensitive sequence of letters, digits, or the comma (,) character, interpreted as follows:
If a letter that names an axis is present, every motor involved with that axis is disabled.
If a digit 0-9 is present, that numbered motor is disabled.
If a comma is present, subsequent fields are comma-delimited, making it possible to use two-digit motor numbers.

Motor numbers are defined for individual boards; there is no implied correspondence between motor numbers and axes. In most cases, users will disable by axis. Disabling by motor number is provided for unusual cases.

Here are some examples:

$motor/disable=XZ – 禁用 X 轴和 Z 轴的所有电机
$motor/disable=X4 – 禁用 X 轴的所有电机,以及电机编号 4
$motor/disable=01,10 – 禁用电机 0 、1 和 10
$motor/disable=0,1,10 – 禁用电机 0,1 和 10
$motor/disable=x,y – 禁用 X 轴和 Y 轴的所有电机

功能请求:个别轴电机禁用 #459

电机禁用的另一个用例是双电机轴的手动平方。各种用例是特定于机器的,因此很难一概而论。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
功能请求:个别轴电机禁用 #459功能请求:个别轴电机禁用 #459功能请求:个别轴电机禁用 #459

喜欢 (0)