Contact me: hankecnc@gmail.com

警报/门禁用 M7(雾)状态 #230

推推 grbl 3年前 (2023-02-09) 269次浏览
关闭
amoineau 打开了这个问题 2021 年 9 月 30 日 · 18条评论
关闭

警报/门禁用 M7(雾)状态#230

amoineau 打开了这个问题 2021 年 9 月 30 日 · 18条评论

评论

警报/门禁用 M7(雾)状态 #230
阿莫诺 评论了 2021 年 9 月 30 日  

描述错误

这可能是预期的行为而不是错误,但是当触发警报或门信号时,M7 状态会重置。

预期行为

我想知道是否可以避免,是否可以在紧急停止时保持 M7 状态,或者至少在恢复时恢复到上一步?
在我们的机器上,M7 用于控制在我们拥有的两个工具之间切换的继电器,打开引擎盖会触发门信号。
因此,如果有人暂停文件中间检查某些内容并打开机器,然后使用错误的工具恢复,这会破坏整个文件并可能破坏数小时的过程。

预先感谢您的帮助。

警报/门禁用 M7(雾)状态 #230 amoineau 添加了 漏洞 标签 2021 年 9 月 30 日
警报/门禁用 M7(雾)状态 #230
所有者

如果启用此复选框,您应该会看到所有已发送的命令:我确定没有 M9 可以关闭 M7 状态。可能它来自 grbl 本身?
警报/门禁用 M7(雾)状态 #230

也许有人按下了停止键,这段代码将被执行?:
警报/门禁用 M7(雾)状态 #230

警报/门禁用 M7(雾)状态 #230
作者
阿莫诺 评论了 2021 年 9 月 30 日  

我担心它来自 GRBL 本身在触发 Door 输入时关闭配件……在这种情况下将很难解决。

我在“发送以下 gcode…”中只有 M5,没有 M9。所以我认为问题不在于此:/

编辑:我会检查 GRBL 的 config.h 看看是否有一个选项。我希望渺茫,但我们永远不知道!

警报/门禁用 M7(雾)状态 #230
所有者

如果你检查 grbls protocol.c https://github.com/fra589/grbl-Mega-5X/blob/edge/grbl/protocol.c你会发现:
grbl 将关闭主轴和冷却 – 与 cnc 相关

      // Parking manager. Handles de/re-energizing, switch state checks, and parking motions for
      // the safety door and sleep states.
      if (sys.state & (STATE_SAFETY_DOOR | STATE_SLEEP)) {

        // Handles retraction motions and de-energizing.
        if (bit_isfalse(sys.suspend,SUSPEND_RETRACT_COMPLETE)) {

          // Ensure any prior spindle stop override is disabled at start of safety door routine.
          sys.spindle_stop_ovr = SPINDLE_STOP_OVR_DISABLED;

          #ifndef PARKING_ENABLE

            spindle_set_state(SPINDLE_DISABLE,0.0); // De-energize
            coolant_set_state(COOLANT_DISABLE);     // De-energize

警报/门禁用 M7(雾)状态 #230
作者

你是怎么发现的 x)
你太棒了。所以如果我评论最后一行,它不应该再给 M7 断电了吗?

警报/门禁用 M7(雾)状态 #230
所有者

你是怎么发现的

我只是感兴趣(GRBL-Plotter 不是那个 ;-) 并且知道在哪里寻找什么。

所以如果我评论最后一行,它不应该再给 M7 断电了吗?

我不知道 – 只是尝试。也许还有一些其他代码可以处理冷却剂状态

警报/门禁用 M7(雾)状态 #230
作者

当然我会试试的,只是机器现在离我的办公室有 400 公里,所以越来越难测试这样的东西了 ^^’

警报/门禁用 M7(雾)状态 #230
作者

我已经做了一些初步测试,它似乎解决了我的问题,我将在星期三在实际机器上尝试。谢谢你的帮助,我自己永远也找不到那条线!

警报/门禁用 M7(雾)状态 #230
作者
阿莫诺 评论了 2021 年 10 月 13 日  

你好 !
我在机器上进行了测试,当门状态被触发时,由于更改,Mist 不会重置,但是当我按下“恢复”时,Mist 被禁用……
我还禁用了 SLEEP 情况下的冷却剂禁用,在文件,但这不是一段时间后禁用的问题,它确实是在发送恢复命令时。

警报/门禁用 M7(雾)状态 #230
所有者

确实是在发送 resume 命令时。

您是否也尝试过其他 GCode 发件人?我敢肯定这是一样的…

也许您应该检查 system_set_exec_state_flag(EXEC_CYCLE_START) 之后发生了什么

ISR(SERIAL_RX)
{
  uint8_t data = UDR0;
  uint8_t next_head;

  // Pick off realtime command characters directly from the serial stream. These characters are
  // not passed into the main buffer, but these set system state flag bits for realtime execution.
  switch (data) {
    case CMD_RESET:         mc_reset(); break;     // Call motion control reset routine (soft reset).
    case CMD_STATUS_REPORT: system_set_exec_state_flag(EXEC_STATUS_REPORT); break; // Set as true
    case CMD_CYCLE_START:   system_set_exec_state_flag(EXEC_CYCLE_START); break; // Set as true
    case CMD_FEED_HOLD:     system_set_exec_state_flag(EXEC_FEED_HOLD); break; // Set as true

https://github.com/fra589/grbl-Mega-5X/blob/edge/grbl/serial.c

警报/门禁用 M7(雾)状态 #230
作者

哦不,我不是说你的软件有问题,我看了详细的“实时状态报告”,它似乎只发送恢复命令。我仍然相信它可能来自 GRBL 处理恢复信号的方式,但我找不到重置冷却剂的位置。
好的,我会按照这个线索,谢谢!

警报/门禁用 M7(雾)状态 #230
所有者

我也在这里找到:https ://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands#ascii-realtime-command-descriptionsascii%E5%AE%9E%E6%97%B6%E5%91 %BD%E4%BB%A4%E8%AF%B4%E6%98%8E

如果启用停车编译时选项并且安全门状态准备恢复,Grbl 将重新启用主轴和冷却液,移回原位,然后恢复。

你是否启用了这个编译选项?

警报/门禁用 M7(雾)状态 #230
作者

不,我没有启用停车功能。

警报/门禁用 M7(雾)状态 #230
所有者

也许这就是诀窍?

警报/门禁用 M7(雾)状态 #230
作者

每次停车都不会移动头部吗?在其他行为变化中?

警报/门禁用 M7(雾)状态 #230
所有者

不知道。也许你在这里问:https ://github.com/fra589/grbl-Mega-5X/issues

警报/门禁用 M7(雾)状态 #230
作者

好的,谢谢你的帮助

警报/门禁用 M7(雾)状态 #230
所有者

我希望你能修好它。因为不是GRBL-Plotter的原因,所以关闭这个issue。