ПОЛЕЗНО GRBL Commander - автономный контроллер на ESP32

OlegK

Младший ненаучный сотрудник
МОДЕРАТОР
Регистрация
11.06.2019
Сообщения
3 398
Реакции
7 037
Баллы
188
Город
Печора
Имя
Олег
Станок
CNC3040Ы
Прошивка
1.1f
  • Последнее редактирование:
    Рекомендованный
  • #1
Последнее редактирование:
Наконец-то дали несколько выходных, немного собрал всё в кучу по своему проекту...
В принципе, КМК, достаточно информации есть в прилагаемом хэлпе (см. архив), но кому лень качать, перечислю имеющиеся функции.

  • Ручное управление станком – перемещение осей с различной скоростью пошагово (STEP)
  • ...или непрерывно (JOG).
  • Поиск "домашней" позиции.
  • Разблокировка станка (снятие режима ALARM).
  • Раздельное обнуление осей с возможностью восстановить последние рабочие "нули" (СК) в плоскости или пространстве.
  • Перемещение в нулевые позиции раздельно по осям.
  • Тестовый «объезд» прямоугольника границ текущей УП.
  • Подъём шпинделя в максимальную позицию по высоте (удобно для смены инструмента или очистки поверхности рабочего стола).
  • Включение / отключение шпинделя (лазера) и подачи СОЖ.
  • Регулировка оборотов шпинделя.
  • Задаваемую задержку на включение шпинделя при работе с УП.
  • Поиск поверхности заготовки с помощью Z-щупа.
  • Поиск края/угла заготовки и центра заготовки (отверстия)
  • Перемещение в заданную пользователем точку - центр стола или какую-либо другую.
  • Чтение файла с G-кодом с карты памяти и передачу команд на станок с контролем степени выполнения задания, а также с возможностью переопределять заданные в УП подачу, обороты и скорость холостых перемещений.
  • Текущее задание возможно поставить в режим удержания ШД или на "долговременную паузу".
  • Аварийное продолжение задания после пропадания электропитания.
  • Проверка G-кода выбранного файла.
  • Просмотр параметров $$ станка, их изменение (через консоль), сохранение на карту памяти и загрузка настроек из ранее сохранённого файла.
  • Сброс смещений рабочих координат и настроек $$ на дефолтные.
  • В упрощённой реализации командной строки (консоли), можно выполнить перемещение осей, используя команды G-кода.
  • Обновление прошивки автономного контроллера с карты памяти (необходимо скомпилировать бинарный файл прошивки).
  • Запуск внутреннего FTP сервера для переноса/удаления файлов, находящихся на SD карте. Доступ осуществляется посредством FTP клиента (с компьютера или смартфона).
  • FPT сервер запускается в режиме «точки доступа» или с подключением к существующей WiFi сети.
  • Просмотр комментариев - первых (до 20) строк УП, начинающихся с символов ';' или '('
  • Сканирование поверхности заготовки по высоте с сохранением карты высот в «Кэндл совместимом» формате.
  • Доступные языки интерфейса устройства: английский, русский, транслит
Возможное исполнение устройства

123.jpgIMG_20220107_173856.jpgIMG_20220107_184232.jpg
или
Вариант оформления автономного контроллера (корпус, платы) от уважаемого Sailaiser

img_20230105_133541-jpg.43449



+

Резервный канал на Rutube.

Скачать:
Архив v1.4.1b (исправления найденных ошибок).

1. Если не инициализируется карта памяти.
2. "Фантомные" нажатия кнопок из-за помех (в частности, с коллекторным шпинделем).
 
  • Последнее редактирование:
Последнее редактирование:
Искренное уважение.
будет много вопросов !!!
OlegK написал(а):
При этом в корень карты памяти в отдельный файл сохраняются
данные, необходимые для продолжения работы.
Можно пример такого фaйла и исходный ?
Ваши сообщения автоматически объединены:

OlegK написал(а):
Т.к., до аварии, при работе станка, часть команд
находилась в буфере станка, и с какой строки точно начинать
передачу неизвестно, то работа будет начата немного раньше, т.е.
станок пройдёт какую-то часть пути по уже пройденной
траектории.
А если контролировать выполнение строки? Можно и с помощью Холд , так как он реагируеет мновенно и вуаля точная строка (максимально возможная ошибка одна строка ).У меня так и вознобловнение со строки остановки минус один .
Ваши сообщения автоматически объединены:

Намечается переход на LCD? , имхо в некоторых случаях в место сстандартных текстов иконки (разноцветные, мигающие .. более очевидны ).
я бы добавил еще и пищалку на педмет подверждениея нажатия кнопок .
Ваши сообщения автоматически объединены:

намечается вожможность отправки файла уп на чип с помощью Wi-Fi?
 
А если контролировать выполнение строки? Можно и с помощью Холд , так как он реагируеет мновенно и вуаля точная строка (максимально возможная ошибка одна строка ).У меня так и вознобловнение со строки остановки минус один .
Не знаю, прав или нет, но аппаратные входы "HOLD", "RESUME", выполняют прерывание по событию на этих входах, т.е. мгновенно, тогда как эти команды по UART должны дойти только после прохождения очереди команд помещенных в буфер. Не стоит ли дополнить шлейф оффлайн контроллера аппаратными кнопками с платы?
 
. Не стоит ли дополнить шлейф оффлайн контроллера аппаратными кнопками с платы?
приблизительно . При потере электричество идет команда на офлайник.
Да, шлейф добавлен эта линиа но не сматеринки а s контроля питания 220.
 
Можно пример такого фaйла и исходный ?
Да какой там пример...
В корне карты создаётся текстовый файл, куда помещаются:
- имя файла
- текущее состояние парсера
- текущее смещение в файле УП
- счётчик строк
- рабочие координаты
- безопасная высота по Z

А если контролировать выполнение строки? Можно и с помощью Холд , так как он реагируеет мновенно и вуаля точная строка (максимально возможная ошибка одна строка ).
Реагирует да, мгновенно, но речь ведь об аварийном случае, например, внезапно пропало питание.

имхо в некоторых случаях в место сстандартных текстов иконки (разноцветные, мигающие .. более очевидны ).
Может быть, когда-нибудь и примерю графический дисплей, но как по мне, такого дисплея (LCD2004) вполне достаточно. Плохо, что нет какого-нибудь 3004, тогда в некоторых местах было бы поудобнее.

я бы добавил еще и пищалку на педмет подверждениея нажатия кнопок .
Тут кому как, мне, вроде не нужно, а кто захочет - исходники прилагаются.

намечается вожможность отправки файла уп на чип с помощью Wi-Fi?
Я хотел кидать файлы на карту по "вафле" и может быть удастся это реализовать. Но не факт )

тогда как эти команды по UART должны дойти только после прохождения очереди команд помещенных в буфер.
По UART тоже. Они относятся к группе команд "реального времени", в буфер не помещаются и выполняются сразу после получения.
Команды реального времени-это отдельные управляющие символы, которые могут быть отправлены в Grbl для управления и выполнения действия в режиме реального времени. Это означает, что они могут быть отправлены в любое время и в любом месте, и Grbl немедленно ответит, независимо от того, что он делает в данный момент. Эти команды включают сброс, удержание ленты, возобновление, запрос отчета о состоянии и переопределения (в версии 1.1).

Не стоит ли дополнить шлейф оффлайн контроллера аппаратными кнопками с платы?
А зачем? Hold-Resume и так прекрасно работают, через UART и не нужны лишние жилы в кабеле.
 
  • Последнее редактирование:
Последнее редактирование:
Да какой там пример...
В корне карты создаётся текстовый файл, куда помещаются:
- имя файла
- текущее состояние парсера
- текущее смещение в файле УП
- счётчик строк
- рабочие координаты
- безопасная высота по Z
Все это ясно .
sorry за упрямость, хочется изучать фили (можно и в личку ).
Thanks

А зачем? Hold-Resume и так прекрасно работают, через UART и не нужны лишние жилы в кабеле.
но речь ведь об аварийном случае, например, внезапно пропало питание
Тогда Hold-Resume по барабану грвл, так как он обесточен (и станок целиком) а офлийник успевает записать необходимый данные
Ваши сообщения автоматически объединены:

Может быть, когда-нибудь и примерю графический дисплей, но как по мне, такого дисплея (LCD2004) вполне достаточно. Плохо, что нет какого-нибудь 3004, тогда в некоторых местах было бы поудобнее.

можно второй добавить

оффтоп
:)
 
а офлийник успевает записать необходимый данные
При аварийном восстановлении я использую только записанную позицию в файле. Для этого, в процессе работы, в FRAM память записывается текущее смещение с сохранением предыдущего. Даже если текущее смещение записалось некорректно, то всегда есть предыдущее.
Остальное получаю непосредственно перед стартом из файла УП - обороты, рабочую подачу, подачу врезания, безопасную Z и прочее.

можно второй добавить
(y)
 
При аварийном восстановлении я использую только записанную позицию в файле.
по другому- номер строки?
Для этого, в процессе работы, в FRAM память записывается текущее смещение с сохранением предыдущего.
то есть постоянно в течение работы?
 
Нет. Смещение файлового указателя (offset). По сути - сколько байт прочитано.
А считать строки - это долго.


Да.
наверно это не тот оффсет которому я привык ?. Для меня оффсет это Wpos-Mpos.
Смеюсь предположить что у тебя дисплей показывает то что отправлять оффлиник ?
 
наверно это не тот оффсет которому я привык ?. Для меня оффсет это Wpos-Mpos.
Образно говоря, что такое "чтение строки"? Это чтение последовательной цепочки байт до какого-то разделителя, в данном случае, перевода каретки. Вместе с этим, движется и указатель файла - считали символ, передвинулся указатель. А если нужно перейти на 10000-ю строку? Читать все стопиццот символов и считать строки? А зная, какое смещение в байтах (оффсет) от начала файла у нужной строки, можно очень быстро передвинуть указатель в эту позицию с помощью функции seek() класса file и начать чтение сразу из неё.

Смеюсь предположить что у тебя дисплей показывает то что отправлять оффлиник ?
Смеяться не надо :)
Конечно, координаты получаю от GRBL, на основном экране показаны рабочие координаты,
1.jpg
на дополнительном - машинные + текущее смещение рабочих координат.
2.jpg
 
....

Смеяться не надо :)
Sorry for my Russian :).
Конечно, координаты получаю от GRBL,
то есть идет постоянный опрос "?" ?

на основном экране показаны рабочие координаты, на дополнительном - машинные + текущее смещение рабочих координат.
почему смещение называешь текующим,again my Russin?- он же не меняется до следуйщей обнуливания ?
 
Да я понял :)

то есть идет постоянный опрос "?" ?
Да.

почему смещение называешь текующим,again my Russin?- он же не меняется до следуйщей обнуливания ?
Да, если передвинуть ось в другое место и обнулить, смещение будет другим.
 
  • Последнее редактирование:
Последнее редактирование:
Запишу себе на заметку.
Сейчас в ЛС отвечал одному нашему коллеге и это напомнило, что при загрузке настроек из резервного файла нужно выполнять "мягкий сброс", иначе они не применятся не все - для пользователя это неочевидно, и станок может повести себя не так, как ожидается.

Сделано.
 
...
Конечно, координаты получаю от GRBL, на основном экране показаны рабочие координаты,
1.jpg
на дополнительном - машинные + текущее смещение рабочих координат.
2.jpg
не понятно, по рисункам видно что есть смещение и тоже самоe время X=Xm ??
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать