В статье рассмотрена возможность конвертирования программ для станков с ЧПУ стандартизированного языка G-code в индивидуальный язык программирования для станка. Представлен алгоритм процесса проектирования и обработки с использованием конвертера данных языка программирования, а также представлено описание разработанного приложения конвертера.
Системы автоматизированного проектирования и обработки, а также системы управления оборудованием с ЧПУ являются важнейшим звеном в последовательном процессе от разработки детали до ее производства. Стоимость такого программного обеспечения может равняться стоимости самого оборудования, а в некоторых случаях и превышать ее.
На сегодняшний день существует множество систем автоматизированного проектирования и обработки (CAM и CAD системы), сопровождающих технологический процесс на каждом этапе изготовления детали от создания модели, моделирования алгоритма выполнения технологического процесса до непосредственно самой обработки заготовки Также существует немало плагинов, являющихся дополнительным программным обеспечением, дающих возможность экспортировать данные в определенном формате. Или же такие плагины обеспечивают совместимость форматов.
Рассмотрим стандартную схему процесса изготовления детали с применением автоматизированных систем (рисунок 1).
Рис.1. Схема процесса автоматизированного проектирования и изготовления детали
На представленной схеме видно, что при начальном этапе производства деталь проектируется в CAD-системе. Существует множество различных систем автоматизированного проектирования, многие из них представлены в свободном доступе [1].
После проектирования детали необходимо передать данные о геометрии обрабатываемых поверхностей в программу автоматизированной обработки. Для этого требуется некоторый посредник, этим посредником могут являться дополнительные плагины, устанавливаемые «поверх» программы CAD. Плагин экспортирует данные в язык программирования G-code для управления станком с ЧПУ.
G-code – стандартизированный язык программирования устройств с ЧПУ. В языке G-code код программы содержит всю необходимую информацию о геометрии обрабатываемой поверхности и технологические программы управления обработкой [2].
Многие CAM-системы способны работать с программами в формате G-code. Разработчики систем автоматизированного проектирования, независимо от того разрабатывается ли коммерческое или свободное ПО, адаптируют системы для работы с программами в формате G-code.
Проблема в том, что многие системы автоматизированной обработки коммерческие. Приобретение лицензии обходится дорого. Далее возникает проблема адаптации станка с ЧПУ к работе с определенной CAM-системой. Требуется адаптировать систему управления двигателями, инструментами станка. В итоге стоимость всего обрабатывающего комплекса, включающая в себя оборудование и программное обеспечение, возрастает.
Рис. 2. Схема процесса автоматизированного
проектирования и изготовления детали
с применением конвертера
В случаях, когда станок обладает собственной системой управления и собственным языком программирования, есть возможность адаптировать его к работе по схеме, представленной на рисунке 1, исключая из процесса CAM-систему. Тогда мы будем иметь дело с данными, полученными при обработке информации о модели в плагине, позволяющем получить G-code – программу для полного цикла изготовления детали на станке.
В качестве оборудования был выбран 5-ти координатный токарный станок, изготовленный на базе кафедры АиСУ ОмГУПСа. Станок обладает собственной системой управления и собственным языком программирования. Основным отличием языка программирования данного станка от языка программирования G-code были команды управления движением по криволинейным траекториям: здесь круговое перемещение задается сплайн-функцией, которая определяется точками, лежащими на описываемой кривой.
Перед нами стояла задача разработать приложение, способное конвертировать данные из формата языка G-code в формат данных собственного языка программирования.
Приложение было разработано в среде Builder C++. Данное приложение предназначено для работы в среде Windows.
Рабочее окно приложения включает в себя следующие элементы: поля Memo для просмотра конвертируемых данных и результатов конвертирования, шкалу ProgressBar для индикации процесса выполнения конвертации, также рабочие кнопки для загрузки файла G-code, сохранения текстового файла и кнопку старта процесса конвертации.
Рис. 3. Результат конвертирования
С помощью кнопки «Загрузить файл» открывается окно «Проводник», где выполняется поиск и выбор нужного текстового файла, содержащего G-code.
C помощью кнопки «Преобразовать» осуществляется конвертация данных языка программирования G-code в требуемый формат. Степень завершенности процесса конвертации отображается с помощью шкалы, расположенной в нижней части рабочего окна приложения. Результаты конвертации отображаются в поле Memo, расположенном в правой части окна.
С помощью кнопки «Сохранить» открывается окно программы «Проводник», в котором осуществляется выбор директории для сохранения результатов конвертации в текстовый файл.
Для считывания данных языка программирования G-code используется распознавание в тексте G-кодов, а также следующих за ними числовых значений. Тестовый файл распознается построчно, в отдельный массив записываются данные о геометрическом расположении точек, по которым рассчитывается траектория движения рабочего инструмента станка с ЧПУ.
Рабочее окно приложения конвертора представлено на рисунке 4.
Первоначальной задачей является преобразование синтаксиса языка программирования. В языке G-code используются G-коды, несущие определенные функции.
Для линейной интерполяции требуется считывать значение начальных и конечных координат перемещения и записывать данные значения в требуемом синтаксисе. Следует учитывать также точность задания координат. В системе управления станком, упомянутом выше, точность позиционирования составляет 0,5 мм, а в языке G-code указывается 6 знаков после точки. Поэтому следует округлять значения до сотых.
При передаче команды круговой интерполяции G02 и G03 мы получаем следующие данные: точки начала и конца дуги окружности радиуса R.
Для преобразования данных нам потребуется определить координаты точек, расположенных на дуге, чтобы записать команды в требуемом синтаксисе. Произвести такой расчет не представляет сложности, так как мы можем определить центр окружности, а дальше требуется использовать несколько простых тригонометрических формул. Для обеспечения наилучшей точности мы выбираем количество точек, определяющих сплайн, равное 10.
Рис. 4. Рабочее окно программы конвертера
Координаты центра окружности определяются командой G-кода относительно точки, в которой находится программа перед выполнением данной команды. Далее определяем угол отклонения начальной и конечной точки дуги относительно положительного направления оси OX. Эту дугу разбиваем на десять частей, определяя координаты точек, ограничивающих отрезки.
С помощью дальнейших геометрических расчетов мы можем рассчитать координаты точек, лежащих на дуге окружности, описанной командой G-кода.
Пример конвертирования команд круговой интерполяции приведен на рисунке 4.2. Из рисунка видно, что команда круговой интерполяции, которая включает в себя относительные координаты расположения центра окружности, начальную и конечную точку, преобразуется в сплайн. Сплайн определяется двумя двумерными массивами точек: в первом задаются относительные координаты точек по оси ОХ, во втором – по оси OY. Вслед за конфигурированием сплайна в программе следуют команды, задающие круговое перемещение.
Литература:
Организация виртуальной лаборатории интеграции CAD-CAM на основе бесплатного программного обеспечения. А.О. Аристов, 2011 – C. 2 – 4.
http://ru.wikipedia.org/wiki/САПР.