Cnc программа для linux
Сегодня я хочу поднять вопрос о софте который используется для обработки деталей на ЧПУ станках.
Если вы используете ЧПУ фрезер в производстве, то вопрос о легальности софта встает в полный рост. Все коммерческие программы управления ЧПУ станками стоят весьма не малых денег, таких, что малому бизнесу на первых порах не осилить. Тут и встает вопрос о том, как и легальный софт использовать и заплатить за него поменьше.
Конечно, в интернете можно найти много бесплатного и самописного софта, но зачастую данное ПО оказывается или малорабочим или заточенным под конкретный контроллер да и для работы требует то DOS, то Win 95-98. А уж чего стоит отсутствие богатства функционала!
Разработчики ПО LinuxCNC переписали частично саму ОС для того, что бы улучшить работу с ЧПУ станками в реальном времени. Ведь в основе своей Linux и тем более Windows не предназначены для работы с портами в реальном времени с ограниченными тайменгами. А именно этого и требуется для работы со станками с числовым программным управлением. При этом, промышленные станки имеют свой встроенный блок управления, на который подается список команд, а работу с осями выполняет уже микроконтроллер. А самописные программы для ЧПУ работают из под DOSа или старых версий виндовс, где можно было стучаться к портам напрямую, а не через виртуальное управление железом.
Программа LinuxCNC на сайте разработчика есть как в виде инсталяционного пакета, так и в виде LifeCD на базе Ubuntu 8.04 Hardy Heron.
Вам достаточно записать образ на диск и загрузиться с него, после чего вы сразу сможете работать с LinuxCNC и управлять своим самодельным ЧПУ устройством.
LinuxCNC это универсальная программа, которая может может управлять фрезерно-гравировальным станком, лазерной и плазменной резкой, а так же любыми другими станками. Было бы желание разобраться и настроить программу. Но самое главное, это то, что LinuxCNC абсолютно бесплатен, имеет свою техподдержку и постоянно развивается
На сегодняшний день OS Ubuntu, на базе которой сделан дистрибутив LinuxCNC, это одна из наиболее успешных реализаций Linux для ПК. Устанавливаясь на комп Ubuntu автоматически находит практически 96% известных устройств, а пользовательский интерфейс может поспорить с Windows 7.
Для нормальной работы вам необходим комп с 512 Мб оперативной памяти и 4 Gb свободного места на харде. Процессор желателен не менее 1500 Мгц. Если судить по сегодняшним меркам, то эти требования довольно слабые. Всегда можно взять недорого ноутбук 5-6 летней давности с рук с подобной конфигураций.
Документацию по программе управления ЧПУ станком можно взять здесь. Она лежит в PDF файлах так же доступна Wiki и сообщество с форумом. Все это добро на английском языке, но такова уж судьба бесплатных проектов.
Остается лишь привести пример работы 4-х осевого ЧПУ станка под управлением LinuxCNC и на этом завершить обзор.
LinuxCNC 2.8 Downloads
The Debian 10 Buster ISO uses a PREEMPT-RT patch which is close to mainstream Linux but does not, in some cases, give quite such good realtime performance as the previous RTAI kernel. It is very often more than good enough. It should probably be the first version tried even if using a parallel port. This is compatible with all Mesa and Pico interface boards.
Users requiring a known-stable RTAI installation can install the Debian 7 Wheezy ISO and then upgrade as described in 2.8 documents.
The more adventurous can install the Buster ISO and then install the experimental RTAI kernel as described in 2.8 documents
Raspberry Pi 4 Uspace compatible with Mesa Ethernet and SPI interface boards.
LinuxCNC 2.7 Downloads
The Debian 7 Wheezy ISO uses RTAI which LinuxCNC has used as the Realtime layer since the very beginning. This gives the best real-time performance and is generally a better choice for software stepping using a parallel port. However making a stable version of a 4.x Kernel for Stretch (and eventually Buster) has proven difficult, which is partly why we still distribute the EOL Wheezy. This is compatible with Mesa PCI and PCIe and Pico interface boards but is not compatible with Mesa Ethernet interface boards.
The Debian 9 Stretch ISO uses a PREEMPT-RT patch which is closer to mainstream Linux but does not, in some cases, give quite such good realtime performance. It is very often more than good enough. It should probably be the first version tried even if using a parallel port. This is compatible with all Mesa and Pico interface boards.
The LinuxCNC Buildbot builds several different versions of OS’s and is the best way to get the 2.8 (master) version. If you have a gantry type of machine the 2.8 supports dual motor gantry homing.
More information on downloading and installing is in the LinuxCNC Documents
LinuxCNC Packages
LinuxCNC debian packages aka .deb files can be installed on a system with dpkg from the command line or with GDebi as a graphical install method. You will need to have a Preempt RT kernel to run Uspace.
This section describes the recommended way to download and make a fresh install of LinuxCNC. There are also Alternate Install Methods for the adventurous. If you have an existing install that you want to upgrade, go to the Updating LinuxCNC section instead.
Fresh installs of LinuxCNC are most easily created using the Live/Install Image. This is a hybrid ISO filesystem image that can be written to a USB storage device or a DVD and used to boot a computer. At boot time you will be given a choice of booting the "Live" system (to run LinuxCNC without making any permanent changes to your computer) or booting the Installer (to install LinuxCNC and its operating system onto your computer’s hard drive).
The outline of the process looks like this:
Download the Live/Install Image.
Write the image to a USB storage device or DVD.
Boot the Live system to test out LinuxCNC.
Boot the Installer to install LinuxCNC.
1. Download the image
This section describes some methods for downloading the Live/Install Image.
1.1. Normal Download
This can be installed using the normal Pi install process including with the Raspberry Pi Imager app.
This SD image is reported not to work with the Raspberry Pi4 8GB model. Note also that this version of the SD image limits available memory to 3GB as this is necessary to persuade it to run with both WiFi and USB working on some versions of the Pi. You can experiment with removing this limit by editing the config-rt.txt file in the boot directory. If you can’t boot after the change then the file can be edited back by mounting the SD card in a a different computer (maybe even a Pi with a USB card reader)
1.2. Download using zsync
zsync is a download application that efficiently resumes interrupted downloads and efficiently transfers large files with small modifications (if you have an older local copy). Use zsync if you have trouble downloading the image using the Normal Download method.
LinuxCNC — это набор настраиваемых приложений для управления станками с числовым программным управлением (ЧПУ), 3D-принтерами, роботами, лазерными резаками, плазменными резаками и другими автоматизированными устройствами.
1. Как работает LinuxCNC
LinuxCNC способен обеспечить согласованное управление по 9 осям движения. По своей сути программа состоит из нескольких ключевых компонентов, которые объединены вместе и образуют единую целостную систему:
- графический интерфейс пользователя (GUI), который образует основной интерфейс между оператором, программным обеспечением и самим станком с ЧПУ;
- уровень аппаратной абстракции (HAL), который обеспечивает метод связывания всех различных внутренних виртуальных сигналов, генерируемых и принимаемых LinuxCNC, с внешним миром;
- контроллеры высокого уровня, которые координируют создание и выполнение управления движением станка с ЧПУ, а именно контроллер движения (EMCMOT), контроллер дискретного ввода / вывода (EMCIO) и исполнитель задач (EMCTASK).
На иллюстрации ниже представлена простая блок-схема, показывающая, как может выглядеть типичный 3-осевой фрезерный станок с ЧПУ с шаговыми двигателями:
Принцип работы LinuxCNC
Компьютер под управлением LinuxCNC отправляет последовательность импульсов через параллельный порт на шаговые приводы, к каждому из которых подключен один шаговый двигатель. Каждый привод получает два независимых сигнала; один сигнал, чтобы дать команду приводу перемещать связанный с ним шаговый двигатель по часовой стрелке или против часовой стрелки, и второй сигнал, который определяет скорость, с которой этот шаговый двигатель вращается.
Проиллюстрированная система шагового двигателя под управлением параллельного порта, система LinuxCNC также может использовать преимущества широкого спектра специализированных аппаратных интерфейсов управления движением для увеличения скорости и возможностей ввода-вывода.
В большинстве случаев пользователи создают конфигурацию, специфичную для настройки своего станка с ЧПУ, используя либо Stepper Configuration Wizard (для систем ЧПУ, работающих с параллельным портом компьютеров), либо Mesa Hardware Wizard (для более продвинутых систем, использующих Mesa Anything I / O PCI карта). Запуск любого из мастеров создаст несколько папок на жестком диске компьютеров, содержащих ряд файлов конфигурации, специфичных для этого станка с ЧПУ, и значок, расположенный на рабочем столе, чтобы облегчить запуск LinuxCNC.
Например, если мастер настройки шагового двигателя использовался для создания настройки для 3-осевого фрезерного станка с ЧПУ, показанного выше и названного My_CNC , папки, созданные мастером, обычно будут содержать следующие файлы:
- Папка: My_CNC
- My_CNC.ini
- Файл INI содержит всю основную информацию об оборудовании, касающуюся работы фрезерного станка с ЧПУ, такую как количество шагов, которые каждый шаговый двигатель должен повернуть, чтобы совершить один полный оборот, максимальная скорость, с которой может работать каждый шаговый двигатель, пределы перемещения каждой оси или конфигурации и поведения концевых выключателей на каждой оси.
- Этот файл HAL содержит информацию, которая сообщает LinuxCNC, как связать внутренние виртуальные сигналы с физическими соединениями за пределами компьютера. Например, указание вывода 4 на параллельном порту для отправки сигнала направления шага оси Z или указание LinuxCNC прекратить движение двигателя оси X при срабатывании концевого выключателя на выводе 13 параллельного порта.
- Настройки конфигурации фрезера, выходящие за рамки мастера, могут быть выполнены путем включения дополнительных ссылок на другие виртуальные точки в LinuxCNC в этот файл HAL. При запуске сеанса LinuxCNC этот файл читается и обрабатывается до загрузки графического интерфейса. Пример может включать в себя инициирование связи Modbus с двигателем шпинделя, чтобы он был подтвержден как работоспособный до отображения графического интерфейса пользователя.
- Файл custom_postgui HAL допускает дальнейшую настройку LinuxCNC, но отличается от custom.HAL тем, что он обрабатывается после отображения графического интерфейса пользователя. Например, после установления связи Modbus с двигателем шпинделя в custom.hal LinuxCNC может использовать файл custom_postgui, чтобы связать считывание скорости шпинделя с моторного привода с гистограммой, отображаемой в графическом интерфейсе пользователя.
- Он предоставляется в качестве резервной копии файла custom_postgui.hal, чтобы пользователь мог быстро восстановить ранее работавшую конфигурацию postgui HAL. Это особенно полезно, если пользователь хочет снова запустить Мастер настройки под тем же именем My_CNC , чтобы изменить некоторые параметры станка. Сохранение конфигурации в мастере перезапишет существующий файл custom_postgui, а файл postgui_backup останется нетронутым.
- Файл таблицы инструментов содержит параметризованный список любых режущих инструментов, используемых на фрезерном станке. Эти параметры могут включать диаметр и длину фрезы и используются для предоставления каталога данных, которые сообщают LinuxCNC, как компенсировать его движение для инструментов разного размера в рамках операции фрезерования.
- Папка nc_files предоставляется как место по умолчанию для хранения программ G-кода, используемых для управления станком с ЧПУ. Он также включает ряд подпапок с примерами G-кода.
2. Графические пользовательские интерфейсы LinuxCNC
Графический пользовательский интерфейс — это часть LinuxCNC, с которой взаимодействует оператор станка. LinuxCNC поставляется с несколькими типами пользовательских интерфейсов, которые можно выбрать, отредактировав определенные поля, содержащиеся в файле INI :
Axis — стандартный графический интерфейс клавиатуры. Это также графический интерфейс по умолчанию, запускаемый, когда мастер настройки используется для создания средства запуска значков на рабочем столе:
Интерфейс Axis LinuxCNC
Touchy — графический интерфейс с сенсорным экраном:
Touchy графический интерфейс LinuxCNC с сенсорным экраном
Gscreen — настраиваемый пользователем графический интерфейс сенсорного экрана:
Gscreen настраиваемый пользователем графический интерфейс сенсорного экрана
GMOCCAPY — графический интерфейс сенсорного экрана на основе Gscreen. GMOCCAPY также разработан, чтобы одинаково хорошо работать в приложениях, где клавиатура и мышь являются предпочтительными методами управления графическим интерфейсом:
GMOCCAPY графический интерфейс сенсорного экрана на основе Gscreen
NGCGUI — графический интерфейс LinuxCNC, обеспечивающий программирование G-кода в стиле мастера. NGCGUI может быть запущен как отдельная программа или встроен в другой графический интерфейс в виде ряда вкладок. На следующем снимке экрана показан NGCGUI, встроенный в Axis:
NGCGUI графический интерфейс подпрограммы
3. Виртуальные панели управления
Как упоминалось выше, многие графические интерфейсы LinuxCNC могут быть настроены пользователем. Это может быть сделано для добавления индикаторов, датчиков, переключателей или ползунков к основному внешнему виду одного из графических интерфейсов пользователя для повышения гибкости или функциональности. В LinuxCNC предлагается два стиля виртуальной панели управления:
PyVCP , виртуальная панель управления на основе Python, которую можно добавить в графический интерфейс Axis. PyVCP использует только виртуальные сигналы, содержащиеся на уровне аппаратной абстракции, такие как индикатор скорости шпинделя или выходной сигнал аварийной остановки, и имеет простой вид. Это делает его отличным выбором, если пользователь хочет добавить виртуальную панель управления с минимальными усилиями.
PyVCP виртуальная панель управления LinuxCNC на основе Python
GladeVCP , виртуальная панель управления на основе Glade, которую можно добавить в графический интерфейс Axis или Touchy. GladeVCP имеет преимущество перед PyVCP в том, что он не ограничивается отображением или управлением виртуальными сигналами HAL, но может включать другие внешние интерфейсы вне LinuxCNC, такие как оконные или сетевые события. GladeVCP также более гибок в том, как его можно настроить для отображения в графическом интерфейсе:
GladeVCP виртуальная панель управления LinuxCNC
4. Языки
LinuxCNC использует файлы перевода для перевода пользовательских интерфейсов LinuxCNC на многие языки, включая французский, немецкий, итальянский, финский, русский, румынский, португальский и китайский. Предполагая, что перевод был создан, LinuxCNC будет автоматически использовать любой родной язык, на котором вы вошли в систему при запуске операционной системы Linux. Если ваш язык не был переведен, обратитесь за помощью к разработчику в IRC, в список рассылки или на форум пользователей.
5. Режимы работы
Когда LinuxCNC запущен, для ввода команд используются три различных основных режима. Это ручной, автоматический и ручной ввод данных (MDI). Переход из одного режима в другой имеет большое значение в поведении элемента управления LinuxCNC. Есть определенные вещи, которые можно сделать в одном режиме, но нельзя сделать в другом. Оператор может вернуть ось в исходное положение в ручном режиме, но не в автоматическом или ручном режимах. Оператор может заставить машину выполнить весь файл, полный G-кодов, в автоматическом режиме, но не в ручном или MDI.
В ручном режиме каждая команда вводится отдельно. Говоря человеческим языком, ручная команда могла бы включать СОЖ или подвинуть X со скоростью 25 дюймов в минуту. Это примерно эквивалентно щелчку переключателя или повороту маховика для оси. Эти команды обычно обрабатываются в одном из графических интерфейсов нажатием кнопки мыши или удержанием клавиши на клавиатуре. В автоматическом режиме аналогичная кнопка или нажатие клавиши может использоваться для загрузки или запуска целой программы G-кода, которая хранится в файле. В режиме MDI оператор может ввести блок кода и приказать машине выполнить его, нажав клавишу «return» или «enter» на клавиатуре.
Некоторые команды управления движением доступны одновременно и вызывают одинаковые изменения движения во всех режимах. К ним относятся прерывание, аварийный останов и корректировка скорости подачи. Подобные команды не требуют пояснений.
Пользовательский интерфейс AXIS скрывает некоторые различия между автоматическим и другими режимами, делая автоматические команды доступными в большинстве случаев. Это также стирает различие между ручным и MDI, потому что некоторые ручные команды, такие как Touch Off, фактически реализуются путем отправки команд MDI. Это достигается путем автоматического перехода в режим, необходимый для действия, запрошенного пользователем.
Сегодня я хочу поднять вопрос о софте который используется для обработки деталей на ЧПУ станках.
Если вы используете ЧПУ фрезер в производстве, то вопрос о легальности софта встает в полный рост. Все коммерческие программы управления ЧПУ станками стоят весьма не малых денег, таких, что малому бизнесу на первых порах не осилить. Тут и встает вопрос о том, как и легальный софт использовать и заплатить за него поменьше.
Конечно, в интернете можно найти много бесплатного и самописного софта, но зачастую данное ПО оказывается или малорабочим или заточенным под конкретный контроллер да и для работы требует то DOS, то Win 95-98. А уж чего стоит отсутствие богатства функционала!
можно на сайте разработчиков - тут .
Разработчики ПО LinuxCNC переписали частично саму ОС для того, что бы улучшить работу с ЧПУ станками в реальном времени. Ведь в основе своей Linux и тем более Windows не предназначены для работы с портами в реальном времени с ограниченными тайменгами. А именно этого и требуется для работы со станками с числовым программным управлением. При этом, промышленные станки имеют свой встроенный блок управления, на который подается список команд, а работу с осями выполняет уже микроконтроллер. А самописные программы для ЧПУ работают из под DOSа или старых версий виндовс, где можно было стучаться к портам напрямую, а не через виртуальное управление железом.
Программа LinuxCNC на сайте разработчика есть как в виде инсталяционного пакета, так и в виде LifeCD на базе Ubuntu 8.04 Hardy Heron.
Вам достаточно записать образ на диск и загрузиться с него, после чего вы сразу сможете работать с LinuxCNC и управлять своим самодельным ЧПУ устройством.LinuxCNC это универсальная программа, которая может может управлять фрезерно-гравировальным станком, лазерной и плазменной резкой, а так же любыми другими станками. Было бы желание разобраться и настроить программу. Но самое главное, это то, что LinuxCNC абсолютно бесплатен, имеет свою техподдержку и постоянно развивается
На сегодняшний день OS Ubuntu, на базе которой сделан дистрибутив LinuxCNC, это одна из наиболее успешных реализаций Linux для ПК. Устанавливаясь на комп Ubuntu автоматически находит практически 96% известных устройств, а пользовательский интерфейс может поспорить с Windows 7.
Для нормальной работы вам необходим комп с 512 Мб оперативной памяти и 4 Gb свободного места на харде. Процессор желателен не менее 1500 Мгц. Если судить по сегодняшним меркам, то эти требования довольно слабые. Всегда можно взять недорого ноутбук 5-6 летней давности с рук с подобной конфигураций.
Документацию по программе управления ЧПУ станком можно взять здесь . Она лежит в PDF файлах так же доступна Wiki и сообщество с форумом. Все это добро на английском языке, но такова уж судьба бесплатных проектов.
Остается лишь привести пример работы 4-х осевого ЧПУ станка под управлением LinuxCNC и на этом завершить обзор.
Читайте также:
- My_CNC.ini