开源改变世界

M0 4axis #521

推推 grbl 3年前 (2023-02-01) 305次浏览
 Closed

M0 4axis#521

DEST1981 opened this issue on Nov 20, 2021 · 26 comments

Comments

M0 4axis #521

Versions

  • Candle version: [1.2.14b]
  • Firmware version: [e.g.: 1.3A]

PC info

  • OS:Windows

Добрый день!
Хочу поблагодарить за отличный софт.

Прошивка GRBL ESP32 4 оси XYZA, плата моя, драйвера внешние.
Нашёл несколько багов/фич:

  1. При использовании карты высот строится она не на оси Z а на хз какой, соответственно правки в G-код вносятся не верно. Для гравирования не подходит. В прошивке заблокировал ось А, карта строится нормально, функционирует тоже на отлично.
  2. G-код M0 – пауза. Если находится в программе то вызывает глюки, станок зависает на удержании. В старой версии Candle 1.1.7 для замены инструмента я заменял код M06 на связку:
    M5 Останавливаем шпиндель
    G0 Z30 Поднимаем шпиндель
    G0 X0 Y0 Двигаемся в начало координат
    M0 Пауза (в этот момент меняю инструмент на другой и подключаю Z-щуп)
    G38.2 Z-120 F100 Запускаю замер
    G10 L20 P1 Z0 Обнуляю координаты
    M0 Пауза (отключаю щуп)
    G0 X0 Y0 Z5 Поднимаю инструмент от поверхности
    M03 S12000 Включаю шпиндель
    В новых версиях появилась возможность вписать код замены инструмента,но увы пауза все ломает.
    Происходит следующее:
    Включается шпиндель. Срабатывает код M06, на экране появляется сообщение: Проведите смену инструмента нажмите паузу для продолжения. В это время отключается шпиндель, поднимается шпиндель, шпиндель едет в 0, запускается замер. Сообщение висит на экране. Если нажать ок на всплывающем окне программа предложит запустить кусок кода после М06. На кнопки пауза и прервать не реагирует. Если замер щупом проходит успешно программа зацикливается на Статусе Удержание.
    Versions
  • Candle version: [1.2.14b]
  • Firmware version: [e.g.: 1.3A]

PC info

  • OS:Windows

Добрый день!
Хочу поблагодарить за отличный софт.

Прошивка GRBL ESP32 4 оси XYZA, плата моя, драйвера внешние.
Нашёл несколько багов/фич:

  1. При использовании карты высот строится она не на оси Z а на хз какой, соответственно правки в G-код вносятся не верно. Для гравирования не подходит. В прошивке заблокировал ось А, карта строится нормально, функционирует тоже на отлично.
  2. G-код M0 – пауза. Если находится в программе то вызывает глюки, станок зависает на удержании. В старой версии Candle 1.1.7 для замены инструмента я заменял код M06 на связку:
    M5 Останавливаем шпиндель
    G0 Z30 Поднимаем шпиндель
    G0 X0 Y0 Двигаемся в начало координат
    M0 Пауза (в этот момент меняю инструмент на другой и подключаю Z-щуп)
    G38.2 Z-120 F100 Запускаю замер
    G10 L20 P1 Z0 Обнуляю координаты
    M0 Пауза (отключаю щуп)
    G0 X0 Y0 Z5 Поднимаю инструмент от поверхности
    M03 S12000 Включаю шпиндель
    В новых версиях появилась возможность вписать код замены инструмента,но увы пауза все ломает.
    Происходит следующее:
    Включается шпиндель. Срабатывает код M06, на экране появляется сообщение: Проведите смену инструмента нажмите паузу для продолжения. В это время отключается шпиндель, поднимается шпиндель, шпиндель едет в 0, запускается замер. Сообщение висит на экране. Если нажать ок на всплывающем окне программа предложит запустить кусок кода после М06. На кнопки пауза и прервать не реагирует. Если замер щупом проходит успешно программа зацикливается на Статусе Удержание.
M0 4axis #521 Denvi added the bug label on Nov 21, 2021
M0 4axis #521
Owner

Приветствую.
Пока не могу повторить описанное Вами поведение.

Для анализа необходимы:

  • часть G-code программы с командами смены инструмента;
  • вывод в консоль с включенными флагами “Отображать команды G-code программы” и “Отображать команды интерфейса пользователя” в группе “Консоль” настроек программы.

Также для проверки прикладываю исполняемый файл программы с некоторыми исправлениями: Candle_iss521.zip
Файл для 64-разрядной ОС, если нужен для 32-разрядной, дайте знать.

M0 4axis #521

Мне кажется надо грбл отвязать от гуи и вынести в отдельный модуль – класс. Появится больше гибкости и проще вносить изменения в будущем. У меня уже есть некоторые наработки в этом плане.

M0 4axis #521
Author

Во вложении весь код. Можете пробовать. indicator_IN12 2pcs.txt
Во вложении весь код. Можете пробовать.
Сейчас ситуация такая:M0 4axis #521
Либо виснет либо вылет.
Команды смены инструмента: M5
G0 Z30
G0 X0 Y0
G38.2 Z-120 F100
G10 L20 P1 Z0
M0
G0 X0 Y0 Z5
M03 S12000

M0 4axis #521
Owner

Спасибо, удалось повторить ошибку.
Вот исправления: Candle_iss521_1.zip

M0 4axis #521
Owner

Мне кажется надо грбл отвязать от гуи и вынести в отдельный модуль – класс. Появится больше гибкости и проще вносить изменения в будущем. У меня уже есть некоторые наработки в этом плане.

Надо конечно, но пока есть более приоритетные задачи.

M0 4axis #521
Author

К сожалению, работает все равно не корректно.
Сейчас ситуация следующая:
1.Программа запускается доходит до кода M06.
2. Всплывающее окно с сообщением про паузу и замену инструмента.
3. В фоне, в не зависимости от нажатого ок запускается код “Команды смены инструмента”
4. Пауза там не отрабатывает.
5. Запускается замер щупом.
6. Нажимаем ок.
7. Щуп находит высоту.
8. Дальше все, на кнопку пауза не реагирует, статус: “Удерживание (0)”
9. На сброс, разблокирование – реакция только в консоли. На кнопки движения, вкл шпиделя – реакции нет.
10. Понажимал на кнопку “Удерживание”, разблокировался шпиндель.
В общем так как-то.

M0 4axis #521
Owner
Denvi commented on Nov 21, 2021  

Может быть дело в прошивке конечно…
Для Grbl 1.1h и следующего списка команд смены инструмента:

M5
G0 Z30
G0 X0 Y0
M0
G38.2 Z-120 F100
G10 L20 P1 Z0
M0
G0 X0 Y0 Z5
M03 S12000

происходит следующее:

  1. программа доходит до кода М06;
  2. появляется окно с предупреждением про паузу, в фоне выполняются команды смены инструмента, на первой команде М0 производится остановка, жмем на кнопку “ОК” окна предупреждения;
  3. меняем инструмент, подключаем щуп, жмем на кнопку “Удерживание”, производится поиск нулевого положения по оси Z и сброс координаты, снова остановка;
  4. отключаем щуп, жмем на кнопку “Удерживание”, производится подъем инструмента и запуск шпинделя;
  5. жмем на кнопку “Пауза”, подтверждаем запуск оставшейся части программы, программа выполняется дальше.

Либо виснет либо вылет.
Команды смены инструмента: M5
G0 Z30
G0 X0 Y0
G38.2 Z-120 F100
G10 L20 P1 Z0
M0
G0 X0 Y0 Z5
M03 S12000

Здесь потерялась одна команда М0.

Небольшое пояснение по поводу кнопок “Пауза” и “Удерживание”:

  • “Пауза” отвечает за приостановку/продолжение отправки команд G-code программы, к команде M0 не имеет отношения;
  • “Удерживание” отвечает за оперативную остановку станка с использованием специальных команд “!”, “~”, определенных в прошивке GRBL, в состояние удерживания также можно перевести обычной командой M0.