注释
@rverhag:感谢您报告软限制。还没有太多人对其进行测试并说明其工作原理。首先,它从来没有在我这边的工厂进行过测试,因为我的机器在我改造车库时一直在存放。所以它可能会有我无法解释的奇怪和错误,无论是在精神上还是通过软件测试。 其次,软限制设计为仅在启用归位且您的机器已归位时才起作用。归零时,机器坐标应仅存在于负空间中,即每个轴的 0 到 -max_travel。限制开关在哪里并不重要。它应该考虑到它们。然后,在实际移动机器之前,软限制将检查任何正值或小于 -max_travel 的移动。如果它找到一个,它就会报警。如果处于循环状态,机器应立即停止,或者根本不动,但仍保持系统位置。 如果您没有启用归位或您的机器没有归位,软限制将无法正常工作。它只会让你在负空间中移动。我可能需要创建另一个级别的系统检查以在归位时自动禁用软限制。 |
感谢您的回复。明天我将在归巢后再次测试。机器确实没有归位。 关于测试 v0.9:我刚刚完成我的机器并开始使用 v0.9(我知道,边缘版本 :-))到目前为止一切正常。X 和 Y 的最大速度为 4000 毫米/分钟,Z 为 3000。X、Y、Z 速度为 60。归位、硬限制、G10 等。在自写的 gui 上运行(基于其他示例的 c#)。 明天我会告诉你考试的最新情况 |
我刚刚在我的机器上测试了软限制。这是调查结果的摘录(按时间顺序) Arduino 上电 软限制初始禁用。 获取状态 response –Idle,MPos:0.0000,0.0000,0.0000,WPos:432.6000,58.9000,35.0000– 送G1G91X50.000Y50.000Z-20.000F500(轻移工零50、50、-20相对机零) 响应 –Idle,MPos:-49.0000,1.0000,-21.0000,WPos:383.6000,59.9000,14.0000–(当前位置) 发送 G10 L2 P1 X-049.000 Y001.000 Z-021.000(在 G54 中设置零点) 响应 –Idle,MPos:-49.0000,1.0000,-21.0000,WPos:0.0000,0.0000,0.0000– 现在打开 Softlimits 00384:响应 =>$0=320.0000(x,步长/mm) 现在尝试在 X 上移动 50 毫米 发送 G0G91X50.000Y0Z0 重置,关闭警报 也许-20 超过 X? 发送 G1G91X-20.000Y0Z0 重置杀死警报。 现在尝试在已经启用软限制的情况下回家,而不是将工作设置为零。 发送 $H 发送 G1G91X10.000Y10.000Z-10.000F500(相对于机器零位轻轻移动到虚拟工作零位 10,10,-10) 发送 G1G91X50.000Y0Z0F500(在 G54 处不设置零的情况下在 X 上移动 50!) 发送 G1G91X50.000Y0Z0F500(再次超过 x 50 毫米,因此总请求行程超过 x=100) 重置,关闭警报,获取状态 发送 G1G91X49.000Y0Z0F500(而不是 X50,现在是 X49,所以总行程应该是 99) 最后尝试在启用软限制的情况下回家,并将工作零设置为相对于原始位置(机器)的 50,40,-15 发送 $22=1(以确保) 响应 –Idle,MPos:-99.0000,-49.0000,-1.0000,WPos:-50.0000,-50.0000,20.0000– 送G0G91X50.000Y40.000Z-15.000 响应 –Idle,MPos:-49.0000,-9.0000,-16.0000,WPos:0.0000,-10.0000,5.0000– send G10 L2 P1 X-049.000 Y-009.000 Z-016.000 (在G54中设置workzero) 现在尝试在 X 上移动 50mm 响应 ALARM:硬/软限制。硕士?=>按设计,因为机器空间会变成正数,但不是预期的,因为总的 X 限制是 100 重置,杀死警报, 尝试在 X 上移动 10mm 再超过 X 10mm 再超出 x 10mm 再超过 x 10mm 再超出 x 10mm 重置,关闭警报,尝试在 X 上再移动 5 毫米(因此从工作零开始总共移动 45 毫米,从家开始移动 95 毫米) 发送 G1G91X5.000Y0Z0F500 尝试在 X 上再移动 4.9 毫米(从零开始总共 49.9 毫米,从家里开始总共 99.9 毫米) 重置,杀死警报。 尝试在 X 上移动 4 毫米(从工作开始总共移动 49 毫米,从家里移动 99 毫米) 如您所述,机器坐标应仅存在于负空间中,因此软限制按设计工作(不可能超出 Mx0), 编辑 => 下一行是废话,但我让它代表线程的完整性 “但是我的机器上的归位总是在左下角(作为 Autocad 中的世界坐标),完成工作后的停车位在左下角附近。通电后归位距离相对较小,因此工作空间很小启用软限制。” 对我来说这不是问题,因为我将使用硬限制而不是软限制,但也许我的发现对您或其他人有用。 再一次,也许我错过了什么。最后,我还在学习和测试中…… |
@rverhag: 感谢非常详尽的结果。它看起来像预期的那样工作。 您可能不知道的一件事是,归位循环在您的限位开关将机器定位为零后立即执行拉动操作。换句话说,机器零位恰好位于您的限位开关触发时。默认情况下,它会离开限位开关 1 毫米,而不是意外触发它们。您的软限制负空间定义为从限制触发器到轴最大行程的距离。因此,在归位后,您应该能够向回限位开关移动最多 1 毫米。这可能是您的结果有些混乱的原因。 |
@chamnit:我想知道为什么机器在使用方向掩码 $25 = 96 归位后处于 -99、-49、-1,所以我刚刚做了另一个测试,但现在在 4 个不同的角落归位。 $25 = 0(home 在右上角)在 homing machinepos = -1,-1,-1 之后 这可能是“问题”吗?只有右上角的归位给出了预期的-1、-1、-1。对于其他 3 个角,偏移量似乎有点奇怪。(仅作记录:机器尺寸为 500mm x 750mm x 125mm X,Y,Z) |
@rverhag: 我不确定你指出的问题是什么。$9-$11 的最大行程设置定义了轴的总行程长度。因此,当归位轴反转时,它会使用此最大行程数据来确定“归位”位置,从而使机器的整个行程空间为负。如果您的机器是 500mm x 750mm x 125mm,则需要将最大行程设置与之对应。 |
很抱歉对于这个误会。你是绝对正确的。这很合乎逻辑(如果你看到了整个画面;-)) 白色:总工作空间 X 和 Y 两种情况下的软限制最大距离为 300 毫米(忽略图中的 Z)。 现在偏移量的“问题”对我来说很清楚了。当然没有问题,但我没有看到机器坐标“奇怪”的原因。我实际上不得不立即画一幅画。值一千字。 最好睡个好觉…… 感谢您的时间和耐心 |
Hola , tengo una pregunta, estoy utilizando este software , pero al momento de pulsar el boton de emergencia o un final de carrera físicos, me aparace en la pantalla de grbl alarma, me dice que con $x puedo dejar estado de error alarma ; pero como hago esto si en la pantalla se me pone todos los botones como desabilitados?? 谢谢你的回应 |
只是试验 v0.9。将它用于一些简单的项目(我的手放在红色按钮上;-))
一切看起来都很好,但我对软限制行为有点困惑。不确定这是错误还是有意为之。(也许我不明白软限制的确切功能)
我有软限制($22=1)并设置限制(最大行程距离):X 为 500 毫米($9 = 500),Y 为 700 毫米($10 = 700),Z 为 110 毫米($11 = 110)。
上电后,Grbl 处于 STATUS_OK,Robot 处于 STATUS_IDLE。
假设 X-work 为 220.50,而 machine-X 为 -220.50。
发送 G0 G91 X260 Grbl v0.9 后响应“警报:硬/软限制 MPOS?” 机器人处于 STATE_ALARM 状态。这不是预期的,因为:
220.50 + 260 = 480.50mm X-工作坐标
移动距离 = 260 mm
-220.50 + 260 = 39.50 mm X-机器坐标
它们都不大于 500mm X 限制(行程距离)。
发送重置 (ctrl-X) 后,Grbl 以“ok”(STATUS_OK) 响应,但机器仍处于 STATE_ALARM 状态。发送“$X”让机器回到 STATE_IDLE。
尝试让机器移动到 X 上,这样:
发送 G0 G91 X260 => 报警
发送 G0 G91 X240 => 报警
发送 G0 G91 X220 => OK
我是不是遗漏了什么或者是 Grbl v0.9 中的一个小错误?
格茨,
罗纳德