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

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

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

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

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

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

На схеме ниже представлена структура типичного 3-осевого ЧПУ-станка с шаговыми двигателями:

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

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

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

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

Например, если используется Stepconf для 3-осевого фрезерного станка с ЧПУ, мастером создается структура с папкой и файлами для конкретной конфигурации:

  • Папка: My_CNC
    • My_CNC.ini
      • Файл INI, содержащий параметры работы станка, такие как шаги для полного оборота двигателя, максимальная скорость, пределы перемещения и параметры концевых выключателей.
    • My_CNC.hal
      • Файл HAL, который связывает внутренние сигналы с внешними устройствами. Например, он может задавать вывод для управления осью Z или остановку двигателя при срабатывании концевого выключателя.
    • custom.HAL
      • Файл для дополнительных настроек, таких как интеграция с Modbus для шпинделя перед загрузкой графического интерфейса.
    • custom_postgui.hal
      • Этот файл обрабатывается после загрузки интерфейса, например, для отображения скорости шпинделя в интерфейсе.
    • postgui_backup.hal
      • Резервная копия файла custom_postgui.hal, которая сохраняет настройки, созданные мастером, и позволяет восстанавливать конфигурации.
    • tool.tbl
      • Таблица с параметрами режущих инструментов, такими как диаметр и длина, для компенсации движения инструмента в процессе фрезеровки.
  • Папка: nc_files
    • Каталог для хранения G-кода для станка с примерами в подпапках.

2. Интерфейсы пользователя в LinuxCNC

Графический интерфейс пользователя (GUI) является основной точкой взаимодействия оператора со станком в системе LinuxCNC. Пакет предлагает несколько вариантов GUI, из которых можно выбрать нужный, изменив параметры, записанные в файле INI:

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

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

Touchy – интерфейс с сенсорным управлением, разработанный для упрощенного взаимодействия с операционной системой:

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

Gscreen – адаптируемый интерфейс для сенсорного управления, позволяющий пользователю менять элементы интерфейса по мере необходимости:

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

GMOCCAPY – усовершенствованный сенсорный интерфейс, созданный на основе Gscreen и подходящий как для сенсорного, так и клавиатурного управления:

GMOCCAPY интерфейс на основе Gscreen
GMOCCAPY интерфейс на основе Gscreen

NGCGUI – графический интерфейс, который поддерживает мастер-подход к программированию G-кода. Его можно запустить как отдельное приложение или встроить в другие GUI как вкладки. На примере ниже NGCGUI встроен в интерфейс Axis:

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

3. Настраиваемые панели управления

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

PyVCP – виртуальная панель, созданная на Python и интегрируемая в интерфейс Axis. Она использует виртуальные сигналы HAL и имеет простую структуру, что подходит для быстрой и легкой настройки:

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

GladeVCP – панель на базе Glade, которая поддерживает расширенные функции и может взаимодействовать с элементами вне LinuxCNC, включая сетевые и оконные события. Она может быть добавлена в интерфейсы Axis или Touchy:

GladeVCP виртуальная панель управления LinuxCNC
GladeVCP виртуальная панель управления LinuxCNC

4. Локализация

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

5. Режимы управления

LinuxCNC предоставляет три основных режима работы для выполнения команд: ручной, автоматический и режим ввода данных (MDI). Каждый из режимов определяет поведение системы и доступные команды, что позволяет операторам гибко управлять машиной. В ручном режиме оператор может перемещать оси и задавать их положение, тогда как в автоматическом режиме доступно выполнение целого файла с командами G-кода. В режиме MDI можно вводить блоки кода вручную и выполнять их нажатием клавиши «Enter».

В ручном режиме все действия выполняются индивидуально, например, запуск системы охлаждения или перемещение оси X с заданной скоростью. Эти команды вводятся в графическом интерфейсе нажатием кнопки или удержанием клавиши. Автоматический режим предназначен для запуска программ из файла с кодом G-кодов. Режим MDI позволяет оператору вводить отдельные команды G-кода и запускать их на выполнение.

Некоторые команды, такие как аварийная остановка или регулировка скорости подачи, работают одинаково во всех режимах, обеспечивая контроль и безопасность. В интерфейсе AXIS также стирается грань между ручным и MDI режимами, так как некоторые команды, такие как Touch Off, автоматически переводят систему в нужный режим для выполнения действия.

Вам может также понравиться...

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.