Apr 15, 2023 Palik žinutę

Pakalbėkime apie CNC makro programas

 

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

Siųsti užklausą

whatsapp

skype

El. paštas

Tyrimo