В структуре УП вы
должны предусмотреть возможность вывода и учета команд динамики УЧПУ.
После создания постпроцессора и проверки правильности
отработки геометрических команд. Перед Вами встанет задача оптимизации
работы УП.
Зачем?
Линейная и круговая интерполяция приводит к скачкам ускорений осей станка на границах кадров, что в свою очередь, может привести к возбуждению резонансов в элементах станка, а это приводит к фацетированию и вибрации - на поверхности детали. Основной причиной вибрации при резании является не гладкость траектории. Вторым важным фактором является изменение направления усилия резания, которое определяется не только кривой перемещения, но и положением материала относительно инструмента.
Для того, чтобы почувствовать её - достаточно
приложить руку к станку или голове шпинделя во время работы. Вы
явственно почувствуете дрожание или характерное дергание системы
"инструмент-шпиндель-станок". Это может случиться с любым станком -
даже если у него "супер-пупер" ЧПУ.
Не
надо
витать в облаках: несмотря на фильм "звездные войны",
всякие нано-технологии ( нано-танки, нано-самолеты, нано-еду, ... ),
суперкомпьютеры. Механообработка - это прежде всего механика.
Это колеса, передачи, шестерни, червяки глобоидные. И вентилятор для
охлаждения всей этой чудо-системы.
Очень часто все начинают хвататься за
функции разжима-зажима осей М10\М11\......,
но
тут они не играют ни какой роли.
Как правило все СЧПУ своими внутренними
алгоритмами автоматически рассчитывают скорость по профилю в
зависимости от:
• запрограммированной подачи F;
• совокупности длин векторов перемещений в окрестности текущего кадра;
• величины заданного рабочего ускорения А;
• значения допустимого перепада скорости dV на
изломах профиля.
При
изменении направления траектории, скачкообразно меняются скорости по
осям, задающим перемещение. Системы автоматически корректируют
запрограммированную величину подачи F, чтобы при прохождении изломов
траектории мгновенное изменение скорости ни по одной оси, составляющей
вектор, не превысила бы заданную величину dV. Если происходит изменение
направления движения (реверс) хотя - бы по
одной оси – системы выполнят полное торможение в узле (V=0) независимо
от значений параметров dV. При круговой интерполяции системы определяют
dV относительно касательных к дуге окружности в узловых
точках. При сплайн-интерполяции расчет скорости в узлах
ведется аналогично линейной интерполяции.
- - До подачи, равной нулю;
- - до подачи, заданной параметром (в общем случае не равной нулю);
- - до подачи, определяемой величиной изменения направления в соседних кадрах.
В некоторых УЧПУ
допускается возможность %-изменения
ускорения движения (либо отдельных осей) командой
ACC= …
Торможение до подачи, равной нулю, используется для точного останова координат в конце кадра. Кадр считается законченным только тогда, когда разница между конечными и текущими координатами будет меньше или равна заданной станочными параметрами. Данный вид торможения задается с помощью функций G9, G61 (G29), при этом функция G9 действует только на текущий кадр, а G61 (G29) действует до замены на другую функции.
Торможение до подачи, заданной параметром. Данный вид торможения задается с помощью функций G63, G64. При этом функция G63 действует до замены, а действует только на текущий кадр. На границах кадров происходит снижение подачи до величины, заданной параметром N, и переход на следующий кадр без проверки вхождения координат в зону контроля.
Геометрическое регулирование подачи - G64 (G27, G28). Значение подачи на границах кадров определяется величиной изменения направлений в этих кадрах и величиной параметра точности прохождения границы этих кадров.
Более того,
при выполнении
кадра с ускоренным перемещением G00
– практически все системы совершают останов до 0
(это зависит от настроек системы). Отдельное положение
занимают дополнительные функции, отвечающие за точность
позиционирования в кадре G06 - G07, или другие G.
Sinumerik ( Siemens ) |
Sinumerik - является лидером по числу и функциональности функций направленных на динамику. Самая мощная и структурно математически построенная СЧПУ. Практически всю динамику охватывает CYCLE832, но есть и много других команд.
Цикл будет объединять все ниже описанные команды и функции. Эти функции можно применять отдельно от CYCLE832. Стандартом является треугольник качества показанный выше.
|
||||||||||
Heidenhain |
Самая бедная на
динамику система. Функций динамики - можно написать - почти нет. Имеется очень мощный Look Ahead Feed-Function (LAF) с минимально возможными перемещениями (<10 µm) и буфер из почти 1000 кадров. Также имеются M-функции: M90 - сглаживание острых углов (шлифовка между кадрами). A основное средство влияния на точность выполнения УП - Цикл 32: установка отклонения, точности или девиации. ISO формат: Цикл G62 Txxxx или G32 Txxxx Heidenhain формат: 95 CYCL DEF 32.0 TOLERANCE 96 CYCL DEF 32.1 T0.05 97 CYCL DEF 32.2 HSC MODE:1 TA5 В некоторых вариациях Heidenhain-a есть цикл G28, который предназначен для контроля точности на разных режимах работы. Активация: N... G28 {l3=...} {I4=...} {I5=...} {I6=…} {I7=...} Отмена: N... G28 {I3=0} {I4=0} {I5=0} {I6=0} {I7=0} Отмена всех введенных значений: N... G27 Параметр I4 = тормозить при выполнении (G0), или нет. Параметр I5 = выключить \ выключение логики учета G0. Параметр I6 = изменение ускорения. Параметр I7 = управление точностью обхода контура (черновая-чистовая). |
||||||||||
Fanuc \ Mazatrol |
Фанук - самая старая из представленных УЧПУ. Многие
вещи, заложенные в ней, потом плавно перекочевали в более современные
системы управления. Мощный макро-язык. Флеш-память. Огромное число
настроечных параметров. Буфер - Look Ahead. Изначально систему делали
для управления роботами, роботизированными комплексами - что
значительно наложило отпечаток на её функциональное построение и
возможности. |
Особняком,
от выше перечисленных классов УЧПУ стоит советская ЧПУ класса "Н33"
:
как Вы знаете, в ней применяется алгоритм разгона-торможения
на основе кода подачи { 0, 4 }: F4xxx или
F0xxx. Торможение происходит, либо до 0, либо до
фиксированной подачи ( 20, 30, 60, 120, 240 ) мм/мин.
Есть несколько способов:
Статичный
Самый простой способ. Он заключается в том, что в одном из
событии в начале УП вставляется G-код,
который действует на всю УП.
Как правило, событием где необходимо это вставлять, является
либо Start_Of_
Program, либо Initial
move.
Пример:
#=============================================================
proc PB_CMD_start_of_program { } {
#=============================================================
global mom_logname mom_ug_version mom_date mom_part_name mom_machine_name
global mom_warning_info
MOM_output_literal ";$mom_logname, Date:$mom_date "
MOM_output_literal ";MACHINE: $mom_machine_name "
MOM_output_literal "SOFT"
MOM_output_literal "FFWON"
MOM_output_literal "G642"
MOM_output_literal "COMPCURV"
MOM_output_literal "UPATH"
##
MOM_output_literal "TRAFOOF"
MOM_output_literal "G54"
}
Недостаток этого способа всего лишь один: вводимые условия действуют на всю обрабатываемую номенклатуру деталей и .. Среди них обязательно встретиться 1 или 5 наименований на которую Ваши условия распространяться не будут.
Динамический.
Не
очень сильно используемый метод. Смысл его в том, что в постпроцессоре
закладываются условия ( алгоритмические ) посредством которых в УП
выдается либо G-код,
влияющий на
торможение, либо мы изменяем выдаваемую подачу F.
Число таких способов очень много. Каждый алгоритм имеет как сильные так
и слабые стороны.
Например:
1. Ограничение на подачу F. | Если Fзаданная>Fconst ,
то в кадр линейного или кругового
движения выдаем, допустим, G9. |
2. Ограничение на перепады подач. |
Алгоритмы можно найти здесь Создание
постпроцессора.Теория.
|
3. Можно рассчитывать угол между примитивами в УП. |
Если угол
между примитивами движения превышает определенное значение, допустим 57°-89.9999°, то
соответственно, применять динамические условия в кадре. |
Диалоговый.
Этот метод трудно назвать независимым, так как он очень сильно зависит
от 2-х выше описанных способов и является их логическим продолжением.
В первую очередь он предназначен для технологов непосредственно
создающих УП. Он позволяет менять заложенные/применяемые в
постпроцессоре условия динамики.
Применяется это или вводом атрибутов в создаваемую операцию,
применением или созданием UDE, вводом
(созданием) разных
диалоговых окон при запуске постпроцессора.
Например:
Пусть мы хотим создать/описать стандартную APT команду
SLOWDN/ { ON | OFF | AUTO [,"angle"]} {, MAXFEED[, "maxFeed" ] }
.Для этого создается MOM-команда,
MOM_slowdn.
И вводим описание в UDE ( в файл ude.cdl ).
ude.cdl | Обработчик постпроцессора |
EVENT slowdn |
# |
Точно таким же способом, Вы, можете описать и цикл Heidenhain 32:
ude.cdl | Обработчик постпроцессора |
EVENT tolerance_cycle |
#============================================================= |
Или вводить в оборот CYCLE832 от Синумерик:
ude.cdl | Обработчик постпроцессора |
#===================================# |
......... |
Конечно, если технолог опытной, он может вставлять необходимый ему G-код - UDE командой INSERT:
для обычных ЧПУ или Фанука: |
INSERT/G64 |
для Сименса: |
INSERT/CYCLE832(0.01,876543210) INSERT/G601 |
для Heidenhain: |
INSERT/ CYCL DEF 32.0 TOLERANCE INSERT/ CYCL DEF 32.1 T0.01 |
Для того, чтобы технолог не забывал можно, можно и нужно, создать диалог, который бы активизировался при каждом запуске постпроцессора - спрашивая технолога те или иные динамически характеристики : G-код, ускорения , подачи, .... Но, злоупотреблять этим не стоит.
Ну,
вот. Выше я кратко описал способы для введения динамики. Не злоупотребляйте ими.
Помните - машина, всегда остается машиной, именно, Вы, человек, принимает
решение. Не перегружайте постпроцессор разными "умными"
алгоритмами. Старайтесь найти золотую середину.
Copyright © 2001—2009 че