0% encontró este documento útil (0 votos)
35 vistas28 páginas

No Seas Como Estos Chicos: Manual Basico de Programacion Con Macro Variables

Este documento proporciona una introducción básica a la programación con macrovariables en 3 oraciones o menos: Introduce los tipos de variables, operadores y operaciones matemáticas y lógicas que se pueden usar en macros, así como instrucciones como IF, WHILE y variables de sistema para controlar el funcionamiento de la máquina.

Cargado por

Jesus SAntana
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)
35 vistas28 páginas

No Seas Como Estos Chicos: Manual Basico de Programacion Con Macro Variables

Este documento proporciona una introducción básica a la programación con macrovariables en 3 oraciones o menos: Introduce los tipos de variables, operadores y operaciones matemáticas y lógicas que se pueden usar en macros, así como instrucciones como IF, WHILE y variables de sistema para controlar el funcionamiento de la máquina.

Cargado por

Jesus SAntana
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
Está en la página 1/ 28

MANUAL BASICO DE PROGRAMACION CON

MACRO VARIABLES

NO SEAS COMO ESTOS CHICOS


INTRODUCCION
• Tipos de Variables
• Operadores
• Operaciones aritméticas y lógicas
• Redondeo
• Especificación de Argumentos
• Bifurcación condicional (declaración IF)
• IF[expresión condicional]THEN
• Repetición (WHILE)
• Variables del sistema
• Variables de Tiempo
• Control de funcionamiento en modo automático
• Posición actual
• G10 (DATA SETTING)
• Ejercicios
Tipos de Variables

Numero de variable Tipo de variable Función

Esta variable es siempre nula. No


#0 Siempre nula puede asignarse ningún valor a esta
variable
Las variables locales solo pueden
utilizarse dentro de una macro para
alojar datos como los resultados de las
operaciones.
#1-#33 Variables locales Cuando se desconecta la corriente, las
variables locales se inicializan a un
valor nulo. Cuando se llama a una
macro, se asignan argumentos a las
variables locales
Las variables comunes pueden
compartirse entre diferentes
programas de macros. Cuando se
#100-#199 Variables comunes desconecta la corriente, se inicializan a
#500-#999 cero las variables #100-#199, las
variables #500-#999 conservan su
valor aun y cuando se desconecte la
corriente.
Las variables de sistema se utilizan
para leer y grabar diversos datos en
#1000- Variables de sistema formato NC tales como la posición
actual y los valores de compensación
de herramienta.

Notas Importantes:

No es lo mismo asignar

#500=#0 #500 será Nulo (Elimina la X).

A asignar

#500=0. #500 será 0. (La máquina se moverá a la


coordenada X0.)
OPERADORES

Los operadores están formados por dos letras y se emplean para comparar dos valores
y determinar si son iguales o si un valor es menor o mayor que el otro. Observe en la
siguiente tabla los significados de cada uno de ellos.

Operador Descripción
EQ Igual a
NE Distinto de
GT Mayor que
GE Mayor o igual que
LT Menor que
LE Menor o igual que

OPERACIONES ARITMETICAS Y LOGICAS

Función Formato Observaciones


Suma #1=#2+#3
Resta #1=#2-#3
Multiplicación #1=#2*#3
División #1=#2/#3
Seno #1=SIN[#]
Arco seno #1=ASIN[#]
Coseno #1=COS[#] Un ángulo se especifica en grados.
Arco coseno #1=ACOS[#] )0 grados y 30 minutos se
Tangente #1=TAN[#] representa con 90.5 grados.
Arco tangente #1=ATAN[#]
Raiz cuadrada #1=SQRT[#]
Valor absoluto #1=ABS[#]
Redondeo #1=ROUND[#]
Redondeo por defecto #1=FIX[#]
Redondeo por defecto #1=FUP[#]
Logaritmo natural #1=LN[#]
Función exponencial #1=EXP[#]

EXPLICACIONES DE REDONDEO

EJEMPLO ROUND FIX FUP


#1=1.00001 1.0 1.0 2.0
#2=1.49999 1.0 1.0 2.0
#3=1.50000 2.0 1.0 2.0
#4=1.99999 2.0 1.0 2.0
ESPECIFICACION DE ARGUMENTOS

El tipo de especificación de argumento se determina automáticamente según las letras


empleadas

Dirección Numero de Dirección Numero de Dirección Numero de


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

• Las direcciones G, L, N, O y P no se pueden emplearse en argumentos.


• Las direcciones que no tienen que especificarse pueden omitirse. Las variables
locales correspondientes a una dirección omitida se configuran como nulas.
• Las direcciones no tienen que especificarse de forma alfabética. Sin embargo, I,
J y K deben de especificarse alfabéticamente.

BIFURCACION CONDICIONAL (DECLARACION IF)

Especifique una expresión condicional después del IF

IF[expresión condicional]GOTOn

Si se cumple la expresión condicional especificada, se produce una bifurcación al


número de secuencia n, Si la condición especificada no se cumple, se ejecuta el
siguiente bloque.
IF[expresión condicional]THEN

Si se cumple la expresión especificada, se ejecuta la instrucción de macro


predeterminada. Solo se ejecuta una única instrucción de macro.

Programa ejemplo

En el programa ejemplo siguiente calcula el total de los números 1 a 10.


REPETICION (INTRUCCION WHILE)

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


condición especificada, el programa va ejecutándose desde la instrucción DO hasta la
instrucción END. Si deja de cumplirse la condición especificada, el programa continúa
ejecutándose en el bloque siguiente a END.

EXPLICACIONES

Mientras se cumple la condición especificada, se ejecuta el programa desde DO a END


posterior a WHILE. Si deja de cumplirse la condición especificada, el programa
continúa ejecutándose en el bloque siguiente a END. Se aplica idéntico formato que
para la instrucción IF. Un numero después de DO y un numero después del END son
números de identificación para especificar el intervalo de ejecución. Se pueden utilizar
los números 1, 2 y 3. Cuando se especifica un numero diferente de 1, 2 o 3, se activa la
alarma P/S 126.

CONDICIONES

Los números de identificación (1 a 3) en un bucle DO-END pueden emplearse el


numero de veces que se desee. Sin embargo, téngase en cuenta que si un programa
incluye bucles de repetición entrelazados (intervalos DO solapados), se activa la
alarma 124.
PERMITE 3 CICLOS ANIDADOS

WHILE [] DO1

WHILE[]DO2

WHILE[]DO3

END3

END2

END1

PROGRAMA EJEMPLO

El programa de ejemplo siguiente calcula el total de los nuemeros 1 a 10.


VARIABLES DE SISTEMA

• Alarmas de macro

Ejemplo:

#3000=1(HERRAMIENTA NO ENCONTRADA)

La pantalla de alarma indicará “3001 HERRAMIENTA NO ENCONTRADA)

• Detener con un mensaje

La ejecución del programa se puede parar y, continuación puede visualizarse un


mensaje
• Información sobre el tiempo

Ejemplo:

#3001=1----------------- On

#3001=0----------------- Off

#3002=1----------------- On

#3002=0---------------- Off

#500=#3011 (la variable #500 se almacenará la fecha actual)

#500=#3012 (la variable #500 se almacenará la hora actual)


• Control de funcionamiento en modo automático

Puede cambiarse el estado de control del funcionamiento en modo automático

Notas.

1. Cuando se conecta la alimentación, el valor de esta variable es 0.


2. Cuando esta deshabilitada la parada en modo bloque a bloque, esta no se
ejecuta, aunque se active el (ON) el selector single block.
3. Si no se ha especificado una espera para la terminación de funciones auxiliares
(Funciones M, S y T), la ejecución del programa continua en el bloque siguiente
antes de la terminación de las funciones auxiliares.

Ejemplo:

#3003=0 Habilita el single block

#3003=1 Deshabilita el single block


Notas.

1. Cuando se conecta la alimentacion, el valor de esta variable es 0.


2. Cuando se mantiene pulsado el boton de suspensión de avance, la maquina se
para en el modo de parada single block, sin embargo la operación de parada
single block se deshabilita con la variable #3003.
3. Cuando se pulsa el boton de suspensión de avance y a continuacion se suelta,
se enciende la lampara de suspension de avance, pero la maquina no se para;
la ejecución del programa continúa y la máquina se para en el primer blocke en
que este habilitada la suspension del avance.
4. Cuando esta deshabilitado el override de avances, se aplica siempre un override
del 100% independientemente de la posición de la perilla.
5. Cuando se deshabilita la comprobación de parada exacta, no se realiza ninguna
comprobacion de parada exacta(comprobacion de posición) ni siquiera en
bloques que incluyan otros que no efectuen mecanizado.
Ejemplo de un mecanizado con #3003 y #3004
• Posición Actual

La información de la posición no puede grabarse, pero puede leerse.}

• Valores de compensación del sistema de coordenadas de pieza (valores de


corrección del origen de la pieza)
Notas.

01 primer eje

02 segundo eje

03 tercer eje

04 cuarto eje
VARIABLES PARA TORNO DESGASTE Y GEOMETRIA

(X)
#2001-#2064 WEAR OFFSET
#2701-#2749 GEOMETRY OFFSET

(Z)
#2101- #2164 WEAR OFFSET
#2801-#2849 GEOMETRY OFFSET

G10 (DATA SETTING)

El comando G10 (Data Setting) nos permite modificar valores tales como Work Offsets,
Tool Offsets, entre otros valores desde un programa.

• Work Offsets

Estructura:

G10 L2 P*** X*** Y*** Z***

El valor de P depende del Works Offset a modificar:


P0 = Ext, P1 = G54, P2 = G55, P3 = G56, P4 = G57, P5 = G58, P6 =G59

Ejemplo: Si ejecutamos el siguiente programa, cambiaran los valores de la tabla del


Works Offsets

O0040 (G10 L2)

G10 L2 P0 X0. Z0.

G10 L2 P1 X0. Z240.

M30
Para los controles que tienen los Works Offsets G54.1 P1 al G54.1 P48, se usa la
estructura:

G10 L20 P*** X*** Y*** Z***

El valor de P depende del Works Offset a modificar:


P1 = G54.1 P1, P2 = G54.1 P2, P3 = G54.1 P3, P4 = G54.1 P4 ………, P48 = G54.1
P48

• Tool Offsets Milling (VMC)

Estructura:

G10 L10 P*** R*** Lenght Geometry

G10 L11 P*** R*** Lenght Wear

G10 L12 P*** R*** Radius Geometry

G10 L13 P*** R*** Radius Wear

El valor de P es el número de herramienta a trabajar, R el valor asignar.

• Tool Offsets Turning

Estructura:

G10 P*** X*** Y*** Z*** R*** Q***

P > Numero de herramienta

➢ Si P = P10001 Modificara el Geometry de la herramienta 1


➢ Si P = P10002 Modificara el Geometry de la herramienta 2
➢ Si P = P1 Modificará el Wear de la herramienta 1
➢ Si P = P12 Modificará el Wear de la herramienta 12
X > Valor en X

Y > Valor en Y

Z > Valor en Z

R > Valor del Radio de Herramienta

Q > Numero de Tipo de herramienta

Notas Importantes:

1) En el centro de Mecanizado, hay que cuidar si antes del G10 hay un G90 si
queremos que el valor que se ingresara con el G10 sea absoluto, de lo
contrario, con G91 se Sumara (incrementara) al valor ya colocado.
2) Para lograr el cambio antes mencionado en el torno, podemos sustituir X,
Y, Z por sus respectivas letras incrementales U, V, W.
3) Hay que verificar que este bien escrito las formulas del G10, ya que tiene
más funciones, por mencionar alguna, “G10 L50” tiene la capacidad de
modificar parámetros de la maquina desde un programa, el cual puede
alterar el funcionamiento de la maquina(Uso exclusivo de Técnicos
Especializados).

Macros

La macro es una Variable el cual evita la repetición innecesaria de comandos cuando


una combinación se utiliza con frecuencia.

Son representadas dentro de la programación por el símbolo “#”.

Veamos el siguiente ejemplo de un programa de barrenado en un VMC:


O0004 (BARRENADO)
G21 G80 G40 G54 G94
G28 G91 Z0.
M6 T#500
G0 G90 X0. Y0. M3 S#501
G43 G90 H#500 Z5.
G83 Z-25. F#502
G80
G28 G91 Z0. M9
G30 G91 X0. Y0. M5
M30
%

Si relacionamos las macros con la tabla que tenemos a la derecha, veremos lo


siguiente:

• En M6, cambiara a la herramienta No. 4


• En M3, el husillo girara a 2500 RPM
• En G43, cargara el offset de la herramienta 4
• En G83, realizara un barrenado a un avance de 400 mm/min.
Los Macros sustituyen el colocar un valor directo en el programa y este es colocado en
una tabla.

Para entrar a dicha tabla, presionamos la tecla y


escogemos la opción “MACRO”.

Para buscar una celda en específico, tecleamos el


numero sin el símbolo “#” y después “No. SRH”.
Automáticamente nos llevara al valor solicitado.
Tecleamos 500

Presionamos No. SRH


A continuación, mencionaremos algunas reglas de lo que esta y no permitido.

El valor de cero es neutral No identifica +0 o -0

Ceros a la derecha son ignorados #1 = 003 es lo mismo que


#1 = 3

No se puede usar con el número de bloque N#1 No es permitido

No se puede usar para en la dirección de un programa O#1 No es permitido

No se puede usar con el Block Skip /#1 No es permitido

No se puede usar para remplazar una macro directamente ##1 No es permitido

Se puede usar para remplazar una macro por uso de corchete #[#1] Si es permitido

Uso de corchetes para asignar Macros (otro ejemplo) #[7] es lo mismo que
#7

• Operaciones Básicas

Asignación

Otra forma de agregar los valores en la tabla es asignando directamente en el programa.

O0004 (BARRENADO)
#500=4. En la tabla de Macros se almacena 4 en la
casilla 500
#501=2500. En la tabla de Macros se almacena 2500 en la casilla
501
#502=400. En la tabla de Macros se almacena 400. en la casilla
502
G21 G80 G40 G54 G94
G28 G91 Z0.
M6 T#500
……
Si dentro del programa también podemos realizar la siguiente operación:

#506=#501 En la casilla 506 se guardará el valor que tenga la


casilla 501
• Operaciones Aritméticas:

Para realizar operaciones Aritméticas, podemos realizarlas de las siguientes maneras:

O0005 (Operaciones Aritméticas)

N1 #500=2 Asignación a la Macro 500

N2 #501=20 Asignación a la Macro 501

N3 #502=#500+#501 En la casilla 502 se almacenará el valor 22

N4 #503=#500-#501 En la casilla 503 se almacenará el valor -18

N5 #504=#500*#501 En la casilla 504 se almacenará el valor 40

N6 #505=#500/#501 En la casilla 505 se almacenará el valor .1

N7 #504=#504+#500 En la casilla 504 se almacenará el valor 42

(40 de antes y 2 de la macro 500, borra el numero


anterior).

N8 #506=#500*#502+#503 En la casilla 506 se almacenará el valor 8

(Fanuc sigue la jerarquía de Operaciones Matemáticas)

N9 #507=[#500*#502]+#503 En la casilla 507 se almacenará el valor 26

(Primero se resuelve las operaciones que están dentro del


corchete)

N10 G0 X[#500+#501] Operaciones acompañadas de una letra deberán ir en


Corchete

N11 G0 X[30.+#500] La Máquina se moverá a la coordenada X32.

N12 M30
La Jerarquía de Operaciones son un conjunto de reglas el cual
permite definir en qué orden se deben de resolver las
operaciones:

1) Paréntesis
2) Potencias y Raíces
3) Multiplicaciones y Divisiones
4) Sumas y Restas

Esto puede notarse en las líneas N8 y N9 del ejercicio anterior.

Para los signos, FANUC considera la multiplicación de Signos

(+) *(+) = (+)

(-) *(-) = (+)

(+) *(-) = (-)

(-) *(+) = (-)

Observen la siguiente Tabla para analizar las cuatro combinaciones posibles:

Calculo #501 #502 Formato Ejemplo #500


Positivo + Positivo 3 5 #500=#501+502 #500=3+(+5) 8
Positivo + Negativo 3 -5 #500=#501+502 #500=3+(-5) -2
Negativo – Positivo 3 5 #500=#501-502 #500=3-(+5) -2
Negativo - Negativo 3 -5 #500=#501-502 #500=3-(-5) 8
• Funciones Trigonométricas

Son 6 las funciones trigonométricas a utilizar:

SIN CON TAN ASIN ACOS ATAN

Ejemplo:

O0006 (Funciones Trigonométricas)

N1 #500=SIN[38] El valor de #500 será 0.6156615

N2 #501=23.7 Asignación a la Macro 501

N3 #502=COS[#2] El valor de #502 será 0.9156626

N4 #503=TAN[12.86] El valor de #503 será 0.2282959

…..

Funciones Varias

En esta categoría entran muchas funciones dedicadas a la función de parámetros, tales como
convertidores de unidades decimales a binarios, logaritmos, Exponenciales base e, pero caben
estacar dos muy importantes:

ABS SQRT

Ejemplos:

O0007 (Funciones Varias)

N1 #500=16. Asignación
N2 #501=-25. Asignación
N3 #502=ABS[#500] El valor de #502 será 16. (Coloca el valor en positivo)
N4 #503=ABS[#501] El valor de #503 será 25. (Coloca el valor en positivo, aun
siendo negativo)
N5 #504=SQRT[#500] El valor de #504 será 4. (Regresa la raíz de la macro #500)
DATOS SOBRE MACROS:

- Al realizar una operación, aunque no sea visible en la casilla, la macro


almacena hasta 29 dígitos después del punto decimal.
- El valor más grande a almacenar es ± 1*1047
- La máquina no puede procesar una indeterminación, al igual que las
calculadoras (esto es dividir un numero entre cero), se alarmará el
programa.
EJERCICIO NUMERO 1

Realizar un programa con Macro Variables que haga los taladros que se muestran en
las siguientes imágenes

Agregar la cancelación de Single Block, Suspensión de Avance y Perilla de Override

Al final del programa agregar fecha y hora en una Variable


Programa ejercicio 1

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Ejercicio Numero 2

De las variables guardadas en el ejercicio anterior, de la fecha y hora

Agregar individualmente la fecha

Año en una variable

Mes en una variable

Día en una variable

Realizar misma operación para la fecha

Hora en una variable

Minuto en un variable

Segundo en un variable

Programa ejercicio 2

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

También podría gustarte