Paprasčiau tariant, makrokomanda yra naudoti formules dalims apdoroti. Pavyzdžiui, elipsė, jei makrokomandos nėra, kreivės taškus reikia skaičiuoti taškas po taško, o tada lėtai aproksimuoti tiesia linija. Jei tai ruošinys, kuriam keliami aukšti lygumo reikalavimai, tuomet reikia skaičiuoti daug taškų, bet pritaikę makrokomandą, į sistemą įvedame elipsės formulę ir tada pateikiame Z koordinatę ir kiekvieną kartą pridedame sumą, tada makrokomandos automatiškai apskaičiuos X koordinatę ir atliks pjovimą. Tiesą sakant, pagrindinė makrokomandos funkcija programoje yra skaičiavimas.
paveikslėlį
01
Apie makro programas
Kas yra makro programa
Programuodami į atmintį kaip paprogramę išsaugosime instrukcijų, kurios gali atlikti tam tikrą funkciją, seriją ir iškviesime jas bendra instrukcija. Ją naudojant, mums tereikia duoti šią bendrąją instrukciją, kad būtų įvykdyta saugoma funkcija. Ši instrukcijų serija vadinama vartotojo makrokomandos programos korpusu arba trumpiau makro programa.
Ši bendroji komanda vadinama vartotojo makrokomandos iškvietimo komanda. Programuodami programuotojams tereikia įsiminti makrokomandas, bet ne makro programas.
Kada bus naudojamas makroprogramavimas?
1) Rankiniu būdu užprogramuota apdorojimo formulės kreivė (paprastas skaičiavimas, greitas įvestis)
2) Įprastas pjovimo kelias (kaip pjovimo modulis)
3) Programų valdymas (programų planavimas)
4) Įrankių valdymas (įrankio susidėvėjimas)
5) Automatinis matavimas (mašinoje esantis zondas)
Skirtumas tarp makro programos ir įprastos programos
1) Makro programos korpuse galima naudoti kintamuosius, kintamiesiems priskirti reikšmes, atlikti skaičiavimus tarp kintamųjų, peršokti programas.
2) Įprastose programose galima nurodyti tik konstantas, o operacijų tarp konstantų atlikti negalima. Programos gali būti vykdomos tik nuosekliai ir negali būti peršokamos, todėl funkcijos yra fiksuotos ir negali būti keičiamos.
3) Makrofunkcija yra speciali funkcija, skirta vartotojui pagerinti CNC staklių našumą, o sumaniai naudojant makrokomandą apdorojant panašius ruošinius bus pasiektas dvigubai didesnis rezultatas su puse pastangų.
02
Makroprogramų kintamieji ir formatai
Makro programų ypatybės
Makro programa gali naudoti kintamąjį, o kintamasis gali būti naudojamas atitinkamoms operacijoms atlikti; tikroji kintamojo reikšmė kintamajam gali būti priskirta makroprogramos nurodymu.
Trys kintamųjų tipai
CNC sistemos kintamojo vaizdavimo forma yra „#“, po kurios seka 1–4 skaitmenys, ir yra trijų tipų kintamieji:
(1) Vietiniai kintamieji: #1~#33 yra kintamieji, naudojami lokaliai makrokomandoje, kurie naudojami nepriklausomam kintamųjų perkėlimui.
(2) Bendras kintamasis: vartotojas gali jį laisvai naudoti ir yra bendras kiekvienai paprogramei ir kiekvienai pagrindinės programos iškviestai makrokomandai. #100~#149, išjungus maitinimą, visos kintamųjų reikšmės bus išvalytos, o #500~#509, išjungus maitinimą, kintamųjų reikšmes galima išsaugoti.
(3) Sistemos kintamasis: jį apibrėžia 4 skaitmenys, jis gali gauti tik skaitymo arba skaitymo / rašymo informaciją, esančią staklių procesoriuje arba NC atmintyje, įskaitant keitimosi parametrus, susijusius su staklių procesoriumi, staklių būsenos gavimą. parametrai, sistemos informacija, pvz., apdorojimo parametrai.
Paprastas makroprogramos skambinimo formatas
Paprastas makroprogramos iškvietimas reiškia, kad pagrindinėje programoje makro programą galima iškviesti vienu bloku.
Kvietimo formatas:
G65 P (makro programos numeris) L (pakartojimų skaičius) (kintamojo priskyrimas).
Tarp jų: G65 – makrokomandos iškvietimo komanda;
P (makro programos numeris) - iškviečiamos makro programos kodas;
L (kartojimų skaičius) - makro programos kartotinių paleidimų skaičius, kai pakartojimų skaičius yra 1, jo galima praleisti;
(Kintamųjų priskyrimas) – priskirkite reikšmes kintamiesiems, naudojamiems makrokomandoje.
Tas pats tarp makroprogramos ir paprogramės yra tai, kad vieną makro programą kita makroprograma gali iškviesti iki 4 kartų.
Makro programos rašymo formatas
Makroprogramos rašymo formatas yra toks pat kaip paprogramės. Jo formatas yra:
0-(0001-8999 yra makrokomandos programos numeris)
N10 komanda
N-M99
Aukščiau pateiktos makro programos turinyje, be dažniausiai naudojamų programavimo instrukcijų, taip pat gali būti naudojami kintamieji, aritmetinių operacijų instrukcijos ir kitos valdymo instrukcijos. Kintamojo reikšmė priskiriama makrokomandos programos iškvietimo instrukcijoje.
03
FANUC sistemos makro programos programa
(1) Makroprogramos griovelių įpjovimas
paveikslėlį
1) WHILE teiginys
G00 X52 Z2;
#2=-14;
Tai yra įrankio pradžios taškas z kryptimi (kadangi įrankio plotis yra 4 mm, pradžios taškas nustatytas Z-14)
WHILE [#2 GE -30] DO2;
Tai apribojimas z kryptimi. Kai z yra lygus -30, z kryptis nebejudės
G00 Z〔#2〕;
Dabartinė padėtis z kryptimi
#2=#2-2;
Judėjimo žingsnis z kryptimi, kiekvieną kartą judant po 2 mm
#1=52;
yra peilio pradžios taškas x kryptimi
WHILE [#1 GE 20] DO1;
Suvaržymai X kryptimi, kai skersmuo lygus 20, jis nebepjauna
G01 X〔#1〕F0.2;
Pjovimo gylis x kryptimi
G00 X〔#1 plius 1〕;
Santykinis įtraukimo dydis x kryptimi
#1=#1-1;
Žingsnio atstumas x kryptimi (kiekvieną kartą nupjaukite 1 mm)
END1;
G00 X52;
END2;
Pilna programa:
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 plius 1〕;
#1=#1-1;
G00 X52;
END2;
G00 X150 Z150;
M30;
2) IF teiginys
G00 X52 Z-2;
#1=-14;
Tai įrankio z krypties pradžios taškas (įrankio plotis yra 4 mm)
N2 #1=#1-2;
yra judėjimo žingsnis z kryptimi
#2=52;
yra įrankio pradžios taškas x kryptimi
N1#2=#2-1;
yra žingsnio atstumas x kryptimi (pjovimo gylis kiekvieną kartą 1 mm)
G01 X〔#2〕F0.2;
Dabartinė padėtis X kryptimi
G00 X〔#2 plius 1〕;
Santykinis atitraukimo dydis X kryptimi
JEI [#2 GE 21] GOTO1;
Apribojimai x kryptimi (kai x reikšmė sumažinama iki 20, bus atlikta tokia procedūra ir nebus grąžinama)
G00 X52;
X pasitraukia į 52 padėtį
G00 Z〔#1〕;
Dabartinė padėtis Z kryptimi
JEI [#1 GE -30] GOTO2;
Apribojimai Z kryptimi, kai z yra lygus -30, z kryptis nejudės
Pilna programa:
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 plius 1〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Elipsės programavimas
1) Standartinis elipsės WHILE teiginio formatas:
#1=a;
a: Įrankio pradžios taškas yra teigiama kryptimi a mm elipsės ašies Z atžvilgiu
WHILE [#1 GE b] DO1;
b: Elipsės apdorojimo galutinis taškas yra neigiama kryptimi b mm elipsės ašies Z atžvilgiu (jei apdorojama visa puselipsė, tada a ir b yra dvi reikšmės su ta pačia verte ir skirtingais ženklais)
#2= c*SQRT[1-#1*#1/d*d];
c: pusiau mažoji elipsės ašis
d: pusiau didžioji elipsės ašis (apskaičiuokite #2 pagal elipsės formulę, pusiau didžioji ašis yra d, pusiau mažoji ašis yra c, #2 reiškia X reikšmę, #1 yra Z reikšmė o SQRT reiškia kvadratinę šaknį)
G01 X〔±2*#2 plius e〕Z〔#1±f〕;
e: elipsės X ašies poslinkis (skersmens vertė) ruošinio koordinačių sistemos atžvilgiu
f: elipsės Z ašies poslinkis ruošinio koordinačių sistemos atžvilgiu
#1=#1-1; žingsnio atstumas (kiekvieną kartą juda 1 mm)
END1;
Pastaba: Sukant įgaubtą elipsę, „±“ skliausteliuose po X imamas kaip „-“; sukant išgaubtą elipsę, „±“ skliausteliuose po X imamas kaip „pliusas“.
Kai elipsės X ašis pasislenka teigiama kryptimi, „±“ skliausteliuose po Z įgauna „pliusą“; kai elipsės X ašis pasislenka neigiama kryptimi, „±“ skliausteliuose po Z užima „-“
2) Standartinis elipsės formos IF teiginio formatas
#1=a;
a: Įrankio pradžios taškas yra teigiama kryptimi a mm elipsės ašies Z atžvilgiu
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: pusiau trumpoji elipsės ašis c: pusiau didžioji elipsės ašis (pagal elipsės formulę X/c plius Y/b=1, SQRT reiškia kvadratinę šaknį)
G01X〔±2*#2 plius d〕Z〔#1±e〕F0.2; d: elipsės X ašies poslinkis (skersmens vertė) koordinatės nulinio taško atžvilgiu e: elipsės Z ašis nulinės plokštumos atžvilgiu. Poslinkis
#1=#1-1;
Žingsnio atstumas (kiekvieną kartą judant po 1 mm)
JEI [#1 GE -f] GOTO1
f: Elipsės apdorojimo nutraukimas
Pastaba: Sukant įgaubtą elipsę, „±“ skliausteliuose po X imamas kaip „-“; sukant išgaubtą elipsę, „±“ skliausteliuose po X imamas kaip „pliusas“. Kai elipsės X ašis nukrypsta į teigiamą kryptį, „±“ skliausteliuose po Z įgyja „pliusą“; kai elipsės X ašis nukrypsta į neigiamą kryptį, „±“ skliausteliuose po Z įgyja „-“.
paveikslėlį
WHILE pareiškimas
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plius 50〕Z〔#1-25〕;
#1=#1-1;
END1;
IF teiginys
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plius 50〕Z〔#1-25〕F0,2;
#1=#1-1;
IF[#1GE-20]GOTO1;
pilna programa
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 plius 50〕Z〔#1-25〕F0,2;
#1=#1-1;
END1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Visas IF sakinio formatas yra praleistas (tas pats pasakytina ir apie IF sakinį, jei ciklas pridedamas). FANUC{0}}i sistemoje makrokomandos programą galima pridėti tik G73.
(3) Parabolės apdorojimas
1) Standartinis parabolinio WHILE teiginio formatas:
#1=a;
a: Įrankio pradžios taškas yra mm parabolinės ašies Z kryptimi
WHILE [#1 GE -b] DO1;
b: elipsės apdorojimo ilgis z kryptimi
#2=SQRT〔-#1*5/3〕;
(Pagal parabolinę formulę Z=-3/5*X*X raskite X reikšmę, kuri yra #2, kur SQRT reiškia kvadratinę šaknį)
G01 X〔±2*#2 plius c〕Z〔#1〕;
c: parabolės X ašies poslinkis (skersmens vertė) ruošinio koordinačių sistemos atžvilgiu, "±"
Vartojant „pliusą“, jis yra išgaubtas, o „-“ – įgaubtas
#1=#1-1; Žingsnio atstumas (kiekvieną kartą judant po 1 mm)
END1;
2) Standartinis parabolinio IF teiginio formatas
#1=a;
a: Įrankio pradžios taškas yra mm parabolinės ašies Z kryptimi
N1 #2=SQRT〔-#1*5/3〕;
(Pagal parabolinę formulę Z=-3/5*X*X raskite X reikšmę, kuri yra #2, kur SQRT reiškia kvadratinę šaknį)
G01 X〔±2*#2 plius b〕Z〔#1〕;
b: tai parabolės X krypties ašies poslinkis (skersmens reikšmė) koordinatės nulinio taško atžvilgiu. Kai "±" paima "pliusą", jis yra išgaubtas, o kai imamas "-", jis yra įgaubtas
#1=#1-1;
(žingsnio atstumas Z kryptimi, kiekvienas judesys yra 1 mm)
IF〔#1 GE -c〕GOTO1; c: elipsės apdorojimo ilgis z kryptimi
Parabolinis IF
kita sakinio forma
#1=a;
N1 #2=SQRT〔( plius )#1*5/3〕;
„Pliuso“ ženklo galima praleisti
G01 X〔2*#2 plius b〕Z〔-#1〕;
#1=#1 plius 1;
JEI [#1 LE c] GOTO1;
Darant prielaidą, kad parabolė yra teigiama Z kryptimi, tada naudokite Z〔-#1〕; kad parabolė būtų simetriška neigiamai krypčiai
paveikslėlį
WHILE pareiškimas
#1=0;
KOL [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plius 30〕Z〔#1〕;
#1=#1-1;
END1;
IF teiginys
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plius 30〕Z〔#1〕;
#1=#1-1;
JEI [#1 GE -15] GOTO1;
pilna programa
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;
KOL [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plius 30〕Z〔#1〕;
#1=#1-1;
END1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Skirtumas tarp WHILE ir IF teiginių
1) Dviejų teiginių kryptys skiriasi
WHILE sakinys grįžta atgal
Pavyzdys: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Darant prielaidą, kad kai staklės įvykdys šį sakinį #1=20, jis bus vykdomas ir toliau. Įvykdžius #1=#1-1, #1 reikšmė tampa 19, o tai nebeatitinka apribojimo sąlygų, todėl nebegrįš. (Iškirpti iki 20 X kryptimi)
G00 X〔#1 plius 1);
#1=#1-1;
END1;
2) IF sakinys grįžta į priekį
Pavyzdys: N1 #2=#2-1;
G01X〔#2〕F0.2; Darant prielaidą, kad #2=20, kai staklės įvykdys šį sakinį, jis bus vykdomas iki IF〔#2 GE 20〕GOTO1; jei sąlyga vis tiek tenkinama, ji ir toliau grįš į N1# 2=#2-1; ir dabartinė X reikšmė taps 19, kuri nebeatitinka apribojimo sąlygų, ir tada vykdykite kitą
G01X〔#2〕F0.2; Galiausiai paleiskite šią programą (X kryptis sumažinta iki 19)
G00X〔#2 plius 1);
JEI [#2 GE 20] GOTO1;
3) Kaip matyti iš aukščiau pateiktos griovelių programos, žodžių skaičius IF sakinyje yra daug mažesnis nei WHILE sakinyje.
4) Dėl skirtingų grąžinimo krypčių apdorojimo metu perskaitykite vienu sakiniu mažiau WHILE sakinio ir dar vienu sakiniu IF sakiniui.
04
SIEMENS sistemos (tekinimo staklių) makroprogramų taikymas
Pastaba: Makro programa yra užprogramuota su kintamaisiais, o Siemens sistemos kintamasis numeris žymimas R.
Pavyzdžiui, parašyta įprastu programavimo metodu: G01X-10
Makro programa gali būti išreikšta taip:
R1=-10
G01 X=R1
Sąlyginis perkėlimas:
JEI GALIMA: šokinėkite atgal
JEI GOTOF: šokite į priekį
parašytas bendru programavimu
GO1X100
Kintamieji gali būti išreikšti taip:
R1=0
AA: R1=R1 plius 1
G01X=R1
JEI R1<100 GOTOB AA
R1 yra nepriklausomas kintamasis, pradinė reikšmė yra 0, R1=R1 plius 1 reiškia, kad nepriklausomo kintamojo prieauginė reikšmė yra 1, kai programa kiekvieną kartą eina per šią eilutę, R1 padidėja 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
Jei R1 yra didesnis arba lygus 100, programa sumažės.
Makroprogramos gali būti naudojamos ir G90, ir G91 režimuose, tačiau, pavyzdžiui, skiriasi jų reikšmės;
R1=0, G90R1=R1 plius 1, G1X=R1, X reikšmė po antro šios programos važiavimo yra 2.
R1=0, G91R1=R1 plius 1, G1X=R1, X reikšmė po antrojo programos važiavimo yra 3. Paaiškinimas: R1 reikšmė yra 1 po pirmojo programos praėjimas, o R1 reikšmė yra antrasis. Tai yra 2, bet G91 režimu ji pagrįsta ankstesniu.
(1) Grioveliai
paveikslėlį
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Greitai pasiekite pradinį tašką
Z-10
R1=3
Apibrėžkite ašmenų plotį kaip 3 mm
R2=-10-R1-0.2
Įrankio pradžios taškas yra -10, o kairė ašmenų pusė naudojama nustatant įrankį;
Įrankio nustatymas, todėl reikia atimti ašmenų plotį, 0.2 yra apdailos nuolaida
G1Z=R2F0.1
Įrankis pasiekia Z ašies pradžios tašką
AA:R2=R2-2.5
R3=50
Griovelio X ašis pasiekia tašką
BB: R3=R3-2
Kiekvieno peilio pjovimo gylį nustatykite kaip 2 mm
G1X=R3
X=R3 plius 1
0.5 mm drožlių pašalinimas iš vienos pusės kas 2 mm pjovimo gylį
IF R3>30 plius 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, programa šokinėja atgal iki žymos BB, o 0,4 yra apdailos nuolaida
G0X50
Įrankis pasiekia X ašies pradžios tašką
G1Z=R2
IF R2>{{0}} plius 0,2 GOTOB AA
Apibrėžkite griovelio plotį kaip 20mm, o 0,2 yra apdailos nuolaida
G0X50
G01Z-13
apdaila
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Atsitraukti
G0X100
Z100
M05
M30
(2) Elipsė
1) Pagrindinis formatas
R1=0
Apibrėžkite kintamąjį R1 pradine verte 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Pagal elipsės lygtį a yra pusiau didžioji elipsės ašis, b yra pusiau mažoji elipsės ašis, o SQRT yra kvadratinės šaknies simbolis.
G1X=±2×R2 plius XZ=R1-Z
Nustatykite elipsės padėtį ir formą, plius 2 yra išgaubtas, -2 yra įgaubtas, X, Z yra atstumai tarp ruošinio ašies ir elipsės ašies (skersmens sistema).
R1=R1-1
Nustatykite apdorojimo veiksmą
IF R1>=n GOTOB AA
Jei kintamasis R1
2) Programavimo pavyzdys:
paveikslėlį
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
CIKLAS95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT (1-R1×R1/400)
G1X=-2×R2 plius 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTAB AA
PP: X42
G0G40X100Z100
M05
M09
M30
(3) Parabolė
1) Pagrindinis formatas:
R1=0
Nustatykite pradinę kintamojo R1 reikšmę į 0
AA: R2=SQRT(-R1×n)
Gauta pagal pagrindinį parabolės formatą, kur SQRT yra kvadratinės šaknies simbolis, o n yra koeficientas
G01X=2×R2 plius n
Z=R1
Apdorojimo kelias, plius 2 yra išgaubtas, n yra X ašies pradžios taško reikšmė
R1=R1-1
Kintamoji prieaugio vertė yra 1 mm
IF R1>-30 GOTAB AA
If the variable R1>-30, programa šokinėja atgal iki žymos: AA
2) Programavimo pavyzdys:
paveikslėlį
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CIKLAS95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT (-R1 × 5/3)
G01X=2×R2 plius 30 Z=R1
R1=R1-2
IF R1>-60 GOTAB AA
PP: X52
G0X100Z100
M05
M30




