LinuxCNC - LinuxCNC

LinuxCNC
Стабильный выпуск
2.7.14
Репозиторийhttps://github.com/LinuxCNC/linuxcnc
ЛицензияСвободный
Интернет сайтhttp://linuxcnc.org/

LinuxCNC (ранее Усовершенствованный контроллер машины или же EMC2) - это бесплатная программная система GNU / Linux с открытым исходным кодом, которая реализует числовое управление возможность использования компьютеров общего назначения для управления ЧПУ машины. Разработанный различными разработчиками-добровольцами на linuxcnc.org, он обычно входит в состав ISO файл с модифицированной версией 32-битной Ubuntu Linux что обеспечивает необходимые ядро реального времени.

Из-за плотного операционная система реального времени интеграции, стандартный настольный ПК Ubuntu Linux без ядра реального времени будет запускать пакет только в демонстрационном режиме.

Цель

LinuxCNC - это программная система для числовое управление машин, таких как фрезерные станки, токарные станки, плазменные резаки, маршрутизаторы, машины для резки, роботы и гексаподы. Он может контролировать до 9 осей или шарниров станка с ЧПУ, используя G-код (RS-274NGC) в качестве входных данных. В нем есть несколько GUI подходит для конкретных видов использования (сенсорный экран, интерактивная разработка).

В настоящее время он почти исключительно используется на x86 Платформы ПК, но были перенесены на другие архитектуры.[нужна цитата ] Он широко использует ядро, измененное в реальном времени, и поддерживает оба степпер и сервопривод -типа приводы.

Он не предоставляет функции рисования (CAD - Computer Aided Design) или генерации G-кода из чертежей (CAM - Computer Automated Manufacturing).

История

EMC Всеобщее достояние программная система была первоначально разработана NIST, как следующий шаг за Национальный центр производственных наук / Программа контроллеров нового поколения, спонсируемая ВВС США [NGC 1989] / Спецификация архитектуры открытых систем [SOSAS]. Это называлось EMC [Enhanced Machine Controller Architecture 1993]. Спонсируемые государством программные системы Public Domain для управления фрезерными станками были одними из первых проектов, разработанных с помощью цифрового компьютера в 1950-е годы. Это должна была быть эталонная реализация стандартного отраслевого языка для числового управления операциями обработки, RS-274D (G-код ).

Программное обеспечение включает интерпретатор RS274, управляющий планировщиком траектории движения, драйверы двигателя / исполнительного механизма в реальном времени и пользовательский интерфейс. Он продемонстрировал возможность создания передовой системы числового программного управления с использованием готового оборудования на ПК. FreeBSD или же Linux, сопряжение с различными аппаратными системами управления движением. Дальнейшие разработки продолжаются с использованием текущих и дополнительных архитектур (например, ARM архитектура устройств).

Демонстрационный проект был очень успешным и создал сообщество пользователей и добровольцев. Примерно в июне 2000 г. NIST переместил исходный код в SourceForge под Всеобщее достояние лицензия, чтобы позволить внешним участникам вносить изменения. В 2003 году сообщество переписало некоторые его части, реорганизовало и упростило другие части, а затем дало ему новое имя - EMC2. EMC2 все еще активно развивается. Лицензирование теперь под Стандартная общественная лицензия GNU.

Принятие нового названия EMC2 было вызвано несколькими серьезными изменениями. В первую очередь, новый слой, известный как HAL (Уровень аппаратной абстракции ) был введен для простого соединения функций без изменения кода C или перекомпиляции. Это разделение траектории и планирование движения от оборудования движения, что упрощает создание управляющих программ для поддержки портальная машина, токарный станок резьбовой и жесткий постукивание, Робот SCARA оружие и множество других приспособлений. HAL поставляется с некоторыми интерактивными инструментами для изучения сигналов, а также для подключения и удаления ссылок. Он также включает виртуальный осциллограф для анализа сигналов в реальном времени. Еще одно изменение в EMC2 - Classic Ladder (открытый исходный код). лестничная логика реализация) адаптирована к среде реального времени для настройки сложных вспомогательных устройств, таких как автоматические устройства смены инструмента.

Примерно в 2011 году название было официально изменено с EMC2 на LinuxCNC. Это было сделано по настоянию Корпорация EMC и согласие руководства проекта. Внутри некоторые ссылаются на LinuxCNC от EMC или EMC2, как это было исторически известно. Корпорация EMC предположила, что проект LinuxCNC, как было сказано ранее, будет сбивать с толку заказчиков или потенциальных заказчиков своими (в основном) продуктами, связанными с системами хранения.

Платформы

Из-за необходимости мелкозернистого и точного управления машинами в реальном времени LinuxCNC требует платформы с вычисления в реальном времени возможности. Ранние версии LinuxCNC (EMC) работали под управлением версии реального времени Windows NT, но более поздняя версия Windows не имела хорошей поддержки реального времени, поэтому Linux с расширениями реального времени стал предпочтительной платформой.[1] В настоящее время LinuxCNC использует RTAI ядро или ПРЕМПТ-РТ с вкусом LinuxCNC 'uspace' RTAPI.

Установка LinuxCNC и лежащих в основе исправлений ядра в реальном времени в базовой системе Linux может быть сложной задачей. Пол Корнер пришел на помощь с BDI (Brain Dead Install), который представлял собой компакт-диск, с которого можно было установить полную рабочую систему (Linux, патчи реального времени и LinuxCNC).[2] Это сделало LinuxCNC доступным для гораздо более широкого сообщества пользователей. Сегодня BDI Пола превратился в загрузочный (живой) ISO, который можно записать на компакт-диск или USB и запустить на большинстве компьютеров типа ПК для тестирования LinuxCNC без необходимости установки системы. Загрузочные ISO-образы LinuxCNC доступны для Debian wheezy (ядро RTAI) и Debian stretch (ядро RT-PREEMPT).

Политика LinuxCNC - создавать пакеты и предлагать поддержку для Debian, но готовые двоичные пакеты также доступны для других систем и архитектур Linux.[3]

Дизайн

LinuxCNC использует модель «разум, план, действие» при взаимодействии с оборудованием.[4] Например, он считывает текущее положение оси, вычисляет новое целевое положение / напряжение и затем записывает его в оборудование. Буферизация команд отсутствует, чтение или запись, инициируемые извне, не разрешены. Такой подход без буферизации дает наибольшую свободу при добавлении или изменении возможностей LinuxCNC. Благодаря использованию относительно «глупого» внешнего оборудования и программированию возможностей хост-компьютера LinuxCNC не привязан к какому-либо одному элементу оборудования. Это также позволяет заинтересованному пользователю легко изменять поведение / возможности / оборудование.

Эта модель, как правило, поддерживает определенные типы внешних интерфейсов: PCI, PCIE, параллельный порт (в режиме SPP или EPP), ISA и Ethernet используются для управления двигателем. Последовательный порт USB и RS232 не подходят; USB имеет плохие возможности реального времени, а RS232 слишком медленный для управления двигателем.

LinuxCNC предъявляет основные требования к работе в реальном времени из-за этой модели. Интервал между чтением и записью должен быть постоянным и достаточно быстрым. Типичная машина выполняет вычисления в реальном времени в повторяющемся потоке в 1 миллисекунду. Чтение и запись на оборудование должны занимать небольшую часть этого времени, например 200 микросекунд, иначе фазовый сдвиг затруднит настройку, и для программ, не работающих в реальном времени, будет меньше времени, что может сделать управление экраном менее отзывчивым.

LinuxCNC «использует генератор трапецеидального профиля скорости».[5]

Конфигурация

LinuxCNC использует программный уровень под названием HAL (Hardware Abstraction Layer).[6]

HAL позволяет создавать множество конфигураций [7] будучи гибким: можно смешивать и согласовывать различные платы управления оборудованием, выводить управляющие сигналы через параллельный порт или же Серийный порт - во время движения степпер или же серводвигатели, соленоиды и другие приводы.

LinuxCNC также включает программное обеспечение Программируемый логический контроллер (PLC), который обычно используется в обширных конфигурациях (например, в сложных обрабатывающих центрах). Программный ПЛК основан на проекте с открытым исходным кодом Classicladder,[8] и работает в среде реального времени.

Смотрите также

  • Машинный комплект, проект с открытым исходным кодом для переноса и расширения EMC2 / LinuxCNC для эффективной работы на BeagleBone и сопутствующее оборудование.

Рекомендации

Примечания
  1. ^ «История EMC». Совет директоров Linuxcnc. 12 сентября 2018 г.. Получено 2018-09-14.
  2. ^ «История EMC». Совет директоров Linuxcnc. 12 сентября 2018 г.. Получено 2018-09-14.
  3. ^ "Получение LinuxCNC". linuxcnc.org. 19 февраля 2018 г.. Получено 2018-09-14.
  4. ^ «Требования к конструкции оборудования Linuxcnc».
  5. ^ "Простые заметки ТП".
  6. ^ «Уровень абстракции оборудования EMC2». Совет директоров Linuxcnc. Получено 2010-09-30.
  7. ^ "Пара тематических исследований". Получено 2010-09-30.
  8. ^ "ClassicLadder". sites.google.com. Получено 2014-03-06.
Библиография

внешняя ссылка