May 15, 2023 Laat een bericht achter

Macroprogramma nutteloos? Dat komt omdat je het niet goed kunt maken!

 

Veel CNC-technici begrijpen macroprogramma's niet. Ze denken dat het met automatische programmeersoftware niet nodig is om macroprogramma's te leren. In feite zijn de functies van macroprogramma's erg krachtig. Om bijvoorbeeld sommige batch- en repetitieve programma's te schrijven, hoeft u slechts enkele gegevens te wijzigen wanneer u macroprogramma's gebruikt. Er is geen behoefte aan een groot aantal herhaalde programmeringen, wat de operaties aanzienlijk kan vereenvoudigen en de werkefficiëntie aanzienlijk kan verbeteren.

Macroprogramma's kunnen variabelen gebruiken om gemengde bewerkingen van rekenkundige bewerkingen, logische bewerkingen en functies uit te voeren, en kunnen ook lusinstructies, aftakinstructies en subroutineaanroepinstructies leveren.

Algemeen gesproken: macroprogramma is geschikt voor het programmeren van een reeks onderdelen met dezelfde grafische weergave maar met verschillende afmetingen; het is geschikt voor het programmeren van een reeks onderdelen met hetzelfde procespad maar met verschillende positieparameters; het is geschikt voor het programmeren van parabolen, ellipsen, hyperbolen en andere krommen zonder interpolatie-instructies.


01
Representatie en gebruik van variabelen

1. Variabele weergave

#I(I=1,2,3,...) of #[]
Voorbeeld: #5, #109, #501, #[#1 plus #2-12]

Ten tweede, het gebruik van variabelen

1. Specificeer het variabelenummer of de formule achter het adreswoord
Formaat:

#I
Hier staat "I" voor variabel getal
Voorbeeld: F#103, als #103=15, dan is het F15
Z-#110, als #110=250, is het Z-250
X[#24 plus #18*COS[#1]]

2. Het variabele nummer kan worden vervangen door variabele
Voorbeeld: #[#30], als #30=3, wordt het #3

3. Variabelen kunnen geen adressen O, N, I gebruiken
Voorbeeld: De volgende methoden zijn toegestaan
O#1;
I#2 6.00×100.0;
N#3 Z200.0;

4. De variabele die overeenkomt met het variabelenummer heeft een specifiek waardebereik voor elk adres
Voorbeeld: wanneer #30=1100, is M#30 niet toegestaan

5. #0 is een lege variabele en een variabele zonder gedefinieerde variabelewaarde is ook een lege variabele

6. Definitie van variabele waarde:
De komma kan worden weggelaten wanneer het programma wordt gedefinieerd, bijvoorbeeld: #123=149


02
soort variabele

Voeg afbeeldingen toe aan WeChat: mvm9987 stuurt een CNC-zelfstudie

1. Lokale variabelen #1~#33

Een variabele die lokaal in een macroprogramma wordt gebruikt. Het resultaat van de bewerking kan niet door andere programma's worden gebruikt.
Voorbeeld: Een macroprogramma B macroprogramma
...
#10=20 X#10 betekent niet X20
...
Het wordt gewist na het uitschakelen en de variabele waarde wordt ingevuld wanneer het macroprogramma wordt aangeroepen

2. Openbare variabelen #100~#199, #500~#999

De gemeenschappelijke variabele in elk gebruikersmacroprogramma heeft hetzelfde bewerkingsresultaat bij elke programma-aanroep.
Voorbeeld: Wanneer #10 in het bovenstaande voorbeeld wordt gewijzigd in #100, wordt de
X#100 betekent X20
#100~#149 Leeg na uitschakelen
#500~#531 Persistente variabelen (niet verloren na uitschakelen)

3. Systeemvariabelen

Variabele met een vast doel waarvan de waarde afhangt van de status van het systeem
Voorbeeld: #2001 is de X-as compensatiewaarde van nr. 1 gereedschapscompensatie
#5221-waarde is de X-as G54-offsetwaarde van het werkstukoorsprong
Bij het invoeren moet een decimale punt worden ingevoerd, en de eenheid is μm wanneer de decimale punt wordt weggelaten


03
Bediening instructie

De rechterkant van de uitdrukking kunnen constanten, variabelen, functies, uitdrukkingen zijn
In de formule kunnen #j en #k ook constanten zijn
De rechterkant van de uitdrukking is het variabele getal, de uitdrukking

1. Definitie

#I=#j

2. Rekenkundige bewerkingen

#I=#j plus #k
#I=#j-#k
#I=#j*#k
#I=#j/#k

3. Logische bewerkingen

#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k

4. Functie

afbeelding

#I=SIN[#j] sinus
#I=COS[#j] cosinus
#I=TAN[#j] raaklijn
#I=ATAN[#j] boogtangens
#I=SQRT[#j] vierkantswortel
#I=ABS[#j] absolute waarde
#I=ROUND[#j] Afronding
#I=FIX[#j] afronden naar boven
#I=FUP[#j] Naar beneden afronden
#I=BIN[#j] BCD→BIN (binair)
#I=BCN[#j] BIN→BCD

1) Hoeken zijn in graden
Voorbeeld: 90 graden en 30 minuten zijn 90,5 graden

2) De twee zijlengten na de ATAN-functie moeten worden gescheiden door "/"
Voorbeeld: #{{0}}ATAN[1]/[-1], #1 is 35,0

3) AFRONDEN wordt gebruikt voor het adres in het afschrift, naar boven afgerond volgens de minimale instellingseenheid van elk adres
Voorbeeld: Set #1=1.2345, #2=2.3456, instellingseenheid is 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2]; X3.580
wordt niet geretourneerd en moet worden vervangen door
X[ROND[#1] plus RONDE[#2]];

4) Als de absolute waarde na afronding groter is dan de oorspronkelijke waarde, wordt deze naar boven afgerond, anders naar beneden
Voorbeeld: wanneer #1=1.2, #2=-1.2
Als #{{0}}FUP[#1], dan #3=2.0
Als #{{0}}FIX[#1], dan #3=1.0
Als #{{0}}FUP[#2], dan #3=-2.0
Als #{{0}}FIX[#2], dan #3=-1.0

5) Bij het opdragen van een functie kunnen alleen de eerste twee letters worden geschreven
Voorbeeld: ROND→RO
FIX→FI

6) Prioriteit
Functie → vermenigvuldigen en delen (*, 1, AND) → optellen en aftrekken ( plus , -, OR, XOR)
Voorbeeld: #1=#2 plus #3*SIN[#4];

7) De haakjes zijn vierkante haakjes, maximaal 5 keer, en de haakjes worden gebruikt voor opmerkingen
Voorbeeld: #1=SIN[[[#2 plus #3]*#4 plus #5]*#6]; (3 gewichten)


04
Aftak- en lusinstructies

1. Onvoorwaardelijke overdracht

Formaat: GOTO n;

Onvoorwaardelijk vertakken naar blok n
n: bloknummer (1-99999)
n kan ook worden vervangen door variabelen of uitdrukkingen
ga naar10;
GA NAAR #10;

2. Voorwaardelijke overdracht

ALS [] GA NAAR n;
Als deis voldaan, wordt de volgende bewerking overgedragen aan het blok met het bloknummer n.
Als u niet tevreden bent, voert u het volgende blok uit.

ALS [] DAN ... ;
Als deis voldaan, wordt de instructie van het macroprogramma na THEN uitgevoerd en wordt slechts één instructie uitgevoerd.
IF[#1EQ #2] DAN #3=0;

Voorwaardelijke uitdrukking:
afbeelding
#j en #k kunnen ook vervangen worden door

Voorbeeld: IF[#1 GT 10] GOTO 100;

N100 G00 G91 X10;
Voorbeeld: bereken de som van 1 tot 10
O9500;
#1=0
#2=1
N1 ALS [#2 GT10] GA NAAR 2
#1=#1 plus #2;
#2=#2 plus 1;
GA NAAR 1
N2 M30

3. Cyclus

Formaat: TERWIJL[]DO m; (m=1, 2, 3)



ENDm

1. Als aan de voorwaarden is voldaan, voert u DOm uit naar ENDm en vervolgens vanuit het programmasegment van DOm
Als het niet tevreden is, voert u het programmasegment na ENDm uit
2. Als je de WHILE-instructie weglaat en alleen DOm...ENDm hebt, wordt er een oneindige lus gevormd van DOm naar ENDm
3. nesten
4. EQ NE, leeg en "0" zijn verschillend
Elders is null hetzelfde als "0"

Voorbeeld: bereken de som van 1 tot 10
O0001;
#1=0;
#2=1;
TERWIJL [#2LE10] DO1;
#1=#1 plus #2;
#2=#2 plus #1;
EINDE1;
M30;

 

 

Aanvraag sturen

whatsapp

skype

E-mail

Onderzoek