Структура управляющей программы станка с ЧПУ

Структура управляющей программы станка с ЧПУ

1. Статус G- и М-кодов

Программирование обработки на современных станках с ЧПУ осуществляется на языке, который обычно называют языком ИСО (ISO) 7 бит, или языком G- и М-кодов. Коды с адресом G, являются подготовительными и определяют настройку СЧПУ на определенный вид работы. Коды с адресом М являются вспомогательными и предназначены для управления режимами работы станка.

Например, если программист хочет, чтобы инструмент перемещался по прямой линии, он использует G01. А если необходимо произвести смену инструмента, то в программе обработки он указывает М06. Для управления многочисленными функциями станка с ЧПУ применяется довольно большое число различных кодов. Тем не менее, изучив набор основных G- и М-кодов, вы легко сможете создать управляющую программу. В таблице 1 приведен список базовых кодов, которые мы подробно рассмотрим в этой и последующих главах. Ниже вы найдете подробное описание всех стандартных кодов и примеры их использования.

Таблица 1. Базовые коды программирования обработки

Код (функция) Назначение и пример кадра с кодом
Осевое перемещение
G00 Ускоренный ход – перемещение на очень высокой скорости в указанную точку G00X10. Y20.Z25
G01 Линейная интерполяция – перемещение по прямой линии на указанной скорости подачи G01 X10.Y20. F100
G02 Круговая интерполяция – перемещение по дуге по часовой стрелке на указанной скорости подачи G02X10.Y20. R10. F100
G03 Круговая интерполяция – перемещение по дуге против часовой стрелки на указанной скорости подачи G03X10.Y20. R10. F100
Настройка
G20 Ввод дюймовых данных G20 G00X10.Y20
G21 Ввод метрических данных G21 G00X10.Y20
G90 Абсолютное позиционирование – все координаты отсчитываются от постоянной нулевой точки G90 G00X10.Y20
G91 Относительное позиционирование – все координаты отсчитываются от предыдущей позиции G91 G00X10.Y20
Обработка отверстий
G81 Цикл сверления G81 X10.Y20. Z-5. F30
G82 Цикл сверления с задержкой на дне отверстия G82X10. Y20. Z-5. R1. Р2. F30
G83 Прерывистый цикл сверления G83 Х10. Y20. Z-5. Q0.25 R1. F30
G85 Цикл растачивания отверстия G85X10. Y20. Z-5. F30
Вспомогательные коды (функции)
M00 Запрограммированный останов – выполнение программы временно прекращается
М01 Запрограммированный останов по выбору – выполнение программы временно прекращается, если активирован режим останова по выбору
M03 Прямое вращение шпинделя – шпиндель вращается по часовой стрелке
М04 Обратное вращение шпинделя – шпиндель вращается против часовой стрелки
М05 Останов шпинделя
М06 Автоматическая смена инструмента М06 Т02
М08 Включение подачи охлаждающей жидкости
М09 Выключение подачи охлаждающей жидкости
М30 Конец программы, перевод курсора к началу программы

2. Построение структуры программы

Для знакомства со структурой управляющей программы (УП) давайте взглянем более пристально на уже созданную ранее программу обработки паза:

%

O0001 (PAZ)

N10 G21 G40 G49 G54 G80 G90

N20 M06 T01 (FREZA D1)

N30 G43 H01

N40 M03 S1000

N50 G00 X3 Y8

N60 G00 Z0.5

N70 G01 Z-1 F25

N80 G01 X3 Y3

N90 G01 X7 Y3

N100 G01 X7 Y8

N110 G01 Z5

N120 M05

N130 M30

%

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

Система ЧПУ считывает и выполняет программу кадр за кадром. Очень часто программист назначает каждому кадру свой номер, который расположен в начале кадра и обозначен буквой N. В нашей программе вы можете увидеть номера кадров c N10 до N130. Большинство станков с ЧПУ позволяют спокойно работать без номеров кадров, которые используются исключительно для удобства зрительного восприятия программы и поиска в ней требуемой информации. Поэтому наша программа обработки может выглядеть и следующим образом:

% O0001 (PAZ)

G21 G40 G49 G54 G80 G90

M06 T01 (FREZA D1) G43 H01

M03 S1000

G00 X3 Y8

G00 Z0.5

G01 Z-1 F25

G01 X3 Y3

G01 X7 Y3

G01 X7 Y8

G01 Z5

M05

M30

%

Программисту рекомендуется располагать номера кадров с интервалом в 5 или 10 номеров, чтобы при необходимости можно было вставить в программу дополнительные кадры. В самом начале УП обязательно должен находиться код начала программы % и номер программы (например, О0001). Два этих первых кадра не влияют на процесс обработки, тем не менее они необходимы для того, чтобы СЧПУ могла отделить в памяти одну программу от другой.

Указание номеров для таких кадров не допускается.

%

О0001 (PAZ)

Кадр № 10 настраивает систему ЧПУ на определенный режим работы с последующими кадрами УП. Например, G21 означает, что станок будет работать в метрической системе, то есть перемещения исполнительных органов программируются и выполняются в миллиметрах, а не в дюймах. Иногда такие кадры называют строками безопасности, так как они позволяют перейти системе в некоторый стандартный режим работы или отменить ненужные функции.

N10 G21 G40 G49 G54 G80 G90

Следующие кадры говорят станку о необходимости подготовки к обработке. Для этого нужно поставить инструмент из магазина в шпиндель (кадр N20), активировать компенсацию длины инструмента (кадр N30) и заставить шпиндель вращаться в нужном направлении на указанной скорости (кадр N40). Также вы можете использовать символы комментариев. СЧПУ игнорирует любой текст, заключенный в круглые скобки, что позволяет, например, указать в кадре диаметр или наименование применяемой фрезы.

N20 М06 Т01 (FREZA D1)

N30 G43 Н01

N40 M03 S1000

Кадры с номерами от N50 до N110 непосредственно отвечают за обработку детали. В этой части УП содержатся коды, предназначенные для перемещения инструмента в указанные координаты. Например, кадр N80 перемещает инструмент в точку с координатами Х3, Y3 со скоростью подачи, равной 25 миллиметров в минуту.

N50 G00 Х3 Y8

N60 G00 Z0.5

N70 G01 Z-l F25

N80 G01 Х3 Y3

N90 G01X7Y3

N100 G01 Х7 Y8

N110 G01 Z0.5

Заключительные кадры предназначены для останова шпинделя (кадр N120) и завершения программы (кадр N130):

N120 М05

N130 М30

%

Схематично любую УП можно представить в следующем виде (см. рис. 1).

Принципиальная схема управляющей программы

Рис. 1. Принципиальная схема УП

3. Понятие о слове данных, адресе и числе

Управляющая программа состоит из множества различных кадров. В свою очередь каждый кадр УП состоит из слов данных. А слово данных строится из адреса (буквы) и относящегося к нему числа. Например, адрес Y относится к оси Y, а следующее за адресом число обозначает координаты вдоль этой оси.

G01 X3 Y3 – кадр УП

G – адрес

01 – число

G01 – слово данных (G-код)

X – адрес

3 – число

X3 – слово данных

Y – адрес

3 – число

Y3 – слово данных.

Необязательно, чтобы число, относящееся к Gили М-коду, имело ведущие нули (нули перед числом), например G01, G02, G03 и т. д. Можно писать просто G1, G2, G3. Тем не менее многие программисты в силу привычки предпочитают вариант с ведущими нулями.

Учтите, что система ЧПУ работает далеко не со всеми адресами. Например, стойка Fanuc откажется воспринимать латинские буквы Е, U, V и W, если они не относятся к макропрограмме. Это не значит, что вы не сможете загрузить в память станка программу, содержащую перечисленные адреса. Загрузить ее можно, но при попытке выполнить такую программу система ЧПУ, скорее всего, выдаст сообщение об ошибке.

4. Условия использования модальных и немодальных кодов

Все станочные коды можно условно разделить на два класса в зависимости от их способности сохраняться в памяти СЧПУ. Немодальные коды действуют только в том кадре, в котором они находятся. Модальные коды, напротив, могут действовать бесконечно долго, пока их не отменят другим кодом. Выделяют несколько групп кодов в зависимости от функции, которую они выполняют (табл. 2).

Два модальных кода из одной группы не могут быть активными в одно и то же время. Например, G02 и G03 находятся в группе кодов осевых перемещений, и вы не можете применять оба этих кода сразу. Один из этих кодов обязательно отменит действие другого. Это как попытаться ехать на автомобиле одновременно и вправо, и влево. Однако вы можете одновременно использовать коды из разных функциональных групп. Например, в одном кадре можно написать G02 и G90.

Таблица 2. Коды по группам

Функциональная группа Коды
Перемещения G00, G01, G02, G03
Тип координатной системы G90, G91
Единицы ввода данных G20, G21
Постоянные циклы G80, G81, G82, G83, G84, G85…
Рабочая система координат G54, G55, G56, G57, G58…
Компенсация длины инструмента G43, G44, G49
Коррекция на радиус инструмента G40, G41, G42
Возврат в постоянных циклах G98, G99
Активная плоскость обработки G17, G18, G19

Особенностью модальных кодов является то, что не нужно вводить активный код в последующие кадры. Например, код G01 используется для перемещения инструмента по прямой линии. Если нам необходимо совершить множество прямых перемещений, то необязательно в каждом последующем кадре писать G01. Для отмены кода G01 следует применить один из кодов той же самой функциональной группы (G00, G02 или G03).

Большинство из G-кодов являются модальными. Программист должен знать, к какой группе и к какому классу принадлежит тот или иной код. Хотя М-коды обычно не делят на модальные и немодальные, однако этот термин все же можно применить и к ним. Например, можно выделить группу М-кодов, отвечающих за подачу охлаждающей жидкости (М07, М08, М09) или за вращение шпинделя (М03, М04, М05). Тем не менее большинство М-кодов нужно рассматривать как немодальные. Некоторые стойки ЧПУ допускают программирование только одного М-кода в кадре.

5. Использование свойств кодов при форматировании программы

Одна и та же управляющая программа может выглядеть по-разному. В качестве примера этого явления приведем фрагмент все той же программы обработки паза:

N70 G01 Z-1 F25

N80 G01 X3 Y3

N90 G01 X7 Y3

N100 G01 X7 Y8

N110 G01 Z0.5

Так как G01 является модальным кодом, то совсем не обязательно указывать этот код в каждом кадре линейных перемещений. Поэтому данный фрагмент УП может выглядеть следующим образом:

N70 G01 Z-1 F25

N80 X3 Y3

N90 X7 Y3

N100 X7 Y8

N110 Z0.5

СЧПУ читает первый кадр, в котором задается линейное перемещение по оси Z на глубину 1 мм (Z-1). Затем считывается второй кадр, в котором присутствуют координаты, но нет другого G-кода. Так как G01 является модальным кодом, то он сохраняется в памяти и используется СЧПУ для работы с новыми координатами. Можно сказать, что адреса X и Y также являются модальными. То есть значения координат сохраняются в памяти, пока СЧПУ не заменит (обновит) их другими значениями координат. Таким образом, данный фрагмент УП можно переписать еще раз:

N70 G01 Z-1 F25

N80 X3 Y3

N90 X7

N100 Y8

N110 Z0.5

Система ЧПУ читает программу обработки кадр за кадром. При этом в буфер памяти системы попадает один или несколько кадров целиком. Для современных ЧПУ непринципиально, в каком месте кадра находится тот или иной код (слово данных). Однако некоторые станки, имеющие старые системы ЧПУ, могут быть очень придирчивы к порядку слов данных в кадре и к пробелам между ними. Для современной стойки три приведенных ниже кадра будут иметь совершенно одинаковый эффект:

N01 G55 G01 X30.45 Y2.35 M08

N02 M08 Y2.35 G55 X30.45 G01

N03 G01 X30.45 Y2.35 G55 M08

Для того чтобы программисту было легче создавать и читать УП, рекомендуется следующий порядок расположения слов данных и знаков программирования в кадре:

  1. код пропуска кадра (/);
  2. номер кадра (N);
  3. подготовительные функции (G-коды);
  4. адреса осевых перемещений (X, Y, Z, I, J, К, А, В, С);
  5. команда подачи (F);
  6. команда числа оборотов (S);
  7. вспомогательные функции (М-коды).

После номера кадра N обычно следует G-код. Это как глагол в предложении – G-коды говорят нам, какую функцию несет каждый кадр. Далее следуют адреса и координаты позиций осевых перемещений. М-коды обычно ставятся в конец кадра. Это правило действует, когда в кадре присутствует G-код. Тем не менее если в кадре нет G-кода, то многие программисты предпочитают ставить М-код в начало:

N40 M03 S1000

N50 G00 X3 Y8

В УП не допускаются пробелы между адресом (буквой) и числом или внутри G- и М-кодов. В приведенном кадре есть несколько ошибок, и СЧПУ станка обязательно будет на них «ругаться»:

N50 G 00 X 3Y 8

Большинство современных стоек прекрасно работает и без пробелов между словами данных. Удаление пробелов позволяет сократить размер управляющей программы. Однако человеку, в отличие от компьютера, будет непривычно читать УП в таком варианте. Сравните два варианта одного и того же кадра:

1) N50 G00 ХЗ Y8

2) N50G00X3Y8

Первый вариант явно читается легче, что означает меньшую вероятность ошибки при написании или проверке программы обработки. Номера кадров для большинства современных СЧПУ необязательны. Они используются для облегчения поиска требуемой информации в УП и для создания переходов к определенному кадру в некоторых особых случаях. Поэтому фрагмент программы, с которым мы работаем:

N70 G01 Z-1 F25

N80 X3 Y3

N90 X7

N100 Y8

N110 Z0.5

перепишем следующим образом:

G01 Z-1 F25

X3 Y3

X7

Y8

Z0.5

Необходимо уделить особое внимание числовому формату, с которым ваша стойка ЧПУ сможет работать. Обычно система ЧПУ работает с десятичным форматом и позволяет использовать несколько знаков до десятичной точки и несколько знаков после нее (например, 999.999). Возможны различные варианты употребления ведущих (перед десятичной точкой) и последующих (после десятичной точки) нулей. Сравните:

Z0.1

Z.1

Z0.100

В некоторых случаях наличие десятичной точки в определенных словах данных обязательно, а в других случаях недопустимо. Поэтому внимательно ознакомьтесь с разделом документации станка с ЧПУ, в котором говорится о формате программирования. При работе с положительными числами не требуется вводить знак «+», так как СЧПУ исходит из положительного значения числа, если не введен никакой знак. Но при необходимости ввода отрицательного числового значения знак «–» должен быть запрограммирован обязательно.

Теперь мы можем сравнить первоначальный вариант программы обработки паза и новый вариант, созданный в этой главе (табл. 3). Несмотря на то, что второй вариант УП имеет меньший размер (экономия программной памяти системы ЧПУ), его гораздо труднее читать. Следовательно, при работе с «экономичной» версией УП появляется вероятность сделать ошибку или ее не заметить. Так как современные СЧПУ и компьютеры обладают достаточно большим объемом памяти, то нет смысла «экономить байты», убирая пробелы между словами данных, не ставя номеров кадров и забывая про комментарии.

6. Программирование условий безопасности

Строкой безопасности называется кадр, содержащий G-коды, которые переводят СЧПУ в определенный стандартный режим, отменяют ненужные функции и обеспечивают безопасную работу с управляющей программой. В нашей программе для обработки паза строкой безопасности является кадр N10.

N10 G21 G40 G49 G54 G80 G90.

Таблица 3. Два варианта одной программы

Обычная УП Сжатая УП
% %
Q001(PAZ) Q001(PAZ)
N10G21 G40 G49 G54 G80 G90 G21G40G49G54G80G90
N20M06T01 (FREZAD1) М6Т1
N30 G43 Н01 G43H1
N40M03S1000 M3S1000
N50 G00X3Y8 G0X3Y8
N60 G00Z0.5 Z.5
N70G01 Z-1 F25 G1Z-1F25
N80 G01 X3Y3 X3Y3
N90 G01 X7Y3 Х7
N100 G01 X7Y8 Y8
N110G01 Z0.5 Z.5
N120 G91 G28X0Y0Z0 G91G28X0Y0Z0
N130 М05 М5
N140 МЗО МЗО
% %

Как вы уже знаете, многие коды являются модальными и остаются активными в памяти СЧПУ до тех пор, пока их не отменят. Возможны ситуации, когда ненужный модальный G-код не был отменен. Например, если программа обработки была прервана по каким-либо причинам в середине. Строка безопасности, которая обычно находится в начале УП или после кадра смены инструмента, позволяет «восстановить» забытые G-коды и выйти в привычный режим работы. Давайте поближе познакомимся с G-кодами, находящимися в типичной строке безопасности.

Код G21 говорит станку о том, что все перемещения и подачи рассчитываются и осуществляются в миллиметрах, а не в дюймах (G20). Так как станки производятся и работают в разных странах, то существует возможность переключения между дюймовым и метрическим режимами. Поэтому включение этого кода в состав строки безопасности гарантирует работу в правильном режиме.

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

Код G49 отменяет компенсацию длины инструмента.

Код G54 на большинстве современных станков позволяет активировать одну из нескольких рабочих систем координат. Предыдущая управляющая программа могла работать в другой системе координат, например, в G55. Как и большинство G-кодов, G-код рабочей системы координат является модальным и сохраняется активным в памяти СЧПУ до тех пор, пока его не отменят. Для того чтобы избежать ошибки, в строку безопасности включают код требуемой рабочей системы координат (G54–G59).

Код G80 отменяет все постоянные циклы (например, циклы сверления) и их параметры. Отмена постоянных циклов необходима, так как все координаты после G-кода постоянного цикла относятся непосредственно к нему и для выполнения других операций нужно «сказать» системе ЧПУ, что цикл закончен.

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

7. Форматирование УП как фактор обеспечения ее совместимости

В начале этой главы мы рассмотрели пример, наглядно демонстрирующий, что нет особого смысла уменьшать размер УП, а есть смысл сделать так, чтобы программа обработки была хорошо читаемой. Хорошая читаемость программы обеспечивается четкой структурой, комментариями, номерами кадров и пробелами между словами данных, то есть ее форматом. Однако это не единственная причина для форматирования УП.

Второй причиной является совместимость. Если все программисты в вашей компании будут использовать одинаковый формат, то каждый из них без особых хлопот разберется в программе своего коллеги, сможет найти ошибку и исправить ее. Пожалуй, самой важной причиной для форматирования УП является специфика многоинструментальной обработки на современных станках с ЧПУ.

Особенность этой работы заключается в частой смене инструмента и в многократном использовании одного и того же инструмента. У оператора станка с ЧПУ может возникнуть необходимость перезапуска программы с определенного номера инструмента или операции. Для этого требуется особая технология написания УП, нужна определенная избыточность информации.

Опытный программист всегда включает в УП некоторый набор дополнительных команд, позволяющих оператору станка «стартовать» из определенных кадров программы. Этими командами могут быть не только команды включения требуемых оборотов шпинделя S и М03, но и строки безопасности, команды на выполнение компенсации длины и коррекции на радиус инструмента. Это означает, что одна управляющая программа может состоять из множества «мини-программ»:

%

O0002

(PROGRAM NAME – T) (DATE=DD-MM-YY – 15-09-04 TIME=HH:MM – 22:55)

N100 G21

N102 G00 G17 G40 G49 G80 G90 (1 OPERATION)

N104 T1 M6

N106 G00 G90 G54 X-88.783 Y47.985 A0. S1000M3

N108 G43 H1 Z100.

(2 OPERATION)

N134 T2 M6

N136 G00 G90 G54 X-88.783 Y47.985 A0. S1000M3

N138 G43 H2 Z100.

(3 OPERATION)

N164 T3 M6

N166 G00 G90 G54 X-88.783 Y47.985 A0. S1000M3

N168 G43 H3 Z100.

(4 OPERATION)

N194 T4 M6

N196 G00 G90 G54 X-88.783 Y47.985 A0. S1000M3

N198 G43 H4 Z100.

(5 OPERATION)

N224 T5 M6

N226 G00 G90 G54 X-88.783 Y47.985 A0. S2000M3

N228 G43 H5 Z100.

N248 M08

N250 G28 X0 Y0 Z0

N252 M30

%