LinuxCNC

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

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

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

Содержание
  • 1 Назначение
  • 2 История
  • 3 Платформы
  • 4 Дизайн
  • 5 Конфигурация
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Назначение

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

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

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

История

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

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

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

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

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

Платформы

Из-за необходимости детального, точного управления машинами в реальном времени LinuxCNC требует платформы с вычислительными возможностями в реальном времени. Ранние версии LinuxCNC (EMC) работали под управлением версии Windows NT, работающей в реальном времени, но более поздняя версия Windows не имела хорошей поддержки в реальном времени, поэтому Linux с расширениями реального времени стал предпочтительной платформой. В настоящее время LinuxCNC использует ядро ​​RTAI или PREEMPT-RT с вкусом LinuxCNC «uspace» RTAPI.

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

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

Дизайн

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

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

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

LinuxCNC "использует генератор трапециевидного профиля скорости."

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

LinuxCNC использует программный уровень под названием HAL (уровень аппаратной абстракции).

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

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

См. Также
  • Machinekit, проект с открытым исходным кодом для переноса и расширения EMC2 / LinuxCNC для эффективной работы на BeagleBone и сопутствующем оборудовании.
Ссылки
Примечания
Библиография
Внешние ссылки
Последняя правка сделана 2021-05-27 10:47:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте