G-код G65, M98 и M99: подпрограмма и макрос для станка с ЧПУ

Подпрограмма

Для удобства повторного использования g-кода, необходимо централизовать его и обеспечить доступ из основной программы детали. G-код предоставляет два способа: подпрограммы и макросы. Они работают как мини-программы, к которым можно обратиться из основной программы, выполнить их, а затем вернуться к основному коду.

Использование таких методов позволяет повысить производительность за счет уменьшения объема кода и упрощения его понимания. Например, для фрезерования карманов можно создать подпрограмму для обработки одного уровня и вызывать её многократно, меняя только координаты по оси Z.

G-коды M98 и M99: вызовы подпрограмм

Начнем с вызовов подпрограмм, так как они проще для понимания. Вызов подпрограммы осуществляется командой M98, которая указывает номер подпрограммы, куда нужно перейти. Основная программа и подпрограмма имеют свои уникальные номера “O”. Вот пример:

%

O1000

N100 (Основная программа)

…

N330 (Вызов подпрограммы) M98 P2000

…

N1000 M2 (остановка программы)

O2000 (Подпрограмма)

N2000…

…

N2130 M99 (Вернуться в основную программу)

Основная программа вызывает подпрограмму с помощью M98, после чего выполнение переходит к подпрограмме. Команда M99 в подпрограмме возвращает выполнение к основной программе.

Подпрограмма. Синтаксис вызова

Существует несколько синтаксисов для вызова подпрограмм, зависящих от контроллера:

  • Чаще всего подпрограмму вызывают с помощью буквы “P”, обозначающей адрес подпрограммы.
  • Для повторного вызова подпрограммы можно использовать букву “L”, указывающую количество повторений.
  • Максимальная глубина вложенности подпрограмм и макросов зависит от контроллера.
  • Для макросов используется G-код G65, для подпрограмм – M98.

Некоторые контроллеры позволяют возвращаться к определенной строке с помощью M99, но это может быть запутанным. Лучше использовать макрос GOTO для таких переходов.

Особенности специальной подпрограммы Haas

Контроллеры Haas имеют специальную команду M97 для вызова подпрограмм без необходимости настройки номеров “O”. Это удобно для быстрого вызова подпрограмм.

Haas также поддерживает стандартный M98 для вызова подпрограмм.

Макрос-вызовы или подпрограмма

Макросы вызываются командой G65 и имеют аргументы, передаваемые через словесные адреса. Например, цикл сверления глубоких отверстий можно вызвать так:

…

N100 (вызов подпрограммы пользовательского цикла глубокого отверстия)

N110 #1=2.5 (загрузить X в #1)

N120 #2=3.0 (загрузить Y в #2)

N130 #3=5.4 (загрузить Z в #3)

N140 M98 P1000 (вызов цикла глубокого отверстия)

…

Для макроса это будет выглядеть так:

…

N100 (пользовательский макрос цикла обработки глубоких отверстий)

N120 G65 X2.5 Y3.0 Z5.4

…

Макрос получает доступ к аргументам через локальные переменные. Каждое слово-аргумент имеет назначенную локальную переменную:

АргументЛокальная переменная
A#1
B#2
C#3
D#7
E#8
F#9
H#11
I#4
J#5
K#6
M#13
Q#17
P#18
S#19
T#20
U#21
V#22
W#23
X#24
Y#25
Z#26
Аргументы и соответствующие локальные переменные

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

Номера макросов и подпрограмм “O”

Номера “O” должны быть уникальными в программе. Некоторые контроллеры позволяют защищать определенные диапазоны чисел “O”, чтобы предотвратить изменение стандартных макросов.

Совет по преобразованию обычного G-кода в подпрограмму или макрос

Чтобы преобразовать обычный g-код в подпрограмму, используйте относительные координаты. Это позволяет легко адаптировать код для использования в различных координатах. После преобразования создайте подпрограмму и вызывайте её в нужных позициях, возвращаясь к абсолютным координатам после выполнения подпрограммы.

Заключение

Теперь у вас есть инструменты для упаковки g-кода в блоки, которые можно перекомбинировать и использовать повторно. В следующей главе мы рассмотрим условия и циклы, позволяющие g-коду принимать решения и выполнять инструкции в зависимости от условий.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.