Apr 15, 2023 Zostaw wiadomość

Porozmawiajmy o programach makro CNC

 

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

Wyślij zapytanie

whatsapp

skype

Adres e-mail

Zapytanie