Nuförtiden förstår många CNC-tekniker inte makroprogram. De tror att med programvara för automatisk programmering behöver de inte lära sig makroprogram. Faktum är att funktionerna i makroprogram är mycket kraftfulla. Till exempel, för att skriva vissa batch- och repetitiva program behöver du bara ändra några få data när du använder makroprogram. Det finns inget behov av ett stort antal upprepad programmering, vilket avsevärt kan förenkla driften och avsevärt förbättra arbetseffektiviteten.
Makroprogram kan använda variabler för att utföra blandade operationer av aritmetiska operationer, logiska operationer och funktioner, och även tillhandahålla loop-satser, förgreningssatser och subrutinanropssatser.
Generellt sett: makroprogram är lämpligt för programmering av en serie delar med samma grafik men med olika storlekar; den är lämplig för programmering av en serie delar med samma processbana men med olika positionsparametrar; den är lämplig för programmering av paraboler, ellipser, hyperbler och andra kurvor utan interpolationsinstruktioner.
01
Representation och användning av variabler
1. Rörlig representation
#I(I=1,2,3,...) or #[
Exempel: #5, #109, #501, #[#1 plus #2–12]
För det andra, användningen av variabler
1. Ange variabelnumret eller formeln efter adressordet
Formatera:
Här står "I" för variabelt tal
Exempel: F#103, om #103=15 är det F15
Z-#110, om #110=250 är det Z-250
X[#24 plus #18*COS[#1]]
2. Variabelnumret kan ersättas med variabel
Exempel: #[#30], om #30=3 blir det #3
3. Variabler kan inte använda adresserna O, N, I
Exempel: Följande metoder är tillåtna
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. Variabeln som motsvarar variabelnumret har ett specifikt värdeområde för varje adress
Exempel: när #30=1100 är M#30 inte tillåtet
5. #0 är en tom variabel, och en variabel utan ett definierat variabelvärde är också en tom variabel
6. Variabelvärdesdefinition:
Decimaltecknet kan utelämnas när programmet är definierat, till exempel: #123=149
02
typ av variabel
Lägg till bilder i WeChat: mvm9987 skickar en CNC-handledning
1. Lokala variabler #1~#33
En variabel som används lokalt i ett makroprogram, dess operationsresultat kan inte användas av andra program.
Exempel: Ett makroprogram B makroprogram
...
#10=20 X#10 betyder inte X20
...
Det kommer att raderas efter avstängning och variabelvärdet kommer att fyllas i när makroprogrammet anropas
2. Offentliga variabler #100~#199, #500~#999
Den gemensamma variabeln i varje användarmakroprogram har samma operationsresultat i alla programanrop.
Exempel: När #10 i exemplet ovan ändras till #100,
X#100 betyder X20
#100~#149 Tom efter strömavstängning
#500~#531 Beständiga variabler (inte förlorade efter avstängning)
3. Systemvariabler
Variabel med fast syfte vars värde beror på systemets tillstånd
Exempel: #2001 är X-axelns kompensationsvärde för verktygskompensation nr 1
#5221 värde är X-axel G54 arbetsstyckets ursprung offsetvärde
En decimalpunkt måste anges vid inmatning, och enheten är μm när decimalkomma utelämnas
03
Användningsinstruktion
Den högra sidan av uttrycket kan vara konstanter, variabler, funktioner, uttryck
I formeln kan #j och #k också vara konstanter
Den högra sidan av uttrycket är variabelnumret, uttrycket
4. Funktion
bild
1) Vinklarna är i grader
Exempel: 90 grader och 30 minuter är 90,5 grader
2) De två sidlängderna efter ATAN-funktionen ska separeras med "/"
Exempel: #{{0}}ATAN[1]/[-1], #1 är 35.0
3) ROUND används för adressen i uttalandet, avrundat uppåt enligt den lägsta inställningsenheten för varje adress
Exempel: Ställ in #1=1.2345, #2=2.3456, inställningsenheten är 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2]; X3,580
returneras inte och bör ersättas av
X[ROUND[#1] plus ROUND[#2]];
4) Om det absoluta värdet efter avrundning är större än det ursprungliga värdet kommer det att avrundas uppåt, annars avrundas det nedåt
Exempel: När #1=1.2, #2=-1.2
Om #{{0}}FUP[#1], då #3=2.0
Om #{{0}}FIXA[#1], då #3=1.0
Om #{{0}}FUP[#2], då #3=-2.0
Om #{{0}}FIXA[#2], då #3=-1.0
5) När du beordrar en funktion kan endast de två första bokstäverna skrivas
Exempel: ROUND→RO
FIXA→FI
6) Prioritet
Funktion → multiplikation och division (*, 1, OCH) → addition och subtraktion ( plus , -, ELLER, XOR)
Exempel: #1=#2 plus #3*SIN[#4];
7) Hakparenteserna är hakparenteser, upp till 5 gånger, och parenteserna används för kommentarer
Exempel: #1=SIN[[[#2 plus #3]*#4 plus #5]*#6]; (3 vikter)
04
Instruktioner för gren och slinga
1. Ovillkorlig överföring
Format: GOTO n;
Förgrena sig ovillkorligen till block n
n: blocknummer (1-99999)
n kan också ersättas av variabler eller uttryck
goto10;
GÅ TILL #10;
2. Villkorlig överföring
OM [
Om
Om du inte är nöjd, kör nästa block.
OM [
Om
OM[#1EQ #2] DÅ #3=0;
Villkorligt uttryck:
bild
#j och #k kan också ersättas med
Exempel: OM[#1 GT 10] GÅ TILL 100;
…
N100 G00 G91 X10;
Exempel: Hitta summan av 1 till 10
O9500;
#1=0
#2=1
N1 OM [#2 GT10] GÅ TILL 2
#1=#1 plus #2;
#2=#2 plus 1;
GÅ TILL 1
N2 M30
3. Cykla
Format: WHILE[
…
…
…
ENDm
1. När villkoren är uppfyllda, kör DOm till ENDm, sedan från programsegmentet för DOm
Om det inte är uppfyllt, kör programsegmentet efter ENDm
2. Om du utelämnar WHILE-satsen och bara har DOm...ENDm, kommer en oändlig slinga att bildas från DOm till ENDm
3. häckande
4. EQ NE, tom och "0" är olika
På andra ställen är null detsamma som "0"
Exempel: Hitta summan av 1 till 10
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1 plus #2;
#2=#2 plus #1;
END1;
M30;




