May 15, 2023 Lăsaţi un mesaj

Programul macro inutil? Asta pentru ca nu te poti impaca!

 

Mulți tehnicieni CNC nu înțeleg programele macro. Ei cred că, cu software-ul de programare automată, nu este nevoie să învețe programe macro. De fapt, funcțiile programelor macro sunt foarte puternice. De exemplu, pentru a scrie niște programe în serie și repetitive, trebuie doar să modificați câteva date atunci când utilizați programe macro. Nu este nevoie de un număr mare de programare repetată, ceea ce poate simplifica foarte mult operațiunile și poate îmbunătăți foarte mult eficiența muncii.

Programele macro pot folosi variabile pentru a efectua operații mixte de operații aritmetice, operații logice și funcții și, de asemenea, oferă instrucțiuni bucle, instrucțiuni de ramificație și instrucțiuni de apel de subrutine.

În general: programul macro este potrivit pentru programarea unei serii de piese cu aceeași grafică, dar cu dimensiuni diferite; este potrivit pentru programarea unei serii de piese cu aceeasi cale de proces dar cu parametri de pozitie diferiti; este potrivit pentru programarea parabolelor, elipselor, hiperbolelor și a altor curbe fără instrucțiuni de interpolare.


01
Reprezentarea și utilizarea variabilelor

1. Reprezentare variabilă

#I(I=1,2,3,...) sau #[]
Exemplu: #5, #109, #501, #[#1 plus #2–12]

În al doilea rând, utilizarea variabilelor

1. Specificați numărul sau formula variabilei după cuvântul adresa
Format:

#I
Aici „I” înseamnă număr variabil
Exemplu: F#103, dacă #103=15, atunci este F15
Z-#110, dacă #110=250, este Z-250
X[#24 plus #18*COS[#1]]

2. Numărul variabil poate fi înlocuit cu variabilă
Exemplu: #[#30], dacă #30=3, va fi #3

3. Variabilele nu pot folosi adresele O, N, I
Exemplu: Sunt permise următoarele metode
O#1;
I#2 6.00×100.0;
N#3 Z200.0;

4. Variabila corespunzătoare numărului variabilei are un interval de valori specific pentru fiecare adresă
Exemplu: când #30=1100, M#30 nu este permis

5. #0 este o variabilă goală, iar o variabilă fără o valoare de variabilă definită este, de asemenea, o variabilă goală

6. Definiția valorii variabile:
Punctul zecimal poate fi omis când programul este definit, de exemplu: #123=149


02
tip de variabilă

Adăugați imagini la WeChat: mvm9987 va trimite un tutorial CNC

1. Variabile locale #1~#33

O variabilă utilizată local într-un program macro, rezultatul operației sale nu poate fi utilizat de alte programe.
Exemplu: Un program macro B program macro
...
#10=20 X#10 nu înseamnă X20
...
Acesta va fi șters după oprire, iar valoarea variabilă va fi completată atunci când este apelat programul macro

2. Variabile publice #100~#199, #500~#999

Variabila comună din fiecare program macro utilizator are același rezultat al operației în orice apel de program.
Exemplu: Când #10 din exemplul de mai sus este schimbat în #100,
X#100 înseamnă X20
#100~#149 Golire după oprire
#500~#531 Variabile persistente (nu se pierd după oprire)

3. Variabile de sistem

Variabilă cu scop fix a cărei valoare depinde de starea sistemului
Exemplu: #2001 este valoarea de compensare pe axa X a compensării sculei nr. 1
Valoarea #5221 este valoarea offsetului originii piesei de prelucrat G54 pe axa X
La introducere trebuie introdusă o virgulă zecimală, iar unitatea este μm când punctul zecimal este omis


03
Instrucțiuni de operare

Partea dreaptă a expresiei poate fi constante, variabile, funcții, expresii
În formulă, #j și #k pot fi, de asemenea, constante
Partea dreaptă a expresiei este numărul variabil, expresia

1. Definiție

#I=#j

2. Operații aritmetice

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

3. Operații logice

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

4. Funcția

imagine

#I=SIN[#j] sine
#I=COS[#j] cosinus
#I=TAN[#j] tangentă
#I=ATAN[#j] arc tangent
#I=SQRT[#j] rădăcină pătrată
#I=ABS[#j] valoare absolută
#I=ROUND[#j] Rotunjire
#I=FIX[#j] rotunjește în sus
#I=FUP[#j] Rotunjiți în jos
#I=BIN[#j] BCD→BIN (binar)
#I=BCN[#j] BIN→BCD

1) Unghiurile sunt în grade
Exemplu: 90 de grade și 30 de minute sunt 90,5 grade

2) Cele două lungimi laterale după funcția ATAN trebuie separate prin „/”
Exemplu: #{{0}}ATAN[1]/[-1], #1 este 35,0

3) ROUND este folosit pentru adresa din declarație, rotunjit în sus în funcție de unitatea minimă de setare a fiecărei adrese
Exemplu: setați #1=1.2345, #2=2.3456, unitatea de setare este 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2]; X3.580
nu este returnat și trebuie înlocuit cu
X[ROUND[#1] plus ROUND[#2]];

4) Dacă valoarea absolută după rotunjire este mai mare decât valoarea inițială, aceasta va fi rotunjită în sus, în caz contrar, va fi rotunjită în jos
Exemplu: când #1=1.2, #2=-1.2
Dacă #{{0}}FUP[#1], atunci #{3=2.0
Dacă #{{0}}FIX[#1], atunci #3=1.0
Dacă #{{0}}FUP[#2], atunci #{3=-2.0
Dacă #{{0}}FIX[#2], atunci #{3=-1.0

5) Când comandați o funcție, numai primele două litere pot fi scrise
Exemplu: ROUND→RO
FIX→FI

6) Prioritate
Funcție → înmulțire și împărțire (*, 1, AND) → adunare și scădere ( plus , -, SAU, XOR)
Exemplu: #1=#2 plus #3*SIN[#4];

7) Parantezele sunt paranteze drepte, de până la 5 ori, iar parantezele sunt folosite pentru declarații de comentariu
Exemplu: #1=SIN[[[#2 plus #3]*#4 plus #5]*#6]; (3 greutăți)


04
Instrucțiuni de ramură și buclă

1. Transfer necondiționat

Format: GOTO n;

ramificație necondiționată la blocul n
n: numărul blocului (1-99999)
n poate fi înlocuit și cu variabile sau expresii
goto10;
GOTO #10;

2. Transfer condiționat

DACĂ [] GOTO n;
Dacăeste satisfăcută, următoarea operație se va transfera în blocul cu numărul blocului n.
Dacă nu sunteți mulțumit, executați următorul bloc.

DACĂ [] APOI ... ;
Dacăeste satisfăcută, instrucțiunea programului macro după THEN este executată și este executată o singură instrucțiune.
DACA[#1EQ #2] ATUNCI #3=0;

Expresie condiționată:
imagine
#j și #k pot fi, de asemenea, înlocuite cu

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

N100 G00 G91 X10;
Exemplu: Aflați suma de la 1 la 10
O9500;
#1=0
#2=1
N1 DACA [#2 GT10] GOTO 2
#1=#1 plus #2;
#2=#2 plus 1;
GOTO 1
N2 M30

3. Ciclu

Format: WHILE[]DO m; (m=1, 2, 3)



ENDm

1. Când sunt îndeplinite condițiile, executați DOm la ENDm, apoi din segmentul de program al DOm
Dacă nu este satisfăcut, executați segmentul de program după ENDm
2. Dacă omiteți instrucțiunea WHILE și aveți doar DOm...ENDm, se va forma o buclă infinită de la DOm la ENDm
3. cuibărit
4. EQ NE, empty și „0” sunt diferite
În altă parte, null este același cu „0”

Exemplu: Aflați suma de la 1 la 10
O0001;
#1=0;
#2=1;
ÎN CAZ [#2LE10] DO1;
#1=#1 plus #2;
#2=#2 plus #1;
END1;
M30;

 

 

Trimite anchetă

whatsapp

skype

E-mail

Anchetă