Управляющая программа для станка с ЧПУ – важная часть металлообрабатывающего оборудования с ЧПУ. С помощью подобных программ происходит автономная или полуавтономная обработка заготовок. Как уже отмечалось, гибкость автоматизированного производства обеспечивается возможностью быстрой переналадки технологического оборудования. При этом не менее важна возможность быстрой разработки либо доработки управляющих программ. При внедрении в производство нового изделия разработчики программ крайне редко работают «с чистого листа». На производстве почти всегда есть возможность найти необходимые шаблоны и прототипы среди ранее выполненных управляющих программ. Одновременно с этим, широкое применение находят специальные методы разработки программ для групп однотипных деталей.
При разработке управляющих программ для станка следует уделять отдельное внимание их логическому построению. Структура программ не должна создавать проблем при их доработке и модернизации. В частности, управляющие программы должны иметь небольшой размер, легко читаться и разбиваться на отдельные независимые компоненты.
Анализ большинства операций, которые выполняют станки с ЧПУ, позволяет выделить повторяющиеся циклы командных кадров, кодирующие идентичные переходы инструментов. Эти циклы целесообразно оформлять в виде отдельных подпрограмм, структурно независимых от управляющих программ. Выделим некоторые случаи эффективного применения подпрограмм:
- групповая обработка идентичных элементов детали или идентичных деталей;
- групповая обработка отверстий; обработка одного контура несколькими проходами фрезы с последовательным изменением глубины фрезерования;
- последовательная обработка одного контура несколькими фрезами.
При работе станка в автоматическом режиме подпрограммы вызываются из текста управляющей программы функцией М98 с обозначением ее номера буквой Р. Например, подпрограмма о9901 вызывается командным кадром М98_Р9901. Подпрограммы завершаются кадром с функцией М99, которая переводит считывающее устройство системы ЧПУ станка в кадр управляющей программы, следующий непосредственно за кадром вызова подпрограммы.
В примере (рис. 1, табл. 1, 2) рассматривается процедура групповой обработки идентичных участков детали. Управляющая программа станка о2516 (табл. 1) задает приближение фрезы к обрабатываемым поверхностям (рис. 1). Непосредственно в зоне обработки включается подпрограмма о9910 (табл. 2), которая в относительной системе отсчета задает все рабочие перемещения инструмента.
Рис. 1. Эскиз обработки детали с применением подпрограммы: а – деталь с идентичными элементами; б – циклограмма движения инструмента
Таблица 1
Таблица 2
Назначение независимых систем координат для каждого из идентичных элементов во многих случаях групповой обработки представляется более рациональным. Такой метод позволяет использовать в подпрограммах абсолютную систему отсчета. Если эти элементы принадлежат различным деталям (рис. 2), то их системы координат взаимно независимы. Если эти элементы являются идентичными участками одной детали, как на рис. 1, то их системы координат взаимно увязаны ее чертежными размерами.
Рассмотрим пример групповой обработки деталей, установленных на рабочем столе (рис. 2, 3, табл. 3...табл. 6). Для каждой детали функциями G54, G55, G56 назначена индивидуальная система координат (рис. 2). В обработке задействованы две фрезы: Т7 для черновой обработки контура (за несколько проходов) и Т8 для чистовой обработки (за один проход). На рис. 3 приведен эскиз черновой обработки детали. В управляющей программе станка о3185 (табл. 3) черновая и чистовая обработки деталей задаются путем последовательного запуска соответствующих подпрограмм. Приближение и отвод фрезы Т7 осуществляется по подпрограмме о9901 (табл. 4); приближение и отвод фрезы Т8 осуществляется по подпрограмме о9902 (табл. 5). В свою очередь, подпрограммы о9901 и о9902 запускают подпрограмму о9903 (табл. 6) на обработку непосредственно контура детали в плане X-Y. Все перемещения инструментов в подпрограммах задаются в абсолютной системе отсчета.
Припуск на чистовую обработку обеспечивается внесением в ячейку D7 таблицы параметров инструментов величины диаметра, превышающей его истинное значение на δD7:
D`7 = [D7 +δD7].
При этом значение δD7 равно общей величине припуска по периметру контура (см. выше).
Рассмотрим еще один пример применения подпрограммы. Выполняемая операция фрезерование четырех пазов в детали (рис. 4). Программа обработки о3445 приведена в табл. 7; подпрограмма о9960 приведена в табл. 8. Программирование операции выполняется с помощью функции G68, задающей временное угловое положение координатных осей X и Y системы координат детали их поворот относительно заданной точки. По кадру программы G68_X0_Y0_R... оси X и Y занимают угловое положение, обозначенное R, относительно нулевой точки системы координат детали. Далее следует вызов подпрограммы, в которой кодируется непосредственно движение инструмента в зоне обработки. После четырех последовательных вызовов управляющей программы поворот осей координат отменяется функцией G69. Таким образом, фреза выполняет обработку четырех пазов с взаимным угловым смещением 90°
Рис. 2. Системы координат обрабатываемых деталей
Рис. 3. Траектория движения фрезы при обработке детали по контуру
Рис. 4. Деталь с симметрично расположенными прорезями
Таблица 3
Таблица 4
Таблица 5
Таблица 6
Таблица 7
Таблица 8
Переменные параметры и операторы программирования
Современные станки с ЧПУ позволяют применять программирование однотипных видов обработки при помощи общей управляющей программы станка, выполненной с использованием переменных параметров. Переменные представляют собой цифровые значения, которые могут обозначать различные параметры обработки: координаты программной точки инструментов, технологические параметры обработки и др. Переменные могут быть использованы в управляющей программе совместно с логическими функциями или без таковых. Ячейки памяти обозначаются символом #. Внесенные в них параметры действуют при их вызове из командного кадра, например: X#14. Это означает, что значение координаты X некоторой точки равна величине параметра, заложенной в ячейку памяти #14. В системе ЧПУ станка предусмотрено две группы ячеек для переменных параметров:
- 1. В ячейках однократного использования #1...#33 содержатся параметры, которые вносятся в текст управляющей программы станка и изменяются оператором станка в процессе наладки технологического оснащения для выполнения операций на станке. Для внесения переменных в управляющую программу применяется запись типа: #14=60, где #14 - номер ячейки памяти; 60 - значение переменной.
- 2. В ячейках многократного использования #100...#149 содержатся параметры, которые способны изменять свое значение по заданному в тексте управляющей программы закону. Этот закон является основным элементом логической функции, осуществляющей сравнение переменного параметра с заданным цифровым значением или другим параметром.
В логических функциях применяются следующие операторы программирования:
- знаки равенства и неравенства - EQ (равно), NE (не равно), GT (больше), LT (меньше), GE (больше или равно), LE (меньше или равно);
- условия сравнения IF (если) и WHILE (в то время как), задающие условие, в зависимости от выполнения или невыполнения которого система ЧПУ станка осуществляет некоторое программное действие;
- метки DO(i) END(i), обозначающие соответственно начало и конец тела цикла; для одного цикла метки должны быть объединены общим цифровым значением i;
- оператор GOTO(j), направляющий считывающее устройство системы ЧПУ к кадру, обозначенному номером j.
Программирование стандартных видов обработки
В практике часто встречаются случаи обработки сходных элементов детали, различающихся по отдельным размерам. Для каждой такой процедуры в общем случае требуется разработка отдельной управляющей программы станка. Применение переменных позволяет создавать стандартизованные управляющие программы, в которых изменяемые параметры заложены в виде переменных. Использование переменных в ячейках памяти первой группы #1...#33 позволяет изменять отдельные участки траектории инструментов, а также параметры обработки без корректировки структуры управляющей программы. Для внесения изменения в значение какого-либо параметра оператору станка достаточно заменить соответствующую величину переменной. Такой метод корректировки управляющей программы значительно ускоряет проведение наладки технологического оснащения.
В качестве примера использования переменных рассмотрим выполнение отверстий в детали (рис. 5). Программа общего вида о3341 приведена в табл. 9. Управляющая программа обработки этой детали о3342, выполненная с применением переменных параметров, приведена в табл. 10. Задействованные в программе переменные обозначают следующие величины:
#9 - координата отверстий по оси Y;
#10...#12 - координаты отверстий по оси X;
#13 - вид цикла (G81, G83, G84);
#14 - координата точки начала сверления R;
#15 - координата точки окончания сверления Z;
#16 - рабочая подача F;
#17 - величина последовательных углублений сверла Q (для цикла G83).
#18 - частота вращения шпинделя.
Управляющая программа станка о3342 выполнена таким образом, что для изменения переменных (координат и глубины отверстий, частоты вращения и рабочей подачи инструментов и т.д.) в ней достаточно лишь поменять цифровые значения в соответствующих ячейках памяти. Дополнительно в управляющей программе предусмотрена возможность изменения цикла обработки. Так, если в ячейке #13 существующую запись #13=84 заменить записью #13=85, то по управляющей программе будет осуществляться не нарезание резьбы (цикл по G84), а развертывание отверстия (цикл по G85).
Рис. 5. Графическая интерпретация цикла чистовой расточки: а - подвод инструмента; б - подача инструмента; в - отвод инструмента от поверхности; г - выход инструмента
Таблица 9
Таблица 10
Программирование на базе закона изменения переменных
Переменные второй группы, размещаемые в ячейках памяти #100...#149, способны изменять свое значение по закону, установленному в тексте управляющей программы. Отсчет переменных при программировании закона начинается от некоторой исходной величины, которая фиксируется в ячейке памяти системы ЧПУ станка. Например, #100=0 и #105=-20 означают, что исходная величина переменной в ячейке #100 равна 0, а в ячейке #105 равна -20. Закон изменения переменных может выглядеть следующим образом: #100=#100+90 или #105=#105-10. Это означает, что величины переменных в ячейках #100 и #105 получают приращения соответственно +90 и -10 по отношению к предыдущему значению.
Таблица 11
Таблица 12
Покажем действие закона изменения переменных на примере выполнения четырех пазов в детали (рис. 4). В рассмотренной выше программе общего вида о3445, поворот координатных осей X и Y, а также вызов подпрограммы о9960 осуществляется четыре раза. Более рациональной является структура управляющей программы станка о3446 (табл. 11), при которой четырехкратный вызов подпрограммы о9961 (табл. 12) осуществляется в одном командном кадре: M98_P9961_L4, где L4 - число вызовов подпрограммы. В качестве переменной величины принимается временное угловое положение осей X и Y; его значение заложено в ячейку памяти #100. Исходная величина переменной #100=0 зафиксирована непосредственно перед вызовом подпрограммы с циклом обработки о9961.
В тексте подпрограммы о9961 после команд на перемещение инструмента задан закон изменения переменной: #100=#100+90. Далее следует команда на изменение углового положения координатных осей X и Y. Оно становится равным 90° по кадру: G68_X0_Y0_R#100. Затем считывающее устройство системы ЧПУ смещается к кадру начала подпрограммы. После второго прохода подпрограммы угловое положение осей X и Y становится равным 180°; после третьего 270°; после четвертого 360°. После четырехкратного прочтения подпрограммы считывающее устройство возвращается в текст управляющей программы станка о3446 к кадру отмены поворота осей G69. Затем следует окончание управляющей программы. Таким образом, фреза выполняет обработку четырех пазов с взаимным угловым смещением 90°.
Применение логических функций
Рассмотрим основы применения наиболее часто встречающихся логических функций с операторами IF и WHILE. Оператор IF применяется в функции, задающей условие и адрес перемещения считывающего устройства системы ЧПУ станка. Оператор WHILE применяется в функции, задающей условие работы помеченного в управляющей программе цикла командных кадров. Рассмотрим действие этих операторов на примере фрезерования четырех пазов в детали (рис. 4). В программах с обоими операторами в качестве переменной величины принимается временное угловое положение координатных осей X и Y; ее значение заложено в ячейку памяти #100. В управляющей программе зафиксирована исходная величина переменной: #100=0.
Рассмотрим действие оператора IF на примере управляющей программы станка о3447 (табл. 13). Программа содержит цикл обработки одного паза; по окончании первого прочтения цикла по команде управляющей программы значение переменной в ячейке памяти #100 изменяется по закону #100=#100+90 и становится равной 90. В следующем кадре управляющей программы записана функция, задающая условие выполнения операции: IF_#100GT270_GOTO2. Это условие при первом прочтении цикла обработки (90<270) не выполняется. Соответственно система ЧПУ его игнорирует и направляет считывающее устройство к очередному кадру G68_X0_Y0_R#100
Таблица 13
Таблица 14
Таблица 15
Таблица 16
Следуя этой команде, координатные оси X и Y занимают новое угловое положение 90. Далее считывающее устройство по команде GOTO1 возвращается к кадру начала цикла, обозначенному N1 с целью возобновление обработки.
Цикл фрезерования выполняется станком четыре раза с последовательным поворотом осей X и Y. При пятом прочтении цикла система ЧПУ фиксирует, что текущее значение переменной в ячейке памяти #100 становится равным 360. Условие неравенства #100>270, заложенное в логической функции IF_#100GT270_GOTO2, впервые оказывается выполненным (360>270). Поэтому система ЧПУ, следуя команде GOTO2, направляет считывающее устройство к кадру за пределами цикла, обозначенному N2.
Рассмотрим действие оператора WHILE на примере управляющей программы станка о3448 (табл. 14). Тело цикла обработки образовано кадрами, которые размещены между метками DO1 и END1. Программа содержит цикл обработки одного паза; по окончании первого прочтения цикла по команде управляющей программы значение переменной в ячейке памяти #100 изменяется по закону #100=#100+90 и становится равным 90. Далее, следуя коман де G68_X0_Y0_R#100, координатные оси X и Y занимают новое угловое положение 90°. Затем считывающее устройство возвращается к кадру начала цикла с меткой, помеченному меткой DO1.
Цикл фрезерования выполняется станком четыре раза с последовательными угловым поворотом осей X и Y. Параллельно с отработкой командных кадров система ЧПУ осуществляет постоянный контроль соответствия величины переменной в ячейке #100 условию функции: WHILE_#100LE270_DO1. При пятом прочтении цикла система ЧПУ фиксирует, что текущее значение переменной в ячейке #100 становится равным 360. Неравенство #100 ≤ 270 впервые оказывается невыполненным (360 > 270). Вследствие этого считывающее устройство не возвращается к метке DO1, а выходит за пределы метки end1, т.е. за пределы цикла.
В обеих рассмотренных управляющих программах станка (о3447 и о3448) фреза выполняет обработку четырех пазов с взаимным угловым смещением 90. После окончания работы по циклу считывающее устройство выходит за его пределы и следует к кадру отмены поворота координатных осей X и Y по функции G69. Далее следует окончание управляющей программы.
Логические функции с использованием счетчика
В рассмотренных выше логических функциях переменный технологический параметр, внесенный в ячейку # 100, выполняет две функции:
- задает временное угловое положение координатных осей X и Y: G68_X0_Y0_R#100;
- является аргументом логических функций:
- IF_#100GT270_GOTO2 в управляющей программе о3447 при заданном условии #100>270;
- WHILE_#100LE270_DO1 в управляющей программе о3448 при заданном условии #100≤270.
При подготовке сложных процедур программирование логической функции по технологическому параметру может быть проблематичным для разработки и трудным для восприятия. Как альтернатива аргументом функции может быть принята другая переменная, например, число повторений цикла обработки. Назовем этот переменный параметр счетчиком. Рассмотрим методы применения счетчика на примере фрезерования четырех пазов в детали (рис. 4) в программах, выполненных с операторами IF и WHILE. В программах о3449 (табл. 15) и о3450 (табл. 16) введены две переменные:
- значение временного углового положения координатных осей X и Y, заложенное в ячейку #100;
- «показания» счетчика числа выполненных циклов, заложенные в ячейку #101.
Исходным значением переменной для счетчика принята цифровая величина 1: #101=1. В процессе работы по программе система ЧПУ станка считывает исходные значения обеих переменных: #100=0 и #101=1. Затем производится обработка первого паза. Далее осуществляется изменение величин переменных: #100=#100+90, #101=#101+1; при этом значение «показаний» счетчика становится равным 2. После завершения первого прочтения цикла система ЧПУ возвращается к его началу и дает команду на обработку второго паза. В логических функциях заданы следующие условия сравнения:
#101>4 в функции: IF_#101GT4_GOTO2;
#101 4 в функции: WHILE_#101LE4_DO1.
Это означает, что «показания» счетчика являются аргументом этих функций: система ЧПУ сравнивает их с требуемым числом повторений цикла 4. Такая структура логических функций удобна как для разработчика, так и для пользователей управляющих программ станка комбинированной обработки деталей.