Просто казано, макросът е да се използват формули за обработка на части. Например елипса, ако няма макрос, трябва да изчислим точките на кривата точка по точка и след това бавно да я приближим с права линия. Ако това е детайл с високи изисквания за гладкост, тогава трябва да изчислим много точки, но след прилагане на макроса, въвеждаме формулата на елипсата в системата и след това даваме Z координатата и добавяме количество всеки път, след което макросът автоматично ще изчисли координатата X и ще извърши рязане. Всъщност основната функция на макроса в програмата е изчислението.
снимка
01
Относно макро програмите
Какво е макро програма
Когато програмираме, ще съхраняваме поредица от инструкции, които могат да изпълнят определена функция в паметта като подпрограма, и ще ги извикваме с обща инструкция. Когато го използваме, трябва само да дадем тази обща инструкция, за да изпълним съхранената функция. Тази поредица от инструкции се нарича тялото на потребителската макро програма или накратко макро програма.
Тази обща команда се нарича команда за потребителско макро извикване. Когато програмират, програмистите трябва само да запомнят макро инструкции, но не и макро програми.
Кога ще се използва макро програмиране?
1) Ръчно програмирана крива на формулата за обработка (просто изчисление, бързо въвеждане)
2) Редовен път на рязане (като модул за рязане)
3) Междупрограмно управление (програмно планиране)
4) Управление на инструменти (износване на инструменти)
5) Автоматично измерване (сонда в машината)
Разликата между макро програма и нормална програма
1) В тялото на макропрограмата могат да се използват променливи, могат да се присвояват стойности на променливи, могат да се извършват изчисления между променливи и програми могат да се прескачат.
2) В обикновените програми могат да се задават само константи и не могат да се извършват операции между константи. Програмите могат да се изпълняват само последователно и не могат да бъдат прескачани, така че функциите са фиксирани и не могат да се променят.
3) Макро функцията е специална функция за потребителя за подобряване на производителността на CNC машинния инструмент, а умелото използване на макро програмата при обработката на подобни детайли ще постигне два пъти по-добър резултат с половината от усилията.
02
Променливи и формати на макро програми
Характеристики на макро програмите
Макро програмата може да използва променливата и променливата може да се използва за извършване на съответните операции; действителната стойност на променливата може да бъде присвоена на променливата чрез инструкцията на макропрограмата.
Три вида променливи
Формата за представяне на променливите на CNC системата е "#", последвано от 1 до 4 цифри и има три вида променливи:
(1) Локални променливи: #1~#33 са променливи, използвани локално в макропрограмата, които се използват за прехвърляне на независими променливи.
(2) Обща променлива: потребителят може да я използва свободно и тя е обща за всяка подпрограма и всяка макро програма, извикана от основната програма. #100~#149, след изключване на захранването, всички стойности на променливите ще бъдат изчистени, докато #500~#509, след изключване на захранването, стойностите на променливите могат да бъдат запазени.
(3) Системна променлива: Дефинира се от последвана от 4 цифри, може да получава информация само за четене или за четене/запис, съдържаща се в процесора на машинния инструмент или NC паметта, включително параметри за обмен, свързани с процесора на машинния инструмент, придобиване на състояние на машинния инструмент параметри, системна информация като параметри за обработка.
Опростен формат за извикване на макро програма
Простото извикване на макро програмата означава, че в основната програма макро програмата може да бъде извикана от един блок.
Формат на извикване:
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)
ДОКАТО [#2 GE -30] DO2;
Това е ограничение в посока z. Когато z е равно на -30, посоката z вече няма да се движи
G00 Z〔#2〕;
Текущата позиция в посока z
#2=#2-2;
Движещата се стъпка в посока z, като се движи с 2 мм всеки път
#1=52;
е началната точка на ножа в посока x
ДОКАТО %5б#1 ГЕ 20%5д ДО1%3б
Ограничения в посока X, когато диаметърът е равен на 20, той вече няма да реже
G01 X〔#1〕F0.2;
Дълбочина на рязане в посока x
G00 X〔#1 плюс 1〕;
Относителна сума на прибиране в посока x
#1=#1-1;
Разстояние на стъпки в посока x (срязване 1 mm всеки път)
КРАЙ1;
G00 X52;
КРАЙ2;
Пълна програма:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
WHILE〔#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) IF изявление
G00 X52 Z-2;
#1=-14;
Това е началната точка на z-посока на инструмента (ширината на инструмента е 4 mm)
N2 #1=#1-2;
е стъпката на движение в посока z
#2=52;
е началната точка на инструмента в посока x
N1#2=#2-1;
е разстоянието на стъпката в посока x (дълбочина на рязане 1 mm всеки път)
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
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〕;
АКО〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Програмиране на елипса
1) Стандартният формат на оператора WHILE за елипса:
#1=a;
a: Началната точка на инструмента е в положителната посока a mm спрямо оста Z на елипсата
ДОКАТО %5б#1 ГЕ б%5д ДО1%3б
b: Крайната точка на обработката на елипса е в отрицателната посока b mm спрямо оста 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 mm всеки път)
КРАЙ1;
Забележка: При завъртане на вдлъбната елипса, "±" в скобите след X се приема като "-"; при завъртане на изпъкнала елипса, "±" в скобите след X се приема като "плюс".
Когато оста X на елипсата се измести в положителна посока, "±" в скобите след Z приема "плюс"; когато оста X на елипсата се измести в отрицателна посока, "±" в скобите след 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 mm всеки път)
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;
КРАЙ1;
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;
ДОКАТО〔#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: Началната точка на инструмента е mm по посока на параболичната ос Z
ДОКАТО %5б#1 ГЕ -б%5д ДО1%3б
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 mm всеки път)
КРАЙ1;
2) Стандартният формат на параболичния оператор IF
#1=a;
a: Началната точка на инструмента е mm по посока на параболичната ос Z
N1 #2=SQRT〔-#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 mm)
IF〔#1 GE -c〕GOTO1; c: дължината на обработка на елипсата в посока z
Параболичен IF
друга форма на изречение
#1=a;
N1 #2=SQRT〔( плюс )#1*5/3〕;
Знакът "плюс" може да бъде пропуснат
G01 X〔2*#2 плюс b〕Z〔-#1〕;
#1=#1 плюс 1;
АКО [#1 LE c] GOTO1;
Ако приемем, че параболата е в положителната посока на Z, тогава използвайте Z〔-#1〕; за да направи параболата симетрична спрямо отрицателната посока
снимка
Изявление WHILE
#1=0;
ДОКАТО [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 плюс 30〕Z〔#1〕;
#1=#1-1;
КРАЙ1;
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;
КРАЙ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
Условен трансфер:
АКО ГОТОБ: скочи назад
IF GOTOF: скочи напред
написани в общото програмиране
ГО1С100
Променливите могат да бъдат изразени като:
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
АА:R2=R2-2.5
R3=50
Оста X на жлеба достига точката
BB: R3=R3-2
Определете дълбочината на рязане на всеки нож като 2 мм
G1X=R3
X=R3 плюс 1
0.5 mm отстраняване на стружки от едната страна на всеки 2 mm дълбочина на рязане
IF R3>30 плюс 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, програмата скача назад до марката BB, а 0,4 е надбавката за финална обработка
G0X50
Инструментът достига началната точка на оста X
G1Z=R2
IF R2>{{0}} плюс 0,2 GOTOB AA
Дефинирайте ширината на жлеба като 20 mm, а 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
ОО:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 плюс 50 Z=R1-40
R1=R1-2
IF R1>%7б%7б0%7д%7д ГОТОБ АА
ПП%3аС42
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 е стойността на началната точка на оста X
R1=R1-1
Променливата стойност на нарастване е 1 mm
IF R1>%7б%7б0%7д%7д ГОТОБ АА
If the variable R1>-30, програмата скача назад до знака: AA
2) Пример за програмиране:
снимка
T1
Тц
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CYCLE95 ( )
G0G42
ОО:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 плюс 30 Z=R1
R1=R1-2
IF R1>%7б%7б0%7д%7д ГОТОБ АА
ПП%3а С52
G0X100Z100
M05
M30




