Mówiąc najprościej, makro ma używać formuł do przetwarzania części. Na przykład elipsa, jeśli nie ma makra, musimy obliczyć punkty na krzywej punkt po punkcie, a następnie powoli przybliżyć ją linią prostą. Jeśli jest to przedmiot o dużych wymaganiach dotyczących gładkości, to musimy obliczyć wiele punktów, ale po zastosowaniu makra wprowadzamy wzór elipsy do systemu, a następnie podajemy współrzędną Z i każdorazowo dodajemy kwotę, a następnie makro automatycznie obliczy współrzędną X i wykona cięcie. W rzeczywistości główną funkcją makra w programie jest obliczanie.
zdjęcie
01
O programach makr
Co to jest program makro
Podczas programowania będziemy przechowywać w pamięci serię instrukcji, które mogą wykonać określoną funkcję, jak podprogram, i wywoływać je z instrukcją ogólną. Używając go, wystarczy podać tę ogólną instrukcję, aby wykonać zapisaną funkcję Ta seria instrukcji nazywana jest treścią makroprogramu użytkownika lub w skrócie makroprogramem.
To ogólne polecenie jest nazywane poleceniem wywołania makra użytkownika. Podczas programowania programiści muszą zapamiętywać tylko makroinstrukcje, ale nie makroprogramy.
Kiedy będzie używane programowanie makr?
1) Ręcznie programowana krzywa formuły przetwarzania (proste obliczenie, szybkie wprowadzanie)
2) Regularna ścieżka cięcia (jako moduł tnący)
3) Kontrola międzyprogramowa (planowanie programów)
4) Zarządzanie narzędziami (zużycie narzędzi)
5) Pomiar automatyczny (sonda w maszynie)
Różnica między programem makro a normalnym programem
1) W treści makroprogramu można stosować zmienne, przypisywać wartości do zmiennych, wykonywać obliczenia między zmiennymi i przeskakiwać między programami.
2) W zwykłych programach można podawać tylko stałe i nie można wykonywać operacji między stałymi. Programy mogą być wykonywane tylko sekwencyjnie i nie można ich przeskakiwać, więc funkcje są stałe i nie można ich zmienić.
3) Funkcja makro jest specjalną funkcją dla użytkownika w celu poprawy wydajności obrabiarki CNC, a umiejętne użycie programu makr w obróbce podobnych przedmiotów pozwoli osiągnąć dwukrotnie lepszy wynik przy połowie wysiłku.
02
Zmienne i formaty makroprogramów
Funkcje programów makro
Makroprogram może używać zmiennej, a zmienna może być używana do wykonywania odpowiednich operacji; aktualna wartość zmiennej może być przypisana do zmiennej przez makroinstrukcję programu.
Trzy rodzaje zmiennych
Forma reprezentacji zmiennych w systemie CNC to „#”, po którym następuje od 1 do 4 cyfr, i istnieją trzy rodzaje zmiennych:
(1) Zmienne lokalne: #1~#33 to zmienne używane lokalnie w makroprogramie, które są używane do niezależnego transferu zmiennych.
(2) Wspólna zmienna: użytkownik może z niej swobodnie korzystać i jest wspólna dla każdego podprogramu i każdego makroprogramu wywoływanego przez program główny. #100~#149, po wyłączeniu zasilania, wszystkie wartości zmiennych zostaną skasowane, natomiast #500~#509, po wyłączeniu zasilania, wartości zmiennych mogą zostać zapisane.
(3) Zmienna systemowa: jest zdefiniowana przez 4 cyfry, może uzyskać informacje tylko do odczytu lub do odczytu/zapisu zawarte w procesorze obrabiarki lub pamięci NC, w tym parametry wymiany związane z procesorem obrabiarki, akwizycję stanu obrabiarki parametry, informacje o systemie, takie jak parametry przetwarzania.
Prosty format wywołania makroprogramu
Proste wywołanie makroprogramu oznacza, że w programie głównym makroprogram można wywołać pojedynczym blokiem.
Format wywołania:
G65 P (numer makroprogramu) L (liczba powtórzeń) (przypisanie zmiennej).
Wśród nich: G65 — polecenie wywołania makroprogramu;
P (numer makroprogramu) - kod makroprogramu, który ma zostać wywołany;
L (liczba powtórzeń) - liczba powtórzeń wykonania makroprogramu, gdy liczba powtórzeń wynosi 1, można ją pominąć;
(Przypisanie zmiennej) — Przypisz wartości do zmiennych używanych w makroprogramie.
To samo między makroprogramem a podprogramem standardowym polega na tym, że jeden makroprogram może zostać wywołany przez inny makroprogram do 4 razy.
Format zapisu makroprogramów
Format zapisu makroprogramu jest taki sam jak format podprogramu standardowego. Jego format to:
0-(0001-8999 to numer makroprogramu)
Komenda N10
N-M99
W treści powyższego makroprogramu, oprócz powszechnie stosowanych instrukcji programistycznych, można wykorzystać również zmienne, instrukcje operacji arytmetycznych oraz inne instrukcje sterujące. Wartość zmiennej jest przypisywana w instrukcji wywołania makroprogramu.
03
Aplikacja programu makro systemu FANUC
(1) Rowkowanie w programie makro
zdjęcie
1) Instrukcja WHILE
G00 X52 Z2;
#2=-14;
Jest to punkt początkowy narzędzia w kierunku z (ponieważ szerokość narzędzia wynosi 4 mm, punkt początkowy jest ustawiony na Z-14)
GDY [#2 GE -30] DO2;
Jest to ograniczenie w kierunku z. Kiedy z jest równe -30, kierunek z nie będzie się już przesuwał
G00 Z〔#2〕;
Bieżąca pozycja w kierunku z
#2=#2-2;
Ruchomy krok w kierunku z, przesuwając się za każdym razem o 2 mm
#1=52;
jest punktem początkowym noża w kierunku x
PODCZAS [#1 WN 20] ZROBIĆ 1;
Wiązania w kierunku X, gdy średnica jest równa 20, nie będzie już ciąć
G01 X〔#1〕F0.2;
Głębokość skrawania w kierunku x
G00 X〔#1 dodać 1〕;
Względna wielkość wycofania w kierunku x
#1=#1-1;
Odległość kroku w kierunku x (za każdym razem cięcie 1 mm)
KONIEC1;
G00 X52;
KONIEC2;
Kompletny program:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
GDY〔#2GE-30〕DO2; KONIEC1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
GDY〔#1GE20〕ZROBIĆ1;
G01X〔#1〕F0.2;
G00X〔#1 dodać 1〕;
#1=#1-1;
G00 X52;
KONIEC2;
G00 X150 Z150;
M30;
2) Instrukcja JEŻELI
G00 X52 Z-2;
#1=-14;
Jest to punkt początkowy narzędzia w kierunku Z (szerokość narzędzia wynosi 4 mm)
N2 #1=#1-2;
jest krokiem ruchu w kierunku z
#2=52;
jest punktem początkowym narzędzia w kierunku x
N1#2=#2-1;
to odległość kroku w kierunku x (głębokość skrawania za każdym razem 1 mm)
G01 X〔#2〕F0.2;
Bieżąca pozycja w kierunku X
G00 X〔#2 dodać 1〕;
Względna wielkość wycofania w kierunku X
JEŻELI [#2 GE 21] PRZEJDŹ DO 1;
Ograniczenia w kierunku x (gdy wartość x zostanie zmniejszona do 20, zostanie wykonana następująca procedura i nie zostanie zwrócony żaden zwrot)
G00 X52;
X cofa się do pozycji 52
G00 Z〔#1〕;
Bieżąca pozycja w kierunku Z
JEŚLI [#1 GE -30] GOTO2;
Ograniczenia w kierunku Z, gdy z jest równe -30, kierunek Z nie zostanie przesunięty
Kompletny program:
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 dodać 1〕;
JEŚLI〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
JEŻELI[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Programowanie elips
1) Standardowy format instrukcji elipsy WHILE:
#1=a;
a: Punkt początkowy narzędzia znajduje się w kierunku dodatnim a mm względem osi Z elipsy
GDY [#1 GE b] DO1;
b: Punkt końcowy przetwarzania elipsy znajduje się w kierunku ujemnym b mm względem osi Z elipsy (jeśli przetwarzana jest pełna półelipsa, to aib są dwiema wartościami o tej samej wartości i różnych znakach)
#2= c*SQRT[1-#1*#1/d*d];
c: półoś mała elipsy
d: półoś wielka elipsy (oblicz #2 według wzoru na elipsę, półoś wielka to d, półoś mała to c, nr 2 reprezentuje wartość X, nr 1 to wartość Z , a SQRT oznacza pierwiastek kwadratowy)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: Przesunięcie (wartość średnicy) osi X elipsy względem układu współrzędnych przedmiotu obrabianego
f: Przesunięcie osi Z elipsy względem układu współrzędnych przedmiotu obrabianego
#1=#1-1; odległość kroku (za każdym razem przesuwając się o 1 mm)
KONIEC1;
Uwaga: Podczas obracania elipsy wklęsłej „±” w nawiasie po X jest traktowane jako „-”; podczas obracania wypukłej elipsy „±” w nawiasie po X jest traktowane jako „plus”.
Kiedy oś X elipsy przesuwa się w kierunku dodatnim, „±” w nawiasach po Z przyjmuje „plus”; gdy oś X elipsy przesuwa się w kierunku ujemnym, „±” w nawiasach po Z przyjmuje „-”
2) Standardowy format eliptycznej instrukcji IF
#1=a;
a: Punkt początkowy narzędzia znajduje się w kierunku dodatnim a mm względem osi Z elipsy
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: półkrótka oś elipsy c: półoś wielka elipsy (zgodnie ze wzorem elipsy X/c plus Y/b=1, SQRT oznacza pierwiastek kwadratowy)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: przesunięcie (wartość średnicy) osi X elipsy względem punktu zerowego współrzędnych e: oś Z elipsy względem płaszczyzny zerowej Przesunięcie
#1=#1-1;
Odległość kroku (za każdym razem przesuwając się o 1 mm)
JEŚLI [#1 GE -f] PRZEJŚĆ1
f: Zakończenie przetwarzania elipsy
Uwaga: Podczas obracania elipsy wklęsłej „±” w nawiasie po X jest traktowane jako „-”; podczas obracania wypukłej elipsy „±” w nawiasie po X jest traktowane jako „plus”. Kiedy oś X elipsy odchyla się w kierunku dodatnim, „±” w nawiasach po Z przyjmuje „plus”; gdy oś X elipsy odchyla się w kierunku ujemnym, „±” w nawiasach po Z przyjmuje „-”.
zdjęcie
Oświadczenie WHILE
#1=20;
GDY〔#1GE-20〕ZROBIĆ1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕;
#1=#1-1;
KONIEC1;
stwierdzenie JEŻELI
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;
#1=#1-1;
JEŻELI[#1GE-20]GOTO1;
kompletny program
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;
GDY〔#1GE-20〕ZROBIĆ1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;
#1=#1-1;
KONIEC1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Pominięto pełny format instrukcji IF (to samo dotyczy instrukcji IF, o ile cykl jest dodany). W systemie FANUC{0}}i makroprogram można dodać tylko w G73.
(3) Przetwarzanie paraboli
1) Standardowy format instrukcji parabolicznej WHILE:
#1=a;
a: Punktem początkowym narzędzia jest mm w kierunku osi parabolicznej Z
GDY [#1 GE -b] DO1;
b: jest długością przetwarzania elipsy w kierunku z
#2=PRÓB〔-#1*5/3〕;
(Zgodnie ze wzorem parabolicznym Z=-3/5*X*X znajdź wartość X, która wynosi #2, gdzie SQRT oznacza pierwiastek kwadratowy)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: jest przesunięciem (wartością średnicy) osi X paraboli względem układu współrzędnych przedmiotu obrabianego, „±”
Biorąc „plus”, jest wypukła, a biorąc „-”, jest wklęsła
#1=#1-1; Odległość kroku (za każdym razem przesuwając się o 1 mm)
KONIEC1;
2) Standardowy format parabolicznej instrukcji IF
#1=a;
a: Punktem początkowym narzędzia jest mm w kierunku osi parabolicznej Z
N1 #2=PIERŚ〔-#1*5/3〕;
(Zgodnie ze wzorem parabolicznym Z=-3/5*X*X znajdź wartość X, która wynosi #2, gdzie SQRT oznacza pierwiastek kwadratowy)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Jest to przesunięcie (wartość średnicy) osi w kierunku X paraboli względem punktu zerowego współrzędnych. Kiedy „±” bierze „plus”, jest wypukła, a gdy bierze się „-”, jest wklęsła
#1=#1-1;
(odległość kroku w kierunku Z, każdy ruch wynosi 1mm)
JEŻELI〔#1 GE -c〕GOTO1; c: długość przetwarzania elipsy w kierunku z
Paraboliczny JEŻELI
inna forma zdania
#1=a;
N1 #2=PIERŚ〔( plus )#1*5/3〕;
Znak „plus” można pominąć
G01 X〔2*#2 plus b〕Z〔-#1〕;
#1=#1 plus 1;
JEŚLI [#1 LE c] PRZEJDŹ DO1;
Zakładając, że parabola jest w dodatnim kierunku Z, użyj Z〔-#1〕; aby parabola była symetryczna do kierunku ujemnego
zdjęcie
Oświadczenie WHILE
#1=0;
GDY [#1 GE -15] ZROBIĆ1;
#2=PRÓB〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
KONIEC1;
stwierdzenie JEŻELI
#1=0;
N1 #2=PIERŚ〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
JEŻELI [#1 GE -15] PRZEJDŹ1;
kompletny program
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;
GDY [#1 GE -15] ZROBIĆ1;
#2=PRÓB〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
KONIEC1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Różnica między instrukcją WHILE a instrukcją JEŻELI
1) Kierunki obu stwierdzeń są różne
Instrukcja WHILE powraca wstecz
Przykład: GDY〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Zakładając, że gdy obrabiarka wykona to zdanie, #1=20, będzie ono nadal wykonywać. Po wykonaniu #1=#1-1 wartość #1 wynosi 19, co nie spełnia już warunków ograniczenia, więc nie powróci. (Przycięcie do 20 w kierunku X)
G00 X〔#1 plus 1);
#1=#1-1;
KONIEC1;
2) Instrukcja JEŻELI powraca do przodu
Przykład: N1 #2=#2-1;
G01X〔#2〕F0.2; Zakładając, że #2=20, gdy obrabiarka wykona to zdanie, będzie ono kontynuowane aż do IF〔#2 GE 20〕GOTO1; jeśli warunek jest nadal spełniony, będzie nadal powracać do N1# 2=#2-1; a bieżąca wartość X zmieni się na 19, co nie spełnia już warunków ograniczenia, a następnie wykonaj inną
G01X〔#2〕F0.2; Na koniec wykonaj następujący program (kierunek X został przycięty do 19)
G00X〔#2 dodać 1);
JEŻELI [#2 GE 20] PRZEJDŹ DO 1;
3) Jak widać z powyższego programu rowkującego, liczba słów w instrukcji IF jest znacznie mniejsza niż w instrukcji WHILE.
4) Ze względu na różne kierunki powrotu przeczytaj jedno zdanie mniej dla instrukcji WHILE i jedno zdanie więcej dla instrukcji IF podczas przetwarzania.
04
Aplikacja makroprogramu systemu SIEMENS (tokarka).
Uwaga: Makroprogram jest zaprogramowany ze zmiennymi, a numer zmiennej systemu Siemens jest reprezentowany przez R.
Na przykład napisany wspólną metodą programowania: G01X-10
Program makro można wyrazić jako:
R1=-10
G01 X=R1
Przelew warunkowy:
IF GOTOB: skok do tyłu
IF GOTOF: skok do przodu
napisane w powszechnym programowaniu
GO1X100
Zmienne można wyrazić jako:
R1=0
AA: R1=R1 dodać 1
G01X=R1
JEŚLI R1<100 GOTOB AA
R1 jest zmienną niezależną, wartość początkowa to 0, R1=R1 plus 1 oznacza, że wartość przyrostowa zmiennej niezależnej wynosi 1, gdy program przechodzi przez tę linię za każdym razem, wartość R1 wzrasta o 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
Jeśli R1 jest większe lub równe 100, program przestaje działać.
Makroprogramy mogą być używane zarówno w trybach G90, jak i G91, ale ich znaczenie jest różne, na przykład;
R1=0, G90R1=R1 plus 1, G1X=R1, wartość X po drugim przebiegu tego programu wynosi 2.
R1=0, G91R1=R1 plus 1, G1X=R1, wartość X po drugim przejściu programu wynosi 3. Objaśnienie: Wartość R1 wynosi 1 po pierwszym przejściu przebieg programu, a wartość R1 to drugi przebieg. Jest to 2, ale w trybie G91 bazuje na poprzednim.
(1) Rowkowanie
zdjęcie
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Szybko dotrzyj do miejsca startu
Z-10
R1=3
Zdefiniuj szerokość ostrza jako 3 mm
R2=-10-R1-0.2
Punktem początkowym narzędzia jest -10, a podczas ustawiania narzędzia używana jest lewa strona ostrza;
Ustawienie narzędzia, więc należy odjąć szerokość ostrza, 0,2 to naddatek na wykończenie
G1Z=R2F0.1
Narzędzie osiąga punkt początkowy osi Z
AA:R2=R2-2.5
R3=50
Oś X rowka osiąga punkt
BB: R3=R3-2
Zdefiniuj głębokość cięcia każdego noża jako 2 mm
G1X=R3
X=R3 dodać 1
0Usuwanie wiórów o 0,5 mm z jednej strony co 2 mm głębokości skrawania
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, program cofa się do znaku BB, a 0,4 to naddatek na wykańczanie
G0X50
Narzędzie osiąga punkt początkowy osi X
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Zdefiniuj szerokość rowka jako 20mm, a 0,2 to naddatek na wykończenie
G0X50
G01Z-13
wykończeniowy
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Wycofać
G0X100
Z100
M05
M30
(2) Elipsa
1) Format podstawowy
R1=0
Zdefiniuj zmienną R1 o wartości początkowej 0
AA:R2=b×PROK(1-R1×R1/a×a)
Zgodnie z równaniem elipsy a jest półosią wielką elipsy, b jest półosią małą elipsy, a SQRT jest symbolem pierwiastka kwadratowego.
G1X=±2×R2 plus XZ=R1-Z
Ustaw położenie i kształt elipsy, plus 2 jest wypukła, -2 jest wklęsła, X, Z to odległości między osią przedmiotu obrabianego a osią elipsy (układ średnic).
R1=R1-1
Ustaw krok przetwarzania
IF R1>=n GOTOB AA
Jeśli zmienna R1
2) Przykład programowania:
zdjęcie
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
CYKL95 ( )
G42S1500
OO:
R1=20
AA:R2=5×PRÓB(1-R1×R1/400)
G1X=-2×R2 plus 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) Parabola
1) Format podstawowy:
R1=0
Ustaw wartość początkową zmiennej R1 na 0
AA: R2=PIERW(-R1×n)
Uzyskane zgodnie z podstawowym formatem paraboli, gdzie SQRT jest symbolem pierwiastka kwadratowego, a n jest współczynnikiem
G01X=2×R2 dodać n
Z=R1
Ścieżka obróbki, plus 2 jest wypukła, n to wartość punktu początkowego osi X
R1=R1-1
Zmienna wartość przyrostu wynosi 1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, program przeskoczy wstecz do znaku: AA
2) Przykład programowania:
zdjęcie
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CYKL95 ( )
G0G42
OO:
R1=0
AA:R2=PRAK(-R1×5/3)
G01X=2×R2 dodać 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




