Структура и
особенности реализации интерполятора траектории в системе ЧПУ «АксиОМА Контрол»[1]
А.И.
Обухов,
к.т.н., ст. преп., obukhov@ncsystems.ru,
А.Б. Любимов,
вед. инж.,
ljubimov@ncsystems.ru,
Н.С. Григорьев,
студ., grigorievnikita.s@gmail.com
МГТУ «СТАНКИН», г. Москва
Рассмотрена
задача интерполяции контура в системе ЧПУ. Приведены главные особенности
реализации интерполятора в системе ЧПУ «АксиОМА Контрол».
The article considers the task
of the contour interpolation in the CNC system. It covers the main features of interpolator
implementation in the "AxiOMA Control" CNC system.
Числовое
программное управление станочным оборудованием заключается в обеспечении
обработки изделия в соответствии с заданной в программе траекторией пути
инструмента. В управляющих программах систем ЧПУ информация о контуре обработки
может быть представлена в разных формах (в виде линейных, круговых или различного
рода полиномиальных сегментов). Интерполятор является одним из основных модулей
геометрической задачи системы ЧПУ, функцией которого является преобразование
сегментов управляющей программы в управляющие сигналы или промежуточные данные,
используемые для вычисления таких сигналов другими модулями.
Система
ЧПУ может реализовывать один из двух подходов к построению процедуры обработки
траектории и управления движением. В первом варианте элементы контура
интерполируются в жестком реальном времени одновременно с генерацией командных
сигналов скорости и положения. Интерполятор в этом случае как единый механизм реализует
все функции, связанные с преобразованием траектории в управляющее воздействие.
Другой подход, который реализован в системе «АксиОМА Контрол», подразумевает
предварительное дробление контура на элементарные линейные сегменты (рис. 1).
Это позволяет значительно упростить и ускорить работу конвейера вычислений
командных сигналов.
Рис. 1 Двухфазное и однофазное управление движением
Задача
расчета скорости на основе анализа последовательности линейных сегментов рассматривалась
в наших публикациях ранее [1]. В данном обзоре рассмотрим структуру
интерполятора фазы дробления.
Модуль
интерполятора состоит из трех основных блоков (групп классов, совместно реализующих
отдельную важную функцию системы). Транслятор получает от
интерпретатора [2] или внешнего приложения элементы контура (кадры) в бинарном
формате, определенном спецификацией интерфейсов системы ЧПУ, и создает на их основе
объекты узловых точек контура (на самом деле, эти объекты содержат не только
конечные координаты кадра, но и другие данные, необходимые для однозначного задания
геометрии сегмента траектории, например, радиус и координаты центра окружности).
Используя список точек, блок подготовки команд формирует готовые объекты команд
интерполятора [3]. Макроинтерполятор извлекает команды из списка и генерирует
последовательность микрокоманд движения, представляющих собой элементарные
линейные сегменты траектории.
Отдельный
блок подготовки команд необходим по нескольким причинам. Во-первых, многие типы
сегментов определяются несколькими смежными узловыми точками контура (в
частности, сплайны). Кроме того, кинематическая схема станка может обеспечивать
одну и ту же позицию инструмента разными конфигурациями осей, поэтому до
обработки (дробления) команды необходимо выбрать кинематическую конфигурацию и
вычислить для нее длину пути и приращения позиций осей при движении от начала
до конца сегмента.
Отдельный
блок подготовки команд необходим по нескольким причинам. Во-первых, многие типы
сегментов определяются несколькими смежными узловыми точками контура (в
частности, сплайны). Кроме того, кинематическая схема станка может обеспечивать
одну и ту же позицию инструмента разными конфигурациями осей, поэтому до
обработки (дробления) команды необходимо выбрать кинематическую конфигурацию и
вычислить для нее длину пути и приращения позиций осей при движении от начала
до конца сегмента.
Рис. 2 Общая
структура интерполятора
Сначала
на основе списка узловых точек формируется предварительный набор команд, не
подлежащих интерполяции в «сыром» виде. Затем блок подготовки обращается к
подсистеме кинематических преобразований и задает для команды конфигурацию
осей, наиболее подходящую при текущем положении инструмента. Наконец, для
каждой команды вычисляется контурный путь и приращения координат. Команды остаются
в том же списке, но им присваивается флаг готовности. После этого макроинтерполятор
может их извлекать по одной и формировать стек микрокоманд движения.
Рис. 3 Подготовка команд интерполяции
Макроинтерполятор
– это набор классов, реализующих функцию дробления готовых сегментов траектории
и генерацию стека микрокоманд. Макроинтерполятор работает в отдельном потоке и
запускается циклически. Когда обработка очередного сегмента заканчивается, из
списка извлекается следующая команда или цикл переходит в режим ожидания.
Каждый
такт работы макроинтерполятора включает в себя несколько шагов. Блок задания
приращения пути вычисляет требуемую длину текущего шага дробления. Затем на
основе геометрических данных команды и заданного приращения пути вычисляются абсолютные
координаты в системе детали. Для этого используется класс интерполятора
траектории, привязанный к типу кадра. На следующем этапе модуль общих
координатных преобразований вычисляет абсолютные координаты в системе станка.
При этом учитываются заданные смещения и повороты систем друг относительно друга.
На последнем шаге активный модуль осевых (кинематических) преобразований определяет
абсолютные позиции осей станка. Значения позиций вместе со служебными данными
записываются в микрокоманду.
Рис. 4 Структура
макроинтерполятора
Дробление
кадров дает возможность реализовать единый алгоритм управления движением для
всех типов траектории. Модульная реализация макроинтерполятора позволяет
добавлять в систему поддержку новых кинематических схем и типов описания
траектории без существенного изменения внутренней реализации системы и структуры
связей между классами [4].
1.
Обухов
А.И., Мартинова Л.И., Любимов А.Б. Построение
алгоритма опережающего просмотра кадров для линейных и нелинейных законов
управления подачей в системах ЧПУ // Автоматизация в промышленности, №5, 2016.
с.10-13.
2.
Мартинов
Г.М., Обухов А. И., Пушков Р.Л. Принцип построения
универсального интерпретатора языка программирования высокого уровня для
систем ЧПУ // Мехатроника, автоматизация, управление.
2010. №6. C. 42-50.
3.
Мартинов
Г.М., Сосонкин В.Л. Концепция числового программного
управления мехатронными системами: реализация геометрической
задачи // Мехатроника, автоматизация, управление.
2001. №1. C. 9-15.
4.
Мартинова
Л.И., Козак Н.В., Нежметдинов Р.А., Пушков Р.Л.,
Обухов А.И. Практические аспекты применения отечественной многофункциональной
системы ЧПУ ""АксиОМА Контрол" // Автоматизация в промышленности.
2012. №5. с.36-40.
[1] Работа выполнена при финансовой поддержке Министерства
образования и науки РФ в рамках государственного задания в сфере научной
деятельности.