Постпроцессор для любой системы ЧПУ и для устаревшей тоже…

advertisement
Постпроцессор для любой системы ЧПУ и для устаревшей тоже…
В данной статье описывается опыт создания постпроцессоров на примере
устаревших систем ЧПУ, решаются наиболее распространенных проблемы,
возникающие при постпроцессировании управляющих программы для старых систем
ЧПУ.
Современная CAM-система и старая система ЧПУ
Сегодня львиная доля всех управляющих программ написана с использованием
CAM-систем. Это очень удобно для современных станков. Использование CAM-систем
позволяет в разы уменьшить время написания управляющих программ, как для сложных
деталей, так и для относительно простых. Помимо скорости написания увеличивается и
точность обработки. Также внедрение CAM-систем позволило применить современные
способы обработки, такие как высокоскоростное фрезерование и т.д.
Но в каждой бочке меда есть своя ложка дегтя; выше уже упоминалось, что все это
подходит для современных станков с ЧПУ. Написать управляющую программу в CAMмодуле не составит труда, сложно получить программу для конкретной стойки ЧПУ.
Основные проблемы возникают при постпроцессировании созданной управляющей
программы. Вы спросите, а что тут сложного, выбирается постпроцессор из списка и
получается управляющая программа? Да, действительно, сейчас нет CAM-системы,
которая не содержала бы в себе, набор обобщенных постпроцессоров (CATIA от
Dassault Systems, Mastercam от CNC Software Inc.) или редактор постпроцессоров
(Pro/Engineer от PTC, Delcam-PowerMill от Delcam). И если ваш парк станков состоит из
Sinumerik, Haidenhain или других распространенных на сегодняшний день систем ЧПУ,
то проблем с постпроцессором не возникнет. А как быть с такими системами ЧПУ как
2С42-65, 2С42, 2Р22, 2У22 и т.д. А ведь на многих заводах нашей страны сохранились
станки с такими системами ЧПУ, некоторые уникальны в своем роде и используются для
обработки простых деталей, обработка которых занимает не так много времени, в то
время когда новое оборудование загружено более сложными деталями, требующие
высокой точности.
Как быть в данной ситуации, подбирать подходящий постпроцессор из списка, а
потом долго редактировать управляющую программу, в итоге тратить на это много
времени, а если окажется, что после проверки придется переделывать часть
программы… Или постоянно проверять CLDATA при написании УП, следить чтобы
используемые функции поддерживались постпроцессором и вручную вставлять
необходимые строки.
Как быть в данной ситуации, выход один - создать собственный постпроцессор. Но
каким он будет ?
На сегодняшний день распространено 3 способа создания постпроцессоров:
- индивидуальный - это самый старый способ написания постпроцессоров, когда с
помощью специальных языков программирования (чаще всего это С++) пишется
постпроцессор для определенного станка, процесс очень дорогой, долгий и не гибкий,
поэтому мало приемлем;
- обобщенный - о данном виде постпроцессоров упоминалось выше, суть данного
метода заключается в обобщении однотипных стоек ЧПУ, позволяя вносить в
постпроцессор небольшие поправки, по описанным выше причинам, данный метод тоже
не подойдет так не может охватить уникальное оборудование;
- метод генератора - заключается в создании алгоритмов обработки записей
полученных из CAM-модуля, в последствии из набора этих алгоритмов и получается
постпроцессор.
Для создания постпроцессора воспользуемся универсальным генератором
постпроцессоров IMSpost производства Компании IMS Software Inc., которая является
мировым лидером в данной области.
Постпроцессор преобразует рассчитанные в CAM-системе (формат APT/CL) данные
о положении режущего инструмента в коды конкретного станка (G/M-коды) с учетом
особенностей его кинематики. Одно из многих достоинств IMSpost - это работа со всеми
широко распространенными CAD/CAM-системами и аппаратными платформами, что
позволяет создавать управляющие программы для оборудования с ЧПУ любого вида и
сложности.
Функции IMSpost™:
 поддержка методов высокоскоростной обработки (HSM);
 автоматическое преобразование программ с линейной интерполяцией в
NURBS-формат;
 создание собственного интерфейса или меню;
 вызов собственных файлов, скриптов или приложений во время работы
постпроцессора;
 автоматическая аппроксимация серий отрезков дугами (в любой плоскости);
 обработка CL-файла в режиме полного предварительного считывания;
 решение проблемы нелинейности для многокоординатных станков;
 поддержка любых типов станков с любым количеством линейных и
поворотных осей;
 поддержка циклов сверления в 5-ти осях;
 поддержка станков с коллинеарными осями;
 имитация циклов сверления для станков без поддержки фиксированных
циклов;
 использование одного и того же постпроцессора для разных CAM-систем и
операционных систем;
 удобный и эффективный макроязык с возможностью построчной отладки на
уровне исходных кодов и отслеживания переменных;
 доступ ко всем внутренним переменным постпроцессора и много другое.
Создание постпроцессора
IMSpost уже содержит в себе достаточно
внушительную библиотеку постпроцессоров,
которые используются как шаблоны, для
создания новых. Выбрав подходящий можно
приступить к созданию постпроцессора.
Основной плюс IMSpost - это дробление
постпроцессора на три основных части:
 Program Codes – здесь указываются
используемые G и М коды;
 Controller Format – определят формат
контроллера, т.е. структуру записи
кодов,
префикс
начала
конца
программы, нумерацию кадров и т.д;
 Machine Format – данный раздел
отвечает за компоненты станка и его
кинематику.
Соответственно каждый раздел дробиться на
множество подразделов, которые отображаются
в Техкарте (CheckList).
В данной статье предлагается пройтись по всем особо значимым пунктам Техкарты и
решить наиболее часто встречающиеся проблемы, связанные со старыми ЧПУ. Program
Codes определяет используемые G и M функции. Любая программа начинает с заголовка
(«шапка»), которая всегда будет присутствовать в неизменном виде. В подпункте Start of
program прописывается заголовок.
Смена инструмента обычно записывается функциями M6 и регистром T, их
сочетание общепринято и редко меняется. Бывают случаи, что строчка с загрузкой
инструмента не нужна в силу разных причин. Тогда можно проигнорировать пункт Tool
Change или просто удалить в нем все заполненные пункты.
Следующий
немаловажный пункт - это
коррекция
Cutter
Compensation.
В
нем
определяются G функции,
отвечающие за коррекцию
и используемые регистры.
Если требуется вектор
направления, что не так
уже редко встречается в
старых системах ЧПУ, то
необходимо лишь указать,
какие регистры для этого
следует использовать.
Motion Functions сама
большая и важная функция
в данной части техкарты,
которая
отвечает
за
функции
перемещения:
ускоренное перемещение,
линейная
интерполяция,
круговая
интерполяция,
Nurbs
(сплайновая
интерполяция) и т.д.
Трех-координатные станки со старыми ЧПУ не всегда могут перемещаться
одновременно по всем трем координатам, находящихся в одном кадре, это не проблема
при обработке простых плоских поверхностей. В случае со сложными, где требуется
перемещение по всем трем координатам дело обстоит намного сложнее. Выхода тут два
– дробить кадр на части, используя постпроцессор, или всеми возможными способами
добиваться от CAM-системы приемлемого результата. Согласитесь, что второй способ
достаточно долог, так как придется делать дополнительные построения, вместо одной
стратегии применять несколько других и т.д. С другой стороны первый способ кажется
сомнительным.
Например, если необходимо сначала заглубиться и только потом уже перемещаться
по оставшимся координатам, то сразу появляется вопрос. Как постпроцессор будет
делить кадр? Используя IMSpost можно c легкостью ответить на этот вопрос. При
ускоренном перемещении достаточно включить опцию разбиения, которая будет
считаться определенным образом. Если движение идет от детали, то сначала будет
выполнено перемещение по оси Z, а потом – по осям X,Y. Если движение идет к
детали, то сначала будет выполнено перемещение по осям X,Y, а потом – по оси Z.
Для линейной интерполяции можно ввести свои собственные специальные условия,
тем самым можно установить правила деления участка перемещения.
Кроме того, для каждого условия деления можно определить правила изменения
подачи и скорости шпинделя на данном участке. Например, если угол между данным и
следующим участками перемещений слишком острый, то можно потребовать, чтобы
определенный процент длины участка выполнялся на большей подаче, а оставшаяся
часть – на меньшей подаче. Это обеспечит вам как быструю отработку управляющей
программы, так и повышенную точность обработки детали. Так же можно задать
условия деления длинны участка на части.
Следующим шагом следует круговая интерполяция. Для круговой интерполяции
есть шесть способов вывода кода:
- в векторах i,j,k в абсолютных координатах;
- в векторах i,j,k расстояние от начала кривой, до ее центра;
- в векторах i,j,k расстояние от центра, до начала кривой;
- в векторах i,j,k расстояние от центра до начала кривой в абсолютных значениях;
- в значениях радиуса;
- разбиение на линейные участки.
Из перечисленного видно, что проблем с круговой интерполяцией не должны
возникнуть. Даже если будет использоваться последний пункт (разбиение на линейные
участки) введя параметры линеаризации можно легко контролировать процесс
разбиения дуги на линейные отрезки.
В Motion Functions помимо перечисленных выше способов есть и другие способы
отображения движений: сплайновая интерполяция, копирование поверхностей,
винтовая интерполяция и много другое.
Следующим пунктом идет Drill Cycle. Как видно
из названия, данный модуль отвечает за
постоянные циклы сверления. Циклы являются
больным местом всех постпроцессоров, т.к. даже у
двух одинаковых стоек может использоваться
разная запись циклов и разный набор параметров.
Для старых систем ЧПУ существует проблема с
некоторыми
параметрами,
которые
могут
отсутствовать в современных CAM-системах. Еще
один нюанс в распространенных на сегодняшний
день системах ЧПУ, циклы в основном выглядит
так - G81 (10,20,52,12), а в старых системах ЧПУ G81 X22581 Y7000 Z20737 W20737 F1000. Так как
шаблон, с которым мы работаем, создан для
современной системы ЧПУ, то тут сразу понятно
какого вида цикл мы получим. Тут уже ничего не
поделаешь,
необходимо
редактировать
сам
алгоритм вывода цикла или макрос. Говоря
простым языком, нам необходимы параметры,
записанные в скобках адаптировать под выбранную
систему ЧПУ или написать свой вывод. Указав в
окне Drill Cycle все возможные параметры,
открываем
Macro
Manager
(Управление
макросами), в открывшемся списке необходимо
найти необходимый макрос. Так как в
документации для каждой функции Техкарты
указывается и связанный с ней макрос, найти его
особого труда не составит.
Язык, который использует IMSpost - высокого уровня, это значит, что на нем можно
реализовать все, что требуется в области создания постпроцессоров, например, очень
сложные математические операции, такие как векторные счисления, матричные
преобразования и т.д. Но несмотря на это, язык очень прост и легко понимаем, а
главное очень гибок, благодаря открытости и четкому разграничению всех типов
переменных (одни используются только в тех макросах, где они прописаны, другие
используются в любом месте и т.д.). Встроенный отладчик позволяет быстро проверить
написанный код. Совокупность всех этих факторов делает язык написания макросов в
IMSpost очень эффективным в данной области, не случайно девиз Компании IMS
Software Inc.: «возможно сделать всё, что описывается математически и логически».
Итак, зайдя в макрос, находим строку с выводом цикла, необходимо заменить ее.
Прежде чем начать необходимо разложить цикл на части:
G81 – включение цикла;
XY – соответственно координаты отверстий;
Z – является глубиной сверления;
W – величина отвода;
F – подача.
Осталось собрать данные в одну цепочку вывода. Из документации узнаем
переменные, которые содержат искомые параметры. Например, System.X, System.Y –
содержат последние значения X,Y. Global.depth – содержит конечную глубину
отверстия и т.д.
Если необходимого параметра нет, то тут есть несколько способов, которые зависят от
CAM-модуля и от искомого параметра:
- если данный параметр присутствует в CAM-системе, то всегда можно его вытащить
из (APT/CL) файла;
- вычислить, используя математический аппарат IMSpost;
- попросить пользователя самому ввести данные, для этого в IMSpost существует
специальные диалоговые окна;
- вставить строчку в сам APT/CL файл.
Выбрав один из пунктов можно закончить формирование цикла, после чего
просмотреть полученный результат в отладчике и при удовлетворительном результате
перейти к следующему пункту.
End of Program отвечает за окончание программы, т.е. здесь прописывается конец
программы тем же способом, что и в самом первом пункте. На этом работу с Program
Codes можно закончить и перейти к следующему пункту.
Controller Format – из названия видно, что здесь описывается контроллер, т.е. вид и
формат в котором будут выводиться кадры программы, обозначаться комментарии,
форматы регистров. После заполнения этой части техкарты, полученная программа
примет окончательный вид полностью и будет полностью соответствовать выбранной
системе ЧПУ.
Раздел Sequence Number связан с нумерацией кадров, включает в себя все
параметры, необходимые для задания номера кадра. Предположим, что нумерация
начинается с 10 с шагом 10 и номер не отделяется пробелом от остальных параметров
входящих в кадр.
Register format – очень важный раздел, который определяет форматы записей, здесь
можно описать, как будут выглядеть записи в кадре и добавить свои новые регистры.
Например, необходимо добавить лидирующие нули, или необходимо выводить нули в
конце и т.д.
Определить единицы измерения, для карусельных станков, например, одна из
координат может измеряться как линейное перемещение, а одна как угловое и т.д.
Functions Codes (G/M) – раздел похожий на Register format, только работа ведется с
функциями G и М. Здесь можно отключить вывод «лишних функций», убрать или
поставить их модальность, определить используемые регистры и т.д.
Sort Output – раздел сортировки вывода, позволяет контролировать расстановку всех
функций, координат и всех возможных параметров в кадре.
После окончания работы с данной частью Техкарты, постпроцессор будет полностью
соответствовать требования системы ЧПУ. Осталась последнее, связать выводимые
данные с кинематикой станка.
Связь между кинематикой и выводимыми данными устанавливается в Machine
Format – параметры станка.
В данном разделе необходимо определить кинематику станка, наиболее простой
способ это определить кинематику из модели станка. Кинематика станка создается в
отдельном модуле IMSmodel, который поставляется вместе с IMSpost.
Есть еще способы определить кинематику станка:
- загрузить модель из IMSverify – это еще один продукт Компании IMS Software Inc.
предназначенный для симуляции управляющих программ. Здесь для создания
кинематики используется специальный модуль IMSмachine позволяющий быстро и
без труда создать модели станков со сложной или не стандартной кинематикой;
- собрать модель в IMSpost самому определяя все компоненты – в данном случае
необходимо придерживаться специальных правил и строго определенной
последовательности - это как собирать детскую пирамидку (большое кольцо внизу,
кольцо чуть меньше положить на большое кольцо и т.д.), сложность в том, что вы не
видите что собираете;
- подобрать модель с подходящей кинематикой, так как помимо шаблонов
постпроцессоров IMSpost содержит и шаблоны кинематики.
Помимо Техкарты существует еще и главное меню, которое помимо дублирования
функций техкарты, содержит и дополнительные функции:
- возможность ограничить выводимую управляющую программу по размеру
(например, 8 килобайт), что для старых ЧПУ достаточно актуально;
- создание справочных таблиц, диалоговых окон;
- генерация всех возможных отчетов;
- символ конца и начала кадра;
- выбор точки касания инструмента.
Определив вид и кинематику станка можно «прогнать» программу через полученный
постпроцессор. Если в полученной программе оси направлены правильно, то
постпроцессор готов, если же направление осей не совпадает, необходимо их поменять.
Смена направления осей происходит в разделе Motion Axis, направление осей
определяется по специальным правилам, которые описаны в документации на IMSpost.
Теперь постпроцессор готов к работе, на его разработку ушло чуть больше половины
дня у опытного человека. Если за работу берется человек, не знакомый с IMSpost, то
разработка постпроцессора займет от одного до двух рабочих дней. Согласитесь,
достаточно быстрая и самое главное качественная работа - это одно из качеств,
сделавших Компанию IMS Software Inc. и ее продукт IMSpost лидером на рынке
создания постпроцессоров.
Заключение
У человека прочитавшего данную статью может возникнуть вопрос. Зачем тратить
деньги на создание постпроцессора для старого оборудования, если его все равно ждет
модернизация или полная замена? Конечно, в этом есть доля истины, но если станок
подлежит модернизации, меняется только стойка ЧПУ, а кинематика, что является
основным в IMSpost, остается прежней, соответственно переделка постпроцессора под
новую систему ЧПУ особого труда не составит.
Если оборудование подлежит замене, то тут есть только один ответ - он же вопрос: «А
когда это произойдет?». Если смена старого станка на новый в ближайший год не
планируется, то постпроцессор вполне себя окупит. Ведь постпроцессор экономит
самый главный показатель в разработке управляющей программы – это время…
Плюс нельзя не отметить то, что используя один постпроцессор, можно работать с
разными CAM-системами. А если использовать другой продукт Компании IMS
Software Inc. - IMSconvert, то ранее написанные управляющие программы можно
будет легко адаптировать под другой станок и другую систему ЧПУ…
Download