En poques paraules, una macro és utilitzar fórmules per processar peces. Per exemple, el·lipse, si no hi ha una macro, hem de calcular els punts de la corba punt per punt i, a continuació, aproximar-lo lentament amb una línia recta. Si es tracta d'una peça amb alts requisits de suavitat, hem de calcular molts punts, però després d'aplicar la macro, introduïm la fórmula de l'el·lipse al sistema i, a continuació, donem la coordenada Z i afegim una quantitat cada vegada, després la macro calcularà automàticament la coordenada X i realitzarà el tall. De fet, la funció principal de la macro al programa és el càlcul.
imatge
01
Sobre els programes macro
Què és un programa macro
Quan programem, emmagatzemarem una sèrie d'instruccions que poden completar una determinada funció a la memòria com una subrutina, i les cridarem amb una instrucció general. Quan l'utilitzem, només hem de donar aquesta instrucció general per executar la funció emmagatzemada. Aquesta sèrie d'instruccions s'anomena cos del programa macro d'usuari, o programa macro per abreujament.
Aquesta ordre general s'anomena ordre de trucada de macro d'usuari. Quan programen, els programadors només necessiten memoritzar instruccions macro, però no programes macro.
Quan s'utilitzarà la programació macro?
1) Corba de fórmula de processament programada manualment (càlcul senzill, entrada ràpida)
2) Trajecte de tall regular (com a mòdul de tall)
3) Control entre programes (programació de programes)
4) Gestió d'eines (desgast de l'eina)
5) Mesura automàtica (sonda a la màquina)
La diferència entre programa macro i programa normal
1) Al cos del programa macro, es poden utilitzar variables, es poden assignar valors a variables, es poden realitzar càlculs entre variables i es poden saltar els programes.
2) En els programes normals, només es poden especificar constants i no es poden realitzar operacions entre constants. Els programes només es poden executar seqüencialment i no es poden saltar, de manera que les funcions són fixes i no es poden canviar.
3) La funció macro és una funció especial perquè l'usuari millori el rendiment de la màquina-eina CNC, i l'ús hàbil del programa macro en el processament de peces similars aconseguirà el doble del resultat amb la meitat de l'esforç.
02
Variables i formats dels programes macro
Característiques dels programes macro
El programa macro pot utilitzar la variable, i la variable es pot utilitzar per realitzar les operacions corresponents; el valor real de la variable es pot assignar a la variable mitjançant la instrucció del programa macro.
Tres tipus de variables
La forma de representació de variables del sistema CNC és "#" seguit d'1 a 4 dígits, i hi ha tres tipus de variables:
(1) Variables locals: #1~#33 són variables utilitzades localment al programa macro, que s'utilitzen per a la transferència de variables independents.
(2) Variable comuna: l'usuari la pot utilitzar lliurement, i és comú a cada subrutina i a cada macro programa cridat pel programa principal. #100~#149, després d'apagar l'alimentació, s'esborraran tots els valors variables, mentre que #500~#509, després d'apagar l'alimentació, es poden desar els valors variables.
(3) Variable del sistema: es defineix seguida de 4 dígits, pot obtenir informació de només lectura o lectura/escriptura continguda al processador de la màquina-eina o a la memòria NC, inclosos els paràmetres d'intercanvi relacionats amb el processador de la màquina-eina, l'adquisició de l'estat de la màquina-eina. paràmetres, informació del sistema com ara paràmetres de processament.
Format de trucada simple del programa macro
La simple crida del programa macro significa que al programa principal, el programa macro pot ser cridat per un sol bloc.
Format d'invocació:
G65 P (número de programa macro) L (nombre de repeticions) (assignació variable).
Entre ells: G65: comanda de trucada de programa macro;
P (número de programa macro): el codi del programa macro que s'ha d'anomenar;
L (nombre de repeticions): el nombre d'execucions repetides del programa macro, quan el nombre de repeticions és 1, es pot ometre;
(Assignació de variables) - Assigna valors a les variables utilitzades al programa macro.
El mateix entre un programa macro i una subrutina és que un altre programa macro pot cridar un programa macro, fins a 4 vegades.
Format d'escriptura del programa macro
El format d'escriptura d'un programa macro és el mateix que el d'una subrutina. El seu format és:
0-(0001-8999 és el número del programa macro)
Comandament N10
N-M99
En el contingut del programa macro anterior, a més de les instruccions de programació d'ús habitual, també es poden utilitzar variables, instruccions d'operació aritmètica i altres instruccions de control. El valor de la variable s'assigna a la instrucció de trucada del programa macro.
03
Aplicació del programa macro del sistema FANUC
(1) Ranc de programa de macro
imatge
1) Declaració WHILE
G00 X52 Z2;
#2=-14;
És el punt inicial de l'eina en la direcció z (com que l'amplada de l'eina és de 4 mm, el punt inicial s'estableix a Z-14)
MENTRE [#2 GE -30] DO2;
És una restricció en la direcció z. Quan z és igual a -30, la direcció z ja no es mourà
G00 Z〔#2〕;
La posició actual en la direcció z
#2=#2-2;
El pas en moviment en la direcció z, movent-se 2 mm cada vegada
#1=52;
és el punt de partida del ganivet en la direcció x
MENTRE [#1 GE 20] DO1;
Restriccions en la direcció X, quan el diàmetre és igual a 20, ja no es tallarà
G01 X〔#1〕F0.2;
Profunditat de tall en direcció x
G00 X〔#1 més 1〕;
Quantitat de retracció relativa en direcció x
#1=#1-1;
Distància de pas en direcció x (talla 1 mm cada vegada)
FI1;
G00 X52;
FI2;
Programa complet:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
MENTRE〔#2GE-30〕DO2; END1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
MENTRE〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 més 1〕;
#1=#1-1;
G00 X52;
FI2;
G00 X150 Z150;
M30;
2) Declaració IF
G00 X52 Z-2;
#1=-14;
És el punt de partida de la direcció z de l'eina (l'amplada de l'eina és de 4 mm)
N2 #1=#1-2;
és el pas del moviment en la direcció z
#2=52;
és el punt de partida de l'eina en la direcció x
N1#2=#2-1;
és la distància de pas en la direcció x (profunditat de tall 1 mm cada vegada)
G01 X〔#2〕F0.2;
Posició actual en direcció X
G00 X〔#2 més 1〕;
Quantitat de retracció relativa en direcció X
IF [#2 GE 21] GOTO1;
Restriccions en la direcció x (quan el valor de x es redueix a 20, es realitzarà el procediment següent i no es farà cap retorn)
G00 X52;
X es retrau a la posició 52
G00 Z〔#1〕;
Posició actual en direcció Z
IF [#1 GE -30] GOTO2;
Restriccions en la direcció Z, quan z és igual a -30, la direcció z no es mourà
Programa complet:
O1234;
G40G97G99;
T0101;
S1000M3;
G00 X52 Z-2;
#1=-14;
N2 #1=#1-2;
#2=52;
N1#2=#2-1;
G01 X〔#2〕F0.2;
G00 X〔#2 més 1〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Programació d'el·lipse
1) El format estàndard de la declaració el·lipse WHILE:
#1=a;
a: El punt de partida de l'eina és en la direcció positiva a mm respecte a l'eix Z de l'el·lipse
MENTRE [#1 GE b] DO1;
b: El punt final del processament de l'el·lipse es troba en la direcció negativa b mm en relació amb l'eix Z de l'el·lipse (si es processa una semiel·lipse completa, aleshores a i b són dos valors amb el mateix valor i signes diferents)
#2= c*SQRT[1-#1*#1/d*d];
c: el semieix menor de l'el·lipse
d: semieix major de l'el·lipse (calculeu el #2 segons la fórmula de l'el·lipse, el semieix major és d, el semieix menor és c, #2 representa el valor de X, #1 és el valor de Z , i SQRT significa arrel quadrada)
G01 X〔±2*#2 més e〕Z〔#1±f〕;
e: El desplaçament (valor del diàmetre) de l'eix X de l'el·lipse en relació amb el sistema de coordenades de la peça
f: El desplaçament de l'eix Z de l'el·lipse en relació amb el sistema de coordenades de la peça
#1=#1-1; distància de pas (movent 1 mm cada vegada)
FI1;
Nota: Quan es gira una el·lipse còncava, el "±" del parèntesi després de X es pren com "-"; quan es gira una el·lipse convexa, el "±" del parèntesi després de X es pren com a "plus".
Quan l'eix X de l'el·lipse es desplaça cap a la direcció positiva, el "±" dels claudàtors després de Z pren "plus"; quan l'eix X de l'el·lipse es desplaça cap a la direcció negativa, el "±" entre claudàtors després de Z pren "-"
2) El format estàndard de la instrucció IF el·líptica
#1=a;
a: El punt de partida de l'eina és en la direcció positiva a mm respecte a l'eix Z de l'el·lipse
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: eix semicurt de l'el·lipse c: semi-eix major de l'el·lipse (segons la fórmula de l'el·lipse X/c més Y/b=1, SQRT significa arrel quadrada)
G01X〔±2*#2 més d〕Z〔#1±e〕F0.2; d: el desplaçament (valor del diàmetre) de l'eix X de l'el·lipse en relació amb el punt zero de coordenades e: l'eix Z de l'el·lipse en relació amb el pla zero.
#1=#1-1;
Distància de pas (movent 1 mm cada vegada)
SI [#1 GE -f] GOTO1
f: Finalització del processament de l'el·lipse
Nota: Quan es gira una el·lipse còncava, el "±" del parèntesi després de X es pren com "-"; quan es gira una el·lipse convexa, el "±" del parèntesi després de X es pren com a "plus". Quan l'eix X de l'el·lipse es desvia cap a la direcció positiva, el "±" entre parèntesis després de Z pren "plus"; quan l'eix X de l'el·lipse es desvia cap a la direcció negativa, el "±" entre parèntesis després de Z pren "-".
imatge
Declaració WHILE
#1=20;
MENTRE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 més 50〕Z〔#1-25〕;
#1=#1-1;
FI1;
Declaració SI
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 més 50〕Z〔#1-25〕F0.2;
#1=#1-1;
IF[#1GE-20]GOTO1;
programa complet
O1234;
G40G97G99;
T0101;
S1000 M3;
G00 X50 Z2;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G0 G42 Z-5;
#1=20;
MENTRE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 més 50〕Z〔#1-25〕F0.2;
#1=#1-1;
FI1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
S'omet el format complet de la instrucció IF (el mateix passa amb la instrucció IF, sempre que s'afegeixi el cicle). Al sistema FANUC-0i, el programa de macro només es pot afegir a G73.
(3) Processament de la paràbola
1) El format estàndard de la sentència parabòlica WHILE:
#1=a;
a: El punt de partida de l'eina és un mm en la direcció de l'eix parabòlic Z
MENTRE [#1 GE -b] DO1;
b: és la longitud de processament de l'el·lipse en la direcció z
#2=SQRT〔-#1*5/3〕;
(Segons la fórmula parabòlica Z=-3/5*X*X, trobeu el valor de X, que és #2, on SQRT significa l'arrel quadrada)
G01 X〔±2*#2 més c〕Z〔#1〕;
c: és el desplaçament (valor del diàmetre) de l'eix X de la paràbola en relació amb el sistema de coordenades de la peça, "±"
Quan es pren "plus", és convex, i quan es pren "-", és còncau
#1=#1-1; Distància de pas (movent 1 mm cada vegada)
FI1;
2) El format estàndard de la instrucció IF parabòlica
#1=a;
a: El punt de partida de l'eina és un mm en la direcció de l'eix parabòlic Z
N1 #2=SQRT〔-#1*5/3〕;
(Segons la fórmula parabòlica Z=-3/5*X*X, trobeu el valor de X, que és #2, on SQRT significa l'arrel quadrada)
G01 X〔±2*#2 més b〕Z〔#1〕;
b: És el desplaçament (valor del diàmetre) de l'eix de direcció X de la paràbola en relació amb el punt zero de coordenades. Quan "±" pren "plus", és convex, i quan es pren "-", és còncau
#1=#1-1;
(distància de pas en direcció Z, cada moviment és d'1 mm)
IF〔#1 GE -c〕GOTO1; c: la longitud de processament de l'el·lipse en direcció z
IF parabòlica
una altra forma de frase
#1=a;
N1 #2=SQRT〔( més )#1*5/3〕;
El signe " més " es pot ometre
G01 X〔2*#2 més b〕Z〔-#1〕;
#1=#1 més 1;
IF [#1 LE c] GOTO1;
Suposant que la paràbola està en la direcció positiva de Z, feu servir Z〔-#1〕; per fer la paràbola simètrica a la direcció negativa
imatge
Declaració WHILE
#1=0;
MENTRE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 més 30〕Z〔#1〕;
#1=#1-1;
FI1;
Declaració SI
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 més 30〕Z〔#1〕;
#1=#1-1;
IF [#1 GE -15] GOTO1;
programa complet
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X42 Z1;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G00 G42 Z0;
#1=0;
MENTRE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 més 30〕Z〔#1〕;
#1=#1-1;
FI1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) La diferència entre la sentència WHILE i la declaració IF
1) Les direccions dels dos enunciats són diferents
La instrucció WHILE torna enrere
Exemple: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Suposant que quan la màquina-eina executi aquesta frase, #1=20, es continuarà executant. Després d'executar #1=#1-1, el valor de #1 passa a ser 19, que ja no compleix les condicions de restricció, de manera que no tornarà. (Talleu a 20 en la direcció X)
G00 X〔#1 més 1);
#1=#1-1;
FI1;
2) La instrucció IF torna endavant
Exemple: N1 #2=#2-1;
G01X〔#2〕F0.2; Suposant que #2=20 quan la màquina-eina executi aquesta frase, continuarà executant-se fins que IF〔#2 GE 20〕GOTO1; si la condició encara es compleix, continuarà tornant a N1# 2=#2-1; i el valor X actual es convertirà en 19, que ja no compleix les condicions de restricció, i després n'executarem un altre
G01X〔#2〕F0.2; Finalment, executeu el programa següent (la direcció X s'ha retallat a 19)
G00X〔#2 més 1);
IF [#2 GE 20] GOTO1;
3) Com es pot veure al programa de grooving anterior, el nombre de paraules de la instrucció IF és molt inferior al de la sentència WHILE.
4) A causa de les diferents direccions de retorn, llegiu una frase menys per a la instrucció WHILE i una frase més per a la instrucció IF durant el processament.
04
Aplicació de programa macro del sistema SIEMENS (torn).
Nota: el programa macro es programa amb variables i el número de variable del sistema Siemens està representat per R.
Per exemple, escrit amb el mètode de programació comú: G01X-10
El programa macro es pot expressar com:
R1=-10
G01 X=R1
Transferència condicional:
SI GOTOB: saltar cap enrere
IF GOTOF: saltar endavant
escrit en programació comuna
GO1X100
Les variables es poden expressar com:
R1=0
AA: R1=R1 més 1
G01X=R1
SI R1<100 GOTOB AA
R1 és una variable independent, el valor inicial és 0, R1=R1 més 1 significa que el valor incremental de la variable independent és 1, quan el programa passa per aquesta línia cada vegada, el valor de R1 augmenta en 1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA
Si R1 és superior o igual a 100, el programa baixa.
Els programes macro es poden utilitzar tant en els modes G90 com en G91, però els seus significats són diferents, per exemple;
R1=0, G90R1=R1 més 1, G1X=R1, el valor de X després de la segona passada d'aquest programa és 2.
R1=0, G91R1=R1 més 1, G1X=R1, el valor de X després de la segona passada del programa és 3. Explicació: el valor de R1 és 1 després de la primera. passada del programa, i el valor de R1 és la segona passada És 2, però en mode G91 es basa en l'anterior.
(1) Ranurat
imatge
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Arriba ràpidament al punt de partida
Z-10
R1=3
Definiu l'amplada de la fulla com a 3 mm
R2=-10-R1-0.2
El punt de partida de l'eina és -10, i el costat esquerre de la fulla s'utilitza quan es configura l'eina;
Configuració de l'eina, de manera que s'ha de restar l'amplada de la fulla, 0.2 és el marge d'acabat
G1Z=R2F0.1
L'eina arriba al punt inicial de l'eix Z
AA:R2=R2-2.5
R3=50
L'eix X de la ranura arriba al punt
BB: R3=R3-2
Definiu la profunditat de tall de cada ganivet com a 2 mm
G1X=R3
X=R3 més 1
0Retirada d'encenalls de 0,5 mm d'un costat cada 2 mm de profunditat de tall
IF R3>30 més 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, el programa salta cap enrere fins a la marca BB i 0,4 és el marge d'acabat
G0X50
L'eina arriba al punt inicial de l'eix X
G1Z=R2
IF R2>{{0}} més 0,2 GOTOB AA
Definiu l'amplada de la ranura com a 20mm i 0,2 és el marge d'acabat
G0X50
G01Z-13
acabat
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Retirar
G0X100
Z100
M05
M30
(2) El·lipse
1) Format bàsic
R1=0
Definiu la variable R1 amb un valor inicial de 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Segons l'equació de l'el·lipse, a és el semieix major de l'el·lipse, b és el semieix menor de l'el·lipse i SQRT és el símbol de l'arrel quadrada.
G1X=±2×R2 més XZ=R1-Z
Estableix la posició i la forma de l'el·lipse, més 2 és convex, -2 és còncau, X, Z són les distàncies entre l'eix de la peça de treball i l'eix de l'el·lipse (sistema de diàmetres).
R1=R1-1
Estableix el pas de processament
IF R1>=n GOTOB AA
Si la variable R1
2) Exemple de programació:
imatge
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
CICLE 95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 més 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP: X42
G0G40X100Z100
M05
M09
M30
(3) Paràbola
1) Format bàsic:
R1=0
Estableix el valor inicial de la variable R1 a 0
AA: R2=SQRT(-R1×n)
S'obté segons el format bàsic de la paràbola, on SQRT és el símbol de l'arrel quadrada, i n és el coeficient
G01X=2×R2 més n
Z=R1
El camí de processament, més 2 és convex, n és el valor del punt inicial de l'eix X
R1=R1-1
El valor d'increment variable és d'1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, el programa salta enrere a la marca: AA
2) Exemple de programació:
imatge
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CICLE 95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 més 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




