Apr 15, 2023 Оставить сообщение

Поговорим о макропрограммах ЧПУ

 

Проще говоря, макрос — это использование формул для обработки деталей. Например, эллипс, если нет макроса, нам нужно вычислить точки на кривой по точкам, а затем медленно аппроксимировать прямой линией. Если это заготовка с высокими требованиями к гладкости, то нам нужно вычислить много точек, но после применения макроса, мы вводим в систему формулу эллипса и далее задаем координату Z и каждый раз прибавляем сумму, тогда Макрос автоматически рассчитает координату X и выполнит резку. На самом деле основная функция макроса в программе - это расчет.

картина

01

О макропрограммах

Что такое макропрограмма

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

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

Когда будет использоваться программирование макросов?

1) Запрограммированная вручную кривая формулы обработки (простой расчет, быстрый ввод)

2) Обычный траектория резания (в качестве режущего модуля)

3) Межпрограммный контроль (программное планирование)

4) Управление инструментом (износ инструмента)

5) Автоматическое измерение (внутримашинный зонд)

Разница между макропрограммой и обычной программой

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

2) В обычных программах можно указывать только константы, а операции между константами выполнять нельзя. Программы могут выполняться только последовательно и не могут быть перепрыгнуты, поэтому функции фиксированы и не могут быть изменены.

3) Функция макроса - это специальная функция для пользователя, позволяющая повысить производительность станка с ЧПУ, а умелое использование макропрограммы при обработке однотипных заготовок позволит добиться вдвое большего результата при вдвое меньших усилиях.

02

Переменные и форматы макропрограмм

Особенности макропрограмм

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

Три типа переменных

Форма представления переменных в системе ЧПУ — это «#», за которым следуют цифры от 1 до 4, и существует три типа переменных:

(1) Локальные переменные: #1~#33 - это переменные, используемые локально в макропрограмме, которые используются для независимой передачи переменных.


(2) Общая переменная: пользователь может использовать ее свободно, и она является общей для каждой подпрограммы и каждой макропрограммы, вызываемой основной программой. #100~#149, после отключения питания все значения переменных будут удалены, а #500~#509, после отключения питания значения переменных могут быть сохранены.


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

Простой формат вызова макропрограммы

Простой вызов макропрограммы означает, что в основной программе макропрограмма может быть вызвана одним кадром.

Формат вызова:

G65 P (номер макропрограммы) L (количество повторений) (переменное назначение).

Среди них: G65 — команда вызова макропрограммы;

P (номер макропрограммы) - код вызываемой макропрограммы;

L (количество повторов) - количество повторений макропрограммы, при количестве повторений 1 его можно не указывать;

(Присвоение переменной) — присвоение значений переменным, используемым в макропрограмме.

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

Формат записи макропрограммы

Формат записи макропрограммы такой же, как и у подпрограммы. Его формат:

0-(0001-8999 – номер макропрограммы)

команда N10

N-M99

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

03

Приложение системного макроса FANUC

(1) Нарезка канавок в макропрограмме

картина

1) ПОКА заявление

G00 X52 Z2;

#2=-14;

Это начальная точка инструмента в направлении Z (поскольку ширина инструмента составляет 4 мм, начальная точка устанавливается на Z-14)

ПОКА [#2 GE -30] DO2;

Это ограничение в направлении z. Когда z равно -30, направление z больше не будет двигаться

G00 Z〔#2〕;

Текущая позиция в направлении z

#2=#2-2;

Шаг перемещения в направлении z, каждый раз перемещаясь на 2 мм

#1=52;

является начальной точкой ножа в направлении x

ПОКА [#1 GE 20] DO1;

Ограничения в направлении X, при диаметре равном 20 больше не будет резать

G01 X〔#1〕F0.2;

Глубина резания в направлении x

G00 X〔#1 плюс 1〕;

Относительная величина отвода в направлении x

#1=#1-1;

Расстояние шага в направлении x (каждый раз сокращайте на 1 мм)

КОНЕЦ1;

G00 X52;

КОНЕЦ2;

Полная программа:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

ПОКА〔#2GE-30〕DO2; КОНЕЦ1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

ПОКА〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 плюс 1〕;

#1=#1-1;

G00 X52;

КОНЕЦ2;

G00 X150 Z150;

M30;

2) оператор ЕСЛИ

G00 X52 Z-2;

#1=-14;

Это начальная точка инструмента в направлении z (ширина инструмента 4 мм).

N2 #1=#1-2;

шаг движения в направлении z

#2=52;

является начальной точкой инструмента в направлении x

N1#2=#2-1;

расстояние шага в направлении x (глубина резания 1 мм каждый раз)

G01 X〔#2〕F0.2;

Текущее положение в направлении X

G00 X〔#2 плюс 1〕;

Относительная величина отвода в направлении X

ЕСЛИ [#2 GE 21] GOTO1;

Ограничения в направлении x (когда значение x сокращается до 20, будет выполняться следующая процедура, и возврата не будет)

G00 X52;

X убирается в позицию 52

G00 Z〔#1〕;

Текущее положение в направлении Z

ЕСЛИ [#1 GE -30] GOTO2;

Ограничения в направлении Z, когда z равно -30, направление z не будет перемещаться

Полная программа:

O1234;

G40G97G99;

T0101;

S1000M3;

G00 X52 Z-2;

#1=-14;

N2 #1=#1-2;

#2=52;

N1#2=#2-1;

G01 X〔#2〕F0.2;

G00 X〔#2 плюс 1〕;

ЕСЛИ〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

ЕСЛИ[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Эллиптическое программирование

1) Стандартный формат оператора ellipse WHILE:

#1=a;

a: Начальная точка инструмента находится в положительном направлении мм относительно оси Z эллипса.

ПОКА [#1 GE b] DO1;

b: конечная точка обработки эллипса находится в отрицательном направлении b мм относительно оси Z эллипса (если обрабатывается полный полуэллипс, то a и b являются двумя значениями с одинаковым значением и разными знаками)

#2= c*SQRT[1-#1*#1/d*d];

c: малая полуось эллипса

d: большая полуось эллипса (вычислите #2 по формуле эллипса, большая полуось - d, малая полуось - c, #2 представляет значение X, #1 - значение Z , а SQRT означает квадратный корень)

G01 X〔±2*#2 плюс e〕Z〔#1±f〕;

e: смещение (значение диаметра) оси X эллипса относительно системы координат заготовки.

f: смещение оси Z эллипса относительно системы координат заготовки.

#1=#1-1; расстояние шага (перемещаясь на 1 мм каждый раз)

КОНЕЦ1;

Примечание. При повороте вогнутого эллипса «±» в скобках после X принимается за «-»; при повороте выпуклого эллипса «±» в скобках после X принимается за «плюс».

Когда ось X эллипса смещается в положительном направлении, «±» в скобках после Z принимает «плюс»; когда ось X эллипса смещается в отрицательное направление, «±» в скобках после Z принимает «-»

2) Стандартный формат эллиптического оператора IF

#1=a;

a: Начальная точка инструмента находится в положительном направлении мм относительно оси Z эллипса.

N1#2=b*SQRT〔1-#1*#1/c*c〕;

b: полукороткая ось эллипса c: большая полуось эллипса (согласно формуле эллипса X/c плюс Y/b=1, SQRT означает квадратный корень)

G01X〔±2*#2 плюс d〕Z〔#1±e〕F0.2; d: смещение (значение диаметра) оси X эллипса относительно нулевой точки координат e: ось Z эллипса относительно нулевой плоскости Смещение

#1=#1-1;

Расстояние шага (перемещение на 1 мм каждый раз)

ЕСЛИ [#1 GE -f] GOTO1

f: Прекращение обработки эллипса

 

Примечание. При повороте вогнутого эллипса «±» в скобках после X принимается за «-»; при повороте выпуклого эллипса «±» в скобках после X принимается за «плюс». Когда ось X эллипса отклоняется в положительном направлении, «±» в скобках после Z принимает «плюс»; когда ось X эллипса отклоняется в отрицательном направлении, «±» в скобках после Z принимает «-».

картина

ПОКА заявление

#1=20;

ПОКА〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 плюс 50〕Z〔#1-25〕;

#1=#1-1;

КОНЕЦ1;

оператор ЕСЛИ

#1=20;

N1#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 плюс 50〕Z〔#1-25〕F0.2;

#1=#1-1;

ЕСЛИ[#1GE-20]GOTO1;

полная программа

O1234;

G40G97G99;

T0101;

S1000 M3;

G00 X50 Z2;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G0 G42 Z-5;

#1=20;

ПОКА〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 плюс 50〕Z〔#1-25〕F0.2;

#1=#1-1;

КОНЕЦ1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Полный формат оператора IF опущен (то же верно и для оператора IF, если добавлен цикл). В системе FANUC-0i макропрограмму можно добавить только в G73.

(3) Обработка параболы

1) Стандартный формат параболического оператора WHILE:

#1=a;

a: Начальная точка инструмента находится в миллиметрах в направлении параболической оси Z.

ПОКА [#1 GE -b] DO1;

b: длина обработки эллипса в направлении z

#2=SQRT〔-#1*5/3〕;

(Согласно параболической формуле Z=-3/5*X*X, найдите значение X, равное #2, где SQRT означает квадратный корень)

G01 X〔±2*#2 плюс c〕Z〔#1〕;

c: это смещение (значение диаметра) оси X параболы относительно системы координат заготовки, «±»

При взятии «плюс» она выпуклая, при взятии «-» — вогнутая.

#1=#1-1; Расстояние шага (перемещение на 1 мм каждый раз)

КОНЕЦ1;

2) Стандартный формат параболического оператора IF

#1=a;

a: Начальная точка инструмента находится в миллиметрах в направлении параболической оси Z.

N1 #2=КОРЕНЬ〔-#1*5/3〕;

(Согласно параболической формуле Z=-3/5*X*X, найдите значение X, равное #2, где SQRT означает квадратный корень)

G01 X〔±2*#2 плюс b〕Z〔#1〕;

b: это смещение (значение диаметра) оси X параболы относительно нулевой точки координат. Когда «±» берется «плюс», она выпуклая, а когда «-» берется вогнутая.

#1=#1-1;

(расстояние шага в направлении Z, каждое движение составляет 1 мм)

IF〔#1 GE -c〕GOTO1; c: длина обработки эллипса в направлении z

Параболическая ЕСЛИ

другая форма предложения

#1=a;

N1 #2=КОРЕНЬ〔(плюс)#1*5/3〕;

Знак "плюс" можно не ставить

G01 X〔2*#2 плюс b〕Z〔-#1〕;

#1=#1 плюс 1;

ЕСЛИ [#1 LE c] GOTO1;

Предполагая, что парабола находится в положительном направлении Z, используйте Z〔-#1〕; сделать параболу симметричной отрицательному направлению

картина

ПОКА заявление

#1=0;

ПОКА [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 плюс 30〕Z〔#1〕;

#1=#1-1;

КОНЕЦ1;

оператор ЕСЛИ

#1=0;

N1 #2=КОРЕНЬ〔-#1*5/3〕;

G01X〔2*#2 плюс 30〕Z〔#1〕;

#1=#1-1;

ЕСЛИ [#1 GE -15] GOTO1;

полная программа

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X42 Z1;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G00 G42 Z0;

#1=0;

ПОКА [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 плюс 30〕Z〔#1〕;

#1=#1-1;

КОНЕЦ1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Разница между оператором WHILE и оператором IF

1) Направления двух утверждений различны

Оператор WHILE возвращает назад

Пример: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Предположим, что когда станок выполнит это предложение #1=20, он продолжит выполняться. После выполнения #1=#1-1 значение #1 становится равным 19, что больше не соответствует условиям ограничения, поэтому возврат невозможен. (Сократите до 20 в направлении X)

G00 X〔#1 плюс 1);

#1=#1-1;

КОНЕЦ1;

2) Оператор IF возвращает вперед

Пример: N1 #2=#2-1;

G01X〔#2〕F0.2; Предполагая, что #2=20 когда станок выполняет это предложение, он будет продолжать выполняться до тех пор, пока IF〔#2 GE 20〕GOTO1; если условие все еще выполняется, он продолжит возвращаться к N1# 2=#2-1; и текущее значение X станет 19, что больше не соответствует условиям ограничений, а затем выполните другое

G01X〔#2〕F0.2; Наконец, выполните следующую программу (направление X было сокращено до 19)

G00X〔#2 плюс 1);

ЕСЛИ [#2 GE 20] GOTO1;

3) Как видно из приведенной выше программы нарезки, количество слов в операторе IF намного меньше, чем в операторе WHILE.

4) Из-за разных направлений возврата читайте на одно предложение меньше для оператора WHILE и на одно предложение больше для оператора IF во время обработки.

04

Системное приложение SIEMENS (токарный станок) макропрограмма

Примечание: макропрограмма запрограммирована с переменными, и номер переменной системы Siemens представлен буквой R.

Например, записано обычным методом программирования: G01X-10

Программа макроса может быть выражена как:

R1=-10

G01 X=R1

Условный перевод:

ЕСЛИ ГОТОБ: прыжок назад

ЕСЛИ GOTOF: прыжок вперед

написанный в обычном программировании

GO1X100

Переменные могут быть выражены как:

R1=0

АА: R1=R1 плюс 1

G01X=R1

ЕСЛИ R1<100 GOTOB AA

R1 — независимая переменная, начальное значение равно 0, R1=R1 плюс 1 означает, что инкрементное значение независимой переменной равно 1, когда программа каждый раз проходит эту строку, значение R1 увеличивается на 1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA

Если R1 больше или равен 100, программа останавливается.

Макропрограммы можно использовать как в режимах G90, так и в G91, но их значения, например, различны;

R1=0, G90R1=R1 плюс 1, G1X=R1, значение X после второго прохода этой программы равно 2.

R1=0, G91R1=R1 плюс 1, G1X=R1, значение X после второго прохода программы равно 3. Объяснение: Значение R1 равно 1 после первого проход программы, а значение R1 — второй проход. Он равен 2, но в режиме G91 он основан на предыдущем.

(1) Нарезка канавок

картина

T1

ТС

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Быстро добраться до начальной точки

Z-10

R1=3

Определите ширину лезвия как 3 мм

R2=-10-R1-0.2

Начальная точка инструмента — -10, а левая сторона лезвия используется при настройке инструмента;

Настройка инструмента, поэтому следует вычесть ширину лезвия, 0.2 – припуск на чистовую обработку.

G1Z=R2F0.1

Инструмент достигает начальной точки оси Z

АА:Р2=Р2-2.5

R3=50

Ось X канавки достигает точки

ВВ: Р3=Р3-2

Определите глубину резания каждого ножа как 2 мм.

G1X=R3

X=R3 плюс 1

0 Удаление стружки 0,5 мм с одной стороны на каждые 2 мм глубины резания

IF R3>30 плюс 0,4 ГОТОБ ББ

Define the groove depth as 10mm, if R3>30мм, программа переходит назад к отметке BB, а 0,4 – чистовой припуск.

G0X50

Инструмент достигает начальной точки оси X

G1Z=R2

IF R2>{{0}} плюс 0,2 ГОТОБ AA

Задайте ширину канавки 20мм, а 0,2 — чистовой припуск.

G0X50

G01Z-13

отделка

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Отзывать

G0X100

Z100

M05

M30

(2) Эллипс

1) Базовый формат

R1=0

Определите переменную R1 с начальным значением 0.

АА:R2=b×SQRT(1-R1×R1/a×a)

Согласно уравнению эллипса, a — большая полуось эллипса, b — малая полуось эллипса, а SQRT — символ квадратного корня.

G1X=±2×R2 плюс XZ=R1-Z

Задайте положение и форму эллипса, плюс 2 — выпуклость, -2 — вогнутость, X, Z — расстояния между осью заготовки и осью эллипса (система диаметров).

R1=R1-1

Установите шаг обработки

IF R1>=n ​​ГОТОБ АА

Если переменная R1

2) Пример программирования:

картина

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

ЦИКЛ95 ( )

G42S1500

ООО:

R1=20

АА:R2=5×SQRT(1-R1×R1/400)

G1X=-2×R2 плюс 50 Z=R1-40

R1=R1-2

IF R1>=-20 ГОТОБ АА

ПП:X42

G0G40X100Z100

M05

M09

M30

(3) Парабола

1) Базовый формат:

R1=0

Установите начальное значение переменной R1 на 0

АА: R2=SQRT(-R1×n)

Получается по базовому формату параболы, где SQRT — символ квадратного корня, а n — коэффициент

G01X=2×R2 плюс n

Z=R1

Путь обработки, плюс 2 — выпуклый, n — значение начальной точки оси X

R1=R1-1

Значение переменного шага составляет 1 мм.

IF R1>-30 ГОТОБ АА

If the variable R1>-30, программа переходит назад к отметке: AA

2) Пример программирования:

картина

T1

Тс

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

ЦИКЛ95 ( )

G0G42

ООО:

R1=0

АА:R2=SQRT(-R1×5/3)

G01X=2×R2 плюс 30 Z=R1

R1=R1-2

IF R1>-60 ГОТОБ АА

ПП: Х52

G0X100Z100

M05

M30

Отправить запрос

whatsapp

skype

Отправить по электронной почте

Запрос