Подпрограммы. Разбиение управляющей программы

Оформление сложной УП в виде отдельных подпрограмм не только приводит к ее существенному сокращению, но и делает программу понятнее, поскольку отражает логику процесса обработки. В зависимости от требований СЧПУ подпрограммы формируются до или после основной программы [14].

В виде подпрограммы в УП может оформляться обработка слоев при многослойной фрезерной обработке [14].

Повторное выполнение обработки (копирование) также может выводиться в УП как подпрограмма. Следует отметить, что в некоторых CAD-системах эта, казалось бы, несложная операция реализована так, что в виде подпрограммы при копировании обработки оформляются только новые скопированные участки, а исходная траектория подпрограммой не становится. Это приводит к тому, что обработка таких элементов повторяется в УП дважды [14].

Разбиение одной УП на несколько частей в рамках единой модели обработки может быть продиктовано наличием переустанова заготовки или другими технологическими соображениями. При этом проектирование всех операций как единого целого позволяет достичь согласованности геометрической модели и режимов обработки на следующих друг за другом технологических переходах [14].

Необходимость разделения УП по инструментальным головкам возникает в тех случаях, когда станок имеет возможность вести одновременную обработку инструментами, закрепленными в двух и более инструментальных головках. В отличие от обычного разбиения УП здесь требуется еще и предварительное упорядочение команд обработки по инструментальным головкам. А поскольку такое упорядочение нарушает первоначальную последовательность команд, возникает потребность в синхронизации работы инструментов, относящихся к разным инструментальным головкам [14].

3.4. G-коды. Сводная таблица G-кодов

G-код – условное именование языка программирования устройств с числовым программным управлением. Был создан компанией Electronic Industries Alliance в начале 1960-х годов. Финальная доработка была одобрена в феврале 1980 г. как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам
СССР – как ГОСТ 20999-83. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit). G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля четности [7].

Как упоминалось ранее, программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры – группы, состоящие из одной или более команд. Кадр завершается символом перевода строки и имеет номер, за исключением первого кадра программы и комментариев. Первый (а в некоторых случаях еще и последний) кадр содержит только один символ «%». Завершается программа командой M02 или M30. Комментарии к программе размещаются в круглых скобках, как после программных кодов, так и в отдельном кадре [7].

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические
команды [4].

Подпрограммы могут быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx – номер подпрограммы, заканчивается
командой M17 [7].

Подготовительные функции (G-коды) [3]:

G00 – быстрое позиционирование.

Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.

G01 – линейная интерполяция.

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например, X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

G02 – круговая интерполяция по часовой стрелке.

Функция G02 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например, X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

G03 – круговая интерполяция против часовой стрелки.

Функция G03 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например, X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

G04 – пауза.

Функция G04 – команда на выполнение выдержки с заданным временем. Этот код программируется вместе с X или Р адресом, который указывает длительность времени выдержки. Обычно это время составляет от 0.001 до 99999.999 с.

Например: G04 X2.5 – пауза 2,5 с, G04 Р1000 – пауза 1 с.

G17 – выбор плоскости XY.

Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

G18 – выбор плоскости XZ.

Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

G19 – выбор плоскости YZ.

Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

G20 – ввод дюймовых данных.

Функция G20 активизирует режим работы с дюймовыми данными.

G21 – ввод метрических данных.

Функция G21 активизирует режим работы с метрическими данными.

G40 – отмена коррекции на радиус инструмента.

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

G41 – левая коррекция на радиус инструмента.

Функция G41 применяется для включения автоматической коррекции на радиус инструмента, находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

G42 – правая коррекция на радиус инструмента.

Функция G42 применяется для включения автоматической коррекции на радиус инструмента, находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

G43 – коррекция на положение инструмента.

Функция G43 применяется для компенсации длины инструмента. Программируется вместе с функцией инструмента (H).

G52 – локальная система координат.

СЧПУ позволяет устанавливать кроме стандартных рабочих систем координат
(G54 – G59) еще и локальные. Когда СЧПУ станка выполняет команду G52, то начало действующей рабочей системы координат смещается на значение, указанное при помощи слов данных X, Y и Z. Код G52 автоматически отменяется с помощью команды G52 Х0 Y0 Z0.

G54 – G59 – заданное смещение.

Смещение рабочей системы координат детали относительно системы координат станка.

G60 – точный останов.

Точный подвод к точке назначения. Для этого все приводы осей затормаживаются до состояния покоя.

G64 – зашлифовка.

Подход к точке назначения кадра осуществляется не точно, а существует небольшое закругление к следующему пути перемещения.

G68 – вращение координат.

Код G68 позволяет выполнить поворот координатной системы на определенный угол. Для выполнения поворота требуется указать плоскость вращения, центр вращения и угол поворота. Плоскость вращения устанавливается при помощи кодов G17, G18 и G19. Центр вращения устанавливается относительно нулевой точки активной рабочей системы координат (G54 – G59). Угол вращения указывается при помощи R.

Например: G17 G68 X0 Y0 R120.

G69 – отмена вращения координат.

Код G69 отменяет режим вращения координат G68.

G73 – высокоскоростной цикл прерывистого сверления.

Цикл G73 предназначен для сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента. Движение в исходное положение после обработки идет на ускоренной подаче.

G74 – цикл нарезания левой резьбы.

Цикл G74 предназначен для нарезания левой резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

G80 – отмена постоянного цикла.

Функция, которая отменяет любой постоянный цикл.

G81 – стандартный цикл сверления.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

G82 – сверление с выдержкой.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

G83 – цикл прерывистого сверления.

Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.

G84 – цикл нарезания резьбы.

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

G85 – стандартный цикл растачивания.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

G86 – цикл растачивания с остановкой вращения шпинделя.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

G87 – цикл растачивания с отводом вручную.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

G90 – режим абсолютного позиционирования.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54 – G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

G91 – режим относительного позиционирования.

В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется величина перемещения инструмента). Код G91 отменяется при помощи кода абсолютного позиционирования G90.

G94 – скорость подачи в дюймах/миллиметрах в минуту.

При помощи функции G94 указанная скорость подачи устанавливается в дюймах за 1 мин (если действует функция G20) или в миллиметрах за 1 мин (если действует функция G21). Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

G95 – скорость подачи в дюймах/миллиметрах на оборот.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах на 1 оборот шпинделя (если действует функция G20) или в миллиметрах на 1 оборот шпинделя (если действует функция G21). То есть скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

G98 – возврат к исходной плоскости в цикле.

Если постоянный цикл станка работает совместно с функцией G98, то инструмент возвращается к исходной плоскости в конце каждого цикла и между всеми обрабатываемыми отверстиями. Функция G98 отменяется при помощи G99.

G99 – возврат к плоскости отвода в цикле.

Если постоянный цикл станка работает совместно с функцией G99, то инструмент возвращается к плоскости отвода между всеми обрабатываемыми отверстиями. Функция G99 отменяется при помощи G98.

Вспомогательные функции (M-коды)[3]:

М00 – программируемый останов.

Когда СЧПУ исполняет команду М00, то происходит останов. Все осевые перемещения останавливаются, при этом шпиндель (у большинства станков) продолжает вращаться. Работа по программе возобновляется со следующего кадра после нажатия кнопки «Старт».

М01 – останов с подтверждением.

Код М01 действует аналогично М00, но выполняется только после подтверждения с пульта управления станка. Если клавиша подтверждения нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.

М02 – завершение программы.

Код М02 указывает на завершение программы и приводит к останову шпинделя, подачи и выключению охлаждения.

М0З – вращение шпинделя по часовой стрелке.

При помощи кода М03 включается прямое вращение шпинделя с запрограммированным числом оборотов (S). Код М03 действует до тех пор, пока он не будет отменен с помощью М04 или М05.

М04 – вращение шпинделя против часовой стрелки.

При помощи кода М04 включается обратное вращение шпинделя с запрограммированным числом оборотов (S). Код М04 действует до тех пор, пока он не будет отменен с помощью М03 или М05.

М05 – останов шпинделя.

Код М05 останавливает вращение шпинделя, но не останавливает осевые перемещения.

М06 – смена инструмента.

При помощи кода М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.

М07 – включение охлаждения № 2.

Код М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.

М08 – включение охлаждения № 1.

Код М08 включает подачу СОЖ в зону обработки в виде струи.

М09 – отключение охлаждения.

Код М09 выключает подачу СОЖ и отменяет команды М07 и М08.

М10 – зажим.

Код М10 относится к работе с зажимным приспособлением подвижных органов станка.

М11 – разжим.

Код М11 относится к работе с зажимным приспособлением подвижных органов станка.

М19 – останов шпинделя в заданной позиции.

Код М19 вызывает останов шпинделя при достижении им определенного углового положения.

М30 – конец информации.

Код М30 информирует систему ЧПУ о завершении программы, приводит к останову шпинделя, подачи и выключению охлаждения.

М98 – вызов подпрограммы.

Код М98 предназначен для вызова подпрограммы. Программируется вместе с (Р), которое обозначает номер вызываемой подпрограммы.

Например: М98 Р1234.

М99 – конец подпрограммы.

При помощи команды М99 по окончанию подпрограммы осуществляется возврат к главной программе, из которой была вызвана подпрограмма.

Дополнительные функции и символы[3]:

X, Y, Z – команды осевого перемещения.

А, В, С – команды кругового перемещения вокруг осей X, Y, Z соответственно.

I, J, К – параметры круговой интерполяции, параллельные осям X, Y, Z соответственно.

R –При круговой интерполяции (G02 или G03) R определяет радиус, который соединяет начальную и конечную точки дуги. В постоянных циклах R определяет положение плоскости отвода. При работе с командой вращения R определяет угол поворота координатной системы.

Р –При постоянных циклах обработки отверстий Р определяет время выдержки на дне отверстия. Совместно с кодом вызова подпрограммы М98 – номер вызываемой подпрограммы.

Q –В циклах прерывистого сверления Q определяет относительную глубину каждого рабочего хода инструмента. В цикле растачивания – расстояние сдвига расточного инструмента от стенки обработанного отверстия для обеспечения аккуратного вывода инструмента из отверстия.

D – значение коррекции на радиус инструмента.

Н – значение компенсации длины инструмента.

F – функция подачи.

S – функция главного движения.

Т – значение, определяющее номер инструмента, который необходимо переместить в позицию смены путем поворота инструментального магазина.

N – нумерация кадров УП.

/ – пропуск кадра.

(...) – комментарии в УП.

Краткий перечень G- и М-функций приведен в табл. 3.1 – 3.4.

Таблица 3.1

Подготовительные (основные) команды [7]

Коды Описание
G00 – G03 Позиционирование инструмента
G17 – G19 Переключение рабочих плоскостей (XY, ZX, YZ)
G20 – G21 Не стандартизовано
G40 – G44 Компенсация размера различных частей инструмента (длина, диаметр)
G53 – G59 Переключение систем координат
G80 – G85 Циклы сверления, растачивания, нарезания резьбы
G90 – G91 Переключение систем координат (абсолютная, относительная)

Таблица 3.2

Таблица основных команд [7]

Команда Описание
G00 Ускоренное перемещение
G01 Линейная интерполяция
G02 Круговая интерполяция по часовой стрелке
G03 Круговая интерполяция против часовой стрелки
G04 Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления
G15 Отмена полярной системы координат
G16 Полярная система координат
G17 Выбор рабочей плоскости X – Y
G18 Выбор рабочей плоскости Z – X
G19 Выбор рабочей плоскости Y – Z
G40 Отмена компенсации радиуса инструмента
G41 Компенсировать радиус инструмента слева от траектории
G42 Компенсировать радиус инструмента справа от траектории
G43 Компенсировать длину инструмента положительно
G44 Компенсировать длину инструмента отрицательно
G49 Отмена компенсации длины инструмента
G53 Отключить смещение начала системы координат станка
G54 – G59 Переключиться на заданную оператором систему координат
G60 Точный останов
G64 «Зашлифовка»
G70 Цикл продольного чистового точения
G71 Цикл многопроходного продольного чернового точения
G80 Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д.
G81 Цикл сверления
G82 Цикл сверления с задержкой
G83 Цикл прерывистого сверления (с полным выводом сверла)
G84 Цикл нарезания резьбы
G90 Задание абсолютных координат опорных точек траектории
G91 Задание координат инкрементальное последней введенной опорной точке
G94 F (подача) в формате мм/мин
G95 F (подача) в формате мм/об.

Таблица 3.3

Вспомогательные (технологические) команды [7]

Код Описание
M00 Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «безусловный технологический останов»
M01 Приостановить работу станка до нажатия кнопки «старт», если включен режим подтверждения останова
M02 Конец программы, без сброса модальных функций
M03 Начать вращение шпинделя по часовой стрелке
M04 Начать вращение шпинделя против часовой стрелки
M05 Остановить вращение шпинделя
M06 Сменить инструмент
M07 Включить дополнительное охлаждение
M08 Включить основное охлаждение. Иногда использование более одного M-кода в одной строке (как в примере ниже) недопустимо, для этого используются M13 и M14
M09 Выключить охлаждение
M13 Включить охлаждение и вращение шпинделя по часовой стрелке
M14 Включить охлаждение и вращение шпинделя против часовой стрелки
M17 Конец подпрограммы
M25 Замена инструмента вручную
M97 Запуск подпрограммы, находящейся в той же программе (в случае М97 Р25 переход осуществится к строке N25, где P – номер кадра)
M98 Запуск подпрограммы, находящейся отдельно от основной программы (в случае M98 P1015 переход осуществится к программе O1015, где P – номер подпрограммы)
M99 Конец подпрограммы
M30 Конец программы, со сбросом модальных функций

Таблица 3.4

Параметры команд [7]

Код Описание
X Координата точки траектории по оси X
Y Координата точки траектории по оси Y
Z Координата точки траектории по оси Z
P Параметр команды
F Скорость рабочей подачи. Для фрезерных станков это дюймы в минуту (IPM) или миллиметры в минуту (mm/min). Для токарных станков это дюймы за оборот (IPR) или миллиметры за оборот (mm/rev)
S Скорость вращения шпинделя
R Параметр стандартного цикла или радиус дуги (расширение стандарта)
D Параметр коррекции выбранного инструмента
L Число вызовов подпрограммы
I Параметр дуги при круговой интерполяции. Абсолютные координаты центра дуги по оси X или инкрементальное расстояние от начальной точки до центра дуги по оси X

Окончание таблицы 3.4

J Параметр дуги при круговой интерполяции. Абсолютные координаты центра дуги по оси Y или инкрементальное расстояние от начальной точки до центра дуги по оси Y
K Параметр дуги при круговой интерполяции. Абсолютные координаты центра дуги по оси Z или инкрементальное расстояние от начальной точки до центра дуги по оси Z
L Вызов подпрограммы с данной меткой

Пример [7]

Обработка буквы W (вписанной в прямоугольник 34 × 27 мм, рис. 3.1) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм. Текст УП приведен в табл. 3.5.

Подпрограммы. Разбиение управляющей программы - student2.ru

Рис. 3.1. Эскиз детали

Таблица 3.5

УП обработки детали по рис. 3.1

Кадр Содержание Комментарий
% Начало программы
N1 G90 G40 G17 Система координат абсолютная, компенсация на радиус инструмента выключена, плоскость интерполяции XoY
N2 S500 M3 Задать скорость вращения шпинделя и включить шпиндель
N3 G0 X2.54 Y26.15 Переход в точку начала обработки на холостом ходу
N4 Z1.0 Подход к заготовке по Z, не доходя 1 мм, на холостом ходу
N4 G1 Z-1.0 F100 Врезание в заготовку на подаче 100 мм/мин
N6 X5.19 Y2.0 Первый штрих буквы W
N7 X7.76 Продолжение движения
N8 X16.93 Y26.15 Второй штрих буквы W
N9 X18.06 Продолжение движения
N10 X25.4 Y2.0 Третий штрих буквы W
N11 X25.96 Продолжение движения
N12 X32.17 Y26.15 Четвертый штрих буквы W
N13 G0 Z12 Отвод инструмента от заготовки на холостом ходу
N14 M5 Выключить шпиндель
N15 M30 Конец программы

Наши рекомендации