Lihtsamalt öeldes on makro osade töötlemiseks valemite kasutamine. Näiteks ellips, kui makrot pole, peame kõvera punktid punktide kaupa arvutama ja seejärel aeglaselt sirgjoonega lähendama. Kui tegemist on kõrgete siledusnõuetega toorikuga, siis peame arvutama palju punkte, kuid pärast makro rakendamist sisestame süsteemi ellipsi valemi ja seejärel anname Z-koordinaadi ja lisame iga kord summa, siis makro arvutab automaatselt X-koordinaadi ja teostab lõikamise. Tegelikult on makro põhifunktsioon programmis arvutamine.
pilt
01
Makroprogrammide kohta
Mis on makroprogramm
Programmeerimisel salvestame mällu rea juhiseid, mis võivad teatud funktsiooni täita nagu alamprogrammi, ja kutsume neid välja üldise juhisega. Selle kasutamisel peame andma ainult selle üldise juhise salvestatud funktsiooni täitmiseks. Seda käskude seeriat nimetatakse kasutaja makroprogrammi kehaks või lühidalt makroprogrammiks.
Seda üldkäsku nimetatakse kasutaja makrokõne käsuks. Programmeerimisel peavad programmeerijad pähe jätma ainult makrojuhised, kuid mitte makroprogramme.
Millal makroprogrammeerimist kasutatakse?
1) Käsitsi programmeeritud töötlemisvalemi kõver (lihtne arvutus, kiire sisestus)
2) Regulaarne lõiketee (lõikemoodulina)
3) Programmidevaheline juhtimine (programmide ajastamine)
4) Tööriistahaldus (tööriista kulumine)
5) Automaatne mõõtmine (masinasisene sond)
Makroprogrammi ja tavaprogrammi erinevus
1) Makroprogrammi kehas saab kasutada muutujaid, määrata muutujatele väärtusi, teha muutujate vahel arvutusi ja hüpata programme.
2) Tavalistes programmides saab määrata ainult konstante ja konstantide vahelisi tehteid teha ei saa. Programme saab käivitada ainult järjestikku ja neid ei saa hüpata, seega on funktsioonid fikseeritud ja neid ei saa muuta.
3) Makrofunktsioon on kasutaja jaoks spetsiaalne funktsioon CNC-tööpingi jõudluse parandamiseks ning makroprogrammi oskuslik kasutamine sarnaste toorikute töötlemisel saavutab poole väiksema pingutusega kaks korda parema tulemuse.
02
Makroprogrammide muutujad ja vormingud
Makroprogrammide omadused
Makroprogramm saab kasutada muutujat ja muutujaga saab teha vastavaid toiminguid; muutuja tegeliku väärtuse saab muutujale määrata makroprogrammi käsuga.
Kolm tüüpi muutujaid
CNC-süsteemi muutujate esitusvorm on "#", millele järgneb 1 kuni 4 numbrit ja muutujaid on kolme tüüpi:
(1) Kohalikud muutujad: #1~#33 on makroprogrammis lokaalselt kasutatavad muutujad, mida kasutatakse sõltumatuks muutujate edastamiseks.
(2) Ühine muutuja: kasutaja saab seda vabalt kasutada ning see on ühine igale alamprogrammile ja igale põhiprogrammi kutsutud makroprogrammile. #100~#149, pärast toite väljalülitamist kustutatakse kõik muutujate väärtused, #500~#509 aga pärast toite väljalülitamist saab muutujate väärtused salvestada.
(3) Süsteemi muutuja: sellele järgneb 4 numbrit, see võib hankida tööpingi protsessoris või NC-mälus sisalduvat kirjutuskaitstud või lugemis-/kirjutamisteavet, sealhulgas tööpingi protsessoriga seotud vahetusparameetreid, tööpingi oleku hankimist. parameetrid, süsteemiteave, näiteks töötlemisparameetrid.
Makroprogrammi lihtne helistamisvorming
Lihtne makroprogrammi väljakutse tähendab, et põhiprogrammis saab makroprogrammi kutsuda ühe plokiga.
Kutsevorming:
G65 P (makroprogrammi number) L (korduste arv) (muutuja omistamine).
Nende hulgas: G65 — makroprogrammi kutsumise käsk;
P (makroprogrammi number) - kutsutava makroprogrammi kood;
L (korduste arv) - makroprogrammi korduvate käituste arv, kui korduste arv on 1, võib selle ära jätta;
(Variable Assignment) – määrake makroprogrammis kasutatavatele muutujatele väärtusi.
Sama asi makroprogrammi ja alamprogrammi vahel on see, et ühte makroprogrammi saab kutsuda teine makroprogramm, kuni 4 korda.
Makroprogrammi kirjutamise formaat
Makroprogrammi kirjutamisvorming on sama, mis alamprogrammil. Selle formaat on:
0-(0001-8999 on makroprogrammi number)
N10 käsk
N-M99
Ülaltoodud makroprogrammi sisus saab lisaks üldkasutatavatele programmeerimiskäskudele kasutada ka muutujaid, aritmeetilisi tehtekäske ja muid juhtkäske. Muutuja väärtus määratakse makroprogrammi kutsumisjuhises.
03
FANUC süsteemi makroprogrammi rakendus
(1) Makroprogrammi soonimine
pilt
1) WHILE avaldus
G00 X52 Z2;
#2=-14;
See on tööriista alguspunkt z-suunas (kuna tööriista laius on 4 mm, on alguspunkt Z-14)
WHILE [#2 GE -30] DO2;
See on piirang z-suunas. Kui z on võrdne -30, z suund enam ei liigu
G00 Z〔#2〕;
Praegune asukoht z-suunas
#2=#2-2;
Liikumise samm z-suunas, liikudes iga kord 2 mm
#1=52;
on noa alguspunkt x-suunas
WHILE [#1 GE 20] DO1;
Piirangud X-suunas, kui läbimõõt on võrdne 20-ga, siis see enam ei lõika
G01 X〔#1〕F0.2;
Lõikesügavus x suunas
G00 X〔#1 pluss 1〕;
Suhteline tagasitõmbamise suurus x-suunas
#1=#1-1;
Sammu kaugus x-suunas (lõigake iga kord 1 mm)
LÕPP1;
G00 X52;
END2;
Täielik programm:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
WHILE〔#2GE-30〕DO2; END1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
KUIGI〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 pluss 1〕;
#1=#1-1;
G00 X52;
END2;
G00 X150 Z150;
M30;
2) IF väide
G00 X52 Z-2;
#1=-14;
See on tööriista z-suunaline alguspunkt (tööriista laius on 4 mm)
N2 #1=#1-2;
on liikumise samm z-suunas
#2=52;
on tööriista alguspunkt x-suunas
N1#2=#2-1;
on sammu kaugus x-suunas (iga kord lõikesügavus 1mm)
G01 X〔#2〕F0.2;
Praegune asukoht X-suunas
G00 X〔#2 pluss 1〕;
Suhteline tagasitõmbamise suurus X-suunas
KUI [#2 GE 21] GOTO1;
Piirangud x-suunas (kui x väärtus lõigatakse 20-ni, tehakse järgmine protseduur ja tagasi ei tehta)
G00 X52;
X tõmbub tagasi asendisse 52
G00 Z〔#1〕;
Praegune asukoht Z-suunas
KUI [#1 GE -30] GOTO2;
Z-suuna piirangud, kui z on võrdne -30-ga, siis z-suund ei liigu
Täielik programm:
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 pluss 1〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Ellipsi programmeerimine
1) Ellipsi WHILE-lause standardvorming:
#1=a;
a: Tööriista alguspunkt on positiivses suunas a mm ellipsi telje Z suhtes
WHILE [#1 GE b] DO1;
b: Ellipsi töötlemise lõpp-punkt on ellipsi telje Z suhtes negatiivsel suunal b mm (kui töödeldakse täielikku poolellipsi, siis a ja b on kaks väärtust, millel on sama väärtus ja erinevad märgid)
#2= c*SQRT[1-#1*#1/d*d];
c: ellipsi pooltelg
d: ellipsi poolsuurtelg (arvuta #2 ellipsi valemi järgi, poolsuurtelg on d, pooltelg on c, #2 tähistab X väärtust, #1 on Z väärtus ja SQRT tähendab ruutjuurt)
G01 X〔±2*#2 pluss e〕Z〔#1±f〕;
e: ellipsi X-telje nihe (läbimõõdu väärtus) tooriku koordinaatsüsteemi suhtes
f: ellipsi Z-telje nihe tooriku koordinaatsüsteemi suhtes
#1=#1-1; sammu kaugus (liigub iga kord 1 mm)
LÕPP1;
Märkus. Nõgusa ellipsi pööramisel võetakse X järel sulgudes olev "±" kui "-"; kumera ellipsi pööramisel võetakse X järel sulgudes olev "±" plussiks.
Kui ellipsi X-telg nihkub positiivsesse suunda, võtab "±" pärast Z sulgudes " pluss "; kui ellipsi X-telg nihkub negatiivsesse suunda, võtab "±" Z-i järel sulgudes "-"
2) Elliptilise IF-lause standardvorming
#1=a;
a: Tööriista alguspunkt on positiivses suunas a mm ellipsi telje Z suhtes
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: ellipsi poollühike telg c: ellipsi poolsuurtelg (ellipsi valemi X/c pluss Y/b=1 järgi tähendab SQRT ruutjuurt)
G01X〔±2*#2 pluss d〕Z〔#1±e〕F0,2; d: ellipsi X-telje nihe (läbimõõdu väärtus) koordinaadi nullpunkti suhtes e: ellipsi Z-telg nulltasandi suhtes Nihe
#1=#1-1;
Sammu kaugus (liigub iga kord 1 mm)
KUI [#1 GE -f] GOTO1
f: ellipsi töötlemise lõpetamine
Märkus. Nõgusa ellipsi pööramisel võetakse X järel sulgudes olev "±" kui "-"; kumera ellipsi pööramisel võetakse X järel sulgudes olev "±" plussiks. Kui ellipsi X-telg kaldub positiivsesse suunda, siis Z järel sulgudes olev "±" võtab " pluss "; kui ellipsi X-telg kaldub negatiivsesse suunda, siis Z järel sulgudes olev "±" võtab "-".
pilt
WHILE avaldus
#1=20;
KUIGI〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 pluss 50〕Z〔#1-25〕;
#1=#1-1;
LÕPP1;
IF väide
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 pluss 50〕Z〔#1-25〕F0,2;
#1=#1-1;
IF[#1GE-20]GOTO1;
täielik programm
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;
KUIGI〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 pluss 50〕Z〔#1-25〕F0,2;
#1=#1-1;
LÕPP1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
IF-lause täielik vorming jäetakse välja (sama kehtib ka IF-lause kohta, kui tsükkel on lisatud). FANUC{0}}i süsteemis saab makroprogrammi lisada ainult G73-s.
(3) Parabooli töötlemine
1) Paraboolse WHILE-lause standardvorming:
#1=a;
a: Tööriista alguspunkt on mm parabooltelje Z suunas
WHILE [#1 GE -b] DO1;
b: on ellipsi töötlemise pikkus z-suunas
#2=SQRT〔-#1*5/3〕;
(Paraboolvalemi Z=-3/5*X*X järgi leidke X väärtus, mis on #2, kus SQRT tähendab ruutjuurt)
G01 X〔±2*#2 pluss c〕Z〔#1〕;
c: on parabooli X-telje nihe (läbimõõdu väärtus) tooriku koordinaatsüsteemi suhtes, "±"
"Pluss" võtmisel on see kumer ja "-" võtmisel on see nõgus
#1=#1-1; Sammu kaugus (liigub iga kord 1 mm)
END1;
2) Paraboolse IF-lause standardvorming
#1=a;
a: Tööriista alguspunkt on mm parabooltelje Z suunas
N1 #2=SQRT〔-#1*5/3〕;
(Paraboolvalemi Z=-3/5*X*X järgi leidke X väärtus, mis on #2, kus SQRT tähendab ruutjuurt)
G01 X〔±2*#2 pluss b〕Z〔#1〕;
b: see on parabooli X-suunalise telje nihe (diameetri väärtus) koordinaadi nullpunkti suhtes. Kui "±" võtab "pluss", on see kumer ja kui võtta "-", on see nõgus
#1=#1-1;
(sammu kaugus Z-suunas, iga liigutus on 1mm)
IF〔#1 GE -c〕GOTO1; c: ellipsi töötlemise pikkus z-suunas
Paraboolne IF
teine lausevorm
#1=a;
N1 #2=SQRT〔( pluss )#1*5/3〕;
"Pluss" märgi võib ära jätta
G01 X〔2*#2 pluss b〕Z〔-#1〕;
#1=#1 pluss 1;
KUI [#1 LE c] GOTO1;
Eeldades, et parabool on Z positiivses suunas, siis kasuta Z〔-#1〕; et muuta parabool sümmeetriliseks negatiivse suuna suhtes
pilt
WHILE avaldus
#1=0;
AJAL [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 pluss 30〕Z〔#1〕;
#1=#1-1;
LÕPP1;
IF väide
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 pluss 30〕Z〔#1〕;
#1=#1-1;
KUI [#1 GE -15] GOTO1;
täielik programm
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;
AJAL [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 pluss 30〕Z〔#1〕;
#1=#1-1;
END1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Erinevus lause WHILE ja IF vahel
1) Kahe väite suunad on erinevad
WHILE-lause naaseb tagurpidi
Näide: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Eeldades, et kui tööpink selle lause #1=20 täidab, jätkab see täitmist. Pärast koodi #1=#1-1 täitmist muutub #1 väärtuseks 19, mis ei vasta enam piirangutingimustele, mistõttu seda ei tagastata. (Lõika 20-ni X-suunas)
G00 X〔#1 pluss 1);
#1=#1-1;
LÕPP1;
2) IF-lause naaseb edasi
Näide: N1 #2=#2-1;
G01X〔#2〕F0,2; Eeldades, et #2=20, kui tööpink selle lause täidab, jätkab selle täitmist kuni IF〔#2 GE 20〕GOTO1; kui tingimus on endiselt täidetud, jätkab see naasmist N1# 2=#2-1; ja praeguseks X väärtuseks saab 19, mis ei vasta enam piirangutingimustele ja seejärel käivitage teine
G01X〔#2〕F0,2; Lõpuks käivitage järgmine programm (X suund on lõigatud 19-ks)
G00X〔#2 pluss 1);
KUI [#2 GE 20] GOTO1;
3) Nagu ülaltoodud soonimisprogrammist näha, on IF-lause sõnade arv palju väiksem kui WHILE-lauses.
4) Erinevate tagastussuundade tõttu loe töötlemise käigus WHILE-lause jaoks üks lause vähem ja IF-lause jaoks üks lause rohkem.
04
SIEMENS süsteemi (treipingi) makroprogrammi rakendus
Märkus: Makroprogramm on programmeeritud muutujatega ja Siemensi süsteemi muutujanumbrit tähistab R.
Näiteks kirjutatud tavalise programmeerimismeetodiga: G01X-10
Makroprogrammi saab väljendada järgmiselt:
R1=-10
G01 X=R1
Tingimuslik ülekanne:
KUI VÕIB: hüppa tahapoole
IF GOTOF: hüppa edasi
kirjutatud ühises programmeerimises
GO1X100
Muutujaid saab väljendada järgmiselt:
R1=0
AA: R1=R1 pluss 1
G01X=R1
KUI R1<100 GOTOB AA
R1 on sõltumatu muutuja, algväärtus on 0, R1=R1 pluss 1 tähendab, et sõltumatu muutuja juurdekasvväärtus on 1, kui programm seda rida iga kord läbib, on R1 suureneb 1 võrra, 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
Kui R1 on suurem või võrdne 100-ga, läheb programm alla.
Makroprogramme saab kasutada nii G90 kui ka G91 režiimides, kuid nende tähendused on näiteks erinevad;
R1=0, G90R1=R1 pluss 1, G1X=R1, X väärtus pärast selle programmi teist läbimist on 2.
R1=0, G91R1=R1 pluss 1, G1X=R1, X väärtus pärast programmi teist läbimist on 3. Selgitus: R1 väärtus on 1 pärast esimest programmi programmi läbimine ja R1 väärtus on teine läbimine See on 2, kuid G91 režiimis põhineb see eelmisel.
(1) Sooned
pilt
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Jõua kiiresti alguspunkti
Z-10
R1=3
Määrake tera laiuseks 3 mm
R2=-10-R1-0.2
Tööriista alguspunkt on -10 ja tööriista seadistamisel kasutatakse tera vasakut külge;
Tööriista seadistus, nii et tera laius tuleks lahutada, 0.2 on viimistlusvaru
G1Z=R2F0.1
Tööriist jõuab Z-telje alguspunkti
AA:R2=R2-2.5
R3=50
Soone X-telg jõuab punktini
BB: R3=R3-2
Määrake iga noa lõikesügavuseks 2 mm
G1X=R3
X=R3 pluss 1
0.5 mm laastu eemaldamine ühelt poolt iga 2 mm lõikesügavuse järel
IF R3>30 pluss 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, hüppab programm tagasi märgini BB ja 0,4 on viimistlusvaru
G0X50
Tööriist jõuab X-telje alguspunkti
G1Z=R2
IF R2>{{0}} pluss 0,2 GOOB AA
Määrake soone laiuseks 20mm ja 0,2 on viimistlusvaru
G0X50
G01Z-13
viimistlus
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Tõmba tagasi
G0X100
Z100
M05
M30
(2) Ellips
1) Põhivorming
R1=0
Määratlege muutuja R1 algväärtusega 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Ellipsi võrrandi järgi on a ellipsi poolsuurtelg, b ellipsi poolväiketelg ja SQRT ruutjuure sümbol.
G1X=±2×R2 pluss XZ=R1-Z
Määrake ellipsi asukoht ja kuju, pluss 2 on kumer, -2 on nõgus, X, Z on tooriku telje ja ellipsi telje vahelised kaugused (läbimõõtude süsteem).
R1=R1-1
Määrake töötlemise etapp
IF R1>=n GOTOB AA
Kui muutuja R1
2) Programmeerimise näide:
pilt
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
tsükkel95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 pluss 50 Z=R1-40
R1=R1-2
IF R1>=-20 JÄRGI AA
PP: X42
G0G40X100Z100
M05
M09
M30
(3) Parabool
1) Põhivorming:
R1=0
Määra muutuja R1 algväärtuseks 0
AA: R2=SQRT(-R1 × n)
Saadakse vastavalt parabooli põhivormingule, kus SQRT on ruutjuure sümbol ja n on koefitsient
G01X=2×R2 pluss n
Z=R1
Töötlemistee pluss 2 on kumer, n on X-telje alguspunkti väärtus
R1=R1-1
Muutuv juurdekasvu väärtus on 1 mm
IF R1>-30 JÄRGI AA
If the variable R1>-30, hüppab programm tagasi märgini: AA
2) Programmeerimise näide:
pilt
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
tsükkel95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1 × 5/3)
G01X=2×R2 pluss 30 Z=R1
R1=R1-2
IF R1>-60 JÄRGI AA
PP: X52
G0X100Z100
M05
M30




