LinuxCNC обзор принципа работы и интерфейсов.

Блок-схема-LinuxCNC

LinuxCNC — это набор настраиваемых приложений для управления станками с числовым программным управлением (ЧПУ), 3D-принтерами, роботами, лазерными резаками, плазменными резаками и другими автоматизированными устройствами. 

1. Как работает LinuxCNC

LinuxCNC способен обеспечить согласованное управление по 9 осям движения. По своей сути программа состоит из нескольких ключевых компонентов, которые объединены вместе и образуют единую целостную систему:

  • графический интерфейс пользователя (GUI), который образует основной интерфейс между оператором, программным обеспечением и самим станком с ЧПУ;
  • уровень аппаратной абстракции (HAL), который обеспечивает метод связывания всех различных внутренних виртуальных сигналов, генерируемых и принимаемых LinuxCNC, с внешним миром;
  • контроллеры высокого уровня, которые координируют создание и выполнение управления движением станка с ЧПУ, а именно контроллер движения (EMCMOT), контроллер дискретного ввода / вывода (EMCIO) и исполнитель задач (EMCTASK).

На иллюстрации ниже представлена ​​простая блок-схема, показывающая, как может выглядеть типичный 3-осевой фрезерный станок с ЧПУ с шаговыми двигателями:

Принцип работы LinuxCNC
Принцип работы LinuxCNC

Компьютер под управлением LinuxCNC отправляет последовательность импульсов через параллельный порт на шаговые приводы, к каждому из которых подключен один шаговый двигатель. Каждый привод получает два независимых сигнала; один сигнал, чтобы дать команду приводу перемещать связанный с ним шаговый двигатель по часовой стрелке или против часовой стрелки, и второй сигнал, который определяет скорость, с которой этот шаговый двигатель вращается.

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

В большинстве случаев пользователи создают конфигурацию, специфичную для настройки своего станка с ЧПУ, используя либо Stepper Configuration Wizard (для систем ЧПУ, работающих с параллельным портом компьютеров), либо Mesa Hardware Wizard  (для более продвинутых систем, использующих Mesa Anything I / O PCI карта). Запуск любого из мастеров создаст несколько папок на жестком диске компьютеров, содержащих ряд файлов конфигурации, специфичных для этого станка с ЧПУ, и значок, расположенный на рабочем столе, чтобы облегчить запуск LinuxCNC.

Например, если мастер настройки шагового двигателя использовался для создания настройки для 3-осевого фрезерного станка с ЧПУ, показанного выше и названного My_CNC , папки, созданные мастером, обычно будут содержать следующие файлы:

  • Папка: My_CNC
    • My_CNC.ini
      • Файл INI содержит всю основную информацию об оборудовании, касающуюся работы фрезерного станка с ЧПУ, такую ​​как количество шагов, которые каждый шаговый двигатель должен повернуть, чтобы совершить один полный оборот, максимальная скорость, с которой может работать каждый шаговый двигатель, пределы перемещения каждой оси или конфигурации и поведения концевых выключателей на каждой оси.
    • My_CNC.hal
      • Этот файл HAL содержит информацию, которая сообщает LinuxCNC, как связать внутренние виртуальные сигналы с физическими соединениями за пределами компьютера. Например, указание вывода 4 на параллельном порту для отправки сигнала направления шага оси Z или указание LinuxCNC прекратить движение двигателя оси X при срабатывании концевого выключателя на выводе 13 параллельного порта.
    • custom.HAL
      • Настройки конфигурации фрезера, выходящие за рамки мастера, могут быть выполнены путем включения дополнительных ссылок на другие виртуальные точки в LinuxCNC в этот файл HAL. При запуске сеанса LinuxCNC этот файл читается и обрабатывается до загрузки графического интерфейса. Пример может включать в себя инициирование связи Modbus с двигателем шпинделя, чтобы он был подтвержден как работоспособный до отображения графического интерфейса пользователя.
    • custom_postgui.hal
      • Файл custom_postgui HAL допускает дальнейшую настройку LinuxCNC, но отличается от custom.HAL тем, что он обрабатывается после отображения графического интерфейса пользователя. Например, после установления связи Modbus с двигателем шпинделя в custom.hal LinuxCNC может использовать файл custom_postgui, чтобы связать считывание скорости шпинделя с моторного привода с гистограммой, отображаемой в графическом интерфейсе пользователя.
    • postgui_backup.hal
      • Он предоставляется в качестве резервной копии файла custom_postgui.hal, чтобы пользователь мог быстро восстановить ранее работавшую конфигурацию postgui HAL. Это особенно полезно, если пользователь хочет снова запустить Мастер настройки под тем же именем My_CNC , чтобы изменить некоторые параметры станка. Сохранение конфигурации в мастере перезапишет существующий файл custom_postgui, а файл postgui_backup останется нетронутым.
    • tool.tbl
      • Файл таблицы инструментов содержит параметризованный список любых режущих инструментов, используемых на фрезерном станке. Эти параметры могут включать диаметр и длину фрезы и используются для предоставления каталога данных, которые сообщают LinuxCNC, как компенсировать его движение для инструментов разного размера в рамках операции фрезерования.
  • Папка: nc_files
    • Папка nc_files предоставляется как место по умолчанию для хранения программ G-кода, используемых для управления станком с ЧПУ. Он также включает ряд подпапок с примерами G-кода.

2. Графические пользовательские интерфейсы LinuxCNC

Графический пользовательский интерфейс — это часть LinuxCNC, с которой взаимодействует оператор станка. LinuxCNC поставляется с несколькими типами пользовательских интерфейсов, которые можно выбрать, отредактировав определенные поля, содержащиеся в файле INI :

Axis — стандартный графический интерфейс клавиатуры. Это также графический интерфейс по умолчанию, запускаемый, когда мастер настройки используется для создания средства запуска значков на рабочем столе:

Интерфейс Axis LinuxCNC
Интерфейс Axis LinuxCNC

Touchy — графический интерфейс с сенсорным экраном:

Touchy графический интерфейс LinuxCNC с сенсорным экраном
Touchy графический интерфейс LinuxCNC с сенсорным экраном

Gscreen — настраиваемый пользователем графический интерфейс сенсорного экрана:

Gscreen настраиваемый пользователем графический интерфейс сенсорного экрана
Gscreen настраиваемый пользователем графический интерфейс сенсорного экрана

GMOCCAPY — графический интерфейс сенсорного экрана на основе Gscreen. GMOCCAPY также разработан, чтобы одинаково хорошо работать в приложениях, где клавиатура и мышь являются предпочтительными методами управления графическим интерфейсом:

GMOCCAPY графический интерфейс сенсорного экрана на основе Gscreen
GMOCCAPY графический интерфейс сенсорного экрана на основе Gscreen

NGCGUI — графический интерфейс LinuxCNC, обеспечивающий программирование G-кода в стиле мастера. NGCGUI может быть запущен как отдельная программа или встроен в другой графический интерфейс в виде ряда вкладок. На следующем снимке экрана показан NGCGUI, встроенный в Axis:

NGCGUI  графический интерфейс подпрограммы
NGCGUI графический интерфейс подпрограммы

3. Виртуальные панели управления

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

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

PyVCP виртуальная панель управления LinuxCNC на основе Python
PyVCP виртуальная панель управления LinuxCNC на основе Python

GladeVCP , виртуальная панель управления на основе Glade, которую можно добавить в графический интерфейс Axis или Touchy. GladeVCP имеет преимущество перед PyVCP в том, что он не ограничивается отображением или управлением виртуальными сигналами HAL, но может включать другие внешние интерфейсы вне LinuxCNC, такие как оконные или сетевые события. GladeVCP также более гибок в том, как его можно настроить для отображения в графическом интерфейсе:

GladeVCP виртуальная панель управления LinuxCNC
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. Это достигается путем автоматического перехода в режим, необходимый для действия, запрошенного пользователем.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.