注释
我喜欢使用 $S 命令来禁用电机的想法。 |
我认为每个拥有 ShapeOko 或任何其他使用 GT2 传送带的系统的人都需要始终开启步进器。所以我认为最好将此设置为默认设置并使用 $ sleep 命令使步进电机在长时间闲置时保持凉爽。 PS:像循环启动命令这样的编译模式选项如何从睡眠中唤醒,而 M2/M30 将其作为自动睡眠选项重新进入睡眠状态?当 grbl 开机时,它默认处于睡眠模式。 |
我希望能够在作业之间禁用电机,我认为 GUI 可以使用的 Grbl 特定睡眠命令是个好主意。 |
我离开那个设置=0,不要发现我的电机只是坐在那里变热。 也许使用“%”是一个不错的选择?一个在文件的顶部,如果最后有一个,则关闭电机。只有最后一个是错误的。 或者使用设置指示 M30 应关闭电机。 格里特 发件人:Sonny Jeon [ mailto:notifications@github.com ] 全部: 已经提出了关于在 Grbl 中安装睡眠模式的问题。我在考虑我们是否应该删除 $1=255 (step idle delay,msec) 设置,保留它,或者将它移到 config.h 定义中。 你们有多少人:
— |
我使用它(几乎没有修改)。我已经为特殊操作预留了 251-255。
使用ADC 输入在同一引脚上进行其他修改、启动/归位和暂停/停止。 2015-02-14 15:26 GMT,Sonny Jeon notifications@github.com:
|
画架用它来锁定/解锁电机,但只是因为没有通电/睡眠设置! 我见过的一些 Shapeoko 将其设置为小于 255,以便他们可以在机器开启时手动移动龙门架以方便使用。似乎如果更改空闲超时,使电机仅在所有轴空闲时才空闲,这将避免 Shapeoko 皮带问题并且是一个更直观的设置。在 CNC 的上下文中,超时一次只在一个轴上起作用(即如果 Y 轴正在移动,X 轴步进器应保持接合)是很奇怪的。“%”的建议@gerritv似乎也是这样做的好方法。 关于这将如何工作的问题:
|
@alpharesearch: 我同意。GT2 皮带和禁用步进器不兼容。你必须保持一切启用,这样你就不会慢慢失去位置。我认为这与步进驱动器在禁用然后重新启用时丢失微步数有关,或者 GT2 皮带驱动器非常敏感。可能是后者。 @gerritv: 我考虑过使用 使用 M2/30 可以完成。但是,我仍然担心 GT2 系统中的步骤丢失,如果用户需要在之后立即运行另一个作业。用户将不得不重新运行归位循环以确保保留位置。 @paulkaplan: Grbl 不应禁用单个轴。只有一个引脚可以启用和禁用所有步进驱动器,因此如果任何一个轴需要移动,它就会启用所有这些驱动器。它仅在所有轴上都没有运动时才禁用。 我建议以下操作:
|
另一个提议:
|
我个人喜欢完全控制我的电机状态。我更喜欢 $S 命令。也许 $S 和一个二进制参数。$S0……$S1 |
@alpharesearch:我不想让用户混淆睡眠开关。$S 应该只会让 Grbl 进入睡眠状态。 我喜欢使用循环启动“~”键退出睡眠而无需使用运动命令的想法。我不喜欢“%”,因为它破坏了 gcode 标准。 |
我觉得这只会让状态机更加混乱。睡眠的用例是什么? 在 2015 年 2 月 14 日星期六中午 12:00,Sonny Jeon notifications@github.com
|
如果我再考虑一下,唤醒不需要特定的命令,任何需要步进器的命令都应该唤醒它们。这会从 SLEEP 变为 IDLE,并且只有在发送睡眠命令时才会返回到 SLEEP。如果有人想锁定机器,可以通过新命令将 GRBL 置于软警报状态来完成,这将启用睡眠并防止机器移动,直到脱离警报状态。如果您清除警报,机器将进入睡眠状态,直到发送任何需要步进器的命令。开机后机器处于睡眠状态,归位后机器将处于空闲状态。 |
我还让我的步进器始终通电。我在使用 MXL 腰带跑步时做到了这一点,现在我使用 GT2 腰带做到了这一点。不,我不认为 MXL 皮带在步进器被禁用时不会以任何方式失去位置。如果没有通电,步进器有轻微的“点击”整个步进位置的倾向。这是否夸大了 GT2 腰带,我不知道,也没有测试的计划。 如果我想手动移动步进器,我会点击红色的大按钮…… |
同意。我的 z 轴使用 gt2 皮带和两个电机。步进器闲置会导致 x 托架撞到桌子上。所以我的步进器必须保持启用状态。我没有热问题,它们几乎不会变暖,但如果我有,我认为睡眠命令会很棒。 |
@paulkaplan:主要用例是在完成作业后禁用机器。CNC 的最大特点是它是自动化的,你可以离开机器。如果你的工作很长,不需要太多照料,你可以离开,让 Grbl 在完成后去睡觉。 我觉得你是对的@alpharesearch,任何命令都应该将 Grbl 从睡眠中唤醒。为了防止人们通过粗指键盘意外使用 $S,也许命令应该是 $SLP。 |
鉴于有关可能向状态机添加 SLEEP 状态的讨论,我想知道我是否可以将以下输入添加到讨论中: 在我的设置中,我有一个电气启动/停止电路(当按下启动时继电器被锁定,并保持锁定直到按下停止或电源被移除)。我最近从 LinuxCNC 切换到 Grbl,在 LinuxCNC 上,我将该电路的状态连接到 EStop 输入。 当启动/停止电路处于停止状态时,LinuxCNC 将阻止按下其 Axis UI 中的绿色“On”按钮,从而阻止任何移动(如归位)。仅当我在我的硬件上按下 Start(这也会为步进电机供电)时,LinuxCNC 才允许我在 Axis 中按下“On”,从而启用归位等功能。如果我在硬件上按下“停止”,它也会自动将其软件“版本”关闭。 我有点期待 Grbl 中的类似行为,将我的 EStop 连接到重置/中止,但显然此引脚的任何切换(打开或关闭)都会软重置 Grbl。 所以我想我的用例在某种程度上非常接近 SLEEP 模式,但我想提出一种模式,其中这种 SLEEP(ish) 模式不会被移动命令自动唤醒,而是阻止移动。也就是说,只要外部硬件 EStop 处于活动状态,它就会进入,在我释放外部 EStop 时保持活动状态,并且只能通过 Grbl 命令(’~’ 或 $-command)手动解锁。(也许该模式应该被称为 DISABLED 或 ESTOP,但无论如何……) 顺便说一句,我的驱动板有一个选项 btw,可以减少(即不完全关闭)电机电流。我目前已经将驱动器启用引脚连接到它,所以我喜欢现有的 1 美元设置,以便在一段时间后自动降低驱动器电流。 希望我在这里有任何意义…… |
@poelstra:在 Grbl 中根本不应该处理 IMO 紧急停止。太多的事情可能会出错。我总是建议 estop 简单地切断整台机器的电源或通过硬接线完全禁用它。 您要的是类似于安全门开关的东西,该开关本周刚刚在 edge 分支中发布。它会保持和暂停 Grbl,并为除步进驱动器之外的所有东西断电。对传入数据进行排队并等待循环开始恢复。开关必须关闭才能工作。 睡眠模式只是作为一种通过软件禁用步进器的方法,无论用户出于何种原因可能需要它。大多数是为了在不使用时降低功耗。 |
我一直让我的步进电机在机器开启时通电。如果有睡眠模式我可能不会使用它,但这并不意味着它不应该被实现。 我不会使用它的原因是因为在睡觉后你需要再次回家机器重新拿起你的零。 我倾向于打开我的机器,做一些工作,然后再关闭它。我不会让它长时间闲置。 |
保持功能在那里!并更改为 int32。所以我们可以将它设置为几毫秒到几秒。 |
@GabeHC:出于什么目的,您需要在禁用前让步进器闲置几秒钟?我无法想象需要这种情况的特殊情况。 通电时空转通常是 G4 驻留命令的用途。如果您之后需要禁用,建议的 $SLP 命令会将其关闭。 |
@chamnit:我认为,如果建议的 $SLP 命令仅通过位于 g 代码文件的末尾就可以工作,那将是一件好事。换句话说,不是像进给保持这样的实时命令。我认为在这种情况下,人们可以将此命令放在一些 g 代码文件的末尾,而不必等待发送程序支持。 |
由于这是一个使用非标准硬件的 DYI 项目,$S 会很有用,但不应顺便混淆,可以节省能源/或减少散热。 当前的 0.9g 仅为所有轴提供一个“启用”总和信号。这使得它对外部电流衰减毫无用处,但具有更多硬件睡眠模式的功能,因为所有轴都“或”在一起。 因此,在谈论睡眠模式之前,我希望看到一个用于单独“启用”输出以控制轴电流的功能。然后将此信号用于“完全关闭能量”或仅用于电流衰减到“项目经理”:-) 因此,我投票支持 $S 但不是作为实时维护状态。GUI 或控制程序可以根据需要发送此命令。
顺便说一句:我认为步进驱动器和电流充电应该在电机几乎保持凉爽的范围内。无论如何,连续负载都会加热电机,因此睡眠模式无助于减少热量。 |
@extrafastlight:我很难理解你的帖子,但 Grbl 只能通过一个引脚控制步进器启用。它不连接步进驱动器的睡眠功能。尽管命名相似,但 Grbl“睡眠”模式仅通过该使能引脚禁用步进器。 总之,所有 至于 1) 和 3),Arduino Uno 上的 Grbl 没有足够的可用引脚来对每个轴进行单独启用,而主轴同步是一个完全不同的主题。 |
或许我们应该重新审视一下为什么会出现这个问题,解决方案开始听起来很复杂。 如果您的电机变热,请不要担心。 如果我使用 $SLP 那么我会在开始另一个程序之前先回家。任何时候步进器被“释放”都意味着您不再对它们的位置充满信心。 |
@gerritv: 最初的原因是去掉 $1 step idle delay 设置。这本身就令人困惑。从它的声音来看,根本没有用过。 我的意图是删除 $1 并始终保持步进器启用,但在某些警报期间除外。 这个睡眠命令只不过是用户出于任何原因关闭步进器的一种方式。例如,如果有人不使用归位并想用手手动移动他们的轴,他们可以使用睡眠来大致定位(在带式 CNC 上非常容易)。然后重新启用以定位其零件零。不是每个人都使用归位。 |
@chamnit我通过 我们需要一些清晰的文档来解释(微)步骤的潜在损失 |
我的用例和代码库与普通 grbl 相去甚远,但为了它的价值,我使用了 2 个不同的 step_idle_delay 设置。 I have an encoder on one axis, and use 0 during calibration to detect the limit of travel where the motor starts slipping. If you replaced the delay with always on plus a sleep command, I could rework my sender to use that. But I’d also add back a way to run like the current delay 0 setting for my calibration mode. |
全部:
已经提出了关于在 Grbl 中安装睡眠模式的问题。我在考虑我们是否应该删除
$1=255 (step idle delay,msec)
设置、保留它或将其移动到 config.h 定义中。你们有多少人:
$1=255
?$1
通过设置小于 255 ,让步进器在 Grbl 空闲时断电?$S
命令进入睡眠模式是您想要的吗?Grbl 的正常操作是始终保持步进器启用,除非处于警报模式和这种新的睡眠模式。