I dag forstår mange CNC-teknikere ikke makroprogrammer. De tror at med automatisk programmeringsprogramvare trenger de ikke å lære makroprogrammer. Faktisk er funksjonene til makroprogrammer veldig kraftige. For eksempel, for å skrive noen batch- og repeterende programmer, trenger du bare å endre noen få data når du bruker makroprogrammer. Det er ikke behov for et stort antall gjentatt programmering, noe som i stor grad kan forenkle operasjoner og forbedre arbeidseffektiviteten betraktelig.
Makroprogrammer kan bruke variabler til å utføre blandede operasjoner av aritmetiske operasjoner, logiske operasjoner og funksjoner, og også gi sløyfesetninger, grensetninger og subrutineanropssetninger.
Generelt sett: makroprogram er egnet for programmering av en serie deler med samme grafikk, men med forskjellige størrelser; den er egnet for programmering av en serie deler med samme prosessbane, men med forskjellige posisjonsparametere; den er egnet for programmering av paraboler, ellipser, hyperbler og andre kurver uten interpolasjonsinstruksjoner.
01
Representasjon og bruk av variabler
1. Variabel representasjon
#I(I=1,2,3,...) or #[
Eksempel: #5, #109, #501, #[#1 pluss #2–12]
2. Bruk av variabler
1) Spesifiser variabelnummeret eller formelen etter adresseordet
Format:
Her står "I" for variabelt tall
Eksempel: F#103, hvis #103=15, så er det F15
Z-#110, hvis #110=250, er det Z-250
X[#24 pluss #18*COS[#1]]
2) Variabelnummeret kan erstattes med en variabel
Eksempel: #[#30], hvis #30=3, vil det være #3
3) Variabler kan ikke bruke adressene O, N, I
Eksempel: Følgende metoder er tillatt
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4) Variabelen som tilsvarer variabelnummeret har et spesifikt verdiområde for hver adresse
Eksempel: Når #30=1100 er M#30 ikke tillatt
5) #0 er en tom variabel, og en variabel uten en definert variabelverdi er også en tom variabel
6) Variabel verdidefinisjon:
Desimaltegn kan utelates når programmet er definert, for eksempel: #123=149
02
type variabel
Legg til bilder i WeChat: yuki7557 vil sende en veiledning for makroprogram
1. Lokale variabler #1~#33
En variabel som brukes lokalt i et makroprogram, driftsresultatet kan ikke brukes av andre programmer.
Eksempel: Et makroprogram B makroprogram
...
#10=20 X#10 betyr ikke X20
...
Den slettes etter at strømmen er slått av, og variabelverdien fylles ut når makroprogrammet kalles opp
2. Offentlige variabler #100~#199, #500~#999
Den vanlige variabelen i hvert brukermakroprogram har samme operasjonsresultat i et hvilket som helst programkall.
Eksempel: Når #10 i eksemplet ovenfor endres til #100, vil
X#100 betyr X20
#100~#149 Tomt etter at strømmen er slått av
#500~#531 Vedvarende variabler (ikke tapt etter avslåing)
3. Systemvariabler
Variabel med fast formål hvis verdi avhenger av systemets tilstand
Eksempel: #2001 er X-aksens kompensasjonsverdi for nr. 1 verktøykompensasjon
#5221 verdi er X-akse G54 arbeidsstykkets opprinnelsesforskyvningsverdi
Et desimaltegn må angis ved inntasting, og enheten er μm når desimaltegn utelates
03
Driftsinstruksjon
Høyre side av uttrykket kan være konstanter, variabler, funksjoner, uttrykk
I formelen kan #j og #k også være konstanter
Høyre side av uttrykket er variabelnummeret, uttrykket
1. Definisjon
#I=#j
2. Aritmetiske operasjoner
#I=#j pluss #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Logiske operasjoner
#Jeg=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Funksjoner
#I=SIN[#j] sinus
#I=COS[#j] cosinus
#I=TAN[#j] tangens
#I=ATAN[#j] buetangens
#I=SQRT[#j] kvadratrot
#I=ABS[#j] absolutt verdi
#I=ROUND[#j] Avrunding
#I=FIKS[#j] runde opp
#I=FUP[#j] Rund ned
#I=BIN[#j] BCD→BIN (binær)
#I=BCN[#j] BIN→BCD
1) Vinklene er i grader
Eksempel: 90 grader og 30 minutter er 90,5 grader
2) De to sidelengdene etter ATAN-funksjonen skal skilles med "/"
Eksempel: #{{0}}ATAN[1]/[-1], #1 er 35.0
3) ROUND brukes for adressen i setningen, rundet opp i henhold til minimumsinnstillingsenheten for hver adresse
Eksempel: Sett #1=1.2345, #2=2.3456, innstillingsenheten er 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 pluss #2]; X3.580
returneres ikke og bør erstattes av
X[ROUND[#1] pluss RUND[#2]];
4) Hvis absoluttverdien etter avrunding er større enn den opprinnelige verdien, rundes den opp, ellers rundes den ned
Eksempel: Når #1=1.2, #2=-1.2
Hvis #{{0}}FUP[#1], så #3=2.0
Hvis #{{0}}RETT[#1], så #3=1.0
Hvis #{{0}}FUP[#2], så #3=-2.0
Hvis #{{0}}RETT[#2], så #3=-1.0
5) Når du kommanderer en funksjon, kan bare de to første bokstavene skrives
Eksempel: RUND→RO
FIX→FI
6) Prioritet
Funksjon → multiplikasjon og divisjon (*, 1, OG) → addisjon og subtraksjon ( pluss , -, ELLER, XOR)
Eksempel: #1=#2 pluss #3*SIN[#4];
7) Klameparentesene er firkantede parenteser, opptil 5 ganger, og parentesene brukes til kommentaruttalelser
Eksempel: #1=SIN[[[#2 pluss #3]*#4 pluss #5]*#6]; (3 vekter)
04
Instruksjoner for gren og sløyfe
1. Ubetinget overføring
Format: GOTO n;
Forgrening ubetinget til blokk n
n: blokknummer (1-99999)
n kan også erstattes av variabler eller uttrykk
goto10;
GÅ TIL #10;
2. Betinget overføring
HVIS [
Hvis
Hvis du ikke er fornøyd, utfør neste blokk.
Legg til WeChat: yuki7557 for å sende en veiledning for makroprogram
HVIS [
Hvis
IF[#1EQ #2] THEN #3=0;
Betinget uttrykk:
#j og #k kan også erstattes av
Eksempel: HVIS[#1 GT 10] GÅ TIL 100;
…
N100 G00 G91 X10;
Eksempel: Finn summen av 1 til 10
O9500;
#1=0
#2=1
N1 HVIS [#2 GT10] GÅ TIL 2
#1=#1 pluss #2;
#2=#2 pluss 1;
GÅ TIL 1
N2 M30
3. Sykle
Format: WHILE[
…
…
…
ENDm
1. Når betingelsene er oppfylt, utfør DOm til ENDm, deretter fra programsegmentet til DOm
Hvis du ikke er fornøyd, utfør programsegmentet etter ENDm
2. Hvis du utelater WHILE-setningen og bare har DOm...ENDm, vil det dannes en uendelig løkke fra DOm til ENDm
3. hekking
4. EQ NE, tom og "0" er forskjellige
Andre steder er null det samme som «0»
Eksempel: Finn summen av 1 til 10
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1 pluss #2;
#2=#2 pluss #1;
END1;
M30;




