注释
我喜欢使用 $S 命令禁用电机一吨的想法。 |
我认为每个使用 ShapeOko 或任何其他使用 GT2 传送带的系统的人都需要始终开启步进器。因此,我认为将其作为默认设置并使用 $ sleep 命令来使步进器在长时间空闲时保持凉爽会很好。 PS:像循环启动命令这样的编译模式选项会从睡眠中唤醒,M2/M30 将其作为自动睡眠选项重新进入睡眠状态吗?当 grbl 开机时,它默认处于睡眠模式。 |
电光 评论 on 15 Feb 2015
我希望能够在作业之间禁用电机,并且我认为 GUI 可以使用的 Grbl 特定睡眠命令是个好主意。 |
我保留该设置 = 0,不要发现我的电机只是坐在那里变热。 也许使用“%”会是一个不错的选择?文件顶部有一个,如果最后有一个,则关闭电机。只有最后一个是错误。 或者使用设置来指示 M30 应该关闭电机。 格里特 发件人:Sonny Jeon [ mailto:notifications@github.com ] 全部: 提出了一个关于在 Grbl 中安装睡眠模式的问题。我正在考虑是否应该删除 $1=255 (step idle delay,msec) 设置,保留它,或者将它移动到 config.h 定义中。 你们几个:
— |
我使用它(几乎没有修改)。我为特殊操作保留了 251-255。
其他修改,使用ADC 输入在同一引脚上启动/归位和暂停/停止。 格林威治标准时间 2015 年 2 月 14 日 15:26,Sonny Jeon通知@github.com :
|
Easel 使用它来锁定/解锁电机,但这只是因为没有通电/睡眠设置! 我见过的一些 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。 所以我想我的用例在某种程度上非常接近睡眠模式,但我想提出一种模式,其中这种睡眠(ish)模式不会被移动命令自动唤醒,而是阻止移动。即,只要外部硬件 EStop 处于活动状态,它就会进入,当我释放外部 EStop 时保持活动状态,并且只能通过 Grbl 命令(’~’ 或 $-command)手动解锁。(也许该模式应该被称为 DISABLED 或 ESTOP,但无论如何……) 顺便说一句,我的驱动板有选项顺便说一句,以减少(即不完全关闭)电机电流。我目前已将驱动器启用引脚连接到该引脚,因此我确实喜欢现有的 $1 设置,以便在一段时间后自动降低驱动器电流。 希望我在这里有意义… |
@poelstra: IMO E-stop 根本不应该在 Grbl 中处理。太多的事情可能会出错。我总是建议 estop 简单地切断整个机器的电源或通过硬接线完全禁用它。 你要的是类似于安全门开关的东西,它本周刚刚在边缘分支中发布。它会为除步进驱动器之外的所有东西提供保持并暂停 Grbl 和断电。排队传入数据并等待直到一个循环开始恢复。开关必须闭合才能工作。 睡眠模式只是作为一种通过软件禁用步进器的方式,无论用户出于何种原因可能需要它。大多数是在不使用时降低功耗。 |
机器运行时,我一直让我的步进器通电。如果有睡眠模式,我可能不会使用它,但这并不意味着它不应该被实施。 我不会使用它的原因是因为在睡觉后你需要再次回家机器以重新拿起你的零。 我倾向于打开我的机器,做一些工作,然后再次关闭它。我不会让它长时间闲置。 |
将功能保留在那里!并更改为 int32。所以我们可以将它设置为从几毫秒到几秒。 |
@GabeHC:出于什么目的,您需要在禁用之前让步进器空闲几秒钟?我无法想象需要这样做的特殊场景。 通电时怠速通常是 G4 暂停命令的用途。如果之后需要禁用,建议的 $SLP 命令会将其关闭。 |
@chamnit: 我认为如果建议的 $SLP 命令可以在 g 代码文件的末尾工作,那将是一件好事。换句话说,不是像 feed hold 这样的实时命令。我认为在这种情况下,人们可以将这个命令放在一些 g 代码文件的末尾,而不必等待发件人程序支持。 |
由于这是一个非标准硬件的 DYI 项目,$S 会很有用,但不应该顺便混淆,可以节省能源/或减少散热。 当前的 0.9g 只为所有轴提供一个“启用”和信号。这使得它对于外部电流衰减毫无用处,但由于所有轴都“ored”在一起,因此具有更多的硬件睡眠模式功能。 所以,在谈论睡眠模式之前,我想看看一个单独的“启用”输出的功能,以控制轴的电流。将此信号用于“全能量关闭”或仅用于电流衰减,然后交给“项目经理”:-) 所以,我投票支持 $S 但不是实时维护的状态。GUI 或控制程序可以按需发送此命令。
顺便说一句:我认为步进驱动器和电流充电应该在电机几乎保持冷却的范围内。连续负载无论如何都会加热电机,因此睡眠模式无助于减少加热。 |
@extrafastlight:我很难关注您的帖子,但 Grbl 仅通过一个引脚控制步进器启用。它不与步进驱动器上的睡眠功能连接。尽管名称相似,但 Grbl 的“睡眠”模式仅通过该启用引脚禁用步进器。 无论如何,所有 至于 1) 和 3),Arduino Uno 上的 Grbl 没有足够的可用引脚来执行每个轴的单独启用,并且主轴同步是一个完全不同的主题。 |
也许我们应该重新审视一下为什么会出现这种情况,解决方案开始听起来很复杂。 如果您的电机变热,请不要担心。 如果我使用 $SLP 那么我会在开始另一个程序之前先回家。任何时候步进器“释放”都意味着您不再对它们的位置充满信心。 |
@gerritv: 原来的原因是为了去掉$1 step idle delay设置。这本身就是令人困惑的。从它的声音来看,根本没有使用。 我的意图是移除 1 美元,并始终保持步进器处于启用状态,除非在某些警报期间。 这个睡眠命令只不过是用户出于某种原因关闭步进器的一种方式。例如,如果有人不使用归位并且想要手动移动他们的轴,他们可以使用睡眠来大致进入位置(在带式 CNC 上非常容易)。然后重新启用以定位它们的零部分。不是每个人都使用归位。 |
@chamnit我是通过 我们需要一些清晰的文档来解释(微)步骤的潜在损失 |
我的用例和代码库与现有的 grbl 相差甚远,但就其价值而言,我使用了 2 个不同的 step_idle_delay 设置。 我在一个轴上有一个编码器,并在校准期间使用 0 来检测电机开始打滑的行程极限。 如果你用 always on 加上 sleep 命令替换延迟,我可以重新设计我的发件人以使用它。但我还想为我的校准模式添加一种运行方式,如当前延迟 0 设置。 |
所有人:经过一番思考,这是一个修改后的提案。
大家觉得好听吗? |
实时命令是指 config.h 中的单字符命令吗? 此外,如果编译时选项是一个类似于当前 EEPROM 设置的数字,那就太好了。如果我确实想禁用电机,最好对时间进行一些控制。 |
我的场景听起来不错。 |
对我来说也很好听。 |
这听起来像是我之前提到的 EStop 工作流程的构建块。 |
@ashelly: 是的。实时命令是 config.h 中的单字符命令。状态报告应该在暂停期间仍然有效,以便 GUI 和用户知道发生了什么。挂起只会对传入的串行 RX 数据进行排队,而不对其进行解析,Grbl 也不会为 GUI 发回任何“ok”/“error”。安全门和进料保持现在已经在 Grbl v0.9h 中使用了这个新的暂停状态。编译时选项现在可以像 $1 一样工作,但是如果要更改它,则必须重新编译。 @electrokean:是的,如果一切正常,Grbl 将始终保持开机状态。警报可能是一个例外。我得考虑一下。可能有两种观点认为警报应该禁用电机,或者保持它们启用。但是,最有可能的是,Grbl 将默认启用它们,用户可以在 config.h 定义中配置此行为。 @poelstra:请参阅我对此的急停响应,但这确实引起了对步进器启用在复位和 GUI 驱动的急停时应如何表现的考虑。 |
我们不能通过发出 $1=0 在工作结束时实现“睡眠”模式吗? |
我有我的 stepper-enabel 硬连线以启用驱动程序。我将步进启用输出用作移动 LED。 |
我知道这是一个老问题,但我会给出我的看法。 我的机器有滚珠丝杠,并且 Z 轴足够重,如果未启用步进器,它可以反向驱动滚珠丝杠并向下漂移。出于这个原因,我一直启用步进驱动程序。我正在使用的特定步进驱动器具有内置的 1/2 空闲电流设置,其中该电机的电流下降。不过,这一切都在步进驱动程序中处理,我不需要 GRBL 在这里做任何事情。 对于其他目的,如果能够通过用户命令启用或禁用电机,那就太好了。我不确定它是否需要是 EEPROM 设置中的任何内容。也许是一个 EEPROM 设置,因此用户可以选择他的默认启动(启用或禁用),然后是一个可用于打开或关闭它们的命令。 对于没有安装限位开关的人来说,关闭它们以手动将机器定位到它们的“原位”位置肯定会很好。 综上所述,对于启用了归位的设置,我想不出我需要与现在不同的任何东西的原因。 |
@109JB: 明白了。此功能在我的 v1.0 开发路径中。我最终决定不将它添加到 v0.9,因为它需要对事情的工作方式进行一些重构。 |
看来我在讨论开始时不知何故错过了这个讨论,对不起。只是加上我的 0.02 美元,尽管它可能不会改变任何东西:是的,我非常依赖“步进器禁用”信号,这对我来说绝对是必备品。正如其他人所提到的,只要电机不移动,我就会使用它来降低电流,因为电机或多或少会熔化(是的,它们设置为正确的电流 – 它们只是加热太多了我喜欢)。考虑到我让磨机长时间闲置,而我正在摸索在下一次通过之前用 CAM 软件纠正最新的错误,让磨机冷却而不是着火对我来说是相当重要的。值得注意的是,由于在此期间驱动程序实际上并未被禁用, 另一件要注意的是,没有冒犯,但根据我现有的 GUI 经验,我永远不会相信这是由 GUI 处理的——它们造成了足够的损害;在我看来,这绝对需要成为硬件功能。我肯定会对任何让它像现在在 0.9 中一样工作的选项感兴趣。 |
只需添加另一个 2ct:
|
只是一些评论,不是关于 GRBL,而是关于一般的步进器。在工作温度方面,步进器自然会发热。这是野兽的本性。话虽如此,他们也被设计为接受它。许多步进电机的设计最高外壳温度可达 100 摄氏度。接触时会在不到 1 秒内导致 3 度烧伤的温度。即使是 50 摄氏度(约 120 华氏度)的中等温度也太“热”,无法触摸超过几秒钟,长时间接触会灼伤您,但在步进电机的正常范围内。我认为很多认为他们的步进电机运行太热的人在这方面对步进电机温度的估计过于保守。使用非接触式红外温度计测量,我的最高运行温度约为 60 摄氏度。我可以’ 关于上述,如果真的有人担心的话,有步进驱动器会降低空闲电流以防止发热。其中大多数将电机空闲时的电流限制为设定电流的 1/2。我知道很多人都在使用没有此选项的不太复杂的驱动程序,我想说的是有一个红外温度计并检查电机的真实温度。如果不超过 60-70 摄氏度,那么我什至不会担心。 |
哦。我的步进器的 60 摄氏度数字是用我的旧驱动器,没有减少空闲电流,但我没有因为热而切换驱动器,而是为了获得更好的电机性能(更少的共振,更高的速度等)。老司机很快就会进行一个不需要超级性能的新项目。 |
我很欣赏这些评论。说句公道话,我实际上并不指望我的电机会着火,而且我相当肯定它们在它们的工作范围内;只是他们这样做,正如我所说的那样,“对我来说太热了”。足以让我在驱动器 PCB 上破解一个附加的背负板,使其能够在“禁用”时减少电流(驱动器可以做的事情,但不是自动的)。考虑到我已经花费了相当大的精力来修复驱动程序(不相关的问题)并且现在它们可以正常工作,我显然不打算更换它们。我想我要说的是我知道我不一定需要这个功能来使用我的工厂,但我会尽一切努力继续使用它。 |
同样在这里。
|
我尝试实现睡眠模式,而且,它工作得很好,几乎没有什么变化。 |
尚尼特 评论 on 14 Feb 2015
全部:
提出了一个关于在 Grbl 中安装睡眠模式的问题。我正在考虑是否应该删除该
$1=255 (step idle delay,msec)
设置、保留它或将其移动到 config.h 定义中。你们几个:
$1=255
?$1
通过设置小于 255让步进器在 Grbl IDLE 时断电?$S
命令的睡眠模式将是您想要的吗?Grbl 的正常操作将始终保持步进器启用,除非处于警报模式和这种新的睡眠模式。