Apr 15, 2023 Jäta sõnum

Räägime CNC makroprogrammidest

 

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

Küsi pakkumist

whatsapp

skype

E-posti

Küsitlus