Yksinkertaisesti sanottuna makro on käyttää kaavoja osien käsittelyyn. Esimerkiksi ellipsi, jos makroa ei ole, meidän on laskettava käyrän pisteet piste pisteeltä ja laskettava se sitten hitaasti suoralla viivalla. Jos se on työkappale, jolla on korkeat sileysvaatimukset, meidän on laskettava paljon pisteitä, mutta makron käyttöönoton jälkeen syötämme järjestelmään ellipsikaavan ja annamme Z-koordinaatin ja lisäämme määrän joka kerta, sitten makro laskee automaattisesti X-koordinaatin ja suorittaa leikkauksen. Itse asiassa makron päätehtävä ohjelmassa on laskenta.
kuva
01
Tietoja makroohjelmista
Mikä on makroohjelma
Ohjelmoinnissa tallennamme muistiin joukon käskyjä, jotka voivat suorittaa tietyn toiminnon, kuten aliohjelmaksi, ja kutsumme niitä yleisellä käskyllä. Sitä käytettäessä meidän tarvitsee vain antaa tämä yleinen ohje tallennetun funktion suorittamiseksi. Tätä käskysarjaa kutsutaan käyttäjän makroohjelman rungoksi tai lyhennettynä makroohjelmaksi.
Tätä yleistä komentoa kutsutaan käyttäjän makrokutsukomennon. Ohjelmoinnissa ohjelmoijien tarvitsee vain muistaa makrokäskyt, mutta ei makro-ohjelmia.
Milloin makroohjelmointia käytetään?
1) Manuaalisesti ohjelmoitu käsittelykaavakäyrä (yksinkertainen laskenta, nopea syöttö)
2) Säännöllinen leikkauspolku (leikkausmoduulina)
3) ohjelmien välinen ohjaus (ohjelman ajoitus)
4) Työkalujen hallinta (työkalujen kuluminen)
5) Automaattinen mittaus (koneen sisäinen anturi)
Ero makroohjelman ja normaalin ohjelman välillä
1) Makroohjelman rungossa voidaan käyttää muuttujia, antaa muuttujille arvoja, suorittaa laskutoimituksia muuttujien välillä ja ohjelmia voidaan hypätä.
2) Tavallisissa ohjelmissa voidaan määrittää vain vakioita, eikä toimintoja vakioiden välillä voida suorittaa. Ohjelmat voidaan suorittaa vain peräkkäin, eikä niitä voi hypätä, joten toiminnot ovat kiinteitä eikä niitä voi muuttaa.
3) Makrotoiminto on käyttäjälle erityinen toiminto CNC-työstökoneen suorituskyvyn parantamiseksi, ja makro-ohjelman taitava käyttö vastaavien työkappaleiden käsittelyssä saavuttaa kaksinkertaisen tuloksen puolella vaivalla.
02
Makroohjelmien muuttujat ja muodot
Makroohjelmien ominaisuudet
Makroohjelma voi käyttää muuttujaa, ja muuttujaa voidaan käyttää vastaavien toimintojen suorittamiseen; muuttujan todellinen arvo voidaan määrittää muuttujalle makroohjelman käskyllä.
Kolme muuttujatyyppiä
CNC-järjestelmän muuttujan esitysmuoto on "#", jota seuraa 1-4 numeroa, ja muuttujia on kolmen tyyppisiä:
(1) Paikalliset muuttujat: #1~#33 ovat makro-ohjelmassa paikallisesti käytettyjä muuttujia, joita käytetään itsenäiseen muuttujien siirtoon.
(2) Yhteinen muuttuja: käyttäjä voi käyttää sitä vapaasti, ja se on yhteinen jokaiselle aliohjelmalle ja jokaiselle pääohjelman kutsumalle makroohjelmalle. #100~#149, kun virta on katkaistu, kaikki muuttujien arvot tyhjennetään, kun taas #500~#509, kun virta on katkaistu, muuttujien arvot voidaan tallentaa.
(3) Järjestelmämuuttuja: Sitä seuraa 4 numeroa, se voi saada vain luku- tai luku-/kirjoitustietoja, jotka sisältyvät työstökoneen prosessoriin tai NC-muistiin, mukaan lukien työstökoneen prosessoriin liittyvät vaihtoparametrit, työstökoneen tilan hankinta parametrit, järjestelmätiedot, kuten käsittelyparametrit.
Yksinkertainen makro-ohjelman kutsumuoto
Yksinkertainen makroohjelman kutsu tarkoittaa, että pääohjelmassa makroohjelma voidaan kutsua yhdellä lauseella.
Kutsun muoto:
G65 P (makro-ohjelman numero) L (toistojen määrä) (muuttujaosoitus).
Niistä: G65 — makroohjelman kutsukomento;
P (makroohjelman numero) - kutsuttavan makroohjelman koodi;
L (toistojen määrä) - makroohjelman toistuvien ajojen määrä, kun toistojen määrä on 1, se voidaan jättää pois;
(Variable Assignment) - Määritä arvot makro-ohjelmassa käytetyille muuttujille.
Sama asia makroohjelman ja aliohjelman välillä on, että toinen makroohjelma voi kutsua yhtä makroohjelmaa jopa 4 kertaa.
Makro-ohjelman kirjoitusmuoto
Makroohjelman kirjoitusmuoto on sama kuin aliohjelman. Sen muoto on:
0-(0001-8999 on makroohjelman numero)
N10 komento
N-M99
Yllä olevan makroohjelman sisällössä voidaan käyttää yleisesti käytettyjen ohjelmointikäskyjen lisäksi myös muuttujia, aritmeettisia toimintaohjeita ja muita ohjauskäskyjä. Muuttujan arvo annetaan makroohjelman kutsukäskyssä.
03
FANUC-järjestelmän makroohjelmasovellus
(1) Makroohjelman uritus
kuva
1) WHILE-lausunto
G00 X52 Z2;
#2=-14;
Se on työkalun aloituspiste z-suunnassa (koska työkalun leveys on 4 mm, aloituspiste on Z-14)
WHILE [#2 GE -30] DO2;
Se on rajoitus z-suunnassa. Kun z on yhtä suuri kuin -30, z-suunta ei enää liiku
G00 Z〔#2〕;
Nykyinen sijainti z-suunnassa
#2=#2-2;
Liikkuva askel z-suunnassa liikkuen 2 mm joka kerta
#1=52;
on veitsen aloituspiste x-suunnassa
WHILE [#1 GE 20] DO1;
Rajoitukset X-suunnassa, kun halkaisija on 20, se ei enää leikkaa
G01 X〔#1〕F0.2;
Leikkaussyvyys x-suunnassa
G00 X〔#1 plus 1〕;
Suhteellinen vetäytymismäärä x-suunnassa
#1=#1-1;
Askeletäisyys x-suunnassa (leikkaa 1mm joka kerta)
END1;
G00 X52;
END2;
Täydellinen ohjelma:
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
WHILE〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 plus 1〕;
#1=#1-1;
G00 X52;
END2;
G00 X150 Z150;
M30;
2) IF-lauseke
G00 X52 Z-2;
#1=-14;
Se on työkalun z-suuntainen aloituspiste (työkalun leveys on 4 mm)
N2 #1=#1-2;
on liikkeen askel z-suunnassa
#2=52;
on työkalun aloituspiste x-suunnassa
N1#2=#2-1;
on askeletäisyys x-suunnassa (leikkaussyvyys 1mm joka kerta)
G01 X〔#2〕F0.2;
Nykyinen sijainti X-suunnassa
G00 X〔#2 plus 1〕;
Suhteellinen vetäytymismäärä X-suunnassa
JOS [#2 GE 21] GOTO1;
Rajoitukset x-suunnassa (kun x:n arvo leikataan arvoon 20, seuraava toimenpide suoritetaan, eikä palautusta tehdä)
G00 X52;
X vetäytyy asentoon 52
G00 Z〔#1〕;
Nykyinen sijainti Z-suunnassa
JOS [#1 GE -30] GOTO2;
Z-suunnan rajoitukset, kun z on yhtä suuri kuin -30, z-suunta ei liiku
Täydellinen ohjelma:
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〕;
JOS〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
JOS[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Ellipsiohjelmointi
1) Ellipsin WHILE-lauseen vakiomuoto:
#1=a;
a: Työkalun aloituspiste on positiivisessa suunnassa a mm suhteessa ellipsin akseliin Z
WHILE [#1 GE b] DO1;
b: Ellipsin käsittelyn loppupiste on negatiivisessa suunnassa b mm suhteessa ellipsin akseliin Z (jos koko puoliellipsi käsitellään, niin a ja b ovat kaksi arvoa, joilla on sama arvo ja eri etumerkit)
#2= c*SQRT[1-#1*#1/d*d];
c: ellipsin puolipieni akseli
d: ellipsin puolipääakseli (laske #2 ellipsikaavan mukaan, puolipääakseli on d, puoli-pikkuakseli on c, #2 on X:n arvo, #1 on Z:n arvo , ja SQRT tarkoittaa neliöjuurta)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: ellipsin X-akselin siirtymä (halkaisijan arvo) suhteessa työkappaleen koordinaattijärjestelmään
f: Ellipsin Z-akselin siirtymä suhteessa työkappaleen koordinaattijärjestelmään
#1=#1-1; askeletäisyys (liikkuu 1 mm joka kerta)
END1;
Huomautus: Käännettäessä koveraa ellipsiä X:n jälkeen suluissa oleva "±" on "-"; kun käännetään kuperaa ellipsiä, X:n jälkeen suluissa oleva "±" otetaan plussaksi.
Kun ellipsin X-akseli siirtyy positiiviseen suuntaan, Z:n jälkeen suluissa oleva "±" ottaa " plus "; kun ellipsin X-akseli siirtyy negatiiviseen suuntaan, "±" suluissa Z:n jälkeen ottaa "-"
2) Elliptisen IF-lauseen vakiomuoto
#1=a;
a: Työkalun aloituspiste on positiivisessa suunnassa a mm suhteessa ellipsin akseliin Z
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: ellipsin puolilyhyt akseli c: ellipsin puoli-suurakseli (ellipsikaavan X/c plus Y/b=1 mukaan SQRT tarkoittaa neliöjuurta)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: ellipsin X-akselin siirtymä (halkaisijan arvo) suhteessa koordinaatin nollapisteeseen e: ellipsin Z-akseli suhteessa nollatasoon Offset
#1=#1-1;
Askeletäisyys (liikkuu 1 mm joka kerta)
JOS [#1 GE -f] GOTO1
f: Ellipsin käsittelyn lopettaminen
Huomautus: Käännettäessä koveraa ellipsiä X:n jälkeen suluissa oleva "±" on "-"; kun käännetään kuperaa ellipsiä, X:n jälkeen suluissa oleva "±" otetaan plussaksi. Kun ellipsin X-akseli poikkeaa positiiviseen suuntaan, Z:n jälkeen suluissa oleva "±" ottaa " plus "; kun ellipsin X-akseli poikkeaa negatiiviseen suuntaan, Z:n jälkeen suluissa oleva "±" on "-".
kuva
WHILE lausunto
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕;
#1=#1-1;
END1;
IF-lause
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0,2;
#1=#1-1;
JOS[#1GE-20]GOTO1;
täydellinen ohjelma
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;
END1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
IF-käskyn täydellinen muoto jätetään pois (sama pätee IF-käskyyn, kunhan sykli lisätään). FANUC-0i-järjestelmässä makroohjelma voidaan lisätä vain G73:een.
(3) Paraabelin käsittely
1) Parabolisen WHILE-lauseen vakiomuoto:
#1=a;
a: Työkalun aloituspiste on mm parabolisen akselin Z suunnassa
WHILE [#1 GE -b] DO1;
b: on ellipsin käsittelypituus z-suunnassa
#2=SQRT〔-#1*5/3〕;
(Etsi parabolisen kaavan Z=-3/5*X*X mukaan X:n arvo, joka on #2, missä SQRT tarkoittaa neliöjuurta)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: on paraabelin X-akselin siirtymä (halkaisijan arvo) suhteessa työkappaleen koordinaattijärjestelmään, "±"
Kun otetaan "plus", se on kupera, ja kun otetaan "-", se on kovera
#1=#1-1; Askeletäisyys (liikkuu 1 mm joka kerta)
END1;
2) Parabolisen IF-lauseen vakiomuoto
#1=a;
a: Työkalun aloituspiste on mm parabolisen akselin Z suunnassa
N1 #2=SQRT〔-#1*5/3〕;
(Etsi parabolisen kaavan Z=-3/5*X*X mukaan X:n arvo, joka on #2, missä SQRT tarkoittaa neliöjuurta)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Se on paraabelin X-suuntaisen akselin siirtymä (halkaisija-arvo) suhteessa koordinaatin nollapisteeseen. Kun "±" ottaa " plus ", se on kupera ja kun "-" otetaan, se on kovera
#1=#1-1;
(askeletäisyys Z-suunnassa, jokainen liike on 1mm)
JOS〔#1 GE -c〕GOTO1; c: ellipsin käsittelypituus z-suunnassa
Parabolinen IF
toinen lauseen muoto
#1=a;
N1 #2=SQRT〔( plus )#1*5/3〕;
"Plus"-merkki voidaan jättää pois
G01 X〔2*#2 plus b〕Z〔-#1〕;
#1=#1 plus 1;
JOS [#1 LE c] GOTO1;
Olettaen, että paraabeli on Z:n positiivisessa suunnassa, käytä sitten Z〔-#1〕; tehdä paraabelista symmetrinen negatiiviseen suuntaan
kuva
WHILE lausunto
#1=0;
WHILE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
END1;
IF-lause
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
JOS [#1 GE -15] GOTO1;
täydellinen ohjelma
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;
END1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Ero WHILE- ja IF-lausekkeen välillä
1) Näiden kahden lauseen suunnat ovat erilaiset
WHILE-lause palaa taaksepäin
Esimerkki: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Olettaen, että kun työstökone suorittaa tämän lauseen, #1=20, se jatkaa suorittamista. Kun #1=#1-1 on suoritettu, #1:n arvoksi tulee 19, mikä ei enää täytä rajoitusehtoja, joten sitä ei palauteta. (Leikkaa 20:een X-suunnassa)
G00 X〔#1 plus 1);
#1=#1-1;
END1;
2) IF-lause palaa eteenpäin
Esimerkki: N1 #2=#2-1;
G01X〔#2〕F0.2; Olettaen, että #2=20, kun työstökone suorittaa tämän lauseen, se jatkaa suorittamista kunnes IF〔#2 GE 20〕GOTO1; jos ehto täyttyy edelleen, se palaa edelleen kohtaan N1# 2=#2-1; ja nykyinen X-arvo tulee 19, joka ei enää täytä rajoitusehtoja, ja suorita sitten toinen
G01X〔#2〕F0.2; Suorita lopuksi seuraava ohjelma (X-suunta on leikattu 19:ksi)
G00X〔#2 plus 1);
JOS [#2 GE 20] GOTO1;
3) Kuten yllä olevasta uritusohjelmasta voidaan nähdä, IF-lauseen sanojen määrä on paljon pienempi kuin WHILE-käskyn.
4) Erilaisten paluusuuntien vuoksi lue käsittelyn aikana yksi lause vähemmän WHILE-käskyä ja yksi lause enemmän IF-lausetta varten.
04
SIEMENS-järjestelmän (sorvi) makroohjelmasovellus
Huomaa: Makroohjelma on ohjelmoitu muuttujilla, ja Siemens-järjestelmän muuttujanumeroa edustaa R.
Esimerkiksi kirjoitettu yleisellä ohjelmointimenetelmällä: G01X-10
Makroohjelma voidaan ilmaista seuraavasti:
R1=-10
G01 X=R1
Ehdollinen siirto:
JOS TAAS: hyppää taaksepäin
JOS SAAT: hyppää eteenpäin
kirjoitettu yleisellä ohjelmoinnilla
GO1X100
Muuttujat voidaan ilmaista seuraavasti:
R1=0
AA: R1=R1 plus 1
G01X=R1
JOS R1<100 GOTOB AA
R1 on riippumaton muuttuja, alkuarvo on 0, R1=R1 plus 1 tarkoittaa, että riippumattoman muuttujan inkrementaalinen arvo on 1, kun ohjelma kulkee tämän rivin läpi joka kerta, R1 kasvaa yhdellä, 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
Jos R1 on suurempi tai yhtä suuri kuin 100, ohjelma menee alas.
Makroohjelmia voidaan käyttää sekä G90- että G91-tiloissa, mutta esimerkiksi niiden merkitykset ovat erilaiset;
R1=0, G90R1=R1 plus 1, G1X=R1, X:n arvo tämän ohjelman toisen läpimenon jälkeen on 2.
R1=0, G91R1=R1 plus 1, G1X=R1, X:n arvo ohjelman toisen läpikäynnin jälkeen on 3. Selitys: R1:n arvo on 1 ensimmäisen jälkeen ohjelman läpimeno, ja R1:n arvo on toinen. Se on 2, mutta G91-tilassa se perustuu edelliseen.
(1) Urittaminen
kuva
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Saavuta nopeasti aloituspisteeseen
Z-10
R1=3
Määritä terän leveydeksi 3 mm
R2=-10-R1-0.2
Työkalun aloituspiste on -10, ja terän vasenta puolta käytetään työkalun asettamiseen;
Työkaluasetus, joten terän leveys on vähennettävä, 0.2 on viimeistelyvara
G1Z=R2F0.1
Työkalu saavuttaa Z-akselin aloituspisteen
AA:R2=R2-2.5
R3=50
Uran X-akseli saavuttaa pisteen
BB: R3=R3-2
Määritä kunkin veitsen leikkaussyvyydeksi 2 mm
G1X=R3
X=R3 plus 1
0,5 mm lastun poisto toiselta puolelta joka 2 mm:n leikkaussyvyys
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, ohjelma hyppää taaksepäin merkkiin BB ja 0,4 on viimeistelyvara
G0X50
Työkalu saavuttaa X-akselin aloituspisteen
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Määritä uran leveydeksi 20mm, ja 0,2 on viimeistelyvara
G0X50
G01Z-13
viimeistely
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Peruuttaa
G0X100
Z100
M05
M30
(2) Ellipsi
1) Perusmuoto
R1=0
Määritä muuttuja R1 alkuarvolla 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Ellipsin yhtälön mukaan a on ellipsin puoli-suurakseli, b on ellipsin puoli-pikkuakseli ja SQRT on neliöjuurisymboli.
G1X=±2×R2 plus XZ=R1-Z
Aseta ellipsin paikka ja muoto, plus 2 on kupera, -2 on kovera, X, Z ovat etäisyydet työkappaleen akselin ja ellipsin akselin välillä (halkaisijajärjestelmä).
R1=R1-1
Aseta käsittelyvaihe
IF R1>=n GOTOB AA
Jos muuttuja R1
2) Ohjelmointiesimerkki:
kuva
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 SOPIT AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) Paraabeli
1) Perusmuoto:
R1=0
Aseta muuttujan R1 alkuarvoksi 0
AA: R2=SQRT(-R1×n)
Saatu paraabelin perusmuodon mukaan, jossa SQRT on neliöjuuren symboli ja n on kerroin
G01X=2×R2 plus n
Z=R1
Prosessointipolku plus 2 on kupera, n on X-akselin aloituspisteen arvo
R1=R1-1
Muuttuva lisäysarvo on 1 mm
IF R1>-30 SOPIT AA
If the variable R1>-30, ohjelma hyppää taaksepäin merkkiin: AA
2) Ohjelmointiesimerkki:
kuva
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 SOPIT AA
PP: X52
G0X100Z100
M05
M30




