Jan 13, 2023 Laat een bericht achter

Moet kennis hebben van macroprogrammering

 

Tegenwoordig hebben veel CNC-technici geen verstand van macroprogramma's. Ze denken dat ze met automatische programmeersoftware geen macroprogramma's hoeven 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]

2. Gebruik van variabelen

1) Geef het variabelenummer of de formule op 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 een 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 variabele waarde:
De komma kan worden weggelaten wanneer het programma wordt gedefinieerd, bijvoorbeeld: #123=149

02
soort variabele

Voeg foto's toe aan WeChat: yuki7557 stuurt een tutorial over het macroprogramma

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. Functies

#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.
Voeg WeChat toe: yuki7557 om een ​​zelfstudie over een macroprogramma te verzenden
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:

#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 u niet tevreden bent, voert u het programmasegment uit dat volgt op ENDm
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