57

CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:
Page 2: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:
Page 3: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 3

CONTENIDO INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sección 1.

MINI-TUTORIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sección 2.

COMANDOS ESPECIFICOS PARA MOVIMIENTOS DE EJES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sección 3.

Ejes. Unidades. Valores máximos y mínimos. Códigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.

Tipos de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.

Movimientos punto a punto (G0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1.

Movimiento lineal (G1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2.

Movimiento circular o helicoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.2.3.

Programación mediante el centro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.1.

Programación mediante el radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.2.

Interpolación helicoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.3.

COMANDOS QUE AFECTAN A LOS DESPLAZAMIENTOS DE LOS EJES . . . . . . . . . . . . . . . . . Sección 4.

Velocidad de avance (F, G94/G95) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.

Cotas incrementales (G91) o cotas absolutas (G90) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.

Incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1.

Absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.

Origen máquina (G65d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.

Traslación de coordenadas (G92). Origen pieza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.

Giro de coordenadas (G93A. . .) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.

Factores de escala (G30). Imágenes espejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.

Factor de escala negativo, imagen simétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1.

* Parada precisa sincronizada por evento externo (G24) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7.

Ejes rotativos modularizables (G64d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8.

* Movimientos con o sin aceleraciones (G10/G11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9.

OTRAS FUNCIONES PREPARATORIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 5.

Aristas matadas (G5). Cantos vivos (G7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.

Ejes con bloqueos (G8/G9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.

* Activación del volante electrónico (G16d) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.

Ordenes de puesta en marcha y paro del cabezal (G13, G14, G15) . . . . . . . . . . . . . . . . . . . . . . . 5.4.

FUNCION G99. ETIQUETAS DE SALTO. SUBPROGRAMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 6.

Subprograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.

Final de programa o subprograma (G99) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.

Llamada a subprograma (G99-ppp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.

Etiqueta o marca de salto. Orden de salto a etiqueta (G99.nn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.

Etiqueta o marca en un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1.

Salto a etiqueta (G99.nn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.2.

FUNCIONES M o MISCELANEAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 7.

ENTRADAS (I) / SALIDAS o MARCAS (O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 8.

Entradas (códigos I, IF, I., IF.). Entradas BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.

Page 4: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 4

Test de las entradas con temporización (Inn@ y R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.

Salidas / marcas (O). Salidas BCD. Test estado (IF.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.

TEMPORIZACION. STOP POR PROGRAMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 9.

PROGRAMACION DE LA VELOCIDAD DEL CABEZAL. FUNCION "S". CABEZAL

CONTROLADO EN POSICION Y VELOCIDAD. CAMBIO DE GAMAS . . . . . . . . . . . . . . . . . . . . . . . Sección 10.

* Cabezal de continua. Cambios de gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.

Cabezal controlado en posición y velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.

PROGRAMACION PARAMETRICA. PARAMETROS DE USUARIO. OPERACIONES

y FUNCIONES. ACCESO DIRECTO A LA MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 11.

Parámetros de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.

Asignación de parámetros a códigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.

Operaciones básicas con parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.

operación de carga (L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1.

Suma (+ o .) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2.

Resta (-) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.3.

Operaciones de salto condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.

"mayor que" (>) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.1.

"menor que" (<) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.2.

"igual que" (=) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.3.

Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.

Bucle con 123 repeticiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.1.

Ciclo de taladrado y refrentado. Repetición de ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.2.

Operaciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.

Multiplicación (M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.1.

División (D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.2.

Resto de la división (G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.3.

Raíz cuadrada (V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.4.

Arcotangente (A). Seno (S) y Coseno (C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.5.

Accesos y operaciones con la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7.

Carga de una posición de memoria en un parámetro . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7.1.

Carga de una constante en memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7.2.

Carga de un parámetro en memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7.3.

Otras operaciones con la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.7.4.

Operación de Carga solicitando el valor al operario de la máquina . . . . . . . . . . . . . . . . . . . . . . 11.8.

* COMPENSACION RADIO DE HERRAMIENTA (códigos: D, G40, G41 y G42) . . . . . . . . . . Sección 12.

COMANDOS ESPECIALES " ", "[", "/", "|nnn", ":nn", "( [palabra clave] )" . . . . . . . . . . . . . . . . Sección 13.

COMANDO DE DECODIFICACION RAPIDA (G04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sección 14.

APENDICES:

TABLA DE INSTRUCCIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.

MENSAJES DE ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.

DIRECCIONES SIGNIFICATIVAS EN LA MEMORIA DEL EQUIPO M.A.C. . . . . . . . . . . . . . . . . . . C.

VISUALIZACION DE COTAS EN EJES NO ACTIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.

Page 5: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 5

* EJE ELECTRICO. Sincronización entre 2 o más ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E.

* COMANDOS DE PALPADO Y MEDICION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F.

*+ ELECTROEROSION (MAC-EDM). PROGRAMACION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.

*+ PROGRAMACION DE LOS COMANDOS ESPECIFICOS DE ELECTROEROSION . . . . . . . . . . . H.

*+ APUNTES PARA EL FABRICANTE EDM (ELECTROEROSION) . . . . . . . I.

*+ ANTICOLISION: Comandos G25 y G26 (ELECTROEROSION) . . . . . . . . . . . . . . . . . . . . . . . . J.

*+ ORBITADO: Comandos G50, G51, G52 y G53 (ELECTROEROSION) . . . . . . . . . . . . . . . . . . . . . . . . K.

*+ CHISPORROTEO (Sparking out): Cmds. G81, G82 y G83 (ELECTROEROSION) . . . . . . . . . . . . L.

*+ APROX. A CHISPA EN VACIO: Comando TFnnnnn.nnn (ELECTROEROSION) . . . . . . . . . . . . . . . . . M.

*+ CANCELACION POR Nº DE ORBITAS: Cmds. TYnnnnn y TY- (ELECTROEROSION) . . . . . . . . . . . N.

*+ LIMPIEZAS PROFUNDAS. COMANDO TAnnnnn (ELECTROEROSION) . . . . . . . . . . . . . . . . . . P.

*+ COMANDO "J" (ELECTROEROSION) . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q.

*+ FUNCIONES "M" y CICLOS DE EROSION: Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R.

(*) Opciones bajo demanda.

(+) En equipo para máquinas de electroerosión: MAC-EDM.

Page 6: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 6

Sección 1: INTRODUCCION.

Mediante algún proceso de edición generaremos un programa, (al cual lo denominaremos PROGRAMA-PIEZA), que deberá haber sido introducido en la memoria interna del equipo CNC de forma que pueda ser ejecutado por la máquina herramienta posteriormente. El CNC controla y gestiona a la máquina herramienta, principalmente realizando movimientos en los ejes de los cuales disponga la aplicación. En definitiva, el CNC deberá controlar todo el proceso de mecanización de la pieza, gestionando las velocidades y desplazamientos de los ejes, (y si es necesario, la velocidad del cabezal del mandrino), sincronizandose con los eventos externos vía señales SI/NO que marquen la cadencia de ejecución de un determinado programa-pieza. Para todo ello dispondremos de algún sistema de programación (comunmente denominado EDITOR) que sirva para introducir aquellos comandos que luego serán decodificados y ejecutados. Solo programas-pieza que posean una cierta SINTAXIS y lenguaje de programación, serán interpretados por el CNC. De la explicación de dicha sintaxis y su posterior interpretación, versa el contenido de las siguientes secciones.

NOTA: Se recomienda que en el caso de no quedar algún concepto expresado con la suficiente claridad como para haber sido comprendido "sobre el papel", el lector procure practicarlo directamente sobre el equipo CNC, antes de progresar en la lectura de este manual.

ATENCION: Efectuados los programas de "TEST", podría darse el caso de que apareciera en el display el mensaje * MEMORY ERROR * señalando que existe una posible alteración en el contenido de la memoria del egure que el anterior "BACK UP" efectuado sea lo más reciente posible).

Page 7: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 7

Sección 2: MINI - TUTORIAL.

En este apartado se presenta, a título ilustrativo, una pequeña introducción en los aspectos que solo conciernen a la programación. De los pasos a seguir para acceder al editor e introducir un programa en memoria, se da cumplida explicación en el MANUAL DE OPERATORIA ( USO Y MANEJO del equipo CNC): apartado de edición.

COMANDO DESCRIPCION F1000/REF.123 Veloc. Trabajo: 1000 mm/min. y comentario de Inicio Programa (Referencia por ejemplo). G91 Cotas o valores de los desplazamientos de los ejes en incrementales. G0 Tipo de desplazamiento "punto a punto" (en vacio) a la velocidad máxima de la máquina. X15Y10 Desplazamiento hacia punto de inicio fresado en los ejes X e Y. S2000M3 Velocidad del cabezal: 2000 r.p.m. y giro en sentido horario. M8 Puesta en marcha del refrigerante. Z-14 En movimiento rápido (G0), nos acercamos a la pieza a fresar. G1Z-6 A velocidad de trabajo (G1) programada (F1000), nos situamos en el nivel de fresado. G1X30 Linealmente (G1) nos desplazamos en sentido X positivo. G2X10Y10I10J0 Desplazamiento circular en sentido horario (G2) hasta alcanzar nueva posición. Para

determinar el arco a describir, le señalamos las cotas del centro respecto al punto de inicio del movimiento.

G1Y10 Linealmente (G1) en sentido positivo en el eje Y. G1X-10Y15 Linealmente nuevamente, Y en sentido positivo y X retrocediendo. G1X-25 G3X-5Y-5R5 En este arco nos desplazaremos en sentido antihorario (G3), y lo realizamos mediante la

programacion del radio (R) del círculo. G1Y-30 Ultimo desplazamiento lineal. G1Z6 Retiramos, a velocidad de trabajo, la herramienta. M9 Paro del refrigerante. G0X-15Y-10Z14 A velocidad máxima de la máquina, desplazamos a todos los ejes hasta alcanzar el punto de

inicio del programa. M5/TERM.123 Paro del cabezal y comentario Término o fin Programa. G99 Comando que indica al ejecutor final de programa.

NOTA: Durante la fase de ejecución de programas, cualquier caracter, comando o comentario introducido en el mismo bloque (1) y a continuación del caracter "/" será ignorado (no ejecutado) y por lo tanto se saltará hasta el bloque siguiente.

No se admiten como caracteres de "comentario" ni a la "P" ni a la "N" dado que estos son empleados por el equipo para realizar funciones de busqueda de programa y salto a un determinado bloque. Este mismo programa lo podemos agrupar en bloques que den una mejor estructuración al programa: P123 ;Número de programa que será asignado. F1000G91G0

Page 8: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 8

X15Y10 S2000M3 M8Z-14 G1Z-6 G1X30 G2X10Y10I10J0 G1Y10 G1X-10Y15 G1X-25 G3X-5Y-5R5 G1Y-30 G1Z6 M9M5 G0X-15Y-10Z14 G99 (1) Un bloque esta formado por una serie de comandos CNC que constituyen una linea de programa.

Page 9: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 9

Sección 3: COMANDOS ESPECIFICOS para MOVIMIENTOS de EJES.

En esta sección trataremos sobre los comandos que se traducen en un tipo de movimiento determinado en los ejes. Pero antes se deberá conocer la programación y denominación de los ejes en si. 3.1. EJES. UNIDADES. VALORES MAXIMOS Y MINIMOS. CODIGOS.

El acotado de los ejes viene dado en milímetros (mm). Pudiendo programar como valor máximo: 99999.999 (»±100 mts.) con signo positivo o negativo. (Esta limitación, en realidad, la establecerá el fabricante de la máquina herramienta mediante la programación de unos parámetros internos del CNC). El valor mínimo programable es el de una milésima de milímetro: 0.001 (una micra o 1 mm en el argot profesional).

La denominación en coordenadas CARTESIANAS o código asociado a cada eje es la siguiente:

X 1º Eje. Denominación mínima para cualquier aplicación. Y 2º Eje. Para máquinas de 2 o más ejes, dispondremos de los códigos X e Y para cada uno de los

respectivos ejes. Z 3º Eje. Para máquinas de 3 o más ejes. U 4º Eje. " " " 4 " " " . V 5º Eje. " " " 5 " " " . W 6º Eje. " " " 6 " " " . A 7º Eje. " " " 7 " " " . B 8º Eje. " " " 8 ejes.

Así, por ejemplo un desplazamiento al unísono de 4 ejes podría ser (la omisión de uno o más de ellos hace que ese eje no intervenga en el desplazamiento): X23.487Z-38.32U-99456A0.23 En donde se pueden observar las siguientes reglas: 1- El punto (.) a partir del cual se indican las décimas, centésimas y/o milésimas, se puede omitir de no existir fracción de milímetro. A partir del punto decimal no es necesaria la programación de ceros a la derecha. 2- Se admite el suprimir el cero antes del punto decimal si no hay valor entero en el desplazamiento (para que el texto final sea más legible, se aconseja no hacer uso de esta particularidad): A0.23 es idéntico a A.23 . 3- Un desplazamiento positivo se realiza si se omite el signo. Solo se introducirá el signo en los valores negativos (-). 4- El orden de los códigos de los ejes (X, Y, Z, U, V, W, A y B) es fundamental. Así, si en un mismo bloque se programa con un orden diferente al establecido, el MOVIMIENTO SE REALIZA EN DOS SECUENCIAS diferenciadas. Por ejemplo: X20Z10Y10U50 realizará un primer movimiento en XZ al unísono y, posteriormente un segundo desplazamiento en YU. Ambos movimientos se "rompen" como si se hubieran programado en distintos bloques al no seguir el orden de menor a mayor. (En algunas aplicaciones, tal particularidad, puede ser significativa).

* * * * *

Para los tres primeros ejes (X, Y y Z) se puede también optar por una programación en coordenadas POLARES en donde:

L especifica la LONGITUD del radio vector. A especifica el angulo en grados para el plano XY. B especifica el angulo en grados para el plano XZ. C especifica el angulo en grados para el plano YZ.

El gráfico siguiente indica cual es la descomposición que realiza el CNC para calcular las coordenadas cartesianas según sea el ángulo programado.

Page 10: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 10

Programación del tipo: G0L100A60Z20V45, realizará un desplazamiento al unísono del eje X en 50 mm. (100 cos 60º), en Y de 86.602 mm. (100 sen 60º), en Z de 20 mm. y en el V de 45 mm.

* * * * * También para los tres primeros ejes se puede programar el acotado de los ejes en coord. ESFERICAS, con la siguiente terminología:

3.2. TIPOS DE DESPLAZAMIENTO.

Existen 3 tipos de desplazamiento: - Punto a punto (G0).

- Lineal (G1). - Circular o helicoidal (G2/G3). Para determinar el tipo de movimiento a realizar para alcanzar la cota programada, bastará señalarlo anteriormente introduciendo el comando apropiado. Estos tipos de comando poseen la particularidad de quedarse "enclavados" al ser programados y, por

X X

Y Z

Y

Z

Y = L * sen A

Y = L * cos C

Z = L * sen C

X = L * cos B

Z = L * sen B

L L L

A B C

10

10

30

30

10

10

10

10

30 30

3030

20

10

20

20

20

20

X = L * cos A

Lnnnn.nnnAnnnn.nnnBnnnn.nnn en donde: L especifica la longitud del radio

vector. A especifica el ángulo con respecto

al eje X de la proyección del radio vector sobre el plano XY.

B especifica el ángulo entre el radio vector y el plano XY.

X

Z X = L * cos B * cos A

L

A

10

10

30

30

20

20

Y

B

Y = L * cos B * sen A

Z = L * sen B

Page 11: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 11

consiguiente, todos los movimientos se realizarán con el tipo de desplazamiento seleccionado hasta que se programe un nuevo tipo.

3.2.1. Movimiento Punto a Punto ( G0 ). Para desplazamientos que se desean realizar con posicionamiento rápido. Normalmente este tipo de desplazamiento se efectúa en vacio (no se está mecanizando). Los ejes implicados en tal tipo de movimiento se desplazan a la velocidad máxima de la máquina todos al unísono y, según la cota programada en cada eje, el movimiento de cada uno de ellos se detiene asíncronamente. (Durante la ejecución del programa y mediante el conmutador del RAPID OVERRIDE se puede ajustar la velocidad máxima de desplazamiento. Ver Manual de Operatoria). Así, y por ejemplo:

3.2.2. Movimiento LINEAL ( G1 ). Desde el punto en donde nos encontremos hasta el de destino, realizamos un desplazamiento en linea recta con todos los ejes programados por estricto orden dentro de un mismo bloque y por el orden reseñado en el apartado 3.1: X,Y,Z,U,V,W,A y B.

El resultado gráfico obtenido sería el mostrado en el gráfico 3. Los dos ejes (o más, si se hubieran programado) inician y finalizan el movimiento al unísono,

garantizando que la velocidad resultante sea igual a F, y que el movimiento se efectue en linea recta. Comandos del tipo : G1X20Y10U-40.25W0.3A28.375B-32.6 son correctos, PERMITIENDO QUE EN UN MISMO DESPLAZAMIENTO INTERVENGAN incluso LOS 8 EJES A LA VEZ. Para que la sintaxis sea correcta bastará programar a los ocho ejes por estricto orden, caso contrario el bloque se trucará en dos movimientos (el CNC interpreta dos comandos diferenciados en un mismo bloque). 3.2.3. MOVIMIENTO CIRCULAR ( G2/G3 ) O HELICOIDAL. Arcos de circunferencia o círculos son posibles de realizar mediante la programación de estos comandos. Este tipo de desplazamiento se realiza a la velocidad de trabajo. Por lo tanto y con anterioridad, se

G91G0X20Y10 ;incrementales y P. a P. . X30Y60 Como se aprecia en el GRAFICO 2, "noimporta" como se realiza el movimiento. Lo que serequiere del equipo es alcanzar el punto de destino conla máxima brevedad posible. Para ello, "lanzamos" losdos ejes a velocidad máxima, cuando llega uno aposición se detiene, mientras que el otro continua sindisminuir la velocidad hasta alcanzar su posición dedestino.

Este tipo de desplazamiento se realiza a lavelocidad de trabajo mediante la programación anterioral movimiento del comando F (Feed). Ver apartado 4.1de este mismo manual. Para que la velocidad global o resultante seiguale al valor de la F programada, el CNC calcula ladistribución de velocidades de cada eje implicado en elmovimiento, atendiendo al desplazamiento resultante yal del eje en cuestión. Siguiendo con el ejemplo del apartado anterior,al programar: F575.375G91G1X20Y10 X30Y60

Page 12: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 12

determinará el valor de la velocidad mediante la programación del comando F. Ver apartado 4.1 en este manual. Solo se pueden interpolar circularmente 2 ejes cuya selección se realiza mediante la programación del plano de interpolación circular (PIC) entre los cuatro primeros ejes: X, Y, Z o U. La selección del PIC se obtendrá mediante los siguientes comandos: G17: Plano de interpolación XY. G18: Plano de interpolación XZ. G19: Plano de interpolación YZ. G20: Plano de interpolación XU. G21: Plano de interpolación YU. G22: Plano de interpolación ZU. Quedando estos "enclavados" hasta la programación de un nuevo plano. Para realizar un arco o círculo será necesario conocer: el punto de origen (donde está situada la máquina antes de iniciar el desplazamiento circular), el punto de destino (posición a alcanzar), y otro dato que nos aporte información del centro o radio de la circunferencia a describir.

3.3.3.1 PROGRAMACION MEDIANTE EL CENTRO.

Si se programa: G17F800G91G3X20Y20I20J0

Conocidos los puntos de partida (P0) y dedestino (P1) y fijado un centro, podremosdesplazarnos desde P1 a P0 por 2 posiblesrecorridos, con la particularidad de que uno serealiza en sentido horario (G2) y el otro en antihorario (G3). Ver gráfico 4. Así si por ejemplo, programamos en el plano YZ: G19F800G91G2Y20Z20J20K0. se obtiene, en sentido horario (G2), la trayectoria que se muestra en el gráfico 5.

Page 13: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 13

en sentido antihorario (G3) obtenemos que alcanzamos el mismo punto, describiendo una trayectoria diferente a la anterior según se puede apreciar en el gráfico 6. Si se efectúa un cambio en las cotas de centro (y con otros ejes implicados en el movimiento): G21F8000G91G3Y20U20J0L10 obtendremos la representación del gráfico 7.

NOTA IMPORTANTE: La programación mediante el centro, aunque se este en dimensionado absoluto, siempre se introducirá respecto al punto de partida del circulo, esto es: en incrementales.

3.2.3.2 PROGRAMACION MEDIANTE EL RADIO.

Más sencillo de programar que la forma anterior, resulta efectuar la introducción de datos mediante el radio (R).

Para eliminar la ambigüedad, y obtener un solo posible caso se introduce el signo del radio. En los gráficos siguientes observamos que de las dos posibles trayectorias, una es de recorrido corto (ángulo descrito inferior a 180º), y la otra es de recorrido más largo (ángulo superior a

Podemos concluir con las siguientes normas: 1- Como se apreciará en todos los ejemplos, la denominación del centro cambia según los ejes implicados en el circulo. Así, sobre los cuatro posibles ejes a interpolar circularmente entre ellos, la denominación del centro vendrá dado por el código: Eje X, denominación del centro: I. Eje Y, denominación del centro: J. Eje Z, denominación del centro: K. Eje U, denominación del centro: L. 2- Las unidades, valores máximos y mínimos, etc... es idéntica a la de los ejes.

Dados dos puntos en elplano (inicio: P0 y final: P1) y elradio del arco de la circunferencia,se obtiene que por los dos puntospasan 2 posibles círculos ( 4 arcosde circunferencia bien diferenciadossegún vemos en el gráfico 8). El radio R no aportainformación acerca de cual circuloentre ambas posibilidadespodemos elegir. Sin embargo, G2 yG3 nos delimitan a 2 los posiblesarcos a seleccionar. Si por ejemplooptamos por G2 (igual sería el casopara G3 según se puedecomprobar), los dos casos posiblesse muestran en los siguientesgráficos.

Page 14: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 14

180º). El criterio es sencillo:

R positivo si el ángulo es menor a 180º. Gráfico 9-a R negativo si el ángulo es mayor a 180º. Gráfico 9-b

Para un ángulo de 180º exactos el signo que se introduzca puede ser el que se desee. Unidades, valores máximos y mínimos y la sintaxis del radio R son las mismas que para las

de los ejes (apartado 3.1). Existe un solo caso en donde no es posible programar una trayectoria circular mediante el

radio: el círculo o circunferencia completa en donde el punto de inicio y final coinciden. Para este único caso deberemos hacer uso de la programación mediante dos semicírculos o referenciando el centro respecto al punto de partida y de destino (en este caso, obviamente ambos puntos coinciden).

Por ejemplo para un circulo completo: G91G3X0Y0I20J20 ;mediante el centro.

ó G91G3X40Y40R28.284 X-40Y-40R28.284 ;dos semicírculos. Otros ejemplos de programación mediante el radio de la circunferencia son fáciles de

entender y no es necesaria su explicación. G17G91F100G2X60Y30R45 ó G19G91F200G3Y40Z20R-45

Hasta ahora se ha visto la posibilidad de que dos ejes se desplacen a la velocidad programada F describiendo una trayectoria circular.

Page 15: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 15

3.2.3.3. INTERPOLACION HELICOIDAL. Interpolar HELICOIDALMENTE es también posible mediante el CNC. Denominamos interpolación helicoidal al desplazamiento descrito por tres ejes (o más) al

unísono en donde dos de ellos describen una trayectoria circular y el tercero (o restantes ejes) realiza(n) un desplazamiento lineal síncrono con la circular. O sea, el desarrollo del circulo y el tercer eje describen una trayectoria lineal.

Bastará introducir el código del eje (recordemos: por estricto orden para que no se trunque el

desplazamiento) que no está incluido en el plano de interpolación seleccionado (G17 a G22), para que el CNC interprete que ese eje debe incluirse en el desplazamiento global de los ejes.

Así, si por ejemplo programamos: G18G91F80G3X30Y-20Z50R-40 gráficamente obtenemos la siguiente representación:

Por ejemplo en una máquina de electroerosión con un electrodo rectangular: G17G2X50Y0U180R25

obtenemos una representación como la mostrada en el gráfico 14.

El típico ejemplo es el de la "espira de un muelle". Su programación es sumamente sencilla si se tienen

claros los conceptos de los dos tipos de desplazamientosanteriores:

G17G91F500G3X0Y0Z-10I30J0

Aunque no seaprecie en la figura con todaclaridad, el punto final sealcanza al unísono por lostres ejes, describiendo XZuna trayectoria circular y eleje Y una lineal con laresultante de los dos ejesanteriores.

Otro caso típico de

interpolación helicoidal loconstituye aquel en donde sedesea ir orientando elcabezal (que se habráinstalado para ser gobernadocomo otro eje) a medida quenos desplazamoscircularmente.

Page 16: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 16

Si no orientamos el cabezal, la diferencia es considerable como se puede apreciar claramente en el gráfico 15 (comando: G2X50Y0R25).

Para finalizar la explicación de la interpolación helicoidal, añadiremos que el CNC está preparado para realizar movimientos helicoidales en donde intervengan la totalidad de los ejes. Por ejemplo:

F500G22G2X0.9Y-20.5Z30U-25.378V289W3.2A0.498B-34R-85.379 es un único comando en donde los ejes Z y U interpolan circularmente en sentido horario

con radio de 85.379 mm y con un ángulo mayor a 180º. Los restantes ejes: X, Y, V, W, A, B y la resultante del movimiento circular realizan un desplazamiento lineal. Todos ellos para que la resultante global del desplazamiento se mueva a una velocidad F igual a 500 mm/min.

Orientación de un electrodo rectangular NO Orientación de un electrodo rectangular

Page 17: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 17

Sección 4: COMANDOS QUE AFECTAN A LOS DESPLAZAMIENTOS

DE LOS EJES. Esta sección describe aquellos comandos que afectan a cualquier desplazamiento posterior programado que se realice. Estos son: F, G94/G95, G91/G90, G65d, G92, G93A..., G30, G64d Y G10/G11. 4.1. VELOCIDAD DE AVANCE LINEAL O CIRCULAR. F, G94/G95.

La velocidad de trabajo a la cual se realizan los desplazamientos del tipo: G1, G2 o G3, se programa mediante el comando F (Feed). Sus valores máximo y mínimo son respectivamente los de: 99999 mm/min. y 1 mm/min.. Es un comando que, al igual que los del tipo de desplazamiento, permanece enclavado hasta que se programe un nuevo valor. En el ejemplo de la Sección 2 de este mismo manual se puede comprobar que se puede incluir en un bloque que posea otros comandos, basta con que preceda a cualquier movimiento programado con G1, G2 o G3. A no ser que el fabricante de la máquina herramienta lo disponga de otra manera, a la puesta en marcha del equipo su valor se inicializa a cero, por consiguiente deberá haberse programado su valor antes que el de cualquier desplazamiento del tipo reseñado. Existen dos modalidades de interpretación. Simplemente que señale la velocidad en milímetros por minuto: comando G94 predispone al equipo para decodificar el comando en estas unidades (activo a la puesta en marcha del equipo). O, que interprete que la programación se efectúa en milímetros por vuelta: con G95 la velocidad resultante se obtendrá del producto: F*S. Ver comando S en Sección 10 .

NOTA: F se descompone en las velocidades para cada eje que interviene en el movimiento, de forma que la suma cuadrática de estas últimas, resultará en la velocidad resultante F.

Aunque se programe una velocidad muy elevada, el CNC limitaría siempre a esta al hacer la descomposición en las velocidades de cada eje, de forma que la velocidad de los ejes nunca supere a la velocidad máxima de cualquiera de estos (ver PSn2 en el Manual de Instalación).

4.2. PROGRAMACION EN COTAS INCREMENTALES ( G91 ) O EN COTAS ABSOLUTAS ( G90 ).

Cualquier acotado de un plano, y por consiguiente de un programa-pieza, se podrá realizar de dos maneras:

4.2.1. INCREMENTAL. En donde se programa la nueva cota a alcanzar siempre con RESPECTO AL PUNTO EN DONDE

NOS ENCONTRAMOS, esto es: después de cualquier desplazamiento, el punto donde nos hemos situado será el origen de cualquier nuevo movimiento.

Función activa (modal) a la puesta en marcha del equipo. En todas las secciones anteriore, la programación fue de este tipo. Referirse a ellas para cualquier

ejemplo.

4.2.2. ABSOLUTO. Introducción al origen-pieza. Siguiendo el ejemplo que se introdujo en la sección 2 de este mismo manual, el acotado absoluto del

plano en cuestión se muestra en el gráfico 16. En la programación absoluta "interesa" referirse a un punto concreto, normalmente denominado

origen de coordenadas, al cual están referenciadas todas las dimensiones del plano que se reflejan en el

Page 18: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 18

acotado de este. En el CNC se puede introducir en memoria cualquier programa-pieza referenciando todos sus

movimientos a un punto concreto al cual se le denominará origen-pieza (apartado 4.4). Suponiendo que se tenga a nuestra disposición algún método que de forma sencilla pueda indicar al

CNC que una localización exacta de la máquina va a constituir desde ese momento el ORIGEN DE REFERENCIA O PIEZA de cualquier cota programada (ver posteriormente comando G92: traslación de coordenadas o del origen pieza), podremos introducir las cotas de un determinado programa-pieza en cotas ABSOLUTAS con respecto al punto que hayamos determinado como origen.

El programa en absolutas del gráfico 16 resultaría como (suponemos que la máquina esta situada en

el mismo punto de partida que en la sección 2, el cual será en el ejemplo el punto X0Y0Z0):

En resumen y por ejemplo: supongamos que la persona A permanece sentada (estática), si el sujeto

B da ordenes de desplazamiento a la persona C siempre con respecto a la situación del sujeto A, los movimientos de C son referidos por B de forma ABSOLUTA con respecto de A.

4.3. ORIGEN MAQUINA: BUSQUEDA/RETORNO. Comando G65.

En cualquier máquina-herramienta existe un punto de referencia singular. Físicamente la máquina posee una marca (inamovible) que hace que el CNC se referencie con respecto a ese punto antes de poder realizar cualquier desplazamiento de los ejes por programa. A esta posición UNICA y singular se denomina: ORIGEN-MAQUINA (la cual servirá al CNC para referenciar cualquier movimiento u origen_pieza). El origen-máquina es de tal importancia que se ha dotado al CNC de un comando específico de busqueda automática o retorno a dicho punto (desde cualesquiera que hayan sido los origenes-pieza enclavados y los desplazamientos realizados). G65d en donde d puede ser cualquier código de eje (X,Y,Z,U,V,W,A o B) que incorpore la máquina, indica al CNC que, de no haber aun efectuado el ciclo de referenciado a origen-máquina, este comando lo realice automáticamente. Si ya se habían referenciado a los ejes, este comando es un simple retorno al origen-pieza con G0, SOLO EN EL EJE QUE HAYA SIDO PROGRAMADO A CONTINUACION DEL COMANDO G65. Por ejemplo: G65ZG65XG65Y ejecutará los siguientes movimientos y por este orden: 1- Donde quiera que este el eje Z, se desplazará a velocidad máxima de la máquina (G0) regulado por el selector del "rapid override" (ver Manual de Operatoria), al punto donde esté situado el origen máquina de dicho eje. 2- FINALIZADO EL MOVIMIENTO en el eje Z, se hará lo propio con el eje X. (Nunca movimientos al unísono para garantizar que la herramienta se desplace correctamente).

P025 ;NUMERO DE PROGRAMA CUALQUIERA. G90G0F1000 ;G90: COTAS ABSOLUTAS. X15Y10Z-14 ;MOVIMIENTO CON G0 (P. A P.). S2000M3M8 G1Z-20 ;VELOCIDAD TRABAJO: 1000 mm/min X45Y10 ;"Y" NO HARIA FALTA. G2X55Y20R10 G1Y30 ;NO "X" PUES NO SE DESPLAZA. X45Y45 ;¡RECORDAR!: G1 ENCLAVADO. X20 G3X15Y40I0J-5 ;CENTRO EN INCREMENTALES. G1X15Y10 ;"X" NO HARIA FALTA. Z-14M5M9 G0X0Y0Z0 ;VUELVE AL ORIGEN Y... G99 ;... FINAL DE PROGRAMA.

Page 19: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 19

3- Finalizado el movimiento en el eje X, le corresponde desplazarse al Y.

4.4. TRASLACION DE COORDENADAS (G92) . ORIGENES-PIEZA.

Se Debe tener presente que el acotado ABSOLUTO que se ha predefinido en un plano no tiene porqué coincidir con el del mecanizado en máquina. Supongase que ha sido introducido el programa de la sección 4.2.2. El "estacado" o fijación de la pieza en máquina se realiza, normalmente, en cualquier parte. Para referenciar al CNC deberemos efectuar una traslación de coordenadas o definición de un nuevo origen-pieza, desde el cual los desplazamientos que se realicen por programa se correspondan con aquellos que se desean. A partir del momento en que se haya "enclavado" un origen-pieza, todos los desplazamientos que se programen en absolutas (así como la lectura de la posición de la máquina en el visualizador- Ver Manual de Operatoria), se realizarán CON RESPECTO al nuevo origen seleccionado. Dichos valores se retendrán en memoria (incluso habiendo efectuado un paro y puesta en marcha del equipo) en los siguientes parámetros DE USUARIO (ver Parámetros Usuario en sección 11):

Por ejemplo en la sección 4.2.2 se introdujo la programación en cotas absolutas respecto de un hipotético origen-pieza (no teniendo que coincidir este con el origen-máquina). Siguiendo el mismo ejemplo, supongase que se conoce la distancia que hay entre orígenes máquina y pieza en cada uno de los ejes, antes de programar cualquier movimiento en los ejes añadiremos los siguientes bloques: G65ZG65XG65Y ;IR A ORIGEN-MAQUINA. G92X50Y30Z20 ;Los ejes por estricto orden (caso contrario se truncaría el comando y parte se interpretaría

como desplazamiento), con respecto al punto en el que nos encontraremos una vez ejecutado el bloque anterior (por tanto será una programación incremental), se sitúa el nuevo origen-pieza en aquellas cotas que se indican a continuación del comando G92.

G90G0F1000 ;Los restantes bloques del programa son los mismos que los de la sección 4.2.2. ./. Otra posibilidad es situar a la máquina (mediante movimientos manuales o en semiautomático o por pulsadores) en el punto que será el nuevo origen-pieza. Estando situados en dicho punto programaremos: G92X0Y0Z0 ;Con respecto al punto donde se halle la máquina (incremental), el nuevo origen se sitúa en ese mismo punto (incremento de 0 mm en cualquiera de los ejes). Reseñar que en un mismo programa puede variarse el origen cuantas veces se desee. Además, la omisión en el comando de uno o mas ejes, siempre que se respete el orden preestablecido, es sintácticamente y semánticamente correcto y causará que en el eje omitido no se modifique el parámetro de traslación asociado a este.

PU70 valor de la traslación en el eje X. PU71 valor de la traslación en el eje Y. PU72 valor de la traslación en el eje Z. PU73 valor de la traslación en el eje U. PU74 valor de la traslación en el eje V. PU75 valor de la traslación en el eje W. PU76 valor de la traslación en el eje A. PU77 valor de la traslación en el eje B.

De no disponer laaplicación de cualquiera de los 8 posiblesejes, los parámetros disponibles quedanpara uso de propósito general.

Page 20: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 20

4.5. GIRO DE COORDENADAS. Comando G93Ann.nnn

El giro de coordenadas solo afecta al plano XY. Cualquier programación errónea causará el mensaje apropiado de error sintáctico (ERR02: BAD PLANE). El valor de la variable A se programará en grados, admitiendo como mínimo una milésima de grado (0.001) y como máximo ±99999.999 grados (automáticamente dicho valor vendrá modularizado por 360º). A todos los efectos, rigen los mismos criterios de programación de las cotas de los ejes (apartado 3.1). La operación de giro de coordenadas se puede efectuar en incrementales (de ser "enclavada" anteriormente la orden G91) o en absolutas (G90), causando un giro desde el momento de su programación igual al valor del ángulo programado. A la puesta en marcha del equipo, se inicializa al valor de cero (0).

Con respecto al tipo de desplazamiento que este activo en el momento de solicitar el giro, reseñaremos las siguientes reglas:

1- Mediante programación en absolutas (G90) el giro siempre se aplica con respecto al origen de abcisas (eje de las X). Así si programamos: G90G93A25.5

A25.5 El segundo bloque no cumple ninguna misión. (Gráf. 20). 2- En incrementales se acumulan los giros programados. Con el ejemplo anterior el resultado sería el del gráfico 21.

4.6. FACTORES DE ESCALA ( G30 ). IMAGEN ESPEJO.

Reducir o ampliar las cotas programadas por un determinado factor es la misión encomendada a este tipo de comando.

Así y por ejemplo, si al programa de la sección 4.2.2 le añadimos un bloque de giro de coordenadas de la forma: G65ZG65YG65X G92X50Y30Z20 G90G0F1000 ;¡OJO! programación en absolutas.G93A15.5 ;AQUI el giro de coordenadas. X15Y10Z-14 ;... Obtenemos lo que se muestra en el gráfico 18.

Si cambiamos el bloque en donde programamos el giro: G65ZG65YG65X X50Y30Z20 G92X0Y0Z0 ;otra forma de programar G92. G90G0F1000 X15Y10Z-14 G93A15.5 ;Giro en otro BLOQUE. S2000M3M8 ;... Obtenemos que el giro se aplica a partir de otro punto. (Gráfico 19).

Page 21: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 21

Los factores de escala una vez hayan sido programados se retendrán en memoria y por consiguiente serán activos a la puesta en marcha del equipo CNC. Ello se debe a que, al igual que la traslación de coordenadas, sus valores son almacenados en determinados PARAMETROS DE USUARIO (ver sección 11):

PU80 ;F. escala aplicado sobre el eje X. PU81 ;F. escala aplicado sobre el eje Y. PU82 ;F. escala aplicado sobre el eje Z. PU83 ;F. escala aplicado sobre el eje U. PU84 ;F. escala aplicado sobre el eje V. PU85 ;F. escala aplicado sobre el eje W. PU86 ;F. escala aplicado sobre el eje A. PU87 ;F. escala aplicado sobre el eje B.

De no disponer de los 8 ejes en la aplicación, los parámetros asociados con los ejes no activos quedan disponibles para otras funciones. La sintaxis es igual a la del comando G92: G30X......Y......Z......U......V... en donde a continuación de G30 se programan los valores de los factores de escala de CADA EJE (o sea, independientes para cada uno de ellos) que se desee vengan afectados por el factor de escala. (Cero es interpretado por el CNC exactamente igual que el de la unidad, o sea NINGUN factor de forma). Los valores máximos y mínimos programables son exactamente igual que los asignados a los valores de los códigos de los ejes (apartado 3.1.). Recordar que la omisión de uno o varios ejes causa la NO modificación del valor anteriormente seleccionado. Asimismo, señalar que el orden es fundamental. Por ejemplo: G90G0F2000 G30X2.5Z0.3Y38.49U-279 La 2ª linea se decodificará en dos órdenes bien diferenciadas. Primero se señala que los desplazamientos que a continuación de este comando se programen, vendrán afectados de un factor de forma de 2.5 en el eje X (los valores en este eje se multiplicarán por 2.5) y de 0.3 en el eje Z. A continuación, y por no seguir con el orden X,Y,Z,U,V,W,A,B con G0 desplazamos los ejes Y y U al punto reseñado.

4.6.1. Factor de escala negativo => imagen espejo o simétrica.

Con lo visto hasta ahora, podemos concluir que en un mismo programa y en el orden que se quiera establecer, se podrá "acumular": giros (G93A...), traslaciones (G92) y factores de escala negativos o positivos (G30) sin más que insertar los comandos apropiados en un mismo programa-pieza o mediante llamadas a subprogramas como veremos en la sección 6 de este mismo manual. El hecho de retener en memoria los

El CNC utiliza la programaciónnegativa del factor de escala para,además de invertir el sentido de losdesplazamientos, realizar los cambiosapropiados en el tipo de interpolacióncircular para obtener la imagen simétricaa partir de un mismo programa-pieza.Cambios de G2 en G3 y viceversa, sepueden constatar fácilmente mediante elclásico ejemplo de "mano izquierda /mano derecha".

El equipo automáticamente

establecerá las correcciones apropiadaspara que a partir de un mismo programa-pieza se pueda realizar la imagen espejode la pieza a mecanizar simplemente sise inserta el comando de escaladonegativo previo a cualquierdesplazamiento. En el gráfico 22 se representan cuatro casos posibles de escalado.

Page 22: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 22

valores de los factores de escala y traslación de coordenadas, se debe a que un programa puede concluirse tras varias jornadas de trabajo (caso típico, por ejemplo, de una máquina de electroerosión por penetración).

4.7. "PARADA PRECISA" SINCRONIZADA POR EVENTO EXTERNO. COMANDO G24. (Opción bajo

pedido).

En opción bajo demanda el CNC puede disponer de una entrada de "muestreo rápido" denominada como "opción TOUCH" (entrada para "sonda de contacto" y comandos de palpado). Normalmente se emplea para ciclos de medición, centrado o anticolisión. Dicha entrada actúa en menos de 20 microsegundos y se puede muestrear su estado mediante el comando G23. Los comandos G71, G72, G73 y G74 están asociados con ella (ver apéndice F) y, para electroerosión, G25 y G26 también (ver apéndice J si se dispone de este tipo de unidad). Para determinadas aplicaciones especiales como máquinas de etiquetado, sellado, corte y soldadura para manufactura de bolsas plásticos, etc... se requiere de una señal de "sincronismo" que interrumpa el movimiento de los ejes cuando esta se activa (suministro de +24Vdc por la entrada TP1 con conector BNC de la tarjeta IODA. Ver en Manual de Instalación el apartado 6.5 para el equipo MAC o el apartado 4.7 para el equipo MACup). La codificación es del tipo G0 para interrupción de movimientos de 1 a 8 ejes: G0XnnnYnnnZnnnU... G24 XdYdZdU.. .

Movimiento siempre incremental de 1 a 8 ejes. Movimiento absoluto o incremental (dependiendo de G90 o G91 programado

anteriormente) de 1 a 8 ejes. o del tipo G1 para interrupción de movimientos de un solo eje a la velocidad "F" programada: G1Ynnnn G24 Yd siempre incremental en el mismo eje que el comando anterior al G24. Movimiento absoluto o incremental (dependiendo de G90 o G91

programado anteriormente) en un eje a elegir entre X, Y, Z, U, V, W, A o B. La orden G24 hace que el CNC revise continuamente el estado de la señal de ingreso "TOUCH" mientras se está realizando el primer movimiento programado (el absoluto o incremental). Si se finaliza el comando sin haberse activado la entrada, se saltará al bloque siguiente y se seguirá con la normal secuencia de ejecución del programa. Sin embargo, si la entrada se activa durante la ejecución del desplazamiento de los ejes programados con anterioridad al comando G24, sin interrumpir el desplazamiento los ejes se desplazarán desde justo la posición en que se activo la entrada "TOUCH" en un incremento exactamente igual al valor introducido después del comando G24 (movimiento incremental de cada eje en "d" mm). Hecho esto el programa continuará en la misma linea de programa y a continuación del desplazamiento incremental.

NOTA: Para programar el incremento mínimo en la posición de "parada", debería tenerse presente el valor de las rampas de aceleración de cada eje (ver Parámetro de Sistema PSn3). Cuando la señal de ingreso "TOUCH" se activa, el valor de la posición de los ejes se almacena en los parámetros de usuario PU60 a PU67 (uno por eje y en orden correlativo).

4.8. EJES ROTATIVOS MODULARIZABLES ( G64 ).

La orden G64 seguida del código del eje causa que el valor que posea en ese momento dicho eje, venga modularizada por aquel valor que el fabricante de la máquina-herramienta haya preestablecido durante la instalación y puesta en marcha.

Page 23: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 23

Si por ejemplo, la aplicación dispone de un 4º eje rotativo (o plato divisor) en donde se introdujo como valor del módulo: 360 (una vuelta está subdividida en 360000 impulsos de CNC o posiciones posibles), la programación de: G90G1F1000 X20Z-10U-3786.987 G64U causará que: 1- se desplacen en interpolación lineal los ejes X y Z: 20 y 10 mm. respectivamente y, al unísono, el plato divisor gire 10 vueltas y "pico" en el sentido que corresponda a un movimiento negativo. 2- finalizada el movimiento lineal, deseamos que el plato divisor modularice su posición en grados. -3786.987º = - (10*360+186.987)º = -186.987º = +173.013º. Resultado es que el eje U se iguale a 173.013 (en donde se tiene presente el respectivo G92 o traslación de coordenadas del eje en cuestión).

4.9. ANULACION ACELERACIONES ( G10/G11 ). (opción bajo pedido).

Ciertas matizaciones deben ser tenidas en cuenta por cuanto respecta a la "decodificación/ejecución" de los comandos que constituyen un programa: a) La decodificación de comandos siempre va adelantada (salvo en los equipos de electroerosión o EDM) con respecto a su ejecución para posibilitar el "empalme" de movimientos consecutivos. A tal efecto, la ejecución de un programa lleva implícita 3 fases que pueden estar procesandose a la vez pero de forma sincronizada: 1ª la del bloque en ejecución, 2ª la del bloque que está a la espera de ser ejecutado (solo actúa si el comando G11 está activo) y 3ª la del bloque que está siendo decodificado. (A parte estarían las concernientes con el Corrector del Radio de la Herramienta, pero este es otro tema). Llegado el caso, el puntero de decodificación de comandos puede ir 4 bloques avanzado con respecto al bloque que se está ejecutando. b) Tanto en ABSOLUTAS como en INCREMENTALES, el decodificador de comandos se avanza en su totalidad siempre que la duración del comando que está en ejecución así lo permita. Ello permite que se empalmen movimiento consecutivos sin ningún tiempo de parada. c) Con el Corrector del Radio de la Herramienta enclavado (G41 o G42), si el número de puntos que genera la compensación del radio es superior a 1, el "decodificador de comandos" deberar esperar a que se hayan ejecutado todos los movimientos antes de proseguir (puede producirse una breve parada puesto que el decodificador deberá reiniciar su misión). Como la inflexión en la trayectoria en estos casos acostumbra a ser superior a 90 grados, esto hará siempre que que en dichos puntos el CNC se predisponga a ir sin aceleraciones aunque se haya ordenado lo contrario (comando G11 activo). d) Con el Corrector del Radio de la Herramienta enclavado, el comando G40 podrá ser decodificado con anticipación para que, llegado el caso, se desacelere en el siguiente bloque al comando G40 y no en el precedente.

* * * * * La anulación de aceleraciones entre movimientos consecutivos, en donde el contorno programado posee una concatenación de desplazamientos tangenciales o de pequeña inflexión, se hace efectiva mediante el comando en opción G11 (G10 para cancelar dicha orden). A la puesta en marcha el CNC preestablece G10. Antes de iniciar el contorneado de la pieza, deberá programarse el comando G11. Se deberán tener presentes los siguiente supuestos: 1. El comando G11 lleva implícito que el pulsador del DRY RUN (aunque se señale lo contrario) no actúe. Por el

contrario, si será posible que el valor del FEED OVERRIDE afecte a la velocidad resultante del movimiento de los ejes.

2. Una vez se enclave el comando G11, la velocidad programada F se ajustará de forma que se permita, a

Page 24: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 24

priori, realizar la anulación de aceleraciones. Deberá tenerse muy presente que la longitud del primer desplazamiento sea lo suficientemente larga para permitir que se alcance la velocidad F programada (rampa de aceleración: PS13, PS23, ...). Dependiendo de la longitud del tramo y de la F programada, puede darse el caso de que el CNC no pueda realizar los cálculos con la suficiente anticipación como para permitir la concatenación de movimientos sin acelerar/decelerar. Así y dado un contorno determinado, si se aprecia que en un bloque programado los ejes generan rampas de aceleración, debería programarse una F más pequeña de tal forma que el CNC posea el tiempo suficiente para realizar todos los cálculos necesarios entre bloques. Según la longitud del tramo (DTG), la variación de velocidad (porcentual) con respecto a la velocidad F programada viene dada por:

con F en mm/min. y DTG en mms.

Si se define a " d " como la variación porcentual de velocidad, obtendremos que la longitud del tramo (DTG) con relación a F se puede expresar como:

con F en mm/min. y DTG en mms. Así, si por ejemplo se permite que d = 2%:

con F en mm/min. y DTG en mms. Si F = 1000 mm/min. => DTG>2 mm. Si F = 500 mm/min. => DTG>1 mm. 3. La programación de cualquier comando que no sea del tipo G1, G2 ó G3, hará que el CNC se predisponga a

ir sin aceleraciones. En particular, el comando G0 provoca una cancelación del comando G11 (igual que si se programara G10).

Una vez el comando G11 esté activo (y para reducir el número de cálculos que debe realizar el CNC), nunca se atenderá por: G7 (cantos vivos son incompatibles con el comando en cuestión); G8 (ejes con bloqueos que intervengan en un contorneado del tipo G11 deberán ser activados previamente mediante el comando G9); "SINGLE BLOCK" (si está activa la función "bloque a bloque", ésta no actuará a partir de que haya sido enclavado G11); no se comprobará si el movimiento programado está dentro de los límites lógicos (PS10, PS11, PS20, PS21...). 4. La cancelación de la orden G11 se obtiene programando el comando G10 o un movimiento de los ejes mediante G0 (como ya fue mencionado en el punto 1.4). 5. El usuario hará uso de las instrucciones G10G11 (o solo G11) en aquellas casos en donde se aprecie que la "tangencia" entre movimientos consecutivos no permita el ir sin aceleraciones (escuadras, por ejemplo). El CNC MAC no determina si puede o no ir sin aceleraciones, se limita a preparar (decodificar) el siguiente movimiento a realizar, mientras se está ejecutando el desplazamiento precedente a aquel. 6. El CNC actúa de la forma siguiente una vez se haya programado el comando G11:

1º Preestablece el poder ir sin aceleraciones (predecodificación bloques por adelantado). 2º Mientras se está ejecutando el movimiento y si se alcanza la velocidad F programada, se establece

el ir sin aceleraciones. Si no se alcanza la velocidad F (longitud del tramo demasiado corta para la velocidad programada), el CNC actuará de la forma normal (aceleraciones entre tramos consecutivos).

3º Una vez se ha establecido el régimen sin aceleraciones, el CNC revisará continuamente si el siguiente comando puede mantener las condiciones establecidas (G1, G2 ó G3 y que éste pueda haber sido predecodificado durante la ejecución del bloque anterior).

Se revisará la posibilidad de empalmar movimientos consecutivos de forma que se genere rampa de desaceleración en los siguientes casos:

a) Si el comando que se está ejecutando de desplazamiento de los ejes llega a su fin y el decodificador aún no ha tenido tiempo de preparar el siguiente comando.

b) Si el comando siguiente ya decodificado, añadido a lo que queda por recorrer en el que se está

Page 25: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 25

ejecutando resulta que da una distancia que no permita el mantener ir sin aceleraciones. En cualquier otra condición, siempre preestablecerá nuevamente la posibilidad a ir sin aceleraciones.

Dado que el CNC debe realizar muchos cálculos mientras se está ejecutando un desplazamiento de los ejes, es recomendable desde el punto de vista de aumentar la velocidad de proceso del CNC, atender por los siguientes puntos: 1º Después de un comando G11, programar solo las cotas de los ejes. 2º No programar al inicio de cada bloque el tipo de desplazamiento (G1, G2 ó G3). Estas son instrucciones que

necesariamente serán decodificadas y ello ralentiza la velocidad de proceso del CNC. 3º Es conveniente que el CNC solo esté ejecutando el programa (no edición de programas al unísono). 4º Procurar no hacer uso de factores de escala, ni de imagen espejo, ni de giros de coordenadas, ni de nada

que suponga aumentar el número de cálculos que deba procesar el CNC. 5º Por el mismo motivo que el punto 4º, sería aconsejable el haber programado el contorno con G91

(incrementales) y solo con desplazamientos lineales (G1) y no circulares (G2 ó G3). Si se debe usar G2 o G3, es conveniente hacerlo mediante la programación de los centros (I, J, K...) y no

mediante R. 6º De ser posible, programar velocidades del tipo: 12 * 2n: 12, 24, 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288, ... 7º O cuanto mínimo, múltiplos de 12: 12, 24, 36, 48, 60, 72,..., 600,..., 1200,..., 1800, .... 8º De ser ello posible, procurar que la longitud de los tramos sea un múltiplo exacto de la velocidad: F/12. 9º Evitar programar aquellos ejes que no se muevan en cada bloque.

En general, cuanto más larga sea la longitud del tramo en relación a F/12, más tiempo de proceso le estamos dando al CNC.

Page 26: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 26

Sección 5: OTRAS FUNCIONES PREPARATORIAS.

5.1 ARISTAS MATADAS ( G5 ) O CANTOS VIVOS ( G7 ).

En determinados mecanizados de piezas puede interesar que el equipo CNC no inicie un nuevo movimiento antes de que la máquina haya alcanzado la posición "exacta" en el desplazamiento anterior. El CNC normalmente (G5) inicia el desplazamiento del siguiente bloque justo en el instante en el que ha finalizado los cálculos de generación de trayectoria del anterior bloque. Como físicamente la máquina va "retrasada" con respecto a los cálculos antes mencionados (la denominación que recibe tal efecto es: ERROR DE SEGUIMIENTO), se produce un "empalme" entre desplazamientos consecutivos que hacen que el punto de intersección no sea realmente alcanzado (arista matada). A la puesta en marcha del equipo y por defecto, el CNC actua de esta forma, permitiendo alcanzar mayor velocidad de ejecución en cualquier programa-pieza. En casos particulares (por ejemplo, punteadoras) se desea que la posición programada se alcance con una determinada tolerancia. O sea, la máquina no iniciará un nuevo desplazamiento hasta que esté situada en un entorno muy estrecho del punto que haya sido programado. El entorno mencionado es asimismo programable por el fabricante de la máquina-herramienta mediante un parámetro de sistema determinado. Para que el CNC actue de esta manera, deberá programarse el comando G7 (cantos vivos) antes de los desplazamientos que se deseen realizar de este tipo.

5.2 EJES CON BLOQUEOS ( G8/G9 ).

Función que se emplea para dar orden de bloqueo -G8- (mediante freno, embrague, etc...) o desbloqueo -G9- en aquellos ejes que posean esta opción. Si la orden de bloqueos G8 ha sido programada, los ejes que se configuren con esta particularidad, si permanecen estáticos o después de finalizar cualquier desplazamiento, desactivarán el regulador de avance y el freno/embrague asociado. Nuevamente el fabricante de la máquina-herramienta habrá dispuesto a aquellos ejes con esta opción al programar determinados parámetros de sistema.

5.3 ACTIVACION DEL VOLANTE ELECTRONICO. (Comando G16_).

Si la máquina ha sido dispuesta para poder realizar movimientos manuales mediante volante electrónico, la programación en semiautomático del comando G16 hace que el eje seleccionado a continuación de dicho comando se pueda mover mediante giros en sentido horario/antihorario del volante o "nonius". Para cancelar el comando semiautomático enclavado basta con realizar un STOP seguido de un ENTER. Así si por ejemplo, estando en el ejecutor y en manual (ver Manual de Operatoria) se programa el comando "G16Y", se observará que el "display" o visualizador señala la posición del eje Y y, según el valor del RAPID OVERRIDE, a cada cuenta o paso del volante electrónico el eje se desplazaría a razón de: Rov=100% ÄØ 0,1mm ó Rov=50% ÄØ 0,1mm ó Rov=25% ÄØ 0,1mm ó Rov=12% ÄØ 0,001mm.

5.4. ORDENES DE PUESTA EN MARCHA Y PARO DEL CABEZAL ( G13, G14, G15 ). (opción bajo pedido).

Estos comando son tratados con mayor detalle en el apartado concerniente al cabezal (Función S, sección 10 en este mismo manual). Estas ordenes al ser programadas, advierten al CNC y, por consiguiente, establecen en máquina las siguientes posibilidades: G13Puesta en marcha del cabezal en sentido horario. G14Puesta en marcha del cabezal en sentido antihorario. G15Paro del cabezal. Normalmente estas funciones están incluidas en un subprograma especial (ver apartado FUNCIONES M O MISCELANEAS, sección 7) en donde se incluyen otras condiciones de activación o paro.

Solo deberán programarse estas funciones preparatorias si la aplicación dispone de cabezal o de eje controlado en posición y velocidad.

Page 27: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 27

Sección 6: FUNCION G99.

ETIQUETAS de SALTO. SUBPROGRAMAS. Debido a las especiales particularidades con las que se ha dotado a la función G99, esta constituye un caso singular de las ordenes preparatorias o tipo G. 6.1. SUBPROGRAMA.

En el equipo CNC se ha preestablecido que cualquier programa residente en la memoria pueda ser "llamado" por otro. De esta forma el programa "llamado" pasa a ser un SUBPROGRAMA. Un mismo subprograma puede llamar a otro, y este a otro y así sucesivamente. En total podemos tener hasta un máximo de 8 imbricaciones posibles. De superarse dicho número se causará que en el visualizador de la botonera aparezca el mensaje parpadeante: ERROR 03.

6.2. G99 COMO FINAL DE PROGRAMA O SUBPROGRAMA. El comando G99 sin más (no viene seguido de un punto "." o del signo de menos "-"), señala al equipo que finaliza la ejecución del programa. Como hemos mencionado en el apartado anterior, un subprograma no posee ninguna característica diferenciadora con respecto a un programa normal, por consiguiente la finalización del subprograma se efectuará mediante el mismo comando (G99), solo que el CNC reconocerá al decodificarlo que debe seguir ejecutando el siguiente bloque del programa que efectuó la llamada (operación de "retorno de subprograma").

6.3. G99 COMO ORDEN DE SALTO A SUBPROGRAMA.

Cualquier programa residente en memoria posee un número que lo identifica de 3 dígitos como máximo( ver Manual de Operatoria). Si deseamos hacer un salto a un subprograma (a veces también denominado "subrutina"), bastará con conocer el número asignado al programa para poder realizar una llamada a este mediante la programación del comando: G99-nnn en donde: G99 viene seguido del signo menos (-) y de 1, 2 o 3 cifras que identifiquen al número de subprograma. Por ejemplo, supongamos que el programa 1 (o 001) posee un ciclo de taladrado, avellanado y roscado realizado por el mismo usuario o experto en programación de la oficina técnica de factoría. Y queremos roscar en cuatro puntos determinados. Una posibilidad sería la de desplazar la máquina hasta el primer punto e introducir en el programa todo el ciclo que conlleva el roscado. Posteriormente moverse hasta el siguiente punto y ¡volver a programar todo el ciclo de nuevo!, y así sucesivamente. El método que se expone en este apartado es mucho más sencillo y compacto de programar, y quedaría como sigue:

P085 ;Prog 85 por ejemplo. G90G0F800 ;En absolutas, punto a punto. G7 ;Interesa asegurar posición de roscado. X25.5Y49.855 ;Desplazamiento hasta primer punto. G99-1 ;Llamada al ciclo de roscado. X-25.5 ;Segundo punto. G99-01 ;Nuevo ciclo de roscado. X0Y-49.855 ;Tercer punto. G99-001 ;Nuevamente roscar. X0Y0 G99-01 ;1, 2 o 3 cifras después del signo -. G5

Page 28: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 28

G99 Como se puede comprobar el programa solo posiciona a la máquina en aquellos puntos en donde se desea realizar la operación de roscado, el subprograma se encargará de poner en marcha el cabezal y el refrigerante, cambiar de herramienta, bajar y subir el eje Z, etc...

6.4. ETIQUETAS DE SALTO. G99 COMO ORDEN DE SALTO A ETIQUETA.

En determinadas situaciones puede interesar "marcar" una determinada posición del programa para señalar que este es un punto a alcanzar mediante un salto en el programa (no empleando la ejecución secuencial del programa como hasta ahora veníamos viendo en todos los ejemplos).

6.4.1. ETIQUETA O MARCA EN UN PROGRAMA. @nn. Se indicará con el carácter "@" (alt mode y . en la botonera del equipo), seguido de 2 dígitos que indicarán el número de la etiqueta. Un mismo valor de etiqueta en un mismo programa no se debe programar, pero en su caso solo se reconocería a la primera de estas. La ejecución secuencial de ellas no realiza ninguna misión, simplemente serán referencia de salto en el programa. 6.4.2. SALTO A ETIQUETAS. G99.nn. El comando G99 seguido de un punto (.) y de dos dígitos, señala durante la ejecución de un programa que debe efectuarse un salto a una determinada localización identificable mediante una "marca o etiqueta". La utilización de estos saltos, en la mayoría de las ocasiones, viene motivada por la inclusión en el programa de condiciones que obligan a diferenciar entre diversas posibilidades de ejecución. Ej. 1º.- PROGRAMA INFINITO: P006 [email protected] En este simple programa, de no efectuar un paro manual en la ejecución de este, permanecerá el eje X en un continuo "vaivén". El ejemplo además sirve para ver la posibilidad de introducción de toda una secuencia de operaciones en un mismo bloque. Este tipo de procedimientos en funcionamientos del CNC en modo "autómata" (o PLC) son bastante corrientes.

Ej. 2º.- SALTOS INCONDICIONALES: P007

G0G90F1000 X10Z12.5 G99.02 @01X10Z0 G99 @02Y10 Y0 G99.01

El programa solo especifica la sintaxis apropiada. No se requiere profundizar en la interpretación de este comando hasta que no conozcan determinados conceptos (ENTRADAS/SALIDAS, parámetros, funciones paramétricas, etcétera).

Page 29: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 29

Sección 7: FUNCIONES M o MISCELANEAS.

Normalmente en un CNC la misión que cumplían las funciones M era la de sincronización del programa que está siendo ejecutado con eventos externos. Así por ejemplo, en una fresadora, mandrinadora o torno, a nadie se le ocurriría iniciar un contorneado ¡sin haber puesto en marcha el cabezal o el refrigerante!. Además habían casos tan determinantes en la misión encomendada que incluso se establecieron códigos estandard como por ejemplo:

M3/M4 puesta en marcha cabezal en sentido horario/antihorario respectivamente. M5 paro del cabezal. M8/M9 puesta en marcha o paro del líquido refrigerante respectivamente. M6 cambio de herramienta.

En la actualidad son tan diversos los tipos de máquinas y todos sus derivados y por consiguiente sus formas de implementación, que la flexibilidad en la operación que se encomienda a las funciones miscelaneas es fundamental. El equipo MAC no posee de origen NINGUNA FUNCION M preestablecida, es el fabricante de la M-H el que mediante un SUBPROGRAMA especial configurará la totalidad de la aplicación. O sea, cualquier función M es un subprograma de igual tratamiento que el que se anotó en el apartado 6.1. La única particularidad, es la de poseer una numeración especial (P&nn) y que NO son de acceso a edición directa para evitar que el usuario pueda alterar su contenido equivocadamente. Con ello se consigue que sofisticadas operaciones de puestas en marcha del cabezal, refrigerante, sopletes, LASER, cabezales dosificadores, chorros de agua, llenados de tanques o inmersiones de las piezas en determinados baños, o ciclos de cambio de herramienta, palets, cabezales, cargas automáticas de pieza, ciclos de herramienta o de edición predefinidos, estacado o posicionamiento de piezas, e infinidad de operaciones más..., puedan resolverse satisfactoriamente por cualquier fabricante sin más que resolver la programación en su particular caso. El usuario final solo deberá conocer los códigos de aquellas funciones M que hayan sido implementadas por el fabricante, bastando simplemente la programación de la Mnn apropiada para desencadenar toda la secuencia de operación prevista por el fabricante (incluso desplazamientos para un Cambiador Estático, por ejemplo). Si en el ejemplo que se introdujo en el apartado 6.3, el fabricante predefine los ciclos previstos en máquina, de forma que establece que la función M34 realiza un ciclo de roscado (faltaría añadir la inicialización de parámetros: distancia de penetración en el eje Z, etc...), el programa se resolvería de la forma siguiente: P085 G90G0F800 G7 ;con Cantos Vivos para asegurar posición de roscado. X25.5Y49.855 [&00L... ;...: para señalar la falta del bloque de inicialización de parámetros. M34 ;Llamada al ciclo de roscado previsto por el fabricante. X-25.5

M34 ;Si los parámetros no se alteran y no varían en el ciclo actual, no hará falta reprogramarlos. X0Y-49.855 M34G5G99 En resumen, programar una función M obliga a conocer todo el juego de instrucciones del CNC, siendo su principal ventaja la de aportar flexibilidad de configuración al fabricante y facilidad de uso al cliente final.

NOTA: Se ha previsto que las funciones M puedan programarse mediante diálogos. A tal efecto, la sección 8 del Manual de Operatoria detalla su uso desde la Botonera de Mandos.

Si además la aplicación dispone del paquete de comunicaciones PMAC y de un PC para realizar el interface con el usuario y, si el fabricante ha dotado a esta de ciclos fijos de mecanizado ("Canned Cycles"), es conveniente la lectura del apartado 10.5 del Manual de Utilidades de Comunicación.

Por otro lado, la sección 13 de este mismo manual explica la función del comando "[" que está extrechamente vinculado con el de las funciones M.

La sección 11 de este manual introduce los Parámetros de Usuario y todas las funciones parámetricas de la unidad CNC, comunmente empleadas en la programación de las funciones M utilizando diálogos

Page 30: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 30

Sección 8: ENTRADAS (I) / SALIDAS y MARCAS (O).

Normalmente este tipo de comandos auxiliares vienen incluidos dentro de una función M y el usuario nunca hará uso de la programación directa de estos. Por consiguiente este apartado va destinado más propiamente al fabricante de la máquina o a la(s) persona(s) que lleve(n) a término la puesta en funcionamiento de la aplicación. Diferenciaremos entre entradas (recepción de una señal tipo "si o no" de solo dos posibles estados), salidas (suministro al exterior de una señal del tipo "si o no") y marcas (activación de una señal "si o no" que no tiene relación con el exterior), mediante la programación de códigos I u O respectivamente. Desde el punto de vista del CNC activar/desactivar una "marca" no tiene diferencia alguna con una salida, asimismo examinar el estado de (o efectuar un test de) una "marca" o de una salida es lo mismo que realizar el reconocimiento de una entrada.

NOTA: Durante toda la exposición del presente capítulo se hará repetida mención a códigos "nn" o "mm" los cuales representan un número de 1 o 2 dígitos y del 0 al 99 como gama de valores posibles. 8.1. ENTRADAS ( I , IF , I. , IF. ). ENTRADAS BCD ( Inn.mm ).

El equipo dispone de 32 entradas (en opción bajo demanda de hasta un total de 64) de propósito general. Algunas de ellas mediante el Parámetro General del Sistema PS09 (ver Apartado 8.3 del Manual de Instalación) pueden asignarse para realizar una u otra determinada función: p. ej. I0 puede ser asignada al reconocimiento del estado del pulsador de la "Seta de Emergencia"). La distribución de códigos de identificación de las entrada se realiza mediante 1 o 2 dígitos, y se correponderán con los valores siguientes: 0 a 7 para el primer octeto. 8 a 15 para el segundo octeto. 16 a 23 para el tercer octeto. 24 a 31 para el cuarto octeto. y así sucesivamente hasta el 8 octeto si se dispone de una 2ª tarjeta AXIN. En el Apartado 5.1 del Manual de Operatoria se explica como se puede visualizar en el "display" de la Botonera de Mandos el estado de las entradas por sucesivos octetos. Los comandos empleados para examinar el estado de cualquier entrada son: Inn La programación de este comando efectúa un test de la entrada "nn". Mientras NO SEA ACTIVA el programa no avanzará en su ejecución. Al activarse dicha entrada la ejecución del programa seguirá la normal secuencia de ejecución de comandos y bloques. I-nn Igual que el comando anterior pero el signo - (menos) lleva implícito el caso contrario: espera confirmación de señal "nn" esté desactivada. Por ejemplo. La entrada 6 se destina a averiguar si el eje Z está en posición de cambio de herramienta. De estarlo se ejecutará el subprograma o función miscelánea M88. Ejecutado este deberemos comprobar que la misma entrada haya sido desactivada por la secuencia de cambio. De no estar activada en un principio, el CNC detendrá la ejecución del programa hasta que el operario intervenga. ...I6M88I-6... IFnn Entrada condicional afirmativa. Si "nn" está activa se ejecutará la instrucción que viene justo a continuación de este comando. Caso contrario saltamos a ejecutar las instrucciones del siguiente bloque. IF-nn Entrada condicional negativa. Igual que la anterior, pero en este caso se solicita la revisión de que el estado sea inactivo. Si entrada desactivada seguimos en el mismo bloque, caso contrario SALTAMOS AL SIGUIENTE. Siguiendo el anterior ejemplo, en el caso de que no se cumplan las condiciones establecidas podremos

Page 31: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 31

señalar tal eventualidad "saltando" a una etiqueta en donde se programe otra función M (por ejemplo M89) de advertencia al operario de que la máquina falló en la secuencia de cambio.

.../... . IF6M88G99.01 G99.02 @01IF-6G99.03 G99.02 @03 ;continuación del programa. .../... G99 ;final programa. @02M89G99 ;actuación si fallo.

Como saltamos al mismo punto si I6 o I-6 fallan, el programa podría simplificarse:

.../... IF6M88IF-6G99.01 G99.02 @01 ;continuación programa. .../... G99 @02M89G99 ;actuación si fallo en estado "inputs".

Y ya puestos, podemos entender fácilmente que trabajar con la "negación" a los test de entradas hacen más elegante el programa.

.../... IF-6G99.01 M88IF6G99.01 .../... G99 @01M89G99

I.nn Este tipo de programación lleva asociado un movimiento de ejes. Mientras se realiza el desplazamiento se revisa continuamente el estado de la entrada "nn", al activarse se interrumpe el movimiento y se continua ejecutando los comandos posteriores en el mismo bloque. Si durante toda la ejecución del desplazamiento no se alcanza la condición de activación de la entrada "nn" se salta al bloque siguiente. I.-nn Igual que el comando anterior pero como viene siendo habitual con el signo - (menos) expresa siempre la desactivación. Reseñar que ambos códigos (I.nn y I.-nn) requieren el punto decimal. Para dar mayor énfasis a determinados conceptos, sigamos con el ejemplo anterior. En este caso: deseamos garantizar que la entrada 6 se active (no dejando opción al error en la programación de la cota Z a alcanzar). Conocemos el límite superior de recorrido del eje Z y se supone que se trabaja en absolutas con respecto al origen máquina.

.../... Z10I.6M88IF6G99.01 ;al eje Z lo lanzamos hasta su final de recorrido. Durante el desplazamiento

y de forma continua, el decodificador de comandos del CNC irá comprobando el estado de la entrada 6. Al activarse la entrada 6, se interrumpe la ejecución del movimiento y, como antes de alcanzar la posición Z10 se ha activado la entrada 6, se ejecutará M88 (siguiente comando justo después de la orden I.nn). Después, si I6 permanace desactivada saltamos a continuar la normal decodificación/ejecución de los comandos del programa.

M89G99 ;si no se activa la entrada 6 durante el desplazamiento del eje Z (o sea, se alcanza la posición Z10 sin ser pulsado el microinterruptor asociado con I6), saltamos a señalar el fallo mediante la ejecución de M89.

@01 ;continuación del programa en el caso de que todo haya sido correcto. .../...

Existe un código más a señalar (IF.nn), pero como este se emplea para efectuar un test de las salidas o de las marcas, se introducirá una vez hayan sido explicadas estas. ENTRADAS BCD: Hasta ahora hemos visto las posibilidades que brinda el CNC para averiguar el estado de una y solo una determinada entrada. Viene siendo cada vez más normal en aplicaciones sofisticadas, interrelacionar un CNC con un AUTOMATA

Page 32: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 32

(PLC) o cualquier otro dispositivo al uso. Para tal circunstancia el equipo predispone que las entradas asignadas a los códigos I16 a I23 (tercer octeto) en el equipo M.A.C. o I08 a I15 en el MACup puedan recibir e interpretar un determinado código BCD. (En realidad el equipo soporta códigos HEXADECIMALES, o sea, hasta 256 posibles combinaciones de entrada, pero por exclusión en la programación de estos se puede limitar a cualquier número). Inn.mm Esperará que por las entradas 16 a 23 (o 08 a 15 en el equipo MACup) se suministre el código "nn" en el dígito de mayor peso y "mm" por el de menor peso. IFnn.mm Igual que lo anterior pero de ejecución condicional. Si se cumple, continua en el mismo bloque. Caso contrario, se salta al bloque siguiente. Por ejemplo, si se programa el código "2.2" (0010 0010 en binario) ejecutaremos M80. Si se da el "4.5" (0100 0101) el M81. Si "7.9" (0111 1001) el M82. Y ¡por que no!, si se da el código "11.14" (1011 1110) el M83. Si ninguno se cumple el M89.

.../... IF2.2M80G99.01 IF4.5M81G99.01 IF7.9M82G99.01 IF11.14M83G99.01 M84@01 ... G99

8.2. Test de entradas con TEMPORIZACION. Comandos "Inn@" y "Rnnnnn.nnn":

Según lo visto, los códigos del tipo Inn, I-nn o Inn.mm poseen la ventaja o inconveniente de interrumpir la ejecución del programa hasta que se CUMPLA la condición descrita (entrada "nn" activa/desactiva o suministro código BCD "nn.mm"). Para temporizar durante el tiempo que se "solicite", se ha introducido el comando Rnnnnn.nnn (con "nnnnn.nnn" desde 999999.999 segundos hasta 0.01 segundos). Justo desde el instante en que se programe dicha orden, el contador interno se irá decrementando. Al llegar al valor de 0, se interrumpe la cuenta.

NOTA: De momento este "temporizador" solo se emplea para la instrucciones del tipo "Inn@" pero no se descarta que pueda resultar interesante para otras funciones. Se emplea el código "R" por carecer este de significado si se programa como orden única. La particularidad de los comandos Inn@ es que solo se revisará el estado de la entrada "nn" durante el tiempo en que permanezca el temporizador "R" a cualquier valor que sea diferente al de 0. Si el valor del temporizador (contador interno) es cero o cuando este llega a cero sin haberse dado la condición "Inn", se "saltará" a la etiqueta de programa número 99 ("@99": ver apartado 6.4) en donde se gestionará la alarma producida por tal circunstancia. Si la condición "Inn" se cumple antes de que el temporizador llegue al valor de 0, se seguirá con la ejecución normal del programa pero el temporizador seguirá paralelamente decrementándose (ello puede servir para concatenar condiciones sin reiniciar al temporizador).

NOTA: Si no se ha programado la etiqueta "@99" en el mismo programa que se está ejecutando, se causará el mensaje parpadeante de error sintáctico: [ ER02 NO LABEL ]

8.3. SALIDAS / MARCAS ( O ). SALIDAS BCD ( Onn.mm ). "TEST" DEL ESTADO DE LAS SALIDAS Y MARCAS ( IF. ).

Las salidas o marcas simplemente activan o desactivan el estado de una variable interna del equipo, con la particularidad de que las salidas suministran una señal "física" al exterior y las marcas no. El equipo dispone de 32 salidas / 64 marcas (en opción bajo demanda de hasta un total de 64 salidas / 32 marcas) de propósito general.

Page 33: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 33

Algunas de ellas mediante el Parámetro General del Sistema PS09 (ver Apartado 8.3 del Manual de Instalación) pueden se asignadas para realizar una u otra determinada función: p. ej. O0 puede señalar el estado "emergencia" en el equipo). La distribución de códigos de identificación de las salidas se realiza mediante 1 o 2 dígitos, y se le asignan los valores siguientes:

0 a 7 SALIDAS primer octeto. 8 a 15 MARCAS segundo octeto. 16 a 23 SALIDAS tercer octeto. 24 a 31 MARCAS cuarto octeto. 32 a 39 SALIDAS quinto octeto. 40 a 47 SALIDAS sexto octeto. 48 a 55 SALIDAS septimo octeto. 56 a 63 SALIDAS octavo octeto. 64 a 71 SALIDAS noveno octeto. 72 a 79 SALIDAS decimo octeto. 80 a 87 MARCAS undecimo octeto. 88 a 95 MARCAS duodecimo octeto.

El caso expuesto sería el de una aplicación de 64 salidas / 32 marcas (2 tarjetas IODA instaladas). En el equipo normal, las salidas 48 a 79 no poseen señales "físicas" al exterior (no se instala la 2ª tarjeta IODA que se entrega bajo pedido expreso) y así estas deberán ser consideradas como MARCAS. En el Apartado 5.1 del Manual de Operatoria se explica como se puede visualizar en el "display" de la Botonera de Mandos el estado de las salidas por sucesivos octetos. Para activar/desactivar una sola salida o marca, disponemos de los siguientes códigos: OnnActivación de la salida "nn". O-nn Desactivación de la salida "nn". Al igual que con las entradas, a las salidas 16 a 23 se les puede asignar códigos en BCD (en realidad HEXADECIMAL). Onn.mm Suministra el código "nn" por el dígito de mayor peso (salidas O23 a O20) y el "mm" por el de menor peso (salidas O19 a O16). Un ejemplo de utilización de ambos sería el de suministrar a un autómata por ejemplo, el código 28 -0010 1000- (o cualquier otro), pero indicando que se trata de un código de número de herramienta (por consiguiente emplearemos la salida O7 como señal de validación o "strobe" de los códigos de herramienta). Entregaremos, asimismo un 44 -0100 0100- (o cualquier otro) para que interprete el autómata que se trata de código de alarma (validación por O6). Finalmente un 8.13 -1000 1101- (o cualquier otro) como número del "palet" a preparar (validación por O5). (Introducimos el comando E -temporización en segundos- como preámbulo a lo que constituirá la siguiente sección).

.../... O2.8E0.1O7E0.4O-7 ;Suministro del código 28 por salidas O16 a O23, temporizamos 0,1

segundos para que las 8 señales sean estables en la entrada del autómata. Suministramos la validación del dato de herramienta por salida 7 durante 0.4 segundos y desactivamos el "strobe".

O4.4E0.01O6E0.157O-6 O8.13E.075O5E4.5O-5 .../...

En el apartado anterior (8.1) se introdujo la posibilidad de efectuar un test sobre el estado de las salidas o marcas... IF.nn La única diferencia con respecto del comando IFnn, es que estas revisan el estado de las 96 salidas y marcas haciendo referencia a una de ellas mediante la asignación de un valor al código "nn" del 0 al 95. Principalmente este tipo de codificación sirve para "reconocer" el estado de una MARCA, la cual habrá sido activada como señal de ejecución de paso por un determinado estado del CNC. (P.ej.: al pasar el programa por un "camino" u otro señalamos el "camino" elegido mediante el enclavamiento de una determinada marca, que después se "testará" haciendo uso del comando al que nos referimos).

Page 34: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 34

Sección 9: TEMPORIZACION: Código Ennn.nnn.

STOP por PROGRAMA: Código E. En algunas circunstancias se puede desear parar la ejecución de un programa durante un tiempo determinado. Incluso puede interesar efectuar un paro y no reiniciar la ejecución hasta que no se haya pulsado la tecla de <START> (ver Manual de Operatoria). El comando Ess.sss al ser ejecutado realiza una temporización en segundos del tiempo señalado (en donde "ss.sss" expresa el tiempo en segundos con 3 decimales). Así y por ejemplo, si después de haber efectuando un taladrado se deseara temporizar durante 2.45 segundos, se programaría:

.../... G90S2000M3M8 G0Z-20 F500G1Z-28.45E2.45 Z-20G0Z0 .../...

Para efectuar un paro por programa símplemente se programará el código E sin introducir ningún valor numérico a continuación. (El equipo no malgasta nuevos códigos pues los recursos de la Botonera de Mandos son limitados). Por ejemplo, para un cambio de herramienta manual, simplemente introduciremos este código cuando se desee efectuar la operación de cambio.

.../... G65ZO7 ;salida 7 para señalar mediante un piloto luminoso en el panel frontal la operación de cambio. EO-7 ;espera por el "start" y apagamos el piloto. .../...

Page 35: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 35

Sección 10: FUNCIÓN S. VELOCIDAD DEL CABEZAL. CAMBIOS DE GAMA.

El equipo CNC está preparado para gobernar dos tipos de cabezales:

1- cabezal de continua, en donde simplemente se suministra una tensión de consigna proporcional a la velocidad (en vueltas/min) a la que debe girar el cabezal. Disponiendo de la posibilidad de efectuar cambios de gama o rango (esto es: "un cambio de marchas"). 2- cabezal en modo eje, en donde es posible el gobierno en velocidad y en posición, no disponiendo de la posibilidad de cambios de gama. En la sección 3 de este manual, interpolación helicoidal, se da un ejemplo para este tipo.

Cualquiera que sea el tipo de cabezal, la programación de la velocidad se realiza mediante el comando Snnnnn.nnn dada en vueltas/min ( o lo que es lo mismo en r.p.m.). El valor máximo programable es el de 99999.999 r.p.m. (aunque el fabricante limitará internamente el valor al máximo de revoluciones del motor instalado). El valor mínimo es el de 1 r.p.m.. Se pueden programar hasta 3 decimales y los valores negativos son interpretados como positivos. La programación del comando S simplemente preestablece la velocidad a la que girará el cabezal cuando este se ponga en marcha. Normalmente el fabricante de la máquina herramienta asocia las siguientes funciones miscelaneas o M a la puesta en marcha o paro del cabezal: M3 puesta en marcha cabezal en sentido horario. M4 " " " " " " antihorario. M5 paro del cabezal. Las cuales funciones M (no olvidemos que son simples subprogramas) poseerán como parte de su programación los comandos de aviso al CNC específicos de paro y puesta en marcha (ver apartado 5.4 en este mismo manual): G13 en la función M3. G14 en la función M4. G15 en la función M5. El hecho de realizar cualquier operación con el cabezal mediante las M's descritas, facilita al fabricante la labor de adaptar al CNC a los requerimientos del regulador y motor del cabezal. Ciertas peculiaridades diferencian a los cabezales de continua o de modo eje. 10.1. CABEZAL DE CONTINUA. CAMBIOS DE GAMA.

El fabricante de la máquina-herramienta habrá predispuesto al equipo para este tipo de operación mediante la especial configuración de unos determinados Parámetros del Sistema (PS07) y de Usuario (PU40 a PU42). En este tipo de cabezales se dispone de un regulador de velocidad y motor de potencia constante, posiblemente de un cambio de marchas o gamas para garantizar potencia a bajas revoluciones y no se instala ningún dispositivo que aporte información de posición (como es el "encoder"). Antes de poner en marcha el cabezal, deberá programarse el valor de la S (caso contrario el equipo señala: ERR2 NO S PROG), la cual programación realiza 2 misiones: 1- Señalar al exterior la gama en la que se debe situar el cambio.

El CNC ha previsto hasta un máximo de 4 gamas posibles, el valor de las cuales se introduce en los Parámetros de Usuario PU40, PU41, PU42 y PU43, por consiguiente el operario se abstendrá en este caso de hacer uso de ellos mediante programación. (Se encontrará información detallada sobre la forma de actuación del CNC al cambio de gama en el Manual de Instalación y Puesta en Marcha del equipo CNC). Durante la operación de cambio aparecerá en el visualizador de la Botonera de Mandos de la unidad de control el siguiente mensaje parpadeante:

GEAR CHANGE. ("cambio de marcha"). Si se "aborta el proceso de cambio (mediante la simple pulsación de la tecla de <STOP>), ningún valor de gama

Page 36: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 36

quedará preestablecido. Si se desea conocer el valor de la velocidad máxima de la gama seleccionada, la visualización de esta se realiza desde el ejecutor, al pulsar las teclas <ALT MODE> y <5> (o sea < * >). 2- Realizado el cambio de marcha, internamente el CNC se predispone a suministrar la consigna apropiada al

regulador de velocidad cuando se programe alguna de las dos opciones de puesta en marcha (M3 o M4). Desde el ejecutor se podrá visualizar el valor programado de la S mediante <ALT MODE> y <F> (<S>). Ver

sección 5 del Manual de Operatoria. Ejemplos de como poner en marcha el cabezal a unas determinadas revoluciones y como efectuar el paro,

se pueden encontrar en los secciones 2 y 3 de este mismo manual. . S1500M3 . M5 . S2500M4 . M5 .

10.2. CABEZAL CONTROLADO EN POSICION Y VELOCIDAD.

A este tipo de cabezal/eje el fabricante del la M-H lo habrá dispuesto con un dispositivo que reporta información de la posición del eje del cabezal y de un motor de par constante (a veces también se instala de potencia constante, pero resulta de muy difícil posicionamiento. Al parar el cabezal, este realiza unas oscilaciones debido al poco par suministrado por el motor a bajas vueltas). La programación de la S es directa ya que no posee cambio de gama. El fabricante habrá "paramétrizado" al último eje de la aplicación global como un eje controlado en velocidad. El usuario no tiene porqué conocer los detalles de tal implementación, simplemente hará uso de los comandos S, M3, M4 y M5. Señalar que la programación de M5 (por consiguiente de G15) hace que el equipo retorne a un control en modo eje. Lógicamente, actuando el eje como cabezal no se podrá dar ordenes de posicionado de este. Para visualizar el valor de la S en el ejecutor, hay dos posibilidades: ALT MODE y F (S) Visualiza la velocidad real del cabezal. Como se dispone de un lector de posición es factible tal hecho. ALT MODE y 5 (*) Visualiza la velocidad (o valor de la S) programada.

NOTA: En ambos tipos de cabezal (DC o eje), la programación de valores de la S superiores a los máximos preestablecidos por el fabricante, se limitan automáticamente.

Page 37: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 37

Sección 11: PROGRAMACION PARAMETRICA.

PARAMETROS de USUARIO. ACCESO DIRECTO a MEMORIA.

En este apartado se introducen términos que pueden no ser de sencilla comprensión. Se aconseja al lector que se introduce en el tema de control numérico, que prescinda de esta sección por el momento.¡Error! Marcador no definido. Nociones sobre la forma que poseen los ordenadores para operar internamente, o de algún lenguaje de programación, por fácil que este sea, facilitan en gran medida la comprensión de todo lo expuesto en este apartado. 11.1. PARAMETROS DE USUARIO.

Un Parámetro de Usuario es una variable (en cuanto que su valor se puede variar) a la que solo se le puede asignar valores numérico desde ±99999999 a 0.

NOTA: Las 3 últimas cifras deberán interpretarse como decimales dependiendo del uso al que se destine el parámetro en cuestión). El CNC dispone de un total de 100 parámetros de usuario. En el Manual de Operatoria se explica como poder acceder a los Parámetros de Usuario 0 al 89 (los 10 restantes comunmente se emplean como registros temporales) mediante el editor de parámetros, lo que permite una visualización y/o modificación de cualquiera de ellos. En programación, la forma de referirse a un parámetro es mediante el carácter <&> (<Alt MODE> y <->) seguido del número de parámetro (del 0 al 99, máximo 2 cifras). Así por ejemplo:

&0 o &00 como referencia al parámetro 00. &8 o &08 como referencia al parámetro 08. &15 como referencia al parámetro 15. &24 como referencia al parámetro 24. &47 como referencia al parámetro 47. &79 como referencia al parámetro 79. &99 como referencia al parámetro 99.

En aquellos casos en los que se haga una referencia INDIRECTA, esto es y por ejemplo desplazar el eje X hasta la posición que contiene el parámetro &03, podrá hacerse uso del carácter F a continuación del código del comando. En el ejemplo: programar XF03 o X&03 es lo mismo (el motivo de esta peculiaridad no es otro que el de facilitar la introducción de datos desde la Botonera de Mandos que se suministra con el equipo. Pulsar "F" solo requiere una pulsación, mientras que "&" requiere el pulsar <ALT MODE> y <-> [menos]).

11.2. ASIGNACION DE PARAMETROS A CODIGOS. Existen determinados códigos de programación que admiten, en lugar de valores numéricos de programación directa, asignar a estos un valor igual al contenido de un parámetro de usuario. Códigos tales como: X&nn, Y&nn, Z&nn, U&nn, V&nn, W&nn, A&nn, B&nn, F&nn, S&nn, E&nn e incluso G&nn o G99.&nn o G99-&nn, son sintácticamente correctos y permiten referenciar el valor de un desplazamiento, por ejemplo, por parámetros.

11.3. OPERACIONES BASICAS CON PARAMETROS. Con los parámetros se pueden efectuar diversas operaciones con el valor de una constante o con el de otro parámetro o incluso con el valor de un parámetro que es apuntado por otro. La sintaxis de cualquiera de ellas sigue el siguiente formato:

Page 38: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 38

1 &nn?kk.kkk 2 &nn?&mm o &nn?Fmm 3 &nn?&&mm o &nn?FFmm 4 &&nn?kk.kkk o &Fnn?kk.kkk 5 &&nn?&mm o &Fnn?&mm o &&nn?Fmm o &Fnn?Fmm 6 &&nn?&&mm o &Fnn?&&mm o . . . 7 &nn?&-mm o &nn?F-mm

en donde: &nn parámetro destino.

? operación a realizar. &mm o Fmm parámetro fuente u origen. &-mm o F-mm el parámetro fuente se cambia de signo.

(se recomienda que siempre se utilice la misma simbología, solo & o &,F combinados para que el programa sea más legible e interpretable).

NOTA:Los 7 tipos de operación se podrán realizar con cualquier tipo de operación: básica, de salto condicional, especiales e incluso de acceso a memoria. Para una mejor comprensión se introduce la operación de carga y sobre ella se explicarán las 7 posibilidades anotadas.

11.3.1. Operación de CARGA. Consiste en igualar el parámetro destino al valor que se reseñe a la derecha del símbolo de operación. Símbolo de operación: "L" (Load). (<Alt MODE> y <9>). Las 7 posibilidades que se apuntaron en el apartado anterior, se detallan mediante un ejemplo en lo que sigue. 1- Suponer que se quiere efectuar una operación de carga de un determinado valor en el parámetro &24. El valor a introducir puede ser directamente una constante: -128.479 por ejemplo, la instrucción &24L-128.479 carga en el parámetro de usuario número 24 el valor reseñado. (Mediante el editor de parámetros se vería en el "display" de la Botonera de Mandos: PU24 -00128479 del cual, como se ha mencionado anteriormente, habría que interpretar que las 3 últimas cifras son los decimales). 2- Si posteriormente en el programa se requiere que el parámetro &30 se iguale al valor que posee el &24 (suponiendo que no haya sido modificado en valor y permanece a -128.479), la instrucción &30L&24 o &30LF24 carga en el parámetro 30 del contenido del parámetro 24. Por consiguiente: PU30 -00128479 si se visualizara en la Botonera. 3- Supongase ahora que el parámetro &09 posee el valor de 24 (&09L0.024 o sea PU09 00000024), si introducimos en el programa, &30L&&09 ( ó &30L&F09 ó &30LFF03 ). carga en el parámetro 30 el contenido del parámetro al cual apunta el contenido del parámetro 09. Es un tipo de "direccionamiento indirecto" clásico en cualquier lenguaje de programación de ordenadores. Si: (09) = 24. (24) = 128.479 entonces: (30) L ((09)) =Ø (30) = 128.479 Para bucles o subprogramas parametrizables es una posibilidad más que se brinda para programación experta. 4- Si llegados a este punto se iguala el parámetro &07 al valor de 0.030, la programación de: &&07L-128.479 o &F07L-128.479 hace que el contenido del parámetro 30 se iguale a -128.479 como en el primer caso, solo que esta vez lo efectuamos indirectamente.

Page 39: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 39

5- Con los casos expuestos se interpretará fácilmente que &&07L&24 carga en el parámetro 30 el contenido del 24. si: (24) = -128.479 (07) = 0.030 entonces: (30) = -128.479 6- Para completar todas las posibilidades, el doble direccionamiento indirecto resultaría en (suponiendo que &09 se iguale a 24): &9L0.024 &7L0.030 &24L-128.479 &&7L&&9 la última instrucción resultará ser la misma que &30L&24, o sea el parámetro 30 vuelve a cargarse con el valor de -128.479. Si: (09) = 0.024 (07) = 0.030 (24) = -128.479 entonces: ((07)) L ((09)) =Ø (30) = -128.479 7- Finalmente: &30L&-24 cargará el contenido del parámetro 24 en el 30, pero cambiado de signo. O sea, si (24)=-128.479, entonces:(30) = 128.479 11.3.2. Operación de SUMA. Realizará una suma del contenido del parámetro destino con lo que venga a continuación del símbolo de operación. Símbolo de operación: "+" (más) o "." (punto). (el punto se debe a que botoneras especiales no disponía del signo +). Así, si por ejemplo, suponiendo que el parámetro &35 contenga el valor de 16.000 (PU35 00016000) al programar: &35+12

obtenemos que el contenido del parámetro 35 se iguala a 28.

NOTA: Para facilitar la programación, a todos los efectos se sigue la misma terminología que en la programación de los valores de las cotas de desplazamiento. Esto es: la omisión del punto decimal hace que se interprete dicho valor multiplicado por 1000. Siempre para obtener unidades de milésimas como unidad básica de trabajo. Si por ejemplo &38 lo igualamos a 0.001 y el parámetro 35 posee el valor de 1, obtendremos con &38L0.001 &35+&38 que el &35 se iguale a 1.001 (PU35 00001001). 11.3.3. Operación de RESTA. Realiza la resta del contenido del parámetro destino con lo que venga a continuación del símbolo de operación. Símbolo de operación: "-" (menos). Ejemplo: &29 = 134.876 y &30 = 11.076, &29-&30 hace que el parámetro de usuario 29 se iguale a 123.8 (PU29 00123800 en el visualizador y mediante el editor de parámetros).

11.4. OPERACIONES DE SALTO CONDICIONAL.

Page 40: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 40

Como salto condicional se entiende a aquella operación de cuyo resultado depende que la normal ejecución secuencial de un programa se trunque. Muy parecidas a las funciones IFnn, las operaciones de este tipo que se pueden efectuar con parámetros son:

11.4.1. Operación MAYOR QUE. En donde si el contenido del parámetro cumple la condición expresada de "mayor que" en el comando global, se continua con la ejecución en el mismo bloque en el cual se encuentra la instrucción de comparación, caso contrario se SALTA AL BLOQUE SIGUIENTE. Símbolo de operación: ">". (<ALT MODE> y <7>). Ejemplo: &11L23 &11>&48G99.01 G99.02 en donde el parámetro 11 se iguala a 23.000 y en principio desconocemos que valor posee el parámetro 48. Si 23.000 es mayor que el contenido del parámetro 48 saltaremos a la etiqueta @01, caso contrario saltamos de bloque el cual nos envia a la etiqueta número @02. 11.4.2. Operación MENOR QUE. En donde si el contenido del parámetro cumple la condición expresada de "menor que" en el comando global, se continua con la ejecución en el mismo bloque en el cual se encuentra la instrucción de comparación, caso contrario se salta al bloque siguiente. Símbolo de operación: "<". (<ALT MODE> y <8>). Ejemplo: &11L12.345 &11<&48G99.01 G99.02 11.4.3. Operación IGUAL QUE. En donde si el contenido del parámetro cumple la condición expresada de "igual que" en el comando global, se continua con la ejecución en el mismo bloque donde se encuentra la instrucción de comparación, caso contrario se salta al bloque siguiente. Símbolo de operación: "=". (<ALT MODE> y <¯>). Ejemplo: &11L98765.432 &11=&48G99.01 G99.02

11.5. EJEMPLOS ILUSTRATIVOS.

11.5.1. Bucle con 123 repeticiones. G90G0F500 ; EN ABSOLUTAS Y PUNTO A PUNTO. Z0X100Y100 ; DESPLAZ. HASTA NUEVO ORIGEN. G92X0Y0Z0G91 ; ORIGEN-PIEZA E INCREMENTALES. &0L0 ; PU00 = 0. @00 ; ETIQUETA 00. &0<123 G99.01 @02 X10 &00+1.000 G99.00 ; SI &0 < 123: ; 1-SALTA A @01. ; 2-INCREMENTA EJE X EN 10 mm ; 3-INCREMENTA &00 EN 1 ; 4-VUELVE A @00. G65ZG65XG65Y ; CUANDO &0=123: VUELVE A ORIGEN-MAQUINA. G92X0Y0Z0 ; NUEVO ORIGEN-PIEZA. G99 ; FINAL DE PROGRAMA. @01 ; ETIQUETA 01. Z-20 ; EN RAPIDO APROXIMAR EJE Z. G1Z-5.5 ; TALADRO DE 5 mm.

Page 41: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 41

E.5 ; ESPERAR 0.5 sgds. G90G0Z0G91 ; VUELVE A ORIGEN EN RAPIDO. G99.02 ; RETORNO A PUNTO DE LLAMADA. Está claro que mejor que: 1- En lugar de las etiquetas @01 y @02 se podría hacer uso de subprogramas. 2- Se hacen exactamente 123 taladros según el eje X distanciados 10 mm. 3- Por cada taladro efectuado, incrementamos el contador de taladros (&00). 11.5.2. Ciclo de taladrado en número de programa 007 y de refrentado en el 008. Programa 087 con 44 taladros en eje X y con 28 refrentados en el eje Y. Primero se mostrará como realizar los dos ciclos de forma paramétrica. P007 G91G0Z&00; o ZF00. Aproximación en PU00. G1Z&01; descenso hasta punto final en PU01. &98L&00&98+&01; &98 = &00 + &01 G0Z&-98; el valor del parámetro 98 con signo cambiado. (recuperar posición en Z). G99; final de subprograma. P008 G91G0Z&00 G1Z&01 &98L&00&98+&01 E&02; temporización parametrizada en PU02. G1Z&-98 G99 Una sola salvedad. Sería interesante poder "almacenar" en otro parámetro temporal el valor del "status" del CNC (tipo de desplazamiento: G0, G1 o G2, así como el G90 o G91 que se encuentren activos) para poder "restituirlo" en el momento oportuno y así "devolver" al CNC en las mismas condiciones con las que fue llamado un determinado subprograma. Esta posibilidad existe accediendo directamente a la memoria del equipo y almacenando el valor en un parámetro para luego restituirlo como originalmente estaba. A título de introducción de esta singular prestación (ver apartado 1.7 en este manual), podemos añadir como primer bloque en cada subprograma el comando: &99!8.594 ;Almacena en &99 el "status" de CNC (8.594 es la posición de memoria en donde se va actualizando el tipo de desplazamiento y acotado). Antes del G99 se restituiría el "status" de forma que sin riesgo de que el operario recuerde que el ciclo le pudo haber cambiado el tipo de acotado (G90/G91 o viceversa) o desplazamiento (G0/G1/G2/G3), el pueda continuar con el mismo estado en que se encontraba antes de efectuar la llamada al ciclo en cuestión.

!8.594L&99 ;restituye "status". Volviendo al ejemplo que nos ocupaba, se utilizan a: &00 como cota de aproximación. &01 " " " penetración. &02 " valor de temporización. además: &89 como parámetro temporal. El usuario deberá conocer tal asignación para que pueda programar el siguiente programa. P087 G90G0F500 G65ZG65YG65X X100Y100Z-48.5 G92X0Y0Z0G91; origen-pieza e increm.. &0L-20.7; aproximación 20.7 mm. &1L-5.3; taladrado de 5mm. &11L7; subprograma a ejecutar. &10L44; inicializamos &10 a 44. @00 &10>0 G99.&11 &10-1 X10 G99.00 ; si &10 es mayor que 0:

Page 42: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 42

; 1- subprograma indicado en parámetro 11. ; 2-decrementa contador. ; 3-a nueva posición. ; 4-vuelve a etiqueta @00. ; si &10 se iguala a cero salta de bloque. &0L-20.7; aproximación 20.7 mm. &1L-10.3; refrentado 10 mm. &2L1.45; temporización de 1.45 segundos. &11L8; subprograma P008. &10L0; inicialización a cero. @01 &10<28 G99.&11 &10-1 Y5 G99.01 G65ZG65XG65Y G92X0Y0Z0 G99

11.6. OPERACIONES ESPECIALES.

La sintaxis sigue siendo la misma que la de los apartados anteriores, pero el tipo de operación realizada requiere un conocimiento más riguroso del equipo CNC.

11.6.1. Operación de MULTIPLICACION. Realiza la multiplicación del contenido del parámetro destino con lo que venga a continuación del símbolo de operación. Símbolo de operación: "M". Ejemplo: &68L12.5 &00L1.25 &00MF68 resultará que el parámetro &00 se igualará a 15625 (PU00 15625000). Considerar siempre que la unidad de trabajo es la milésima, por consiguiente el resultado se obtiene de multiplicar 12500 * 1250. 11.6.2. Operación de DIVISION. Realiza la división del contenido del parámetro destino con lo que venga a continuación del símbolo de operación. El resultado se almacena en el parámetro destino y será solo el valor entero resultante de la división (ver operación del RESTO DE LA DIVISION). Símbolo de operación: "D". Ejemplo: &42L4254 &42D4.5 en el parámetro 42 se almacenará el resultado entero del producto de dividir: 4254000/4500, cuyo valor resulta ser el de: 945 (O sea: &42L0.945 en programación), arrojando un resto de 1500. Por consiguiente: PU42 00000945. 11.6.3. Operación del RESTO DE LA DIVISION. Realiza la división del contenido del parámetro destino con lo que venga a continuación del símbolo de operación. Del resultado de la división se extrae el resto de esta y dicho valor se almacena en el parámetro destino. Símbolo de operación: "G". Siguiendo con el ejemplo anterior: &42L4254 &42G4.5 en este caso obtendríamos un resultado de &42 = 1.5. (En el visualizador obtendremos mediante el editor de parámetros: PU42 00001500).

Las siguientes operaciones, a diferencia de las hasta ahora presentadas no involucran en el cálculo al valor del contenido del parámetro destino.

Page 43: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 43

11.6.4. Operación de la RAIZ CUADRADA. En el parámetro destino se almacena el resultado de aplicar la raíz cuadrada sobre lo que venga a continuación del símbolo de operación. Símbolo de operación: "V". Ejemplo: &55L425 &55V&55 la raíz cuadrada de 425000 da como resultado 651.92024, contando que la unidad de trabajo son las milésimas en el parámetro 55 se almacenará el valor de 0.651, por consiguiente: PU55 00000651. El intento de programación de valores negativos causarán el error sintáctico: ERR2 BAD PARAM. 11.6.5. Operación ARCOTANGENTE, SENO O COSENO. En estos tipos de operación vienen involucrados más de un parámetro. La expresión en donde interviene el seno o el coseno es del tipo: y = A * seno [ 2*p * x/B ] en donde: A Es la amplitud de la función seno. (El valor del seno solo alcanza valores comprendidos entre -1 y 1). B Es el periodo de la onda. 2*p Permite expresar a "x/B" en las mismas unidades. (De hacerlo directamente en radianes se debe omitir este factor). Para el arcotangente (ángulo cuya tangente...): y = A * arctg [ x / B ] en donde: A Puede servir para la conversión a grados o cualquier otro producto a realizar. B Puede servir para realizar una modulararización del valor "x". (de no emplearse ni A ni B, ambos valores se igualarán al 1 milesimal [0.001]). El cálculo que realiza el CNC con cualquiera de estas expresiones es el siguiente: &nn = &79 * sen [ &mm / &89] para el seno. &nn = &79 * cos [ &mm / &89] para el coseno. &nn = &79 * arctg [ &mm / &89] para arcotang.. La operación se realiza en coma flotante, y una vez obtenido el resultado final se traslada a coma fija realizando un truncamiento. Símbolo de operación: "S" para el seno. Símbolo de operación: "C" para el coseno. Símbolo de operación: "A" para arcotangente. Así si por ejemplo queremos calcular el seno de un ángulo determinado en grados (p. ej 45º), con una precisión de 7 decimales, los pasos a realizar serían:

1- En parámetro 79 cargar el valor de 10000, o sea: PU79 01000000 (10 elevado a 7). Para obtener los 7 decimales prefijados. 2- En parámetro 89 cargar: 360 * 1000 / 2 * p para conversión a radianes y poder introducir el ángulo directamente sin punto decimal. 3- Solicitar la operación de cálculo.

El programa en bloques quedaría reducido a las siguientes sentencias: &79L10000 &89L57.296 ;360000/2p con 3 decimales. &34S45 ;en el parámetro 34 obtenemos el valor del seno. Los cálculos efectuados se muestran a continuación: &34 = 10000000 * seno [ 45000 / 57296 ] resultando que: PU34 07071046. (En programación directa: &34L7071.046). Recordemos que : sen(45º) = 0.7071046...

Page 44: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 44

11.7. ACCESOS Y OPERACIONES CON LA MEMORIA.

Cabe la posibilidad de acceder directamente a la memoria "RAM" del equipo CNC (en ella se almacena: programas del usuario y variables del sistema). Puede interesar en determinadas aplicaciones el poder registrar, o incluso modificar, el estado de una variable o la posición teorica o real de un eje... Es muy importante que personas no cualificadas o que carezcan de los conocimientos exactos y precisos para efectuar operaciones con la memoria, se abstenga de realizar cualquier uso de esta prestación, no por la complejidad de la operación en si, sino debido a que cualquier equivocación puede motivar una grave anomalía en el normal funcionamiento del CNC. La sintaxis de programación es muy similar a la empleada con los parámetros. Bastará indicar el signo de admiración ("!") seguido de la dirección (en notación decimal) de la posición de memoria con la que se quiera operar. Es importante reseñar que cualquier acceso a memoria se realiza en modo "long word" (o sea 4 bytes), y por consiguiente solo se podrán asignar valores pares a las direcciones de acceso. Las operaciones previstas son:

11.7.1. Carga de posición memoria en un parámetro. Se especifica el parámetro según la terminología habitual, seguido del signo de admiración (!) y de la dirección decimal de la posición de memoria que se desea cargar. Sintaxis: &nn!dd.ddd Por ejemplo: acceso a la posición teórica del eje X, y carga en el parámetro de usuario número 24. Del apéndice C obtenemos: dirección cota teórica eje X _________ 10.378 por lo tanto: &24!10.378 , efectuará la operación de carga. 11.7.2. Carga de una constante en la memoria. Sintaxis: !dd.dddLkk.kkk en donde: !dd.ddd dirección de memoria. L especifica la operación de carga. kk.kkk " el valor de la constante. 11.7.3. Carga de un parámetro en la memoria. Sintaxis: !dd.dddL&nn en donde: !dd.ddd dirección de memoria. L especifica operación de carga. &nn " número de parámetro. 11.7.4. Otras operaciones con la memoria. Absolutamente todas las operaciones que se pueden realizar con los parámetros (+, -, >, <, =, M, D, R, V, S, C, A) tienen su respectiva codificación con direcciones de memoria. Sintaxis: !dd.ddd?kk.kkk !dd.ddd?&nn en donde: !dd.ddd dirección de memoria a operar. ? especifica el tipo de operación. kk.kkk " el valor de la constante. &nn especifica el número de parámetro.

11.8. INTRODUCCION DE UN VALOR DE CARGA EN PARAMETRO DURANTE LA FASE DE EJECUCION DE PROGRAMAS.

Puede ser conveniente que en determinadas circunstancias, la ejecución de un programa pueda solicitar al operario o usuario de la M. H. que se introduzca un determinado valor para operar con este.

Page 45: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 45

Por ejemplo, supóngase que se edita un programa en donde se va a mecanizar una determinada pieza repetida un número de veces que en principio se desconoce. Se desea que sea el operario el que introduzca, antes de iniciar el mecanizado y cada vez que se ejecute este programa, el número de piezas a realizar. Para este ejemplo la instrucción a programar al inicio del programa sería: P012 G90G0F500 |01; Mensaje en 1ª linea número 01. &00L!; INSTRUCCION QUE NOS OCUPA. |00; Quita mensaje. &00<0 N-; Si es negativo o... &00=0 N=0; ... es cero, provoca error. @01M24; El ciclo M24 ejecuta la pieza. G0G90X25; Siguiente pieza a 25 mm en X. &00-1; decrementa contador de piezas. &00>0G99.01; Si contador no es cero, reejecuta. G99 Cuando este programa sea ejecutado, al usuario de la máquina le aparecerá en la primera linea del "display" de la botonera de mandos (si posee la botonera DUNA) el mensaje asociado con la instrucción |01 (ver seeción 13 de este manual) y, al inicio de la segunda linea la siguiente sentencia: &00L? En donde podrá introducir cualquier valor numérico (solo se aceptará un número o el signo menos o el punto decimal). Una vez introducido el valor deseado, se pulsará la tecla <ENTER> con lo que el valor será almacenado en el parámetro 00 y se continuará con la ejecución normal del programa. Como siempre que se está en fase de ejecución, si se pulsa <STOP> y <ENTER> se aborta la ejecución del programa (ver Manual de Operatoria). El referido comando puede emplearse con cualquier Parámetro de Usuario o Dirección de Memoria y SOLO con la Operación de Carga en parámetros: código "L".

NOTA:Se ha previsto que las funciones M puedan programarse mediante diálogos. A tal efecto, la sección 8 del Manual de Operatoria detalla su uso desde la Botonera de Mandos de la que dispone la unidad CNC.

Si además la aplicación final requiere del paquete de comunicaciones PMAC y de un PC para realizar el interface con el usuario y, si el fabricante de la M.H. ha dotado a esta de ciclos fijos de mecanizado ("Canned Cycles"), es conveniente la lectura del apartado 10.5 del Manual de Utilidades de Comnicación.

Page 46: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 46

Sección 12: COMPENSACION del RADIO de la HERRAMIENTA.

Comandos: D, G40, G41 y G42. (Opción bajo pedido)

como aquel valor del radio de la herramienta en MILIMETROS (nnnn.nnn) que se desea compensar. (Valor máximo: +99999.999 mm., valor mínimo: +0.005 mm). Existen 3 comandos del tipo G, para activar o desactivar el corrector de herramientas: G40 Anulación de la compensación del radio en el siguiente desplazamiento programado justo después de este comando. (Desactiva el comando G41 o G42 que haya sido enclavado con anterioridad). G41 Orden de enclavar el corrector en el siguiente comando de desplazamiento programado después de este. La herramienta al realizar el movimiento, se situará a la IZQUIERDA del desplazamiento que resultaría sin compensación del radio. Ello permitirá, dependiendo del perfil programado, efectuar contornos interiores o exteriores. La corrección permanecerá activa hasta que el comando G40 lo anule. G42 Orden de enclavar el corrector en el siguiente comando de desplazamiento programado después de este. La herramienta al realizar el movimiento, se situará a la DERECHA del desplazamiento que resultaría sin compensación del radio. Ello permitirá, dependiendo del perfil programado, efectuar contornos interiores o exteriores. La corrección permanecerá activa hasta que el comando G40 lo anule. Ciertas reglas deberán ser tenidas en cuenta a la hora de emplear la compensación del radio de la herramienta: 1- Una vez haya sido activada la compensacion radial (G41 o G42), solo movimientos del tipo G1, G2 o G3 son

posibles de ejecutar. Si se programa desplazamientos con la orden G0, el CNC interrumpe la ejecución del programa y se

presentará el mensaje: ERR2 TC:not G0 debiendo de abortar la ejecución del programa con la pulsación de la tecla <ENTER>, para posteriormente

proceder con la corrección del error. 2- Solo es posible que actúe la compensacion radial si ha sido programado un radio de herramienta superior a 4

milésimas. Caso contrario el CNC interrumpe la ejecución del programa y se presentará el mensaje: ERR2 TC:not Rt debiendo de abortar la ejecución del programa con la pulsación de la tecla <ENTER>, para posteriormente

proceder con la corrección del error. 3- Se aplica la compensación radial sobre el Plano de Interpolación Circular (PIC) que se encuentre activo

(G17, G18, G19, G20, G21 o G22) en el momento de programar la instrucción G41 o G42. Si

En determinadas aplicaciones se requiere del Control Numéricoque realice todos los cálculos necesarios para compensar el Radio dela Herramienta, de forma que las medidas de la pieza mecanizada se ajusten exactamente a las del plano y su programa asociado. El CNC reconoce el comando: Dnnnn.nnn

Page 47: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 47

posteriormente, y ya enclavada la corrección del radio, se cambia el plano de interpolación, el CNC interrumpirá la ejecución del programa y se presentará el mensaje:

ERR2 TC:PICchg

debiendo de abortar la ejecución del programa con la pulsación de la tecla <ENTER>, para posteriormente proceder con la corrección del error.

4- Solo podrá INICIARSE y/o FINALIZARSE la corrección del radio con un TRAMO RECTO. O sea, después de

un comando G41/G42 o G40 deberá programarse un movimiento de ejes del tipo G1. Caso contrario, el CNC interrumpirá la ejecución del programa y se presentará el mensaje:

ERR2 TC:BadSTR Si es comienzo de corrección. ERR2 TC:BadEND Si es final de corrección. debiendo de abortar la ejecución del programa con la pulsación de la tecla <ENTER>, para posteriormente

proceder con la corrección del error. Cuando se programa G41 o G42, la herramienta se situará de forma tangente al 2º desplazamiento

programado después del comando de activación. Cuando se programa G40, la herramienta se situará tangente al punto final de la trayectoria descrita por el

bloque anterior al comando de desactivación. Para una mejor comprensión de como se sitúa la herramienta al inicio o al final de la corrección, se

introducen los siguientes ejemplos ( en todos ellos se representa el recorrido sin y con corrección de radio). Ejemplo 1: Enclavamiento corrección con G41.

Ejemplo 3: Inicio y final con G42. Todas las observaciones de los anteriores ejemplos son igualmente

P212 G90G0F1000 X0Y0 X5Y10 D3 G41 G1X10Y15 G1X20Y15 G2X45Y13R10 G40 G1X35Y5 G0X0Y0 G99

Como se aprecia en el gráfico, la herramienta se sitúa tangente al segundo desplazamiento programado después del G41 y el primer tramo, que sirve para posicionar a la herramienta en el lugar adecuado y que siempre se efectuará con G1 (interpolación lineal).

Ejemplo 2: Final corrección deherramienta (G40). Siguiendo con elejemplo anterior, al anular lacorrección de radio, se apreciaen el gráfico 25 que laherramienta se sitúa tangente alpunto final que se alcanza antesde la ejecución del comandoG40. Además, el tramoprogramado después del G40 es un tramo recto (G1) y sirvepara desplazar a la herramientahasta alcanzar la trayectoria sincompensar.

Page 48: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 48

aplicables para un compensación mediante G42 (derecha trayectoria original). Los gráficos 26 y 27 representan tal circunstancia.

5- La trayectoria compensadapuede introducir nuevos bloquesintermedios para poderajustarse lo máximo posible alperfil que se quiere obtener.

Por ejemplo, el programa ygráfico siguientes muestran lainclusión de un pequeño bloquepara concatenar movimientos:

P210 G90G0F2000 G65XG65Y G92X0Y0 X10Y50 D3 G41 G1X20Y50 G1X80Y70 G1X20Y35 G40 G1X0Y0 G99

Page 49: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 49

7- Finalmente, puede ocurrir que dado un radio excesivamente grande para la trayectoria programada, NO

EXISTA punto de intersección entre dos movimientos consecutivos. Por ejemplo en el programa y gráfico siguientes se aprecia que la herramienta sigue una trayectoria bastante "lejana" a la descrita sin compensar:

Si aumentamos el radio de la herramienta es fácil de comprender que la compensación de la linea recta y la de la curva no obtienen punto de intersección, por lo que se interrumpirá la ejecución del programa y se mostrará el mensaje:

Finalizaremos el capítulo con 3 ejemplos que muestran las trayectorias compensadas y sin compensar. En ellos se podrán observar distintas formas de actuación del corrector frente a movimientos del tipo Recta/Recta o Recta/Curva o Curva/Recta o Curva/Curva.

6- Es posible que debido al tamano del radio de la herramienta, no sea factiblereproducir en su totalidad el contornoprogramado. En el ejemplo siguientedel gráfico 29 (mismo programaanterior pero con G42), se observa eldefecto señalado:

La linea interior indica como laherramienta no puede penetrar másallá de lo que se muestra en el gráficosin deteriorar a la pieza.

Ello también nos introduce a un posibleerror que puede ocasionar el corrector:si la herramienta es lo suficientementegrande como para no poder penetraren trayectorias como las descritas (elpunto de intersección está fuera de la"cuña" representada), el correctordescribirá una trayectoriaINCORRECTA pudiendo dañar a lapieza (¡OJO!).

ERR2 TC:NO PNT por lo que habrá que abortarse mediante la pulsación de latecla <ENTER>, y corregir el error.

Ejemplo I: P208 G90G0F1000 D5 G65XG65Y G92X0Y0 X-75Y50 G92X0Y0 G42 G1X5Y0 G1X25Y0 G1X65Y0 G3X65Y-100R50 G1X25Y-100 G1X75Y-100 G1X150Y-100 G1X100Y-100 G3X100Y0R50 G1X150Y0 G1X75Y0 G1X25Y0 G40 G1X0Y0 G99

Page 50: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 50

Mediante los ejemplos que se presentan, se observará que los cálculos que realiza el "corrector de

Ejemplo II: P209 G90G0F2000 G65XG65Y G92X0Y0 X-50Y50 G92X0Y0 D3 G42 G1X10Y0 G1X20Y5 G1X15Y-5 G3X30Y0R-10 G3X35Y10R8 G1X40Y5 G1X50Y5 G2X60Y-5R-10 G1X55Y-5 G2X65Y15R-10 G3X80Y-10R-8 G1X100Y-10 G2X90Y-25R10 G3X95Y-35R10 G2X85Y-50R15 G1X70Y-35 G3X60Y-45R8 G1X55Y-65 G2X356Y-45R-10 G3X25Y-40R8 G2X15Y-30R-8 G1X0Y-20 G1X10Y0 G40 G1X0Y0 G99

Ejemplo III: P206 G90G0F1000 D3 G65XG65Y G92X0Y0 X3Y32.5 G92X0Y0 G42 G1X10Y0 G2X30Y0I10J0 G2X50Y0R10 G2X80Y-30R30 G2X70Y-40I-10J0 G3X55Y-55R15 G1X30Y-55 G2X50Y-35R20 G1X10Y-35 G1X10Y-60 G3X-10Y-60R10 G1X-10Y-40 G2X-40Y-70 G1X-60Y-70 G1X-60Y-30 G1X-70Y-20 G1X-20Y-10 G40 G1X0Y0 G99

Page 51: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 51

herramienta" pueden generar de 1 a 4 puntos por intersección de trayectorias. Si se ejecuta cualquiera de estos programas con la opcion de "SINGLE BLOCK" activa se constatará con mayor facilidad dicho hecho. (Para ejecución "bloque a bloque", se comprobará que se deberá pulsar la tecla "START" como mínimo un par de veces para que la herramienta se desplace. Este hecho se explica fácilmente si se entiende que para realizar el desplazamiento actual, deberemos de conocer el movimiento siguiente para calcular el punto de intersección entre ambas trayectorias a describir. Si hay un bloque intermedio que no posee desplazamiento, el número de pulsaciones de la tecla "START" se deberá incrementar en uno).

En el disco que se suministra con las utilidades del PC, se encuentra en el directorio "TOOL_COM", todos los programas que se han dado como ejemplos en este capítulo. CORRECCION DEL RADIO DEL ELECTRODO EN MAQUINAS DE ELECTROEROSION O "SANGRIA" EN MAQUINAS DE OXICORTE. Si la corrección del radio de la herramienta ya es complicada de por si, añadirle el hecho de poder retroceder por el mismo camino realizado en el normal sentido de avance lo hace , si cabe, aun más difícil. La dificultad no será, logicamente para el usuario, el comenterio se refiere a la complejidad de "deshacer" movimientos sin límitar el recorrido o el número de bloques. Señalar que para el caso de máquinas de electroerosión u oxicorte (versiones especiales del equipo M.A.C.), el CNC viene predispuesto para poder retroceder según se adjunta en los apéndices específicos al uso. La primera salvedad es que los comandos G41, G42 o G40 interrumpen la decodificación y ejecución de bloques en retroceso. La segunda salvedad es que con el corrector enclavado, el CNC necesita de un bloque adicional más para poder retroceder, lo que causará que en absolutas, el retroceso se pare 2 bloques antes desde el inicio de la compensación radial (programación del comando G41 o G42). En incrementales se parará 1 bloque antes del enclavamiento de la corrección. Por consiguiente se aconseja que una vez haya sido enclavado el corrector de herramienta mediante el comando G41 o G42 (y en la forma que se describe en el siguiente parrafo), se realicen 2 movimientos sin estar el electrodo o el soplete en posición de trabajo, de forma que al efectuarlos en vacio, si se debiera retroceder por alguna causa, ello no impida que se pueda "deshacer" todo el contorno programado. La tercera salvedad, y relacionada con el parrafo anterior, es la de que en el mismo bloque en donde se programe el comando G41 y G42 (¡OJO! no para G40), se deberá programar el primer comando de desplazamiento de los ejes en donde se aplica la compensación. Caso contrario el equipo interrumpe la decodificación de bloques, y mostrará el mensaje de error: ERR2 BAD CODE.

O sea, en máquinas que posean el equipo MAC-EDM u OXITROL, todos los ejemplos descritos en este capítulo causarán el mensaje de error indicado, pues la orden de inicio de la compensación se ha programado en un solo bloque sin desplazamiento asociado. Para que funcione correctamente, en el ejemplo I se debería programar en el 4º bloque:

G42X5Y0 En el ejemplo II, también en 4º bloque:

G42X10Y0 En el III, bloque 7º:

G42X10Y0

Como se apreciará en todos ellos no hace falta programar el comando G1 (de hecho, NO SE DEBE programar). Este hecho se explica dado que se ha dispuesto que en las versiones MAC-EDM y OXITROL, los comandos G41 y G42 lleven implícitos un desplazamiento programado en tipo de interpolación lineal. Apreciará el usuario que con el corrector enclavado, podrá ejecutar comandos de penetración entre bloques con desplazamientos compensados. E incluso "penetraciones submarinas" (helicoidales también, por supuesto) afectando solo la corrección de radio a los ejes del plano de interpolación circular.

Page 52: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 52

Sección 13: COMANDOS ESPECIALES.

Son comandos que, por su naturaleza intrínsica, solo afectan a la fase de decodificación de comandos y su ejecución es ignorada (no realizan ninguna operación relevante desde el punto de vista de la máquina). No es aconsejable su uso, salvo casos de fuerza mayor, puesto que "ralentizan" un tanto la velocidad de proceso de comandos de la unidad CNC en la medida que deben ser decodificados. COMANDO " " [espacio en blanco]: Básicamente se empleará para facilitar la lectura de los programas-piezas o para "truncar" un comando de desplazamiento de los ejes. Así y por ejemplo: G1X10Y-5Z45.6; ejecuta el desplazamiento de los 3 ejes al unísono en interpolación

lineal a la velocidad programada F. sin embargo: G1X10 Y-5Z45.6; ejecuta 1º el desplazamiento en el eje X y después el

desplazamiento de los ejes Y y Z al unísono. O también, el hecho de programar bloques del tipo: [&00L1 &01L2 &03L4 facilitará en gran medida la legibilidad de los diferentes comandos que componen la totalidad del bloque o linea de programa. COMANDO "/" para la inserción de comentarios: Durante la ejecución de programas, cualquier caracter, comando o caracter introducido en el mismo bloque y a continuación del caracter "/" será ignorado (no ejecutado) y por lo tanto se saltará hasta el siguiente bloque. Su uso se debe limitar en la medida de lo posible pues, además de utilizar un recurso escaso (memoria del CNC), provoca que la decodificación de los comandos del programa pueda ser algo más lenta. En particular, es del todo desaconsejable después de haber introducido el comando G11 en donde, los desplazamientos consecutivos que se pretenden sean sin acelaraciones, son cortos o se realizan a elevada velocidad. Cualquier caracter excepto la "P" puede formar parte de un comentario. COMANDO "[" señalando 'inicio diálogo' asociado con una función M: Para facilitar el borrado completo de una función M (carga de parámetros asociados a esta inclusive) ó para conocer donde se inicia una de estas funciones, el caracter "[" debe programarse justo al inicio de todas las instrucciones que poseerá la función M. Se apreciará entonces que situados en edición y con la función Mnn como sentencia seleccionada, mediante la operación de "BORRADO de STRING" al ser pulsada la tecla <STOP> (ver Manual de Operatoria) y al confirmar mediante la pulsación de <START>, se borrará desde el caracter "[" hasta la función Mnn (ambos inclusive). En la ejecución de programas, el caracter "[" se ignorará continuando con la decodificación del siguiente comando que justo a continuación haya sido programado. COMANDO ":nn" para la presentación de MENSAJES en la pantalla PC-CNC del paquete de Utilidades de Comunicación PMAC: Si la aplicación final posee el paquete de Utilidades de Comunicación PMAC instalado en el PC para realizar el interface con el usuario, mediante el comando ":nn" (con "nn" de 00 a 99) será posible que el equipo CNC "envíe" hacia el PC la orden de que se visualice el mensaje número "nn" del fichero "MESSAGE.LBL". COMANDO "|nnn" para la presentación de MENSAJES en la primera linea del "display" de la Botonera de Mandos tipo DUNA: La ejecución del comando "|nnn" hace que en la primera linea del "display" de la Botonera DUNA aparezca un mensaje de 16 caracteres de longitud máxima. "nnn" indica el número de mensaje que se quiere visualizar, valor que estará comprendido entre 0 y 255, con la salvedad de que el comando "|00" cancela la orden de visualización de mensajes.

Page 53: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 53

NOTA: El uso del referido comando solo posee sentido si se dispone de la Botonera de Mandos del tipo DUNA (ver Manual de Operatoria), dado que esta dispone de un visualizor ("display LCD") de 2 lineas por 16 caracteres. En la Botonera DUNA, el código "|" se obtiene con el modo alternativo de la tecla <DRY RUN>.

En cualquier tipo de botonera diferente al expuesto, el comando "|nnn", si bien será aceptado desde el punto de vista de la decodificación, se ignorará. (Se seguirá con la decodificación y ejecución que a continuación de este comando se haya programado). Se hará uso del programa P&00 para la edición y almacenamiento de los mensajes que se deseen puedan ir apareciendo en el "display" de la botonera de mandos DUNA. Sobre su particular forma de edición cabe hacer las siguientes matizaciones: 1) Cada linea de programa se asocia con el mismo número que se programe con el comando "|nnn". Esto es,

linea 0001 con el mensaje |001, linea 0002 con el |002 y así sucesivamente. 2) El número máximo de mensajes será el de 255, por consiguiente se programarán como máximo 255 lineas. 3) Cada linea de mensaje podrá contener más de 16 caracteres, pero solo los 16 primeros caracteres serán los

que se visualizarán en la primera linea del "display". 4) Para acceder al mensaje deseado (|nnn), el CNC buscará en el fichero P&00 (si este NO existe en memoria,

el comando |nnn no cumple ninguna misión), incrementando el "contador de mensajes" con cada final de linea (caracter "CR") hasta que se sitúe en el número de linea asociado según el punto 1. (Si se llega al final del programa sin haber alcanzado el "contador de mensajes" el número deseado, será señal de que ese mensaje no existe y la instrucción "|nnn" no cumplirá ninguna misión).

5) Si se quiere emplear a la instrucción M00 para ejecutar alguna función en particular, todos los mensajes se iniciarán con el carácter "/" (comentario) y se introducirán los comandos a ejecutar por la función M00 en la linea 256 del programa P&00.

6) Se recomienda el uso de minúsculas si el programa P&00 es editado empleando un editor de mercado en el PC.

Como se ha apuntado, estos mensajes se presentarán en el "display" cuando sean ejecutados los comandos del tipo "|nnn" y el comando "|00" hace que se cancele su visualización. Pero a parte de la instrucción "|00" existen las posibilidades siguientes para que la primera linea vuelva a su estado original (visualización de los valores de los "overrides"): 1) Pulsar cualquier "tecla de actuación rápida". Esto es: <I>, <II>, <III>, <+ izda>, <Ä izda>, <+ dcha> o <Ä dcha>. 2) Que el ejecutor decodifique una instrucción del tipo Mnn. Con ello, los comandos del tipo: [|10&10L20 |11&11L15 |12&12L35 |13&13L30 M19 llevarán implícitos una cancelación del último mensaje que se esté visualizando. 3) Que se produzca una ALARMA o error sintáctico (ERR02 o ERR03) o cuando se aborta la ejecución de un

programa al pulsar <STOP> y <ENTER>. Por cuanto respecta a la fase de edición desde la botonera DUNA, para facilitar la edición de programas o la inicialización de parámetros de una función M previamente editada o para comprobar que el mensaje editado es el que en realidad se desea que aparezca en el "display", durante la fase de EDICION también se visualizarán los mensajes cuando el "puntero de edición" acceda hasta el comando "|nnn" (el 1er caracter del área visualizada de la 2ª linea coincide con "|"). Durante la edición existen las siguientes posibilidades para que la primera linea vuelva a su estado original (mostrando el valor de los "overrides"): 1) que pulsando la tecla <Flecha Arriba> o <Flecha Izquierda> el puntero se sitúe en el inicio de la linea y el

primer carácter no sea "|". 2) cuando se accede a otro bloque por el motivo que fuere. 3) cuando el primer carácter del área de visualización coincide con un final de linea.

NOTA: Con el "diskette" de Utilidades de Comunicación se sumistra un programa tipo P&00, el cual, mediante el uso de cualquier editor de mercado, puede ser fácilmente corregido para su adaptación a la aplicación final. COMANDO "( [palabra clave] ) " para SINCRONIZACION con el PC:

Page 54: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 54

La codificación será del tipo:

( [palabra clave] ) En donde [palabra clave] puede ser cualquier palabra alfanumérica de 8 caracteres de longitud máxima (se apreciará que es la longitud máxima que cabe en el "display de la botonera de mandos" junto con el número de bloque). El CNC cuando decodifica este comando, interrumpe la ejecución del programa y ESPERA por una respuesta del PC (o sea, se pasa "el control de la ejecución" al PC). La única limitación es que este comando NUNCA debe aparecer como PRIMER comando en la PRIMERA linea del programa dado que el PC la interpretaría como orden "recibida" y comenzaría la ejecución del comando. Mientras el PC no responde debido a que no se encuentra en linea (no se encuentra en modo PC-CNC) o está "procesando la orden" suministrada mediante la [palabra clave], aparecerá en el "display" de la botonera el siguiente mensaje

[ ER02 PC NO LINE ] indicando tal circunstancia.

NOTA: Si desde la botonera de mandos se pulsa la tecla <ENTER> se abortará la aparición del mensaje y la ejecución del programa. Por el momento caben 4 posibilidades de actuación una vez el equipo MAC a suspendido la ejecución y está a la espera de recibir una orden vía PC: I. si el PC envía una orden de 'START' (mismo código que el de la tecla de < START >), el equipo MAC "salta" hasta el final del signo de paréntesis ")" y continúa con la ejecución del programa. Si el equipo MAC estuviera en ejecución "bloque a bloque" (single block), será necesario el envío de 2 'START' consecutivos. II. si el PC envía una orden del tipo 'ENTER', 'ENTER' y 'START', se pasará a ejecución MANUAL dejando al puntero de ejecución al INICIO de la LINEA SIGUIENTE a la del comando [palabra clave]. III. si el PC envía una orden del tipo 'STOP' y 'ENTER' se ABORTARA la ejecución. IV. en las circunstancias descritas, está claro que el PC podría actuar sobre la normal ejecución del programa y después hacer uso de cualquier punto anterior I, II o III. De momento, el "software" de comunicación entre el PC y el equipo MAC no prevé otra posibilidad diferente a la

de interrumpir la ejecución y esperar a que el usuario pulse <CUALQUIER TECLA> (puede servir para mensajes de confirmación, por ejemplo), salvo la que se describe a continuación que puede servir como ejemplo para una mejor comprensión de esta prestación.

NOTA: de las posibilidades de este nuevo comando se irá haciendo uso a medida que crezcan las necesidades del Fabricante de la Máquina Herramienta. COMANDO (DNCnnnnn): Se apreciará que se ha sustituido [palabra clave] por la sentencia DNCnnnnn, en donde "nnnnn" pueden ser 1 a 5 caracteres alfanuméricos. El "software de comunicación" entre el PC y el MAC está preparado para interpretar dicha orden de forma que se transmite vía modo DNC el fichero "DNCnnnnn.MAC" cualquiera que sea la longitud de este. Una vez terminada la ejecución del programa en modo DNC, el PC hace uso del punto "I" del párrafo anterior y el equipo MAC continuará con la ejecución normal del programa. Para el uso de este comando se recomienda la lectura del apartado 10.3 del Manual de Utilidades de Comunicación con el PC (paquetes en opción PMAC, GMAC o WinMAC).

Page 55: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 55

Sección 14: COMANDO DE DESPLAZAMIENTO DE DECODIFICACION RAPIDA.

INTRODUCCION: Debido a la proliferación de ordenadores del tipo CAD/CAMs que generan "nubes de puntos" cuya

"segmentación" producida cada vez es de tramos más reducidos (digitalización/reproducción, fresado de alta velocidad, corte por plasma, laser o chorro de agua, etc...), al CNC se le solicita un tiempo de decodificación/ejecución extremadamente corto.

Un CNC es un computador industrial dedicado a realizar "la gestión de la máquina" desde los diferentes aspectos

de interpolación, servocontrol de posición, sincronización con eventos externos y gestión de los comandos del programa ("a priori" no dependientes de la geometría de la pieza, de lo cual podría encargarse otro ordenador del tipo CAD/CAM).

Así pues, si conocemos que a un CNC se le asignan tareas como las de gestionar:

* Programación absoluta: a los servoreguladores de velocidad debe suministrarse una consigna de velocidad que comporta el trabajar en incrementos de posición por unidad de tiempo. (Cuando la proliferación de los "digitales" esté más extendida, estos podrán simplificar algo la función del CNC).

* Traslación de coordenadas * Factor de escala * Imagen simétrica * Giro de coordenadas * Cambios de plano de interpolación. * Transformación de coordenadas. * Corrección del Radio de la Herramienta con predicción de errores. y al unísono: * Anular aceleraciones entre desplazamientos consecutivos. * Interpolar lineal, circular o helicoidal en 2 a 8 ejes. * Gestionar los "overrides" de velocidad. * Reportar información hacia el ordenador y servoreguladores de velocidad. * Recibir el programa en paralelo vía RS232. * Corrigir la trayectoria real descrita por los ejes de la máquina. * Atender por entradas/salidas: Stop/Start, Emergencia, Feed Hold,... * Gestionar las funciones de seguridad de la máquina. * Pilotar un cabezal en velocidad o caudal de potencia, etc... * o posibilitar el retroceso de "infinito número de bloques" por la misma trayectoria que ha sido descrita. Todo ello y algunas cuantas cosas más, presentan el "panorama" con el que opera el "computador industrial"

sometido a considerable ruido eléctrico, con temperaturas que pudieran ser elevadas o bajas y con condiciones ambientales de taller (que no de oficina) y en donde el tiempo de CPU debe ser compartido sin perder el primordial concepto del "tiempo real".

Sin renunciar a que el CNC siga realizando lo expuesto y puesto que nos referimos a computadores del tipo

CAD/CAM que tratan con la geometría de la máquina y pieza a mecanizar, las primeras asignaciones que han sido comentadas (absolutas, traslaciones, giros, factores de escalas, imágenes simétricas, correcciones radiales/longitudinales N dimensionales, etc..) pueden ser preparadas vía CAD/CAM en condiciones muy favorables puesto que el "tiempo real" se hace innecesario. Además, las "condiciones ambientales" permiten trabajar con ordenadores con una potencia de cálculo muy elevada.

TIPOS DE COMANDOS "G04.nn": Para que el tiempo de 'decodificación' (interpretación y preparación para su ejecución) de órdenes sea más

rápido, se introduce a G04 para la "decodiícación rápida" de comandos de desplazamiento (en código ASCII) a los cuales NO se les aplicará absolutamente corrección geométrica alguna, esto es: ni giros, ni traslaciones, ni factores de escalas, ni compensaciones del radio de la herramienta. Si que se podrá programar en cartesianas,

Page 56: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 56

polares o esféricas (aunque se recomienda el de tipo cartesiano) y será necesaria la selección del Plano de Interpolación Circular para conocer en que ejes se aplica el tipo de interpolación circular.

Con ello se pretende eliminar al máximo cualquier operación que se pueda realizarse en paralelo (no "in-process") que mejore las condiciones de mecanizado de la pieza en la máquina.

Todo acotado en los comando G04.nn se interpretará como programación INCREMENTAL (tipo G91), aún

estando activo el comando G90 (acotado absoluto). Los diferentes tipos de comandos G04 son los siguientes (todos los valores admiten un máximo de 3 decimales): Comando G04.8: interpolación PUNTO A PUNTO (tipo G0). Formato: G04.8X...Y...Z...U...V...W...A...B... en donde aquellos ejes que no intervienen en el desplazamiento no deberían programarse para evitar la

decodificación de datos innecesarios. Comando G04.9: interpolación LINEAL (tipo G1). Formato: G04.9X...Y...Z...U...V...W...A...B...D... en donde aquellos ejes que no intervienen en el desplazamiento no deberían programarse para evitar la

decodificación de datos innecesarios. "D" es la distancia total a recorrer, o sea: D = SQR[X2+Y2+Z2+U2+V2+W2+A2+B2]. Comando G04.10: interpolación CIRCULAR o HELICOIDAL en sentido CW (tipo G2). Formato: G04.10X...Y...Z...U...V...W...A...B...D...I...J...C...F... Comando G04.11: interpolación CIRCULAR o HELICOIDAL en sentido CCW (tipo G3). Formato: G04.11X...Y...Z...U...V...W...A...B...D...I...J...C...F... en donde aquellos ejes que no intervienen en el desplazamiento no deberían programarse para evitar la

decodificación de datos innecesarios. La interpolación circular se aplica en aquellos ejes en donde haya sido definido previamente el Plano de

Interpolación Circular (comandos G17 por defecto, G18, G19, G20, G21 o G22). "D" es la distancia total a recorrer, o sea: D = SQR[Dc2+Dl2]. en donde "Dc" (Distancia circular) = a * R (con a º ángulo en radianes del arco de

circunferencia a describir) "Dl" (distancia lineal) = SQR[Z2+U2+V2+W2+A2+B2] (en el caso de que el plano de interpolación

fuera el XY [G17]). "I" es la coordenada incremental del centro con respecto a la posición de partida del primer eje del Plano de

Interpolación Circular. "J" es la coordenada incremental del centro con respecto a la posición de partida del segundo eje del Plano de

Interpolación Circular. "C" es el valor del radio afectado del coeficiente Hc, o sea: C = SQR[I2+J2]*Hc. en donde "Hc" (coeficiente para interpolación helicoidal) = SQR[Dc2+Dl2] / Dc. "F" sirve para LIMITAR la velocidad máxima de interpolación dado un radio R (limitada por el propio CNC a la

máxima de cada eje, si a lugar) para obtener un ERROR CORDAL máximo dentro de los límites que se requieren. Su valor vendrá dado según la fórmula:

R/N * 216/1000 * Hc en donde: R= Radio del círculo expresado en milésimas de mm [mm] 2 £ N £ 50 (cuanto menor sea "N", mayor será el Error Cordal).

Page 57: CONTENIDO - CNC - CNC for edm - CNC for laser - CNC for ...inavcnc.com/pub/downloads/manuals/esp/cnc/progr/Manprg.pdf · antes de progresar en la lectura de este manual., ATENCION:

Manual de Programación 57

216/1000 = 65,536 (La segmentación del círculo que realizará el interpolador del CNC dependerá de la velocidad programada

mediante el comando "F" y como valor máximo, será de tramos de longitud igual al ratio R/N). EJEMPLO:

Programación estandard Programación mediante G04 G90F1000; en absolutas. G90G0F1000 G0X0Y0 G0X0Y0 G0X73.5Y45.5 G04.8X73.5Y45.5 G1X74.414Y43.586/G41 G04.9X0.914Y-1.914D2.121 G2X73.405Y36.926I-5.414J-2.586 G04.10X-1.009Y-6.66D7.151I-5.414J-2.586C5.999F163830 G1X67Y30 G04.9X-6.405Y-6.926D9.433 G1X67Y29 G04.9X0Y-1D1 G2X63.966Y24.746I-4.5J0 G04.10X-3.034Y-4.254D5.574I-4.5J0C4.5F163830 G1X56Y22 G04.9X-7.966Y-2.746D8.426 G1X52.136Y18.526 G04.9X-3.864Y-3.474D5.196 G3X47.79Y11.884I10.364J-11.526 G04.11X-4.346Y-6.642D8.026I10.364J-11.526C15.5F163830 G1X46.5Y8 G04.9X-1.29Y-3.884D4.092 G1X44Y-2 G04.9X-2.5Y-10D10.307 G1X44.604Y-5.064 G04.9X0.604Y-3.064D3.122 G3X44.951Y-6.181I5.396J1.064 G04.11X0.347Y-1.117D1.171I5.396J1.064C5.499F163830 G1X49.119Y-15.832 G04.9X4.168Y-9.651D10.512 G0X0Y0 G0X0Y0 G99 G99 Como se apreciará, en un programa con G04, se puede emplear en el momento que se desee un comando

estandard del tipo G0, G1, G2 o G3. A estos últimos siempre les afectará la selección G90 o G91 que se haya elegido (así como los factores de escala, giros, traslaciones,...), mientras que los comandos del tipo G04 siempre se interpretan como desplazamiento incremental (no afectados de mingún cálculo geométrico).

NOTA: En aquellos equipos en los que se haya optado por la posibilidad de RETROCESO por la misma trayectoria que la normal de avance (equipos de CORTE y EDM), el comando G04 se trata de igual manera que los comandos G01, G02, G03 y G00. Esto es, que si sintácticamente el programa lo permite, los comandos del tipo G04 pueden ser decodificados y ejecutados en sentido inverso al normal de avance.

* * * * * En algunas aplicaciones puede que no sea posible el disponer de un CAD/CAM que posea la opción de generar ficheros que empleen comandos de "decodificación rápida" ( o de "ejecución directa") del tipo G04.nn. Las "utilidades de comunicación con el PC" poseen la posibilidad de realizar la conversión de un programa estandard a otro del tipo G04. A tal efecto, se encontrará información más detallada en el apartado B.4 del apéndice B del Manual de Utilidades de Comunicación con el PC.