Apr 15, 2023 Pustite sporočilo

Pogovorimo se o CNC makro programih

 

Preprosto povedano, makro je uporaba formul za obdelavo delov. Na primer, elipsa, če ni makra, moramo izračunati točke na krivulji točko za točko in jo nato počasi aproksimirati z ravno črto. Če gre za obdelovanec z visokimi zahtevami glede gladkosti, moramo izračunati veliko točk, vendar po uporabi makra v sistem vnesemo formulo elipse in nato podamo koordinato Z in vsakič dodamo količino, nato makro bo samodejno izračunal koordinato X in izvedel rezanje. Pravzaprav je glavna funkcija makra v programu izračun.

slika

01

O makro programih

Kaj je makro program

Pri programiranju bomo niz navodil, ki lahko dokončajo določeno funkcijo, shranili v pomnilnik kot podprogram in jih priklicali s splošnim navodilom. Ko ga uporabljamo, moramo podati le ta splošna navodila za izvedbo shranjene funkcije. Ta serija navodil se imenuje telo uporabniškega makro programa ali na kratko makro program.

Ta splošni ukaz se imenuje ukaz za klic uporabniškega makra. Pri programiranju si morajo programerji zapomniti le makro navodila, ne pa tudi makro programov.

Kdaj bo uporabljeno programiranje makrov?

1) Ročno programirana krivulja formule za obdelavo (preprost izračun, hiter vnos)

2) Redna rezalna pot (kot rezalni modul)

3) Medprogramski nadzor (programsko načrtovanje)

4) Upravljanje orodja (obraba orodja)

5) Samodejno merjenje (sonda v stroju)

Razlika med makro programom in običajnim programom

1) V telesu programa makra je mogoče uporabiti spremenljivke, spremenljivkam lahko dodeliti vrednosti, izvesti izračune med spremenljivkami in preskočiti programe.

2) V običajnih programih je mogoče določiti samo konstante, operacij med konstantami pa ni mogoče izvajati. Programe je mogoče izvajati samo zaporedno in jih ni mogoče preskočiti, zato so funkcije fiksne in jih ni mogoče spreminjati.

3) Makro funkcija je posebna funkcija za uporabnika za izboljšanje zmogljivosti CNC obdelovalnega stroja, spretna uporaba makro programa pri obdelavi podobnih obdelovancev pa bo dosegla dvakrat večji rezultat s polovico manj truda.

02

Spremenljivke in formati makro programov

Značilnosti makro programov

Makro program lahko uporablja spremenljivko, spremenljivko pa je mogoče uporabiti za izvajanje ustreznih operacij; dejanska vrednost spremenljivke se lahko dodeli spremenljivki z ukazom makro programa.

Tri vrste spremenljivk

Oblika predstavitve spremenljivk sistema CNC je "#", ki ji sledijo 1 do 4 števke, in obstajajo tri vrste spremenljivk:

(1) Lokalne spremenljivke: #1~#33 so spremenljivke, ki se lokalno uporabljajo v programu makra in se uporabljajo za prenos neodvisnih spremenljivk.


(2) Skupna spremenljivka: uporabnik jo lahko prosto uporablja in je skupna vsaki podprogrami in vsakemu makro programu, ki ga kliče glavni program. #100~#149, po izklopu napajanja, bodo vse vrednosti spremenljivk izbrisane, medtem ko #500~#509, po izklopu napajanja, se lahko vrednosti spremenljivk shranijo.


(3) Sistemska spremenljivka: definirana je s 4 števkami, lahko pridobi informacije samo za branje ali branje/pisanje, ki jih vsebuje procesor strojnega orodja ali pomnilnik NC, vključno s parametri izmenjave, povezanimi s procesorjem strojnega orodja, pridobitvijo stanja strojnega orodja sistemske informacije, kot so parametri obdelave.

Preprost klicni format makro programa

Enostaven klic makro programa pomeni, da lahko v glavnem programu makro program prikličete z enim blokom.

Oblika klica:

G65 P (številka makro programa) L (število ponovitev) (dodelitev spremenljivke).

Med njimi: G65—ukaz za klic makro programa;

P (številka makro programa) - koda makro programa, ki ga želite poklicati;

L (število ponovitev) - število ponovljenih zagonov makro programa, ko je število ponovitev 1, se lahko izpusti;

(Dodelitev spremenljivk) – Dodelite vrednosti spremenljivkam, ki se uporabljajo v programu makra.

Enako med programom makra in podprogramom je, da lahko en program makra pokliče drug program makra do 4-krat.

Format pisanja makro programa

Format pisanja makro programa je enak formatu podprograma. Njegova oblika je:

0-(0001-8999 je številka programa makra)

N10 ukaz

N-M99

V vsebini zgornjega makro programa se lahko poleg običajno uporabljenih programskih navodil uporabljajo tudi spremenljivke, navodila za aritmetične operacije in druga krmilna navodila. Vrednost spremenljivke je dodeljena v ukazu za klic makro programa.

03

Aplikacija makro programov sistema FANUC

(1) Makro programsko žlebljenje

slika

1) Izjava WHILE

G00 X52 Z2;

#2=-14;

Je začetna točka orodja v smeri z (ker je širina orodja 4 mm, je začetna točka nastavljena na Z-14)

MEDTEM KO [#2 GE -30] DO2;

Je omejitev v smeri z. Ko je z enak -30, se smer z ne bo več premikala

G00 Z〔#2〕;

Trenutni položaj v smeri z

#2=#2-2;

Premični korak v smeri z, vsakič premaknjen za 2 mm

#1=52;

je začetna točka noža v smeri x

MEDTEM KO [#1 GE 20] DO1;

Omejitve v smeri X, ko je premer enak 20, ne bo več rezal

G01 X〔#1〕F0.2;

Globina reza v smeri x

G00 X〔#1 plus 1〕;

Relativna količina umika v smeri x

#1=#1-1;

Koračna razdalja v smeri x (vsakič odrežite 1 mm)

KONEC1;

G00 X52;

KONEC2;

Celoten program:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

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

G00 Z〔#2〕;

#2=#2-2;

#1=52

MEDTEM KO〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 plus 1〕;

#1=#1-1;

G00 X52;

KONEC2;

G00 X150 Z150;

M30;

2) Izjava IF

G00 X52 Z-2;

#1=-14;

Je začetna točka v smeri z orodja (širina orodja je 4 mm)

N2 #1=#1-2;

je korak gibanja v smeri z

#2=52;

je začetna točka orodja v smeri x

N1#2=#2-1;

je korak koraka v smeri x (globina reza 1 mm vsakič)

G01 X〔#2〕F0.2;

Trenutni položaj v smeri X

G00 X〔#2 plus 1〕;

Relativna količina umika v smeri X

ČE [#2 GE 21] POJDI NA1;

Omejitve v smeri x (ko je vrednost x zmanjšana na 20, bo izveden naslednji postopek in vrnitev ne bo izvedena)

G00 X52;

X se umakne v položaj 52

G00 Z〔#1〕;

Trenutni položaj v smeri Z

IF [#1 GE -30] GOTO2;

Omejitve v smeri Z, ko je z enak -30, se smer z ne premakne

Celoten 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) Standardna oblika zapisa elipse WHILE:

#1=a;

a: Začetna točka orodja je v pozitivni smeri a mm glede na os Z elipse

MEDTEM KO [#1 GE b] DO1;

b: Končna točka obdelave elipse je v negativni smeri b mm glede na os Z elipse (če se obdela celotna polelipsa, sta a in b dve vrednosti z isto vrednostjo in različnima predznakoma)

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

c: mala pol os elipse

d: velika pol os elipse (izračunajte št. 2 po formuli elipse, velika pol os je d, mala pol os je c, št. 2 predstavlja vrednost X, št. 1 je vrednost Z in SQRT pomeni kvadratni koren)

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

e: Odmik (vrednost premera) osi X elipse glede na koordinatni sistem obdelovanca

f: Odmik osi Z elipse glede na koordinatni sistem obdelovanca

#1=#1-1; razdalja korakov (vsakič se premaknete za 1 mm)

KONEC1;

Opomba: Pri obračanju konkavne elipse se "±" v oklepaju za X upošteva kot "-"; pri obračanju konveksne elipse se "±" v oklepaju za X vzame kot "plus".

Ko se os X elipse premakne v pozitivno smer, "±" v oklepajih za Z dobi "plus"; ko se os X elipse premakne v negativno smer, "±" v oklepaju za Z prevzame "-"

2) Standardna oblika eliptičnega stavka IF

#1=a;

a: Začetna točka orodja je v pozitivni smeri a mm glede na os Z elipse

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

b: polkratka os elipse c: velika polos elipse (v skladu s formulo elipse X/c plus Y/b=1, SQRT pomeni kvadratni koren)

G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: odmik (vrednost premera) osi X elipse glede na koordinatno ničelno točko e: os Z elipse glede na ničelno ravnino Odmik

#1=#1-1;

Razdalja korakov (vsakič se premaknete za 1 mm)

ČE [#1 GE -f] POJDI NA1

f: Konec obdelave elipse

 

Opomba: Pri obračanju konkavne elipse se "±" v oklepaju za X upošteva kot "-"; pri obračanju konveksne elipse se "±" v oklepaju za X vzame kot "plus". Ko os X elipse odstopi v pozitivno smer, "±" v oklepaju za Z prevzame "plus"; ko X-os elipse odstopa v negativno smer, "±" v oklepaju za Z prevzame "-".

slika

izjava WHILE

#1=20;

MEDTEM KO〔#1GE-20〕DO1;

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

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

#1=#1-1;

KONEC1;

izjava IF

#1=20;

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

G01X〔-2*#2 plus 50%e 3��Z〔#1-25〕F0.2;

#1=#1-1;

IF[#1GE-20]GOTO1;

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

MEDTEM KO〔#1GE-20〕DO1;

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

G01X〔-2*#2 plus 50%e 3��Z〔#1-25〕F0.2;

#1=#1-1;

KONEC1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Celotna oblika stavka IF je izpuščena (enako velja za stavek IF, če je dodan cikel). V sistemu FANUC-0i je makro program mogoče dodati samo v G73.

(3) Obdelava parabole

1) Standardna oblika paraboličnega stavka WHILE:

#1=a;

a: Začetna točka orodja je mm v smeri parabolične osi Z

WHILE [#1 GE -b] DO1;

b: je dolžina obdelave elipse v smeri z

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

(V skladu s parabolično formulo Z=-3/5*X*X poiščite vrednost X, ki je #2, kjer SQRT pomeni kvadratni koren)

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

c: je odmik (vrednost premera) osi X parabole glede na koordinatni sistem obdelovanca, "±"

Ko vzamemo "plus", je konveksen, ko vzamemo "-", pa je konkaven

#1=#1-1; Razdalja korakov (vsakič se premaknete za 1 mm)

KONEC1;

2) Standardna oblika paraboličnega stavka IF

#1=a;

a: Začetna točka orodja je mm v smeri parabolične osi Z

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

(V skladu s parabolično formulo Z=-3/5*X*X poiščite vrednost X, ki je #2, kjer SQRT pomeni kvadratni koren)

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

b: Je odmik (vrednost premera) osi v smeri X parabole glede na koordinatno ničelno točko. Ko "±" zavzame "plus", je konveksen, ko zavzame "-", pa je konkaven

#1=#1-1;

(razdalja korakov v smeri Z, vsak premik je 1 mm)

IF〔#1 GE -c〕GOTO1; c: dolžina obdelave elipse v smeri z

Parabolični IF

druga oblika stavka

#1=a;

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

Znak "plus" lahko izpustite

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

#1=#1 plus 1;

ČE [#1 LE c] POJDI NA1;

Ob predpostavki, da je parabola v pozitivni smeri Z, uporabite Z〔-#1〕; da bo parabola simetrična na negativno smer

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;

KONEC1;

izjava IF

#1=0;

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

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

#1=#1-1;

IF [#1 GE -15] GOTO1;

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

MEDTEM KO [#1 GE -15] DO1;

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

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

#1=#1-1;

KONEC1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Razlika med stavkom WHILE in stavkom IF

1) Smeri obeh izjav sta različni

Stavek WHILE se vrne nazaj

Primer: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Ob predpostavki, da ko strojno orodje izvede ta stavek, #1=20, se bo še naprej izvajalo. Po izvedbi #1=#1-1 postane vrednost #1 19, kar ne izpolnjuje več pogojev omejitve, zato se ne bo vrnilo. (Izreži na 20 v smeri X)

G00 X〔#1 plus 1);

#1=#1-1;

KONEC1;

2) Stavek IF se vrne naprej

Primer: N1 #2=#2-1;

G01X〔#2〕F0.2; Ob predpostavki, da #2=20, ko strojno orodje izvede ta stavek, se bo nadaljevalo z izvajanjem do IF〔#2 GE 20〕GOTO1; če je pogoj še vedno izpolnjen, se bo še naprej vračal na N1# 2=#2-1; in trenutna vrednost X bo postala 19, kar ne izpolnjuje več omejitvenih pogojev, nato pa izvedite drugo

G01X〔#2〕F0.2; Končno izvedite naslednji program (smer X je bila zmanjšana na 19)

G00X〔#2 plus 1);

ČE [#2 GE 20] POJDI NA1;

3) Kot je razvidno iz zgornjega programa za brazdenje, je število besed v stavku IF veliko manj kot v stavku WHILE.

4) Zaradi različnih povratnih smeri med obdelavo preberite en stavek manj za stavek WHILE in en stavek več za stavek IF.

04

Makro programska aplikacija sistema SIEMENS (stružnica).

Opomba: Makro program je programiran s spremenljivkami, številka spremenljivke sistema Siemens pa je predstavljena z R.

Na primer, napisano v običajni metodi programiranja: G01X-10

Makro program je lahko izražen kot:

R1=-10

G01 X=R1

Pogojni prenos:

ČE GOTOB: skoči nazaj

ČE GOTOF: skoči naprej

napisano v običajnem programiranju

GO1X100

Spremenljivke lahko izrazimo kot:

R1=0

AA: R1=R1 plus 1

G01X=R1

ČE R1<100 GOTOB AA

R1 je neodvisna spremenljivka, začetna vrednost je 0, R1=R1 plus 1 pomeni, da je inkrementalna vrednost neodvisne spremenljivke 1, ko gre program vsakič skozi to vrstico, je vrednost R1 se poveča 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

Če je R1 večji ali enak 100, program ne deluje.

Makro programe je mogoče uporabljati v obeh načinih G90 in G91, vendar so njihovi pomeni različni, na primer;

R1=0, G90R1=R1 plus 1, G1X=R1, vrednost X po drugem prehodu tega programa je 2.

R1=0, G91R1=R1 plus 1, G1X=R1, vrednost X po drugem prehodu programa je 3. Pojasnilo: vrednost R1 je 1 po prvem prehodu prehod programa, vrednost R1 pa je drugi prehod. Je 2, vendar v načinu G91 temelji na prejšnjem.

(1) Žlebljenje

slika

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Hitro do izhodišča

Z-10

R1=3

Določite širino rezila kot 3 mm

R2=-10-R1-0.2

Začetna točka orodja je -10, pri nastavljanju orodja pa se uporablja leva stran rezila;

Nastavitev orodja, zato je treba širino rezila odšteti, 0.2 je dodatek za končno obdelavo

G1Z=R2F0.1

Orodje doseže začetno točko osi Z

AA:R2=R2-2.5

R3=50

Os X utora doseže točko

BB: R3=R3-2

Določite globino reza vsakega noža na 2 mm

G1X=R3

X=R3 plus 1

0.5 mm odstranjevanje ostružkov na eni strani vsakih 2 mm globine reza

IF R3>30 plus 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, program skoči nazaj na oznako BB, 0,4 pa je dodatek za končno obdelavo

G0X50

Orodje doseže začetno točko X osi

G1Z=R2

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

Določite širino utora kot 20mm, 0,2 pa je dodatek za končno obdelavo

G0X50

G01Z-13

končna obdelava

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Dvigniti

G0X100

Z100

M05

M30

(2) Elipsa

1) Osnovni format

R1=0

Definirajte spremenljivko R1 z začetno vrednostjo 0

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

V skladu z enačbo elipse je a velika pol os elipse, b mala pol os elipse, SQRT pa simbol kvadratnega korena.

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

Nastavite položaj in obliko elipse, plus 2 je konveksno, -2 je konkavno, X, Z sta razdalji med osjo obdelovanca in osjo elipse (sistem premerov).

R1=R1-1

Nastavite korak obdelave

IF R1>=n ​​GOTOB AA

Če spremenljivka R1

2) Primer 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

Nastavite začetno vrednost spremenljivke R1 na 0

AA: R2=SQRT(-R1×n)

Dobljeno v skladu z osnovnim formatom parabole, kjer je SQRT simbol kvadratnega korena, n pa koeficient

G01X=2×R2 plus n

Z=R1

Pot obdelave, plus 2 je konveksna, n je vrednost začetne točke osi X

R1=R1-1

Spremenljiva vrednost prirastka je 1 mm

IF R1>-30 GOTOB AA

If the variable R1>-30, program skoči nazaj na oznako: AA

2) Primer 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šlji povpraševanje

whatsapp

skype

E-pošta

Povpraševanje