0% encontró este documento útil (0 votos)
49 vistas24 páginas

Programación Macro B PDF

El documento describe las funciones MACRO B del CNC FANUC, que permiten la programación de variables y operaciones lógicas/aritméticas. Esto es útil para piezas complejas y familias de piezas. Las variables pueden ser locales (#1-#33), comunes (#100-#149,#500-#531) o de sistema (#1000+). Las operaciones incluyen suma, resta, IF/THEN y bucles WHILE.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas24 páginas

Programación Macro B PDF

El documento describe las funciones MACRO B del CNC FANUC, que permiten la programación de variables y operaciones lógicas/aritméticas. Esto es útil para piezas complejas y familias de piezas. Las variables pueden ser locales (#1-#33), comunes (#100-#149,#500-#531) o de sistema (#1000+). Las operaciones incluyen suma, resta, IF/THEN y bucles WHILE.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

11.

MACROB
11 - MACRO B

La función MACRO B se utiliza cuando se desea trabajar en la programación de piezas.


complejas, “familias de piezas” y otras funciones especiales tales como: operaciones aritméticas,
desvíos condicionales, contador, comandos de comparación, etc...

Este tipo de programación se realiza a través de la asignación de valores a variables.

Un programa puede invocar una MACRO utilizando el comando G65 para la llamada
de un subprograma..
Ejemplo:

PROGRAMA DE USINAGEM MACRO

O0001 (PROGRAMA PRINCIPAL) O9130 (PROGRAMA MACRO)


G17 G21 G90 G94 :
: #1=#18/2
: G01 G42 X#1 Y#1 F300
G65 P9130 R50 L2 G02 X#1 Y#1 R#1 :
: :
: M99
M30

Explicación:

Cuando definimos una variable, especificamos un símbolo (#) seguido por el número
de la variable. Ejemplo: #1

Una expresión puede ser usada para especificar el número de una variable, en ese
Caso, la expresión debe estar expresada entre corchetes.
Ejemplo: # [#1+#2-12]

11.1 - TIPOS DE VARIÁVEIS

Las variables se clasifican en 4 tipos:

a) #0 - Siempre nula, es decir, ningún valor puede ser asignado a esta variable;
b) #1 - #33 - Variables locales. Solo pueden ser usadas en macros para cargar datos
como resultado de operaciones. Cuando se inicia el comando, las variables locales son
inicializadas sin valores (nulos).
Cuando se invoca una macro, se pueden asignar valores a las variables locales;
c) #100 - #149 (#199) / #500 - #531 (#999) - Variables comunes. Pueden estar parcialmente
entre diferentes programas Macros. Cuando el comando está apagado, las variables #100 a
#531 mantiene el último valor que se le ha atribuido. Dentro de la gama de variables comunes
aún tenemos las variables #150 a #199 y #532 a #999 ;
d) #1000 - Variables del Sistema. Se utilizan para leer una serie de datos NC como:
posición actual, valores de compensación de herramienta, etc...

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 65


11. MACROB

11.2 - GAMA DE VALORES PARA LAS VARIABLES

Las variables locales y comunes pueden tener un valor = 0 o un valor en el siguiente rango

-1047a -10-29
10-29un 1047
Se el resultado del cálculo es inválido, es decir, está fuera de este rango de valores, el
La alarma 111 será mostrada.

11.3 - OMISIÓN DEL PUNTO DECIMAL

Cuando un valor de variable se defina en un programa, el punto decimal puede ser


omitido.
Ejemplo: Cuando #1=123 está definido, el valor real de la variable #1 es 123.000

11.4 - REFERENCIANDO VARIÁVEIS

Para referenciar el valor de una variable en un programa, especifique la dirección


seguido pelo número da variável. Quando uma expressão for usada para especificar uma
variable, incluya la expresión entre corchetes.
Ejemplo:
G01 X[#1+#2] F#3

Un valor de variable se redondea automáticamente de acuerdo con el mínimo


incremento de la dirección
Ejemplo:
Cuando G0 X#1 está programado y el valor de #1 es 12,3456, si el CNC presenta un valor
mínimo de programación de 0,001 mm, el comando a ser ejecutado será G0 X12,346.

Pararevertirelsignodelvalordeunavariable,programaelsignomenos(-).
Ejemplo:
G0 X-#1

11.5 - OPERACIONES ARITMÉTICAS Y OPERACIONES LÓGICAS

Las operaciones enumeradas en la siguiente tabla pueden ser ejecutadas con variables.
La expresión a la derecha de la operación puede contener constantes y/o variables combinadas
por una función u operación.
Las variables #J y #K pueden ser sustituidas por una constante.
Las variables de la izquierda también pueden ser sustituidas por una expresión.

66 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

11.5.1 - Tabla de operaciones aritméticas y operaciones lógicas

FUNCIÓN FORMATO
DEFINICIÓN #I=#J

SOMA #I=#J+#K

DIFERENCIA #I=#J-#K

producto #I=#J*#K

Cociente #I=#J/#K

SENO #I=SIN[#J]

COSSENO #I=COS[#J]

TANGENTE #I=TAN[#J]

ARCO TANGENTE #I=ATAN[#J]/[#K]

RAÍZ CUADRADA #I=RAIZ[#J]

VALOR ABSOLUTO #I=ABS[#J]

REDONDEO #I=REDONDEAR[#J]

REDONDEO HACIA ABAJO #I=FIX[#J]


REDONDEO HACIA ARRIBA #I=FUP[#J]

O #I=#J O #K

XOR #I=#J XOR #K

Y #I=#J Y #K

CONVERSIÓN DE BCD A BIN BIN[#J]

CONVERSIÓN DE BIN A BCD #I=BCD[#J]

OBSERVACIÓN: Una operación lógica se ejecuta en números binarios bit a bit.

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 67


11. MACROB

Explicación:

UNIDADES DE ÁNGULO-Las unidades de ángulos usadas con las funciones SIN, COS,
TAN y ATAN son en grados.
Ejemplo: 90°30’ = 90,5°.

FUNCIÓN ATAN - Después de la FUNCIÓN ATAN, especificando la longitud de dos lados


separados por una barra se obtiene un resultado donde 0 < resultado < 360.
Ejemplo: Cuando #1=ATAN[1]/[1], el valor de la variable #1 es 135.

FUNCIÓNARREDONDAMIENTO - Cuando se incluye una función de redondeo en


una operación aritmética o lógica, la función ROUND redondea el primer decimal.
Ejemplo: Cuando se ejecuta #1=ROUND[#2] donde la variable #2 contiene el valor 1,2345,
el valor para la variable #1 es 1.

La función de redondeo aproxima el valor especificado según el incremento


mínimo de entrada.
Ejemplo: Un programa de huracanes que realiza un movimiento según los valores de
variables #1 and #2 and then returns to the initial position.

Suponiendo que el sistema presente incrementos mínimos de 1/1000mm, la variable


#1 contiene el valor almacenado de 1,2347 y la variable #2 contiene el valor almacenado de
2,3456.
Dai temos:
G00 G91 X-#1 Movimiento de 1,235mm
G01 X-#2 F300 Movimiento de 2,346 mm
* G00 X[#1+#2]

Considerando que 1,2347+2,3456=3,5803, la distancia real de desplazamiento será 3,580


de esta forma, la herramienta no retorna la posición inicial.
Para que este retorno ocurra se debe programar:
* G0 X[REDONDEAR[#1]+REDONDEAR[#2]]

Ejemplo sobre las funciones FUP y FIX.


Suponga que #1=1,2 y #2=-1,2;
Cuando se ejecuta el comando #3 = FUP[#1], se asigna el valor 2 a la variable.
3. Cuando se ejecuta el comando #3 = FIX[#1], se asigna el valor 1 a la variable 3.
Cuando se ejecuta el comando #3 = FUP[#2], se asigna el valor -2 a la variable 3.
Cuando se ejecuta el comando #3 = FIX[#2], se asigna el valor -1 a la variable 3.

11.6 - PRIORIDADES DE OPERACIONES

Funciones
2 - Operaciones como multiplicación y división (*, /, Y)
3 - Operaciones como adición y sustracción (+,-,OR,XOR)

68 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB
Ejemplo:
#2+#3*SIN[#4]

Primera resolución SIN[#4].


Segunda resolución #3*SIN[#4].
Tercera resolución #2+#3*SIN[#4].

11.7 - NIVELES DE COCHETES

Para modificar las órdenes de las operaciones debe usarse corchetes [].
Los corchetes se pueden usar en hasta 5 niveles, incluyendo los corchetes utilizados para
fechar la expresión. Cuando se supere un nivel de 5 corchetes, una alarma 118
ocorrerá.

Ejemplo:
SIN[[[#2+#3]*#4+#5]*#6]

1ª operación [#2+#3]
2ª operación [#2+#3]*#4
3ª operación [[#2+#3]*#4+#5]
4ª operación [[#2+#3]*#4+#5]*#6
5ª operación SIN[[[#2+#3]*#4+#5]*#6]

11.8 - DESVIO Y REPETICIÓN

En un programa, el flujo de control se puede modificar usando la declaración GOTO y


la declaración IF de desvío y repeticiones.
Se utilizan tres tipos de operaciones:

1ª GOTO - desvío incondicional


2ª IF - desvío condicional: SI, ENTONCES.
3ª WHILE - repetición: ENCUANTO.

11.8.1 - Desvío incondicional - GOTO

Ejecuta una desviación para el número de secuencia N.


Cuando se especifica un número de secuencia que no está comprendido entre 1 y 99999,
una alarma 128 será mostrada.
También se puede especificar un número de secuencia usando una expresión.

IR A N N - número de secuencia (1 hasta 99999)

Ejemplo:
GOTO500; (desvía al bloque N500)

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 69


11. MACROB
11.8.2 - Desvío condicional - IF

Especifique una expresión condicional después de 'Si'. Si la expresión condicional es


verdadeira se ejecuta un desvío para el número de secuencia N. Si la expresión condicional
si es falso, se ejecuta el siguiente bloque.

Ejemplo:
Si el valor de la variable #1 es superior a 10, se ejecuta un desvío al número de secuencia
N2.

si es falsa a SI [#1GT10] IR A 2
condición si es verdadera la
procesamiento condición
N2 G00 G91 X10

Explicaciones:

Expresión condicional - Una expresión condicional debe incluir un operador colocado


entre las variables o entre una variable y una constante y debe estar entre corchetes.
En lugar de una variable se puede usar una expresión.
Operadores - Los operadores están formados por dos letras y se utilizan para comparar
dos valores con la finalidad de determinar si son iguales o si un valor es menor o mayor
que otro valor.

OPERADOR SIGNIFICADO
CI Igual a
NE Diferente de
GT Mayor que
GE Mayor o igual a
LT Menor que
LE Menor o igual a

Programa ejemplo: Determinar la suma de los números del 1 al 10.

O9100
#2=1 - Valor inicial de la variable #2=1
N1 SI[#2 GT10] IR A 2 - Desviar a N2 si #2 es mayor que 10
#2+1 - Incrementando a la variable
IR A 1 - Desviar para N1
N2 M30 Fin del programa

Los valores de las variables #2 en cada etapa.


#2=2,3,4,5,6,7,7,8,9,10,11.

70 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB
11.8.3 - Repetición - WHILE

Especifique una expresión condicional después de WHILE. Mientras la condición


especificada como verdadera, el programa se va ejecutando desde la declaración DO hasta
la declaración FIN. Si la condición especificada es falsa, el programa pasa a ejecutarse
en el bloque que sigue a la declaración FIN.

MIENTRAS [expresión condicional] HACER (m=1,2,3)


si es verdadero
Procesamiento la condición
si es falso
la condición :
:
FIN
:
:

Explicación:
Mientras la condición especificada después de WHILE sea verdadera, el programa continúa
siendo ejecutado desde la declaración DO hasta la declaración END.
Si la condición especificada es falsa, el programa continúa ejecutándose a partir de
bloque que viene después de FIN.
Un número después de DO y un número después de END son números de identificación
para especificar un intervalo de ejecución.
Se deben usar los números 1, 2 y 3. Cuando se usa un número diferente de 1, 2 y 3
será mostrado o alarme 126.

11.8.4 - Niveles de rutinas usando la función WHILE

Los números de identificación del 1 al 3 en una desviación DO-END pueden ser usados
cuántas veces desee. Tenga en cuenta, sin embargo, que cuando un programa incluye rutinas de repetición
entrelaçados (intervalos do sobrepostos) um alarme 124 ocorrerá.
a) Los números de identificación (1 a 3) pueden ser usados varias veces como
deseado.

MIENTRAS [.....] HACER1


:
ejecución
:
FIN1
:
MIENTRAS [.....] HACER
:
ejecución
:
FIN1

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 71


11. MACROB
b) No podemos superponer los intervalos DE

MIENTRAS [.....] HACER


:
ejecución
:
MIENTRAS [.....] HACER
:
FIN 1
:
ejecución
:
FIN 2

c) Las rutinas DO pueden entrelazarse hasta un máximo de 3 niveles.

MIENTRAS [.....] HACER1


:
MIENTRAS [.....] HACER2
:
MIENTRAS [.....] HACER
:
ejecución
:
FIN3
:
FIN2
:
FIN1

d) El comando puede ser transferido a una rutina externa.

MIENTRAS [.....] HACER1


:
SI [.....] IR A n
:
FIN1
:
Nn

e) Los desvíos no pueden ocurrir en un punto dentro de la rutina.

SI [.....] IR A n
:
MIENTRAS [.....] HACER1
:
Nn
:
FIN1

72 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB
11.9 - LIMITES

Cuando se especifica DOm sin especificar la declaración WHILE, se ejecuta una


rutina infinita que va desde DO hasta END.
Tiempo de procesamiento: Cuando se ejecuta una desviación a un número de secuencia
específico en una declaración GOTO, se busca un número de secuencia.
Por este motivo, el procesamiento en sentido inverso (hacia atrás) toma más tiempo que
el procesamiento en sentido directo (hacia adelante).
Utilizando la declaración WHILE para repetición se reduce el tiempo de procesamiento.

11.10 - VARIABLE UNDEFINED

En una expresión condicional que utiliza EQ o NE, una variable nula y el cero tienen
efectos diferentes. En otros tipos de expresiones condicionales, un valor nulo se considera
cero.

11.11 - LLAMADA DE MACROS

Se puede invocar un programa macro usando los métodos de llamada simple (G65)
e llamada modal (G66).

11.11.1 - Diferencias entre llamadas de macro y llamadas de subprogramas

La llamada de macro (G65) es diferente de la llamada a un subprograma (M98) como


se describe a continuación:
a) Con G65 se puede especificar un argumento (dato transferido a una macro), M98
no permite hacerlo.
b) Cuando un bloque M98 contiene otro comando - ej.: G01 X100 M98 P___ -; si
llama al subprograma después de ejecutar el comando. Por otro lado, G65 llama
incondicionalmente una macro.
c) Cuando un bloque M98 contiene otro comando - ej.: G01 X100 M98 P__ -; la máquina
para no modo bloco a bloco, por outro lado el G65 no detiene la máquina.
d) Con G65, el nivel de variables locales varía, con M98 el nivel de variables locales
no varía.

11.11.2 - Llamada Simple (G65)

Cuando se especifica G65, se llama a una macro especificada en la dirección P. Los datos
(argumentos) pueden ser transferidos a un programa macro.

Sintaxis:

G65 P____ L_____

Dónde:

P ___ ; número del programa que contiene la macro


L ___ ; número de repeticiones (1=predeterminado)

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 73


11. MACROB

Ejemplo:
O0001 O1000
G65 P1000 A1 B2 #1 + #2
M30 SI[#3 GT360] IR A 9
G0 G91 X #3
N9 M99

Explicaciones:

Después de G65 se especifica la dirección P con el número del programa que contiene la macro.
Cuando el número de repeticiones sea necesario, se especifica el número de 1 a 9999. Cuando
si el número es omitido, la repetición será única. Utilizando una especificación del argumento si
asigne valores a las correspondientes variables locales.

11.12 - ESPECIFICACIONES DE ARGUMENTOS

Existen dos tipos de especificaciones de argumentos. La especificación de argumentos


Uso letras diferentes de G, L, O, N y P.
La especificación de argumentos II utiliza las letras A, B, C y también I, J, K hasta diez
veces.
El tipo de especificación del argumento está determinado automáticamente por las letras
utilizadas.
Ejemplo:

O0001 (PROG. PRINCIPAL - ARG. TIPO I) O1000 (MACRO)


G65 P1000 I0 J0 K0 D100 E50 F-20 H2 G0 X[#4] Y[#5]
M30 Z[#6+2]
MIENTRAS [#6 GT #9] HACER1
OU G1 Z[#6] F500
X[#7]
O0001 (PROG. PRINCIPAL - ARG. TIPO II) Y[#8]
G65 P1000 I0 J0 K0 I100 J50 K-20 J2 X[#4]
M30 Y[#5]
#6-#11
FIN1
M99

74 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB
11.12.1 - Especificación de argumentos I

DIRECCIÓN NÚMERO DE LA VARIABLE


A #1
B #2
C #3
D #7
E #8
F #9
H #11
Yo #4
J #5
K #6
M #13
Q #17
R #18
S #19
T #20
U #21
V #22
W #23
X #24
Y #25
Z #26

OBSERVACIÓN: Las direcciones G, L, N, O, y Pno pueden ser utilizadas como argumento.


las direcciones que no se usan pueden ser omitidas, las variables locales correspondientes
a una dirección omitida se configuran como nulas.

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 75


11. MACROB
11.12.2 - Mezcla de las especificaciones de los argumentos I y II

DIRECCIÓN NÚMERO DE LA VARIABLE


Una #1
B #2
C #3
Yo1 #4
J1 #5
K1 #6
Yo2 #7
J2 #8
K2 #9
Yo3 #10
J3 #11
K3 #12
Yo4 #13
J4 #14
K4 #15
Yo5 #16
J5 #17
K5 #18
Yo6 #19
J6 #20
K6 #21
Yo7 #22
J7 #23
K7 #24
Yo8 #25
J8 #26
K8 #27
Yo9 #28
J9 #29
K9 #30
Yo10 #31
J10 #32
K10 #33

OBSERVACIÓN: Los subíndices de I, J, K, para indicar el orden de la especificación de


los argumentos no se registran en el programa.

76 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

11.13 - LIMITACIONES

Formato: antes de cualquier argumento debe especificar G65

Mescla de especificações de argumentos I e II: se existe a mescla dos argumentos I e II


tieneprioridadeltipoespecificadoenúltimolugar.

Niveles de llamadas: se pueden programar desvíos de llamadas en un máximo de 4


níveis. Aquí no se incluyen las llamadas de un subprograma (M98)

11.14 - NIVELES DE VARIABLES LOCALES.

Existen variables locales desde el nivel 0 hasta el nivel 4 para programación de desvío. El
nível del programa principal y el cero.
Cada vez que se llama a una macro con G65 o G66, el nivel de la variable local aumenta
1. Los valores de las variables locales del nivel anterior se almacenan en el CNC.
Cuando se ejecuta un M99 en un programa de macro, el comando regresa a la
programa donde hubo el desvío. En este momento, el nivel de la variable local es decrementado
en una unidad. Los valores de las variables locales almacenadas se restablecerán cuando
una macro para chamada.

Programa
Macro Macro Macro Macro
Principal

Nivel 0 Nivel 1 Nivel 2 Nivel 3 Nivel 4

O0001 O0002 O0003 O0004 O0005


1 : : : :
G65 P2 A20 G65 P3 A45 G65 P4 A0.2 G65 P5 A50 :
: : : : G0 X[#1]
G4 X[#1] G1 X[#1]F.15 G0 Z[-#1] G1 X32 F[#1] 50
1 (#1 = 20) (#1 = 45) (#1 = 0.2) :
: : : : :
M30 M99 M99 M99 M99

OBSERVACIÓN: Para cada nivel de subprograma pueden ser utilizadas 33 variables


locales, es decir, de la variable #1 hasta la #33.

11.15 - VARIABLES COMUNES

#100 - , #500 - Variables that can be read and written by macros in different
niveles.

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 77


11. MACROB
11.16 - LLAMADA MODAL (G66)

La función G66 hace que la llamada a una determinada macro se convierta en modal hasta
que la misma sea cancelada por la función G67.

Sintaxis:

G66 P___ L____ ......

Dónde:

P - número del subprograma


L - número de repeticiones

Explicaciones:
Después de especificar G66, programa la dirección P con el número del programa que contiene
una macro. Cuando se desea el número de repeticiones, la dirección L puede contener un número
de 1 a 9999. Así como se usa en la función G65, los datos se transfieren a un programa
de macro a través de argumentos.
Cancelación: Cuando se especifica un código G67 ya no se exceptúan las llamadas.
modales en los bloques posteriores.
Niveles de llamadas: Las llamadas pueden ser especificadas usando desvíos de hasta 4
níveis incluindo as chamadas modais.
Niveles de llamadas modales: Se puede activar una llamada modal dentro de otras
especificando otro código G66.
Limitaciones: En un bloque G66 no se pueden activar macros. G66 debe ser especificado.
antes de cualquier argumento.
Las variables locales (argumentos) pueden ser definidas únicamente en bloques G66.

Ejemplo:
O0001 (PROG. PRINCIPAL) O7999 (MACRO FURACAO)
: G0 Z[#18]
T03 (HURACÁN) G1 Z[#26] F[#9]
M6 G0 Z[#18]
G54 S1800 M3 M99
G0 X0 Y0 M8 (#18 = R)
G43 Z10 H03 (#26 = Z)
G66 Z-15 R2 F0.1 P7999 (#9 = F)
X0 Y0
X100
Y50
Y0
G67
G53 G0 Z0 G49 M9
M30

78 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

11.17 - EJEMPLOS DE PROGRAMACIÓN:

A continuación se presentan algunos ejemplos de aplicación de la programación parametrizada.

Ejemplo 1: Programa parametrizado para hacer una familia de piezas, conforme al


dibujo abajo:

O0001 (FAMILIA 1) N220 M6


N10 #1=60 (COMPRIMENTO 1) N230 G54 S3500 M3
N20 #2=100 (LONGITUD TOTAL DE LA PIEZA) N240 G0 X-[#9+#14] Y-[#9+#14] M8
N30 #3=30 (ANCHO 1) N250 G43 Z[#11+#15] H3 D3
N40 #4=60 (ANCHO TOTAL DE LA PIEZA N260 G0 Z[#20]
N50 #5=5 (LARG. DO CHANFRO x 45 GRAUS) N270 G42 G1 X0 Y0 F[#10]
N60 #6=25 (RAIO 1) N280 X[#1] ,R[#8]
N70 #7=7 (RAIO 2) N290 X[#2] Y[#3]
N80 #8=20 (RAIO 3) N300 Y[#4] ,C[#5]
N90 #9=20 (DIÁMETRO DE LA HERRAMIENTA) N310 X[#6]
N100 #10=400 (AVANCO) N320 G2 X0 Y[#4-#6] R[#6] ,R[#7]
N110 #11=0 (Z INICIAL) N330 G1 Y0
N120 #12=-20 (Z FINAL) N340 G40 X-[#9+#14]Y-[#9+#14]
N130 #13=2 (PROFUNDIDAD DE CORTE) N350 #20=[#20-#13]
N140 #14=5 (FOLGA P/ APROXIM. EM X E Y) N360 SI [#16 EQ 1] IR A 420
N150 #15=5 (FOLGA P/ APROXIM. EM Z) N370 SI [ #20 GT #12 ] IR A 260
N160 #16=0 (RECONOCE ÚLTIMO PASO) N380 #16=1
N170 #9=#9/2(CÁLCULO DEL RADIO FERRAM.) N390 G0 Z[#12]
N180 #20=#11- #13 (COORD. 1A. PASSADA) N400 GOTO270
N190 G17 G21 G90 G94 N410 G0 Z[#11]
N200 G53 G0 Z0 G49 N420 G53 G0 Z0 G49 M5
N210 T3 N430 M30

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 79


11. MACROB

Ejemplo 2: Programa parametrizado para crear una subrutina sin utilizar el recurso
de subprograma:

O0001 (PECA CON SUBRUTINA) G1 X-50


G53 G0 Z0 G49 Y0
T15 G40 X-65 Y0 F5000
M06 [#4- #3]
G54 S3600 M03 FIN1
G00 X-65 Y0 (***ACABADO***)
G43 Z10 H15 D15 G0 Z[#2]
0 (Z INICIAL) G41 G1 X-50 F1000
#2=-20 (Z FINAL) Y75
#3=2 (PROF.CORTE) X-30 ,R10
[#1 - #3] (VAR. CÁLCULO) G2 X30 Y75 R30 ,R10
G0 Z[#1+2] G1 X50
MIENTRAS [#4 GT #2] HACER1 Y-75
G0 Z[#4] X30 ,R10
G41 G1 X-50 F1000 G2 X-30Y-75 R30 ,R10
Y75 G1 X-50
X-30, R10 Y0
G2 X30 Y75 R30 ,R10 G40 X-65 Y0 F5000
G1 X50 G0 Z[#1+2]
Y-75 G53 G0 Z0 G49
X30 ,R10 M30
G2 X-30Y-75 R30 ,R10

80 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

Ejemplo 3: Programa parametrizado para hacer un arco (círculo) de posicionamientos,


conforme el dibujo abajo:

#24

O0001 (PROG. PRINCIPAL) O1000 (SUBPROG. MACRO)


G17 G21 G90 G94 1
G53 G0 Z0 G49 N1
T1 (BROCA D8.5 MM) [#24+[#18*COS[#1]]]
M6 #1+#2
G54 S1500 M3 #3=#3+1
G0 X0 Y0 M8 SI [#3 LE #11] IR A 1
G43 Z10 H1 D1 M99
G99 G81 Z-10 R2 F160 K0
G65 X80 Y50 R20 A45 B45 H3 P1000
G80
G53 G0 Z0 G49 M9 M5
M30

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 81


11. MACROB

Ejemplo 4: Programa parametrizado para hacer un hexágono inscrito en un determinado


círculo

O0001 (MACRO SEXTAVADO) G0 X[[#1+#4]*COS[#3]] Y[[#1+#4]*SIN[#3]]


G17 G21 G90 G94 G43 Z2 H12
G53 G0 Z0 G49 G1 Z-5 F150
T12 N12 G1 X[#1*COS[#3]]Y[#1*SIN[#3]] F[#5]
M6 #3+60
G54 S2700 M3 #6=#{#6+1}
50 (RADIO DEL CIRCULO) SI [#6 LE 6] IR A 12
#3=0 (ÁNGULO INICIAL) G1 X[[#1+#4]*COS[#10]]
#4=3 (FOLGA P/ LA APROXIMACIÓN) Y[[#1+#4]*SIN[#10]]
#5=200 (VELOCIDAD DE AVANCE) G53 G0 Z0 G49
#6=0 (CONTADOR DEL NÚMERO DE LADOS) M30
#10=#3 (DUPLICA LA VARIABLE R3)

OBSERVACIÓN: En el ejemplo anterior, el radio de la herramienta no fue considerado, es decir,


el recorrido programado corresponde a la trayectoria recorrida por el centro de la herramienta

82 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

Ejemplo 5: Programa parametrizado para ejecutar arcos de 0,001 a 360 grados de


apertura utilizando la función G01.

O0005 (MACRO CIRCULAR) 200 (VELOCIDAD DE AVANCE)


G17 G21 G90 G94 #1+#6 (REDEFIN. RAIO DO ARCO)
G53 G0 Z0 G49 G0 X[[#1+#7]*COS[#3]] Y[[#1+#7]*SIN[#3]]
T1 G43 Z2 H1
M6 G01 Z-5 F250
G54 S2500 M3 N11G1X[#1*COS[#3]]Y[#1*SIN[#3]]F[#10]
50 (RADIO DEL ARCO) #3+#5
#20=10 (DIÁMETRO HERRAMIENTA) SI [#4 GT #3] IR A 11
#3=0 (ÁNGULO INICIAL/CORRENTE) G1 X[#1*COS[#4]] Y[#1*SIN[#4]]
#4=360 (ÁNGULO FINAL) X[[#1+#7]*COS[#4]] Y[[#1+#7]*SIN[#4]]
#5=1 (INCREMENTO ANGULAR) G53 G0 Z0 G49
#6=#20/2 (DEFIN. RAIO FERRAMENTA) M30
#7=3 (FOLGA P/ LA APROXIMACION)

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 83


11. MACROB

Ejemplo 6: Programa parametrizado para hacer una elipse real de 360º.

O0010 (PROG. PRINCIPAL) O2000 (SUBPROG. MACRO)


N1 G17 G21 G90 G94 N1 #4=[#4/2]+#18
N2 G53 G0 Z0 G49 N2 #5=[#5/2]+#18
N3 T18 (FRESA D20 MM) N3 G00 X[[#4+#17]*COS[#1]] Y[[#5+#17]*SIN[#1]]
N4 M6 N4 MIENTRAS [#1 LT 360] HACER1
N5 G54 S3500 M3 N5 G01 X[#4*COS[#1]] Y[#5*SIN[#1]] F[#9]
N6 G0 X60 Y0 M8 N6 #1=#1+#2
N7 G43 Z10 H18 D18 N7 FIN1
N8 Z-2 N8 G01 X[#4*COS[360]] Y[#5*SIN[360]]
N9 G65 X0 Y0 I80 J50 A0 B1 Q5 N9 G00 X[[#4+#17]*COS[#1]] Y[[#5+#17]*SIN[#1]]
R10 F520 P2000 N10 M99
N10 G53 G0 Z0 G49 M9 M5
N11 M30

84 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

Ejemplo 7: Programa parametrizado para ejecutar una espiral de Arquímedes teniendo:

Raio inicial: 10mm


Raio final: 64 mm
N.espirais: 5
Posición inicial: 0 grados

O0010 (MACRO ESPIRAL) #9 = #8 * #5 (INC/TO RAD. P/ INC/TO ANG.)


G17 G21 G90 G94 200 (VELOCIDAD DE AVANCE)
G53 G0 Z0 G49 G0 X[#1*COS[#3]] Y[#1*SIN[#3]]
T12 G43 Z2 H12
M6 G1 Z-5 F200
G54 S2250 M3 N45 G1 X[#1*COS[#3]] Y[#1*SIN[#3]] F[#10]
10 (RAIO INICIAL) #3+#5
64 (RAIO FINAL) #1+#9
#3=0 (ÁNGULO INICIAL/CORRENTE) SI [#4 GT #3] IR A 45
#7=5 (NÚMERO DE ESPIRALES) G1 X[#20*COS[#4]] Y[#20*SIN[#4]]
#4=#7*360 (ÁNGULO FINAL) G53 G0 Z0 G49
1 (INCREMENTO ANGULAR) M30
#8=[#20-#1]/#4 (INC/AL RADIAL X)

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 85


11. MACROB

Ejemplo 8: Programa parametrizado para ejecutar una espiral deArquímedes conjugada


con una bajada en "Z" teniendo:

Raio inicial: 10 mm
Raio final: 64 mm
5
Posición inicial: 0 grados
Pos “Z” inicial: 0
Pos “Z” final: 25

O0011 (MACRO ESPIRAL 2) #12=25 (ALTURA Z FINAL)


G17 G21 G90 G94 #13=#12-#11 (PROFUNDIDAD)
G53 G0 Z0 G49 #14=#13/#4 (INC/TO Z)
T1 #15=#14*#5 (INC. Z P/ INC. ANG.)
M6 G0 X[#1*COS[#3]] Y[#1*SIN[#3]]
G54 S3500 M3 G43 Z2 H1
10 (RAIO INICIAL) G1 Z[#11] F[#10]
#20=64 (RAIO FINAL) N22 G1 X[#1*COS[#3]] Y[#1*SIN[#3]] Z[#11]
#3=0 (ÁNGULO INICIAL) #3+#5
5 (NÚMERO DE ESPIRALES) #1+#9
#4=#7*360 (ÁNGULO FINAL) #11-#15
#5=1 (INCREMENTO ANGULAR) SI [#4 GT #3] IR A 22
[#20-#1]/#4 (INC/TO RADIAL X) G1 X[#20*COS[#4]] Y[#20*SIN[#4]] Z[-#12]
#8*#5 (INC. RAD. P/ INC. ANG.) G53 G0 Z0 G49
200 (VELOCIDAD DE AVANCE) M30
0 (ALTURA Z INICIAL)

86 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C


11. MACROB

Ejemplo 9: Programa parametrizado para interpolar una rosca cónica interna utilizando
una herramienta de roscar interno

Diámetro inicial: 88.9 mm


Ângulo de la rosca: 1.783º (1º 47’)
Paso: 3.175 mm (8 fpp)
Pos “Z” inicial: 0 (abs)
Pos “Z” final: -28.98 (abs)
Pos “X” del centro de la rosca: 0 (abs)
Pos “Y” del centro de la rosca: 0 (abs)
Ángulo de entrada de la rosca: 185º

Nota: Los valores arriba se refieren


a rosca de 3" NPT- 8 fpp.

O0001 (MACRO ROSCA CÓNICA DERECHA/IZQUIERDA)


G17 G21 G90 G94
G53 G0 Z0 G49
T01
M6
G54 S3500 M3
G43 Z100 H01 D01
#1=88.9 (DIÁMETRO INICIAL)
#2=1.783 (ANG. DA ROSCA)
3.175 (PASO DE ROSCA)
#4=0 (Z INICIAL)
-28.98 (Z FINAL)
#6=100 (COORD. CENTRO EN X)
#7=75 (COORD. CENTRO EM Y)
#8=185 (ANG. ENTRADA DA ROSCA)
#9=1 (INCR. ANG. - RESOLUCIÓN CÍRCULO)
#10=2 (DIÁMETRO DE LA HERRAM.)

T22182C Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc 87


11. MACROB
350 (AVANCE PARA FRESADO.)
#12=0 (THREAD RIGHT=0 - THREAD LEFT=1)
(**** VARIABLAS DE CÁLCULO - NO MODIFICAR ****)
#20=[#1-#10]/2 (CALC. RAIO INICIAL DA ROSCA)
#4-#5 (CALC. PROF.TOTAL)
#9*#3/360 (CALC. PROF.POR INCR. ANG)
#23=TAN[#2]*#21 (CALC. CATETO RADIAL)
#24=TAN[#2]*#3 (CALC. INCR. RADIAL)
#25=#9*#24/360 (CALC. INCR. RAD. POR INCR. ANGULAR)
#26=0 (COUNTER ANGULAR - SIEMPRE 0)
#22*#26 (CÁLC. PROF. PELO CONTADOR)
#28=#20-#23 (CALC. DEL RAYO FINAL DE LA ROSCA)
#29=#8+[#21*360/#3] (CALC. DEL ÁNGULO FINAL)
SI [#12 EQ 0] IR A 1
SI [#12 EQ 1] IR A 2
#3000=1 (DEFINIR TIPO DE ROSCA - DIR/ESQ)
N1 #30=1 (ROSCA DERECHA)
GOTO3
N2 #30=-1 (ROSCA IZQUIERDA)
N3
(**** PROGRAMA MACRO - NO MODIFICAR****)
G0 X[#6+[#20*COS[#8]]] Y[#7+[#20*SIN[#8]]]
Z[#4+2]
G1 Z[#4] F[#11]
MIENTRAS [#27 LT #21] HACER1
G1 X[#6+[[#20+[#30*#25*#26]]*COS[#8]]] Y[#7+[[#20+[#30*#25*#26]]*SIN[#8]]] Z[#4-#27]
#26-[#30*#9]
#8-[#30*#9]
#27+#22
FIN1
G1X [#6+[#28*COS[#29]]] Y[#7+[#28*SIN[#29]]] Z[#4-#21]
X[#6] Y[#7]
G0 Z[#4+2]
G53 G0 Z0 G49
M30

88 Manual de Programación y Operación - Línea D - CNC FANUC 0i-Mc T22182C

También podría gustarte