Сегодня, после длительной разработки, вышла первая стабильная версия системы управления фрезерным станком с ЧПУ.
Ключевой особенностью, отличающей его от многих других систем, является разделение исполняемого кода на 2 части - часть, требующая realtime, и часть, не требующая realtime. Причем часть, работающая в realtime, исполняется на отдельном микроконтроллере. Это позволяет, с одной стороны, отказаться от необходимости установки realtime ядра на компьютер, а с другой - позволяет обойти ограничения памяти, которые возникают, если весь код находится в микроконтроллере.
При разработке части софта, предназначенной для микроконтроллера, одним из приоритетов было требование легкой портируемости на другие микроконтроллеры. Благодаря этому, весь аппаратно-зависимый код находится в отдельном небольшом файле, а логика работы вынесена в аппаратно независимую библиотеку.
Текущие возможности
На вход система принимает G-Code в соответствии с ISO 6983
Поддерживаются:
- 3-х координатные перемещения, обработку концвых датчиков по всем осям, а также работу с щупом по оси Z для определения длины инструмента или положения заготовки.
- 7 координатных систем, выбираемых по командам G53-G59.
- Управление частотным приводом шпинделя, поддерживается Hyundai N700E через modbus.
- Линейные перемещения и перемещения по окружности
- Экстренная остановка перемещений и шпинделя
Планы
- Добавить web-интерфейс (спасибо dunmaksim за помощь!)
- Добавить возможность конфигурировать параметры оборудования из интерфейса, а не через редактирование конфига.
- Пауза перемещений, с дальнейшим продолжением работы
- Добавить винтовое перемещение
- Работа с щупом по осям X и Y
- Добавить возможность поворачивать и масштабировать системы координат, выбираемые по G54-G59
- Поддержка Jinja2 шаблонов в g-code
Лицензия
GNU GPL v3, или более новая
Репозиторий
Часть, запускаемая на linux: https://github.com/vladtcvs/nortcnccontrol/releases/tag/0.3
Часть, запускаемая на микроконтроллере: https://github.com/vladtcvs/cnccontrol_rt/releases/tag/0.3