Apr 15, 2023 Dejar un mensaje

Hablemos de programas macro CNC

 

En pocas palabras, una macro es usar fórmulas para procesar partes. Por ejemplo, elipse, si no hay macro, necesitamos calcular los puntos en la curva punto por punto y luego aproximarlos lentamente con una línea recta. Si se trata de una pieza de trabajo con altos requisitos de suavidad, entonces necesitamos calcular muchos puntos, pero después de aplicar la macro, ingresamos la fórmula de la elipse en el sistema y luego le damos la coordenada Z y agregamos una cantidad cada vez, luego la macro calculará automáticamente la coordenada X y realizará el corte. De hecho, la función principal de la macro en el programa es el cálculo.

imagen

01

Acerca de los programas de macros

¿Qué es un programa de macros?

Al programar, almacenaremos en la memoria una serie de instrucciones que pueden realizar una determinada función como una subrutina, y las llamaremos con una instrucción general. Al usarlo, solo necesitamos dar esta instrucción general para ejecutar la función almacenada. Esta serie de instrucciones se denomina cuerpo del programa macro del usuario, o programa macro para abreviar.

Este comando general se denomina comando de llamada de macro de usuario. Al programar, los programadores solo necesitan memorizar instrucciones de macro pero no programas de macro.

¿Cuándo se utilizará la programación de macros?

1) Curva de fórmula de procesamiento programada manualmente (cálculo simple, entrada rápida)

2) Ruta de corte normal (como módulo de corte)

3) Control entre programas (programación de programas)

4) Gestión de herramientas (desgaste de herramientas)

5) Medición automática (sonda en máquina)

La diferencia entre el programa macro y el programa normal

1) En el cuerpo del programa macro, se pueden usar variables, se pueden asignar valores a las variables, se pueden realizar cálculos entre variables y se pueden saltar programas.

2) En los programas ordinarios, solo se pueden especificar constantes y no se pueden realizar operaciones entre constantes. Los programas solo se pueden ejecutar secuencialmente y no se pueden saltar, por lo que las funciones son fijas y no se pueden cambiar.

3) La función macro es una función especial para que el usuario mejore el rendimiento de la máquina herramienta CNC, y el uso hábil del programa macro en el procesamiento de piezas de trabajo similares logrará el doble de resultado con la mitad del esfuerzo.

02

Variables y formatos de los programas de macro

Características de los programas de macros.

El programa macro puede usar la variable, y la variable se puede usar para realizar las operaciones correspondientes; el valor real de la variable se puede asignar a la variable mediante la instrucción del programa macro.

Tres tipos de variables

La forma de representación de las variables del sistema CNC es "#" seguida de 1 a 4 dígitos, existiendo tres tipos de variables:

(1) Variables locales: #1~#33 son variables utilizadas localmente en el programa macro, que se utilizan para la transferencia de variables independientes.


(2) Variable común: el usuario puede usarla libremente, y es común a cada subrutina y cada programa macro llamado por el programa principal. #100~#149, después de apagar la alimentación, todos los valores de las variables se borrarán, mientras que #500~#509, después de apagar la alimentación, los valores de las variables se pueden guardar.


(3) Variable del sistema: se define seguida de 4 dígitos, puede obtener información de solo lectura o de lectura/escritura contenida en el procesador de la máquina herramienta o en la memoria NC, incluidos los parámetros de intercambio relacionados con el procesador de la máquina herramienta, la adquisición del estado de la máquina herramienta parámetros, información del sistema, como parámetros de procesamiento.

Formato de llamada simple del programa macro

La simple llamada del programa macro significa que en el programa principal, el programa macro puede ser llamado por un solo bloque.

Formato de invocación:

G65 P (número de macroprograma) L (número de repeticiones) (asignación de variables).

Entre ellos: G65: comando de llamada de programa macro;

P (número de programa macro) - el código del programa macro que se llamará;

L (número de repeticiones): el número de ejecuciones repetidas del programa macro, cuando el número de repeticiones es 1, se puede omitir;

(Asignación de variables) - Asignar valores a las variables utilizadas en el programa macro.

Lo mismo entre un programa macro y una subrutina es que un programa macro puede ser llamado por otro programa macro, hasta 4 veces.

Formato de escritura de macroprograma

El formato de escritura de un programa macro es el mismo que el de una subrutina. Su formato es:

0-(0001-8999 es el número del programa macro)

Comando N10

N-M99

En el contenido del programa macro anterior, además de las instrucciones de programación comúnmente utilizadas, también se pueden usar variables, instrucciones de operaciones aritméticas y otras instrucciones de control. El valor de la variable se asigna en la instrucción de llamada del programa macro.

03

Aplicación de programa de macros del sistema FANUC

(1) Programa macro de ranurado

imagen

1) declaración MIENTRAS

G00 X52 Z2;

#2=-14;

Es el punto de inicio de la herramienta en la dirección z (debido a que el ancho de la herramienta es de 4 mm, el punto de inicio se establece en Z-14)

MIENTRAS [#2 GE -30] DO2;

Es una restricción en la dirección z. Cuando z es igual a -30, la dirección z ya no se moverá

G00 Z〔#2〕;

La posición actual en la dirección z

#2=#2-2;

El paso de movimiento en la dirección z, moviéndose 2 mm cada vez

#1=52;

es el punto de partida del cuchillo en la dirección x

MIENTRAS [#1 GE 20] DO1;

Restricciones en la dirección X, cuando el diámetro es igual a 20, ya no cortará

G01 X〔#1〕F0.2;

Profundidad de corte en dirección x

G00 X〔#1 más 1〕;

Cantidad de retracción relativa en la dirección x

#1=#1-1;

Distancia de paso en dirección x (corte 1 mm cada vez)

FIN1;

G00 X52;

FIN2;

programa completo:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

MIENTRAS〔#2GE-30〕DO2; FIN1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

MIENTRAS 〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 más 1〕;

#1=#1-1;

G00 X52;

FIN2;

G00 X150 Z150;

M30;

2) declaración SI

G00 X52 Z-2;

#1=-14;

Es el punto de inicio de la herramienta en dirección z (el ancho de la herramienta es de 4 mm)

N2 #1=#1-2;

es el paso de movimiento en la dirección z

#2=52;

es el punto inicial de la herramienta en la dirección x

N1#2=#2-1;

es la distancia de paso en la dirección x (profundidad de corte 1 mm cada vez)

G01 X〔#2〕F0.2;

Posición actual en la dirección X

G00 X〔#2 más 1〕;

Cantidad de retracción relativa en la dirección X

SI [#2 GE 21] GOTO1;

Restricciones en la dirección x (cuando el valor de x se reduce a 20, se realizará el siguiente procedimiento y no se realizará ninguna devolución)

G00 X52;

X se retrae a la posición 52

G00 Z〔#1〕;

Posición actual en dirección Z

SI [#1 GE -30] GOTO2;

Restricciones en la dirección Z, cuando z es igual a -30, la dirección z no se moverá

programa completo:

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〕;

SI 〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

SI[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Programación de elipse

1) El formato estándar de la declaración de elipse WHILE:

#1=a;

a: El punto de partida de la herramienta está en la dirección positiva a mm con respecto al eje Z de la elipse

MIENTRAS [#1 GE b] DO1;

b: el punto final del procesamiento de elipses está en la dirección negativa b mm en relación con el eje Z de la elipse (si se procesa una semielipse completa, entonces a y b son dos valores con el mismo valor y signos diferentes)

#2= c*SQRT[1-#1*#1/d*d];

c: el semieje menor de la elipse

d: semieje mayor de la elipse (calcule el #2 de acuerdo con la fórmula de la elipse, el semieje mayor es d, el semieje menor es c, el #2 representa el valor de X, el #1 es el valor de Z , y SQRT significa raíz cuadrada)

G01 X〔±2*#2 más e〕Z〔#1±f〕;

e: El desplazamiento (valor del diámetro) del eje X de la elipse en relación con el sistema de coordenadas de la pieza

f: El desplazamiento del eje Z de la elipse en relación con el sistema de coordenadas de la pieza

#1=#1-1; distancia de paso (moviéndose 1 mm cada vez)

FIN1;

Nota: Al girar una elipse cóncava, el "±" entre paréntesis después de X se toma como "-"; al girar una elipse convexa, el "±" entre paréntesis después de X se toma como "más".

Cuando el eje X de la elipse cambia a la dirección positiva, el "±" entre paréntesis después de Z toma "más"; cuando el eje X de la elipse cambia a la dirección negativa, el "±" entre paréntesis después de Z toma "-"

2) El formato estándar de la declaración IF elíptica

#1=a;

a: El punto de partida de la herramienta está en la dirección positiva a mm con respecto al eje Z de la elipse

N1#2=b*SQRT〔1-#1*#1/c*c〕;

b: semieje corto de la elipse c: semieje mayor de la elipse (según la fórmula de la elipse X/c más Y/b=1, SQRT significa raíz cuadrada)

G01X〔±2*#2 más d〕Z〔#1±e〕F0.2; d: el desplazamiento (valor del diámetro) del eje X de la elipse con respecto al punto cero de coordenadas e: el eje Z de la elipse con respecto al plano cero Desplazamiento

#1=#1-1;

Distancia de paso (moviéndose 1 mm cada vez)

SI [#1 GE -f] GOTO1

f: Terminación del procesamiento de elipse

 

Nota: Al girar una elipse cóncava, el "±" entre paréntesis después de X se toma como "-"; al girar una elipse convexa, el "±" entre paréntesis después de X se toma como "más". Cuando el eje X de la elipse se desvía hacia la dirección positiva, el "±" entre paréntesis después de Z toma "más"; cuando el eje X de la elipse se desvía hacia la dirección negativa, el "±" entre paréntesis después de Z toma "-".

imagen

MIENTRAS declaración

#1=20;

MIENTRAS〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 más 50〕Z〔#1-25〕;

#1=#1-1;

FIN1;

declaración 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;

SI[#1GE-20]GOTO1;

programa completo

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;

MIENTRAS〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 más 50〕Z〔#1-25〕F0.2;

#1=#1-1;

FIN1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Se omite el formato completo de la declaración IF (lo mismo es cierto para la declaración IF, siempre que se agregue el ciclo). En el sistema FANUC-0i, el programa macro solo se puede agregar en G73.

(3) Procesamiento de parábola

1) El formato estándar de la sentencia WHILE parabólica:

#1=a;

a: El punto de partida de la herramienta es un mm en la dirección del eje parabólico Z

MIENTRAS [#1 GE-b] DO1;

b: es la longitud de procesamiento de la elipse en la dirección z

#2=SQRT〔-#1*5/3〕;

(Según la fórmula parabólica Z=-3/5*X*X, encuentre el valor de X, que es #2, donde SQRT significa la raíz cuadrada)

G01 X〔±2*#2 más c〕Z〔#1〕;

c: es el desplazamiento (valor del diámetro) del eje X de la parábola relativo al sistema de coordenadas de la pieza, "±"

Al tomar "más", es convexa, y al tomar "-", es cóncava

#1=#1-1; Distancia de paso (moviéndose 1 mm cada vez)

FIN1;

2) El formato estándar de la declaración IF parabólica

#1=a;

a: El punto de partida de la herramienta es un mm en la dirección del eje parabólico Z

N1 #2=SQRT〔-#1*5/3〕;

(Según la fórmula parabólica Z=-3/5*X*X, encuentre el valor de X, que es #2, donde SQRT significa la raíz cuadrada)

G01 X〔±2*#2 más b〕Z〔#1〕;

b: Es el desplazamiento (valor del diámetro) del eje de dirección X de la parábola en relación con el punto cero de la coordenada. Cuando "±" toma "más", es convexa, y cuando se toma "-", es cóncava

#1=#1-1;

(distancia de paso en dirección Z, cada movimiento es de 1 mm)

SI〔#1 GE -c〕GOTO1; c: la longitud de procesamiento de la elipse en la dirección z

FI parabólica

otra forma de oración

#1=a;

N1 #2=SQRT〔( más )#1*5/3〕;

El signo "más" se puede omitir

G01 X〔2*#2 más b〕Z〔-#1〕;

#1=#1 más 1;

SI [#1 LEc] GOTO1;

Suponiendo que la parábola está en la dirección positiva de Z, utilice Z〔-#1〕; hacer la parábola simétrica a la dirección negativa

imagen

MIENTRAS declaración

#1=0;

MIENTRAS [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 más 30〕Z〔#1〕;

#1=#1-1;

FIN1;

declaración SI

#1=0;

N1 #2=SQRT〔-#1*5/3〕;

G01X〔2*#2 más 30〕Z〔#1〕;

#1=#1-1;

SI [#1 GE -15] GOTO1;

programa completo

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;

MIENTRAS [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 más 30〕Z〔#1〕;

#1=#1-1;

FIN1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) La diferencia entre la declaración WHILE y la declaración IF

1) Las direcciones de las dos declaraciones son diferentes

La declaración WHILE regresa al revés

Ejemplo: MIENTRAS〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Suponiendo que cuando la máquina herramienta ejecute esta sentencia, #1=20, seguirá ejecutándose. Después de ejecutar #1=#1-1, el valor de #1 se convierte en 19, que ya no cumple con las condiciones de restricción, por lo que no volverá. (Corte a 20 en la dirección X)

G00 X〔#1 más 1);

#1=#1-1;

FIN1;

2) La declaración IF regresa hacia adelante

Ejemplo: N1 #2=#2-1;

G01X〔#2〕F0.2; Suponiendo que #2=20 cuando la máquina herramienta ejecute esta sentencia, continuará ejecutándose hasta IF〔#2 GE 20〕GOTO1; si la condición aún se cumple, continuará volviendo a N1# 2=#2-1; y el valor actual de X se convertirá en 19, que ya no cumple con las condiciones de restricción, y luego ejecutará otro

G01X〔#2〕F0.2; Finalmente, ejecute el siguiente programa (la dirección X se ha reducido a 19)

G00X〔#2 más 1);

SI [#2 GE 20] GOTO1;

3) Como se puede ver en el programa de ranurado anterior, el número de palabras en la instrucción IF es mucho menor que el de la instrucción WHILE.

4) Debido a las diferentes direcciones de retorno, lea una oración menos para la declaración WHILE y una oración más para la declaración IF durante el procesamiento.

04

Aplicación de programa macro del sistema SIEMENS (torno)

Nota: El programa macro está programado con variables, y el número de variable del sistema Siemens está representado por R.

Por ejemplo, escrito en el método de programación común: G01X-10

El programa macro se puede expresar como:

R1=-10

G01 X=R1

Transferencia condicional:

SI GOTOB: salta hacia atrás

SI GOTOF: saltar hacia adelante

escrito en programación común

IR1X100

Las variables se pueden expresar como:

R1=0

AA: R1=R1 más 1

G01X=R1

SI R1<100 GOTOB AA

R1 es una variable independiente, el valor inicial es 0, R1=R1 más 1 significa que el valor incremental de la variable independiente es 1, cuando el programa pasa por esta línea cada vez, el valor de R1 aumenta 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 es mayor o igual a 100, el programa se cae.

Los programas de macros se pueden usar en los modos G90 y G91, pero sus significados son diferentes, por ejemplo;

R1=0, G90R1=R1 más 1, G1X=R1, el valor de X después de la segunda pasada de este programa es 2.

R1=0, G91R1=R1 más 1, G1X=R1, el valor de X después de la segunda pasada del programa es 3. Explicación: El valor de R1 es 1 después de la primera pasada del programa, y ​​el valor de R1 es la segunda pasada Es 2, pero en modo G91 se basa en la anterior.

(1) Ranurado

imagen

T1

CT

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

llegar rápidamente al punto de partida

Z-10

R1=3

Defina el ancho de la hoja como 3 mm.

R2=-10-R1-0.2

El punto de inicio de la herramienta es -10, y el lado izquierdo de la cuchilla se usa al configurar la herramienta;

Configuración de la herramienta, por lo que se debe restar el ancho de la hoja, 0.2 es el margen de acabado

G1Z=R2F0.1

La herramienta alcanza el punto inicial del eje Z

AA:R2=R2-2.5

R3=50

El eje X de la ranura llega al punto

BB: R3=R3-2

Defina la profundidad de corte de cada cuchilla como 2 mm

G1X=R3

X=R3 más 1

0Remoción de virutas de 0,5 mm en un lado cada 2 mm de profundidad de corte

IF R3>30 más 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, el programa salta hacia atrás a la marca BB, y 0,4 es la tolerancia de acabado

G0X50

La herramienta alcanza el punto inicial del eje X

G1Z=R2

IF R2>{{0}} más 0,2 GOTOB AA

Defina el ancho de la ranura como 20mm, y 0,2 es el margen de acabado

G0X50

G01Z-13

refinamiento

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Retirar

G0X100

Z100

M05

M30

(2) Elipse

1) Formato básico

R1=0

Defina la variable R1 con un valor inicial de 0

AA:R2=b×SQRT(1-R1×R1/a×a)

De acuerdo con la ecuación de la elipse, a es el semieje mayor de la elipse, b es el semieje menor de la elipse y SQRT es el símbolo de la raíz cuadrada.

G1X=±2×R2 más XZ=R1-Z

Establezca la posición y la forma de la elipse, más 2 es convexo, -2 es cóncavo, X, Z son las distancias entre el eje de la pieza de trabajo y el eje de la elipse (sistema de diámetro).

R1=R1-1

Establecer el paso de procesamiento

IF R1>=n ​​GOTOB AA

Si la variable R1

2) Ejemplo de programación:

imagen

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

CICLO95 ( )

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) Formato básico:

R1=0

Establezca el valor inicial de la variable R1 en 0

AA: R2=SQRT(-R1×n)

Obtenido según el formato básico de la parábola, donde SQRT es el símbolo de la raíz cuadrada, y n es el coeficiente

G01X=2×R2 más n

Z=R1

La ruta de procesamiento, más 2 es convexa, n es el valor del punto de inicio del eje X

R1=R1-1

El valor de incremento variable es de 1 mm.

IF R1>-30 GOTOB AA

If the variable R1>-30, el programa retrocede hasta la marca: AA

2) Ejemplo de programación:

imagen

T1

tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

CICLO95 ( )

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

Envíeconsulta

whatsapp

skype

Correo electrónico

Consulta