Macros Fanuc
Macros Fanuc
Macros Fanuc
Variables locales: de la variable #1 a la variable #33 pueden ser usadas solamente con un macro para mantener datos
tales como resultados de operaciones. Cuando la máquina se apaga son colocadas a cero.
Variables comunes: de la variable #100 a la variable #149, de la variable #500 a la variable #531 ó #999 en algunos
casos (opcional).
#100 a la #149 son colocadas a cero cuando la máquina se apaga, las variables #500 a la #531 mantienen el valor
asignado aún cuando se apague la máquina.
Variables del sistema: #1000 en adelante, son usadas para leer y escribir una variedad de datos del control como la
posición actual y valores de compensación de herramienta entre otros. Se pueden utilizar para visualizar alarmas en
los programas macro cuando se han introducido datos erróneos, para esto se utiliza la variable #3000. Cuando un
valor que puede estar entre 0 y 200 es asignado a la #3000 el control se detiene y muestra una alarma cuyo mensaje no
puede ser mayor a 26 caracteres. La alarma se muestra como alarma numero 3000+ el valor asignado a la variable.
Variables de enunciado de argumento: Son letras seguidas de un valor numérico ejemplo A0.32 B5.4 C7.8, no se
pueden utilizar las letras N, O, P, L.
Se utilizan con el código G65 P---- donde P es un numero de subprograma a utilizar donde se ha escrito el macro
ejemplo:
OPERACIONES ARITMÉTICAS
Los ángulos son especificados en grados. 60 grados y 30 minutos se escribirá 60.5 grados.
Raíz cuadrada #109 = SQRT [#110]
Valor absoluto #109 = ABS [#110] Ejemplo: si #110 = -1.5 El valor de la variable #109 = 1.5
Redondeo #109 = ROUND [#110] Ejemplo: si #110=1.2345 El valor de la variable #109 = 1.0
Redondeo por abajo #109 = FIX [#110] Ejemplo: si #110 = 3.8 El valor de la variable #109 = 3.
Redondeo por arriba #109 = FUP [#110] Ejemplo: si #110 = 3.2El valor de la variable #109 = 4.
SALTO CONDICIONAL IF
Este salto tiene la capacidad de tomar decisiones entre dos posibles condiciones, esto es llamado una expresión lógica,
donde se hace una comparación entre dos variables, ó, el resultado de dos cálculos aritméticos . Si la condición se
cumple salta a un bloque N, sino , el programa sigue en el siguiente bloque al de la expresión. Con esta expresión se
pueden utilizar seis operadores lógicos los que como su nombre lo indica ayudan a realizar la condición en la manera
más lógica. Estos son:
IF [#20 LE #23] GOTO 5; (Si #20 es menor o igual a la #23, salte a N5)
#3000 = 13 (HERRAMIENTA MUY ANCHA);
N5 G01 X20.5 F120;
GENERACIÓN DE LOOPS
En la generación de un loop se usa un contador simple para realizar un número determinado de repeticiones,
generalmente el contador es colocado en el comienzo del lazo, cada vez que el loop se repita se aumenta el contador, y
cuando alcanza el número de repeticiones el programa sale del loop. Ejemplo:
Este comando permite realizar un lazo el numero de veces necesario hasta que se cumpla un condicional previamente
determinado.
WHILE [#504 GT 360] DO 1;
#504 =[#504+1];
#502 =[#500 * SIN #504];
#503 =[#501 * COS#504];
G1 X#502 Y#503 F200;
END1
G0 Z100.;
M30;
En este programa mientras la variable #504 sea más grande a 360 ejecuta el loop hasta DO 1, este loop se repetirá las
veces que sea necesario hasta que esta condición ya no se cumpla y la secuencia del programa seguirá en el bloque
siguiente al comando END 1. Bajo el comando WHILE DO END se pueden programar anidaciones o nesting, es
decir un loop que contenga otro loop, se pueden hacer hasta tres anidaciones en una misma subrutina.
Un ejemplo típico de utilización de la programación macro es el programa para la distribución y taladrado de agujeros
en un círculo.
Con el código G65 utilizamos el enunciado de argumento para asignar variables comunes a las letras para realizar los
cálculos con los datos de dichas variables en el subprograma macro llamado con la letra P, en este caso el
subprograma es el 9006. Según la tabla de asignación de variables, se asignan así: X#24, Y#25, Z#26, R#18, D#7, A#1,
H#11, C#3, F#9.
El siguiente ejemplo es un programa elaborado para las necesidades específicas de un cliente que realiza taladrados
profundos. El cliente necesitaba un ciclo combinado de taladrado rompe viruta con taladrado con desalojo total de
viruta, donde la broca taladra con retracciones sin salir del agujero hasta cierta profundidad y sale del agujero en
marcha rápida para desalojar la viruta y refrigerar la herramienta, luego entra en marcha rápida sin tocar la
profundidad anterior y sigue taladrando con retracciones hasta otra profundidad determinada y así sucesivamente
hasta llegar a la profundidad total de taladrado. Se utilizó un enunciado de argumento para asignar las variables ,
quedando como un ciclo especial de taladrado profundo.
En el programa principal se deja la herramienta ubicada en las coordenadas X ,Y del agujero a taladrar.
Donde: