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) оператор WHILE

G00 X52 Z2;

#2=-14;

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

WHILE [#2 GE -30] DO2;

Це обмеження в напрямку z. Коли z дорівнює -30, напрямок z більше не рухатиметься

G00 Z〔#2〕;

Поточна позиція в напрямку z

#2=#2-2;

Крок руху в напрямку z, щоразу переміщаючись на 2 мм

#1=52;

є початковою точкою ножа в напрямку x

WHILE [#1 GE 20] DO1;

Обмеження в напрямку X, коли діаметр дорівнює 20, він більше не буде різати

G01 X〔#1〕F0.2;

Глибина різу в напрямку x

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

Відносна величина ретракції в напрямку x

#1=#1-1;

Відстань кроку в напрямку x (зрізайте 1 мм кожного разу)

END1;

G00 X52;

END2;

Повна програма:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

WHILE〔#2GE-30〕DO2; END1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

WHILE〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 плюс 1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2) оператор IF

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

IF [#2 GE 21] GOTO1;

Обмеження в напрямку x (коли значення x скорочено до 20, буде виконано наступну процедуру, і повернення не буде здійснено)

G00 X52;

X повертається в положення 52

G00 Z〔#1〕;

Поточна позиція в напрямку Z

IF [#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〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

IF[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Програмування еліпса

1) Стандартний формат еліпса WHILE:

#1=a;

a: Початкова точка інструмента знаходиться в позитивному напрямку a mm відносно осі Z еліпса

WHILE [#1 GE b] DO1;

b: Кінцева точка обробки еліпса знаходиться в негативному напрямку b mm відносно осі Z еліпса (якщо обробляється повний напівеліпс, то a і b є двома значеннями з однаковим значенням і різними знаками)

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

c: мала піввісь еліпса

d: велика напіввісь еліпса (обчисліть №2 за формулою еліпса, велика напіввісь — d, мала напіввісь — с, №2 — значення X, №1 — значення Z , а SQRT означає квадратний корінь)

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

e: зсув (значення діаметра) осі X еліпса відносно системи координат заготовки

f: зсув осі Z еліпса відносно системи координат заготовки

#1=#1-1; відстань кроку (переміщення на 1 мм кожного разу)

END1;

Примітка. Під час повороту увігнутого еліпса «±» у круглих дужках після X приймається як «-»; при повороті опуклого еліпса «±» в дужках після X приймається як «плюс».

Коли вісь X еліпса зміщується в позитивному напрямку, «±» у дужках після Z приймає значення «плюс»; коли вісь Х еліпса зсувається в негативному напрямку, «±» у дужках після Z приймає «-»

2) Стандартний формат еліптичного оператора IF

#1=a;

a: Початкова точка інструмента знаходиться в позитивному напрямку a mm відносно осі 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 мм кожного разу)

IF [#1 GE -f] GOTO1

f: Припинення обробки еліпса

 

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

картина

оператор WHILE

#1=20;

WHILE〔#1GE-20〕DO1;

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

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

#1=#1-1;

END1;

оператор IF

#1=20;

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

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

#1=#1-1;

IF[#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;

WHILE〔#1GE-20〕DO1;

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

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

#1=#1-1;

END1;

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

WHILE [#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 мм кожного разу)

END1;

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

#1=a;

a: Початкова точка інструменту – мм у напрямку параболічної осі Z

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

(Відповідно до параболічної формули Z=-3/5*X*X, знайдіть значення X, яке є №2, де SQRT означає квадратний корінь)

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

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

#1=#1-1;

(відстань кроку в напрямку Z, кожен рух становить 1 мм)

IF〔#1 GE -c〕GOTO1; c: довжина обробки еліпса в напрямку z

Параболічний ПЧ

інша форма речення

#1=a;

N1 #2=SQRT〔( плюс )#1*5/3〕;

Знак «плюс» можна опустити

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

#1=#1 плюс 1;

IF [#1 LE c] GOTO1;

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

картина

оператор WHILE

#1=0;

WHILE [#1 GE -15] DO1;

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

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

#1=#1-1;

END1;

оператор IF

#1=0;

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

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

#1=#1-1;

IF [#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;

WHILE [#1 GE -15] DO1;

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

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

#1=#1-1;

END1;

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;

END1;

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);

IF [#2 GE 20] GOTO1;

3) Як видно з наведеної вище програми обробки, кількість слів у операторі IF набагато менша, ніж у операторі WHILE.

4) Через різні напрямки повернення прочитайте на одне речення менше для оператора WHILE і на одне речення більше для оператора IF під час обробки.

04

Додаток макропрограми системи SIEMENS (токарний верстат).

Примітка. Програма макросу запрограмована зі змінними, а номер змінної системи Siemens представлено R.

Наприклад, написано загальним методом програмування: G01X-10

Програму макросу можна виразити так:

R1=-10

G01 X=R1

Умовне переведення:

ЯКЩО GOTOB: стрибок назад

IF GOTOF: стрибок вперед

написаний у звичайному програмуванні

GO1X100

Змінні можуть бути виражені як:

R1=0

AA: 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

AA:R2=R2-2.5

R3=50

Вісь X канавки досягає точки

BB: R3=R3-2

Визначте глибину різання кожного ножа як 2 мм

G1X=R3

X=R3 плюс 1

0.5 мм видалення стружки з одного боку кожні 2 мм глибини різу

IF R3>30 плюс 0,4 GOTOB BB

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

G0X50

Інструмент досягає початкової точки осі Х

G1Z=R2

IF R2>{{0}} плюс 0,2 GOTOB 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

AA: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 ​​GOTOB AA

Якщо змінна R1

2) Приклад програмування:

картина

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

ЦИКЛ95 ( )

G42S1500

OO:

R1=20

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

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

R1=R1-2

IF R1>=-20 GOTOB AA

PP:X42

G0G40X100Z100

M05

M09

M30

(3) Парабола

1) Основний формат:

R1=0

Установіть початкове значення змінної R1 на 0

AA: R2=SQRT(-R1×n)

Отримано відповідно до основного формату параболи, де SQRT – символ квадратного кореня, а n – коефіцієнт

G01X=2×R2 плюс n

Z=R1

Шлях обробки, плюс 2 – опуклий, n – значення початкової точки осі Х

R1=R1-1

Змінне значення кроку становить 1 мм

IF R1>-30 GOTOB AA

If the variable R1>-30, програма повертається до позначки: AA

2) Приклад програмування:

картина

T1

Тк

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

ЦИКЛ95 ( )

G0G42

OO:

R1=0

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

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

R1=R1-2

IF R1>-60 GOTOB AA

PP: X52

G0X100Z100

M05

M30

Послати повідомлення

whatsapp

skype

Електронна пошта

Розслідування