Apr 15, 2023 Ostavite poruku

Razgovarajmo o CNC makro programima

 

Jednostavno rečeno, makro znači koristiti formule za obradu dijelova. Na primjer, elipsa, ako nema makronaredbe, trebamo izračunati točke na krivulji točku po točku, a zatim je polako aproksimirati ravnom linijom. Ako se radi o radnom predmetu s visokim zahtjevima za glatkoću, tada moramo izračunati mnogo točaka, ali nakon primjene makronaredbe, unosimo formulu elipse u sustav, a zatim dajemo Z koordinatu i svaki put dodajemo iznos, zatim makro će automatski izračunati X koordinatu i izvesti rezanje. Zapravo, glavna funkcija makronaredbe u programu je izračun.

slika

01

O makro programima

Što je makro program

Pri programiranju ćemo u memoriju poput potprograma pohraniti niz instrukcija koje mogu dovršiti određenu funkciju te ih pozvati općom instrukcijom. Kada ga koristimo, samo trebamo dati ovu opću uputu za izvođenje pohranjene funkcije. Ova serija uputa naziva se tijelo korisničkog makro programa ili skraćeno makro program.

Ova opća naredba naziva se naredba korisničkog makro poziva. Prilikom programiranja, programeri samo trebaju zapamtiti makro upute, ali ne i makro programe.

Kada će se koristiti makro programiranje?

1) Ručno programirana krivulja formule obrade (jednostavan izračun, brzi unos)

2) Redovita putanja rezanja (kao modul rezanja)

3) Međuprogramska kontrola (programsko zakazivanje)

4) Upravljanje alatom (trošenje alata)

5) Automatsko mjerenje (sonda u stroju)

Razlika između makro programa i normalnog programa

1) U tijelu makro programa, varijable se mogu koristiti, vrijednosti se mogu dodijeliti varijablama, izračuni se mogu izvoditi između varijabli i programi se mogu skakati.

2) U običnim programima mogu se specificirati samo konstante, a operacije između konstanti se ne mogu izvoditi. Programi se mogu izvršavati samo sekvencijalno i ne mogu se skakati, tako da su funkcije fiksne i ne mogu se mijenjati.

3) Makro funkcija je posebna funkcija za korisnika za poboljšanje performansi CNC alatnog stroja, a vješto korištenje makro programa u obradi sličnih izradaka postići će dvostruko veći rezultat uz upola manji napor.

02

Varijable i formati makro programa

Značajke makro programa

Makro program može koristiti varijablu, a varijabla se može koristiti za izvođenje odgovarajućih operacija; stvarna vrijednost varijable može se dodijeliti varijabli instrukcijom makro programa.

Tri vrste varijabli

Forma predstavljanja varijable CNC sustava je "#" iza koje slijede 1 do 4 znamenke, a postoje tri vrste varijabli:

(1) Lokalne varijable: #1~#33 su varijable koje se koriste lokalno u makro programu, a koje se koriste za neovisni prijenos varijabli.


(2) Zajednička varijabla: korisnik je može slobodno koristiti, a zajednička je za svaku podrutinu i svaki makro program koji poziva glavni program. #100~#149, nakon isključivanja napajanja, sve vrijednosti varijabli bit će izbrisane, dok #500~#509, nakon isključivanja napajanja, vrijednosti varijabli mogu se spremiti.


(3) Varijabla sustava: Definirana je sa 4 znamenke, može dobiti informacije samo za čitanje ili čitanje/pisanje sadržane u procesoru alatnog stroja ili NC memoriji, uključujući parametre razmjene koji se odnose na procesor alatnog stroja, akviziciju stanja alatnog stroja parametri, Informacije o sustavu kao što su parametri obrade.

Jednostavan pozivni format makro programa

Jednostavan poziv makro programa znači da se u glavnom programu makro program može pozvati jednim blokom.

Format pozivanja:

G65 P (broj makro programa) L (broj ponavljanja) (dodjela varijable).

Među njima: G65—naredba poziva makro programa;

P (broj makro programa) - šifra makro programa koji se poziva;

L (broj ponavljanja) - broj ponovljenih pokretanja makro programa, kada je broj ponavljanja 1, može se izostaviti;

(Dodjela varijabli) - Dodijelite vrijednosti varijablama koje se koriste u makro programu.

Ista stvar između makro programa i potprograma je da jedan makro program može pozvati drugi makro program, do 4 puta.

Format pisanja makro programa

Format pisanja makro programa je isti kao i format potprograma. Njegov format je:

0-(0001-8999 je broj makro programa)

Naredba N10

N-M99

U sadržaju gornjeg makro programa, osim uobičajeno korištenih programskih instrukcija, mogu se koristiti i varijable, aritmetičke operacije i druge upravljačke instrukcije. Vrijednost varijable je dodijeljena u instrukciji poziva makro programa.

03

Aplikacija makro programa FANUC sustava

(1) Urezivanje makro programa

slika

1) WHILE izjava

G00 X52 Z2;

#2=-14;

To je početna točka alata u smjeru z (budući da je širina alata 4 mm, početna točka je postavljena na Z-14)

WHILE [#2 GE -30] DO2;

To je ograničenje u smjeru z. Kada je z jednako -30, smjer z se više neće pomicati

G00 Z〔#2〕;

Trenutni položaj u smjeru z

#2=#2-2;

Pokretni korak u smjeru z, svaki put pomaknuvši se 2 mm

#1=52;

je početna točka noža u smjeru x

WHILE [#1 GE 20] DO1;

Ograničenja u smjeru X, kada je promjer jednak 20, više neće rezati

G01 X〔#1〕F0.2;

Dubina rezanja u smjeru x

G00 X〔#1 plus 1〕;

Relativni iznos povlačenja u smjeru x

#1=#1-1;

Koračna udaljenost u smjeru x (izrežite 1 mm svaki put)

KRAJ1;

G00 X52;

KRAJ2;

Kompletan program:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

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

G00 Z〔#2〕;

#2=#2-2;

#1=52

WHILE〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 plus 1〕;

#1=#1-1;

G00 X52;

KRAJ2;

G00 X150 Z150;

M30;

2) IF izjava

G00 X52 Z-2;

#1=-14;

To je početna točka alata u smjeru z (širina alata je 4 mm)

N2 #1=#1-2;

je korak kretanja u smjeru z

#2=52;

je početna točka alata u smjeru x

N1#2=#2-1;

udaljenost koraka u smjeru x (dubina rezanja 1 mm svaki put)

G01 X〔#2〕F0.2;

Trenutačni položaj u smjeru X

G00 X〔#2 plus 1〕;

Relativni iznos povlačenja u smjeru X

AKO [#2 GE 21] GOTO1;

Ograničenja u smjeru x (kada se vrijednost x smanji na 20, izvršit će se sljedeći postupak i neće biti povratka)

G00 X52;

X se povlači u položaj 52

G00 Z〔#1〕;

Trenutni položaj u Z smjeru

IF [#1 GE -30] GOTO2;

Ograničenja u smjeru Z, kada je z jednako -30, smjer z se neće pomicati

Kompletan 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 plus 1〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

IF[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Programiranje elipse

1) Standardni format elipse WHILE izjave:

#1=a;

a: Početna točka alata je u pozitivnom smjeru a mm u odnosu na os Z elipse

WHILE [#1 GE b] DO1;

b: Krajnja točka obrade elipse je u negativnom smjeru b mm u odnosu na os Z elipse (ako se obrađuje potpuna poluelipsa, tada su a i b dvije vrijednosti s istom vrijednošću i različitim predznacima)

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

c: mala poluos elipse

d: velika poluos elipse (izračunajte #2 prema formuli elipse, velika poluos je d, mala poluos je c, #2 predstavlja vrijednost X, #1 je vrijednost Z , a SQRT znači kvadratni korijen)

G01 X〔±2*#2 plus e〕Z〔#1±f〕;

e: Pomak (vrijednost promjera) X osi elipse u odnosu na koordinatni sustav obratka

f: Pomak Z osi elipse u odnosu na koordinatni sustav obratka

#1=#1-1; udaljenost koraka (pomicanje 1 mm svaki put)

KRAJ1;

Napomena: Prilikom okretanja konkavne elipse, "±" u zagradama iza X uzima se kao "-"; kada okrećete konveksnu elipsu, "±" u zagradama iza X se uzima kao " plus ".

Kada se X-os elipse pomakne u pozitivan smjer, "±" u zagradama nakon Z uzima " plus "; kada se X-os elipse pomiče u negativnom smjeru, "±" u zagradama iza Z zauzima "-"

2) Standardni format eliptične IF naredbe

#1=a;

a: Početna točka alata je u pozitivnom smjeru a mm u odnosu na os Z elipse

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

b: polukratka os elipse c: velika poluos elipse (prema formuli elipse X/c plus Y/b=1, SQRT znači kvadratni korijen)

G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: pomak (vrijednost promjera) X osi elipse u odnosu na nultu točku koordinate e: Z os elipse u odnosu na nultu ravninu Pomak

#1=#1-1;

Udaljenost koraka (pomicanje 1 mm svaki put)

AKO [#1 GE -f] IDITE NA1

f: Završetak obrade elipse

 

Napomena: Prilikom okretanja konkavne elipse, "±" u zagradama iza X uzima se kao "-"; kada okrećete konveksnu elipsu, "±" u zagradama iza X se uzima kao " plus ". Kada X-os elipse odstupa u pozitivnom smjeru, "±" u zagradama nakon Z uzima " plus "; kada X-os elipse odstupa u negativnom smjeru, "±" u zagradama iza Z zauzima "-".

slika

izjava WHILE

#1=20;

WHILE〔#1GE-20〕DO1;

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

G01X〔-2*#2 plus 50〕Z〔#1-25〕;

#1=#1-1;

KRAJ1;

IF izjava

#1=20;

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

G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;

#1=#1-1;

IF[#1GE-20]GOTO1;

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

WHILE〔#1GE-20〕DO1;

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

G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;

#1=#1-1;

KRAJ1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Potpuni format IF naredbe je izostavljen (isto vrijedi i za IF naredbu, sve dok je dodan ciklus). U FANUC-0i sustavu, makro program se može dodati samo u G73.

(3) Obrada parabole

1) Standardni format parabolične naredbe WHILE:

#1=a;

a: Početna točka alata je mm u smjeru parabolične osi Z

WHILE [#1 GE -b] DO1;

b: duljina obrade elipse u smjeru z

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

(Prema paraboličnoj formuli Z=-3/5*X*X, pronađite vrijednost X, koja je #2, gdje SQRT znači kvadratni korijen)

G01 X〔±2*#2 plus c〕Z〔#1〕;

c: je pomak (vrijednost promjera) X osi parabole u odnosu na koordinatni sustav obratka, "±"

Kada se uzme "plus", ona je konveksna, a kada se uzme "-", ona je konkavna

#1=#1-1; Udaljenost koraka (pomicanje 1 mm svaki put)

KRAJ1;

2) Standardni format parabolične IF naredbe

#1=a;

a: Početna točka alata je mm u smjeru parabolične osi Z

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

(Prema paraboličnoj formuli Z=-3/5*X*X, pronađite vrijednost X, koja je #2, gdje SQRT znači kvadratni korijen)

G01 X〔±2*#2 plus b〕Z〔#1〕;

b: To je pomak (vrijednost promjera) osi X-smjera parabole u odnosu na nultu točku koordinate. Kada "±" uzme "plus", on je konveksan, a kada se uzme "-", on je konkavan

#1=#1-1;

(udaljenost koraka u smjeru Z, svaki pokret je 1 mm)

IF〔#1 GE -c〕GOTO1; c: duljina obrade elipse u z smjeru

Parabolični IF

drugi oblik rečenice

#1=a;

N1 #2=SQRT〔( plus )#1*5/3〕;

Znak "plus" može se izostaviti

G01 X〔2*#2 plus b〕Z〔-#1〕;

#1=#1 plus 1;

IF [#1 LE c] GOTO1;

Uz pretpostavku da je parabola u pozitivnom smjeru od Z, tada koristite Z〔-#1〕; kako bi parabola bila simetrična negativnom smjeru

slika

izjava WHILE

#1=0;

WHILE [#1 GE -15] DO1;

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

G01 X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

KRAJ1;

IF izjava

#1=0;

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

G01X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

IF [#1 GE -15] GOTO1;

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

WHILE [#1 GE -15] DO1;

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

G01 X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

KRAJ1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Razlika između naredbe WHILE i naredbe IF

1) Smjerovi dviju izjava su različiti

Naredba WHILE vraća se unatrag

Primjer: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Pod pretpostavkom da kada alatni stroj izvrši ovu rečenicu, #1=20, nastavit će se izvršavati. Nakon izvršavanja #1=#1-1, vrijednost #1 postaje 19, što više ne ispunjava uvjete ograničenja, pa se neće vratiti. (Izreži na 20 u smjeru X)

G00 X〔#1 plus 1);

#1=#1-1;

KRAJ1;

2) Naredba IF vraća se naprijed

Primjer: N1 #2=#2-1;

G01X〔#2〕F0.2; Pod pretpostavkom da #2=20 kada alatni stroj izvrši ovu rečenicu, nastavit će se izvršavati sve do IF〔#2 GE 20〕GOTO1; ako je uvjet još uvijek zadovoljen, nastavit će se vraćati na N1# 2=#2-1; a trenutna vrijednost X postat će 19, što više ne zadovoljava uvjete ograničenja, a zatim izvršiti još jedan

G01X〔#2〕F0.2; Na kraju, izvršite sljedeći program (smjer X je srezan na 19)

G00X〔#2 plus 1);

AKO [#2 GE 20] GOTO1;

3) Kao što se može vidjeti iz gornjeg programa za brazdenje, broj riječi u naredbi IF mnogo je manji nego u naredbi WHILE.

4) Zbog različitih smjerova vraćanja, tijekom obrade pročitajte jednu rečenicu manje za naredbu WHILE i jednu rečenicu više za naredbu IF.

04

Aplikacija makro programa SIEMENS sustav (strug).

Napomena: Makro program je programiran s varijablama, a broj varijable Siemens sustava predstavlja R.

Na primjer, napisano uobičajenom metodom programiranja: G01X-10

Makro program se može izraziti kao:

R1=-10

G01 X=R1

Uvjetni prijenos:

AKO GOTOB: skoči unatrag

AKO GOTOF: skoči naprijed

napisan uobičajenim programiranjem

GO1X100

Varijable se mogu izraziti kao:

R1=0

AA: R1=R1 plus 1

G01X=R1

AKO R1<100 GOTOB AA

R1 je nezavisna varijabla, početna vrijednost je 0, R1=R1 plus 1 znači da je inkrementalna vrijednost nezavisne varijable 1, kada program prolazi kroz ovu liniju svaki put, vrijednost R1 se povećava za 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

Ako je R1 veći ili jednak 100, program pada.

Makro programi se mogu koristiti iu G90 i G91 modovima, ali njihova su značenja različita, na primjer;

R1=0, G90R1=R1 plus 1, G1X=R1, vrijednost X nakon drugog prolaza ovog programa je 2.

R1=0, G91R1=R1 plus 1, G1X=R1, vrijednost X nakon drugog prolaza programa je 3. Objašnjenje: Vrijednost R1 je 1 nakon prvog prolaz programa, a vrijednost R1 je drugi prolaz. To je 2, ali u načinu rada G91 temelji se na prethodnom.

(1) Žlijebljenje

slika

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Brzo stići do početne točke

Z-10

R1=3

Definirajte širinu oštrice kao 3 mm

R2=-10-R1-0.2

Početna točka alata je -10, a pri postavljanju alata koristi se lijeva strana oštrice;

Postavka alata, tako da treba oduzeti širinu oštrice, 0.2 je dodatak za završnu obradu

G1Z=R2F0.1

Alat doseže početnu točku Z osi

AA:R2=R2-2.5

R3=50

X os utora doseže točku

BB: R3=R3-2

Definirajte dubinu rezanja svakog noža na 2 mm

G1X=R3

X=R3 plus 1

0.5 mm uklanjanje strugotine s jedne strane na svakih 2 mm dubine rezanja

IF R3>30 plus 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, program skače unatrag do oznake BB, a 0,4 je dodatak za završnu obradu

G0X50

Alat doseže početnu točku X osi

G1Z=R2

IF R2>{{0}} plus 0,2 GOTOB AA

Definirajte širinu utora kao 20mm, a 0,2 je dodatak za završnu obradu

G0X50

G01Z-13

dorada

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Povući

G0X100

Z100

M05

M30

(2) Elipsa

1) Osnovni format

R1=0

Definirajte varijablu R1 s početnom vrijednošću 0

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

Prema jednadžbi elipse, a je velika poluos elipse, b je mala poluos elipse, a SQRT je simbol kvadratnog korijena.

G1X=±2×R2 plus XZ=R1-Z

Postavite položaj i oblik elipse, plus 2 je konveksno, -2 je konkavno, X, Z su udaljenosti između osi obratka i osi elipse (sustav promjera).

R1=R1-1

Postavite korak obrade

IF R1>=n ​​GOTOB AA

Ako je varijabla R1

2) Primjer programiranja:

slika

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

CYCLE95 ( )

G42S1500

OO:

R1=20

AA:R2=5×SQRT(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) Osnovni format:

R1=0

Postavite početnu vrijednost varijable R1 na 0

AA: R2=SQRT(-R1×n)

Dobiveno prema osnovnom formatu parabole, gdje je SQRT simbol kvadratnog korijena, a n koeficijent

G01X=2×R2 plus n

Z=R1

Put obrade, plus 2 je konveksan, n je vrijednost početne točke X osi

R1=R1-1

Promjenjiva vrijednost povećanja je 1 mm

IF R1>-30 GOTOB AA

If the variable R1>-30, program skače unatrag do oznake: AA

2) Primjer programiranja:

slika

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

CYCLE95 ( )

G0G42

OO:

R1=0

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

G01X=2×R2 plus 30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP: X52

G0X100Z100

M05

M30

Pošaljite upit

whatsapp

skype

E-pošte

Upit