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




