domingo, 22 de noviembre de 2009

Instrucción G95

Es una instrucción modal, la cual nos indica que el avance será expresado en mm/vuelta. Debe de quedar muy claro el concepto, ya que, cuando programamos un avance con la instrucción G94, nos estamos refiriendo a un avance expresado en mm/min. Es decir, seria perfectamente posible indicar un avance de F200. Pero al utilizar G95, debemos tener en cuenta que utilizaremos un avance expresado en mm/vuelta, lo cual indica que los avances a utilizar deberan ser más bajos (F0,15). Si utilizasemos F200 con la instrucción G95 en el mecanizado de una pieza en torno, por ejemplo, le estaríamos indicando al control que mecanizase con un avance de la herramienta de 200 mm por vuelta. Con tan solo 3 vueltas del plato, nuestra herramienta avanzaría 600 mm. Como habréis deducido, esa situación provocaría una colisión muy brusca con la pieza a mecanizar.

Instrucción G94

Es una instrucción modal, y además, es una instrucción que por defecto asume el control numérico cuando se inicia, o después de un M02, M30, RESET o EMERGENCIA. Básicamente lo que le estamos indicando al control con esta función es que el avance se dará en mm/min.

N0010 G0 G90 G94 X100 Y100 Z200 F150 S1500.....

Aunque no sería necesario indicar la función G94, es muy conveniente hacerlo, ya que nos aseguramos de decirle al control que el avance está expresado en mm/min. Esto es muy importante sobre todo en torno, ya que en torno, en función de cómo se exprese el avance, hay que tener en cuenta una serie de detalles. Esto se verá en la función G95.

martes, 17 de noviembre de 2009

Coordenadas Polares G93

Como norma general, para programar en cotas polares hay que tener claros una serie de pasos a seguir:
- Para crear un centro polar hay que utilizar la función preparatoria G93 seguida de dos letras más:

I Es la distancia desde el cero de pieza hasta el punto donde queramos crear el centro polar, medido en sentido del eje X.
J Es la distancia desde el cero de pieza hasta el punto donde queramos crear el centro polar, medido en sentido del eje Y.

- Cuando hayamos determinado el centro polar, el control siempre entenderá la definición de cualquier punto con un radio y un ángulo y siempre desde el nuevo centro polar que hemos programado.

- Para desactivar en centro polar programado, y pasar a cotas cartesianas, bastará con programar en el bloque que queramos, la definición de cualquier punto de nuevo con una X o una Y y el control volverá a trabajar con el cero pieza.

- Cuando utilizamos G93, siempre determinaremos las medidas en cotas absolutas, independientemente de si estamos programando enabsolutas o incrementales. No hará falta indicar nada al control, tan solo reflejar las cotas en los parámetros I y J arriba mencionados.

- Si se está trabajando en modalidad de cotas absolutas, los radios siempre serán positivos, y los ángulos podrán adoptar dos valores, positivos o negativos, dependiendo si contamos los grados en sentido contrario a las agujas del reloj o a favor respectivamente.

- De lo contrario, si estamos trabajando en modalidad incremental, los radios podrán ser positivos o negativos, y los ángulos serán negativos si se cuentan en sentido de las agujas del reloj, y positivos si es en sentido contrario.

- Si queremos cambiar de centro polar, basta con definir el nuevo centro polar. De esta forma el control no memoriza el centro polar antiguo y pasa a pensar con el nuevo centro polar.

- Cuando creamos el centro polar con G93 I J, tan solo debemos escribir esta información en el bloque.

- Al crear un centro polar, tan solo le estamos dando informacion al control, es decir, no provocamos ningun movimiento en la máquina.

- En polares siempre programaremos reflejando radio y ángulo.

- Para programar una curva en polares, tan solo nos basta con indicarle la dirección de la curva (a derechas o a izquierdas) y el ángulo. El control ya asume el radio de la curva.

- Cuando utilizamos la instrucción G93 sin ningún parámetro más, le estamos diciendo al control que coja como centro polar el punto donde en ese momento se encuentra la máquina.

lunes, 16 de noviembre de 2009

Cosas que se deben saber sobre compensaciones

Compensacion del radio de la herramienta
Como bien dice el apartado, intentaré ampliar el apartado de compensaciones del radio de la herramienta con una serie de descripciones:
- Cuando realizamos la compensación (G41 o G42), ésta se realiza a la izquierda o a la derecha en dirección del movimiento, jamás por delante o por detrás.
- Si estamos realizando un contorneado (un paralelogramo) por su parte exterior, y utilizamos la instrucción G00, todos los movimientos serán rápidos, incluso las rotaciones en las esquinas.
- Hay que tener en cuenta que: cuando hemos programado en un bloque un G00 y en el siguiente bloque hay un G01, habiendo todavía compensación del radio de la herramienta, debemos saber que hasta que la herramienta no este perpendicular al proximo movimiento, los movimientos se harán al máximo avance. Por ejemplo: 
N0010 (ya existe compensación)G00 Y50
N0020 G01 X50 
Para entender el concepto miremos el siguiente dibujo. Se trata de una mesa de billar de carambolas. La bola está arrinconada en la esquina superior izquierda. Se trata de imaginaros a la bola moviéndose siempre tocando la banda, es decir, apoyandose en las bandas. Pues bien, imaginemos más. Ahora la bola es una herramienta, y el rectángulo rojo es una pieza a contornear. Pongamos que la pieza (el rectángulo rojo) hace 90mm de largo por 40mm de alto. Como veréis hay dos puntos ilustrados, el 01 y el 02, en el 01 es donde la herramienta iniciaria la rotación sobre la esquina. En el punto 02 finalizaría la rotación de la herramienta, ya que este punto, el 02, se encontraría perpendicular a la esquina, y por lo tanto, preparado para seguir la trayectoria del mecanizado. Muy importante entender este movimiento en las compensaciones (sobre todo en los mecanizados en fresadora), ya que este movimiento cuando se efectúa en G00, es un tanto brusco y podría darnos alguna que otra sorpresa (colisiones con bridas, colisiones contra material en G00,etc...). Mi consejo... Sólo utilizar G00 cuando vamos a descompensar. Dicho esto, decir que en el código de programa de arriba, la herramienta llegaría hasta el punto 02 en G00, y en el siguiente bloque (esquina superior derecha de nuestro billar), la herramienta quedaría de la siguiente forma:
El código de programa que se ejecuta en este video es el siguiente:
N020 G54
N030 T9 D9
N040 M06
N050 G0 G90 X-10 Y50 Z10 F20 S500
N060 Z2
N070 G1 Z-0.5
N080 G1 G41 X5 Y50
N090 Y90
N100 X90
N110 Y5
N120 X5
N130 Y50
N140 G0 G40 X-10 Y50
N150 M30
Como habréis comprobado, la herramienta cuando alcanza las esquinas y debe cambiar la dirección de mecanizado, rota sobre la esquina. Veréis el detalle de la rotación en los restos de material que he dejado expresamente para que se pueda comprobar mejor.

domingo, 15 de noviembre de 2009

Programa 0001

A continuación, para ir entrando en materia, vamos a realizar un pequeño programa muy simple. Para realizar este programa, vamos a pensar que en el cabezal hay un bolígrafo (no utilizaremos ninguna compensación del radio de la herramienta). El programa dibujará el perfil indicado. El punto de inicio será el 01 (X0 Y0) y el bolígrafo se encuentra en la posición X-30 Y-20 Z40.

N0010 G00 G90 X0 Y0 Z2 (Punto 01)
N0020 G1 Z-0.05 F30 (Clava la punta del bolígrafo 0.05 mm)
N0030 G1 Y25 (Punto 02)
N0040 G1 X18N0050 G3 X38 Y45 I0 J20 (Punto 03)
N0060 G1 X90 (Punto 04)
N0070 G1 Y15 (Punto 05)
N0080 G1 X75 Y0 (Punto 06)
N0090 G1 X0 (De nuevo punto 01)
N0100 G00 Z100

sábado, 14 de noviembre de 2009

Instrucción G40

Se utiliza para anular la compensación del radio de la herramienta. Una manera bastante correcta para utilizar esta función es descompensando ubicando la herramienta perpendicular al ultimo punto. En el siguiente trozo de código de programa se verá con más claridad.


N0030 G1 X0 Y50
N0040 G0 G40 x-20

viernes, 13 de noviembre de 2009

Instrucción G41 y G42

G41 y G42 Se utiliza fundamentalmente para realizar la compensación del radio de la herramienta. Ambas funciones son modales. Cuando utilizamos G41, estamos efectuando una "compensación a izquierdas". ¿Que es todo esto? Pues bien para introducirnos un poco en el mundo de las compensaciones de radios hay que tener claros una serie de conceptos:

-¿Cuando debo compensar? Siempre que se contornea. (figura 1)
-¿Dónde debo compensar? Llegados a este punto hay que tener muy clara una idea. En la figura dos queda reflejada.

La herramienta dibujada en gris oscuro representa el acercamiento de la herramienta a la pieza antes de realizar la compensación, es decir, N.... G0 X-10 Y8. Una vez la herramienta en esta posición es cuando debemos realizar la compensación (ya sea a derechas o a izquierdas). Requisito fundamental para no tener problemas, es dejar como mínimo una distancia entre ejes de más de 1 milímetro entre la posición actual de la herramienta (herramienta gris oscuro) y la futura posición que ocupará la herramienta (herramienta gris claro). Veamos como quedaría el pequeño código de programa para realizar el acercamiento y la compensación:

N0010 G0 X-10 Y8 (llevamos la herramienta a la posicion que ocupa la herramienta de color gris oscuro)
N0020 G1 G41 X0 Y8 (aqui estamos en la posición que ocupa la herramienta de color gris claro).

Antes de continuar cabe remarcar que cuando digo "acercamiento de la herramienta a...", doy por supuesto de que siempre vamos a tener en cuenta que no haya colisión con ningún elemento de la máquina o con la misma pieza. SIEMPRE debe quedar este concepto en nuestra cabeza. A pie de máquina es donde veremos la realidad, por lo tanto, siempre debemos pensar como si estuviésemos delante de una máquina. Creo que es la mejor filosofía, ya que de lo contrario podríamos llevarnos alguna que otra sorpresa un tanto desagradable el día que estemos delante de una máquina de control numérico.
Resumiendo se podria decir que utilizaremos G41 cuando en el sentido del mecanizado se tiene que compensar el radio de la herramienta a la izquierda del material. De lo contrario usaremos G42 cuando en el sentido del mecanizado se tenga que compensar el radio de la herramienta a la derecha del material.

jueves, 12 de noviembre de 2009

Instrucción G91

Es una instrucción modal que indica que la programacion se va a efectuar en cotas relativas. La referencia es siempre el último punto programado, es decir, en una línea recta se precisa tener la referencia del último punto para poder indicar el siguiente. En la figura tenemos un punto inicial, y queremos desplazarnos hacia el punto final. Pues bien para realizar esta maniobra en incremental, tenemos que utilizar el punto inicial como si se tratara del origen. Ese punto que utilizamos de referencia es igual que el punto (0,0) en absolutas. Una vez hayamos llegado al punto final, la siguiente trayectoria que tengamos que hacer la haremos en referencia a ese punto final.

Programación en cotas incrementales

La función G91 nos permite programar en cotas incrementales. A diferencia que en las cotas absolutas, el punto de origen de la pieza no tiene relevancia. Para representar en incremental una cota, basta con reflejar la distancia existente entre un punto inicial y un punto final. Para entenderlo de una forma diferente se podría decir que cuando programas en incremental, el ultimo punto donde ha llegado la herramienta se convierte en el cero pieza. La representación del siguiente punto irá en funcion de la distancia con respecto a éste.

Instrucción G90

Es una instrucción modal que por defecto asume el control numérico cuando se inicia. Cuando programamos G90 en un bloque, lo que estamos indicando al control es que todas las cotas que salgan en el programa son cotas en absoluto, es decir, todas las medidas estan tomadas desde un mismo punto de referencia. El cero pieza (X0,Y0,Z0).

Programación en cotas absolutas

La función G90 nos permite programar en cotas absolutas. Y.... ¿Que quiere decir eso de cotas absolutas?. Pues es bien sencillo. Todas las cotas que se indiquen en los bloques del programa, tienen siempre una misma referencia. La referencia es el cero de pieza (0,0).

miércoles, 11 de noviembre de 2009

Instrucciones G02 y G03

Para programar una curva, lo primero a realizar es situar la máquina en el punto de inicio del arco. Antes de continuar muestro como debe quedar el bloque de instrucciones para realizar la curva.

N0010 G02/G03 X_ Y_ I_ J_

A continuación se detalla lo que es cada cosa:

- G02/G03 Interpolación circular a derechas o a izquierdas, respectivamente.

- X Coordenada "X" del punto final del arco. La cota se puede dar en absolutas o en incrementales.

- Y Coordenada "Y" del punto final del arco. La cota se puede dar en absolutas o en incrementales.

- I Distancia en sentido del eje "X", desde el punto inicial del arco hasta el centro del arco. Esta cota siempre se dará en incrementales.

- J Distancia en sentido del eje "Y", desde el punto inicial del arco hasta el centro del arco. Esta cota siempre se dará en incrementales.
Por lo tanto según lo arriba expuesto, el bloque para efectuar una curva como la de la figura seria el siguiente:N0010 G02 X15 Y5 I0 J-5
G02: Interpolación circular a derechas (a la velocidad del avance programado).
X15: Cota X del punto final del arco.
Y5: Cota Y del punto final del arco.
I0: La distancia que hay en sentido del eje "X" desde el punto de inicio del arco hasta el centro es 0.(Recordad que esta cota siempre será en incrementales, independientemente de si estamos programando en cotas absolutas o incrementales.)
J-5: La distancia que hay en sentido del eje "Y" desde el punto de inicio del arco hasta el centro es -5.(Recordad que esta cota siempre será en incrementales, independientemente de si estamos programando en cotas absolutas o incrementales.)

Instrucción G01

Es una interpolación lineal al avance programado. Normalmente cuando usamos esta instrucción, lo hacemos para desprender viruta, es decir, realizamos el mecanizado.

Estructura de un bloque de programacion CNC

Dentro de cada línea de programa, hay un orden. El hecho de que exista este orden, no implica que deban estar presentes todos los items. A continuación se expone el orden que tienen que tener las instrucciones en todos los bloques:

Número de bloque;Funcion G;Cotas según ejes XYZ;Avance de trabajo;Velocidad del cabezal;Número de herramienta;Funciones auxiliares.

Al grupo coloreado de color rojo, se le suele denominar como funciones preparatorias (Número de bloque y Funcion G).
El de verde son los movimientos. Normalmente las cotas van limitadas en dígitos. +/-9999,999(Cotas según ejes XYZ).
El amarillo es el avance. En mm/min o mm/rev.(Avance de trabajo).
El azul es la velocidad de giro del cabezal en r.p.m. (revoluciones por minuto).(Velocidad del cabezal).
El grupo marron es el que indica el número de la herramienta y su corrector.(Número de herramienta).
El naranja son las funciones como las de paro de programa (M30), sentido de giro a derechas (M03).(Funciones auxiliares).

¿Que son las funciones modales?

Cuando se dice que una función es modal, nos referimos a que la función o funciones G que hemos activado mediante una línea de programa, por ejemplo: N0010 G00 G90 X100 Y100 permanecerán activas hasta que sean reemplazadas por otra instrucción o por M02, M30, RESET o EMERGENCIA.
Hay que indicar que no todas las funciones G son modales, por ejemplo, en la línea de código escrita arriba da la casualidad que las dos funciones G son modales, lo cual quiere decir que en la siguiente línea de programa si no indicamos lo contrario, la máquina se desplazará en G00 (en máximo avance de la máquina) y lo hará en G90 cotas absolutas (todas las medidas se tomaran en referencia al cero de pieza).
Cabe destacar que no todas las funciones G pueden ser programadas en la misma línea de código. Estas funciones son las siguientes: G20,G21,G22,G23,G24,G25,G26,G27,G28,G29,G30,G31,G32,G50,G52,G53/59,G72,G73,G74,G92. Todas estas funciones deben ser programadas en bloque por separado. Si en la misma línea de código utilizaramos funciones incompatibles, se detendría la ejecución del programa. Hoy en día el control ya nos avisa antes de hacer cualquier tipo de simulación.

Instrucción G00

Esta instrucción es la que provoca que el movimientos de los carros se efectúe a la máxima velocidad. Es bien sencilla de entender.
Línea de código:
N0010 G00 X100 Y100 Z300
Aquí se envían los tres ejes a las cotas marcadas en la línea de programa (en el caso de una fresadora).
Ésta es una de las funciones más peligrosas en el mundo de la programación CNC, debido a que el movimiento de los carros se efectúa a la máxima velocidad de avance que tenga la máquina, y muchas veces hay que tener en cuenta cual de los tres ejes llega primero a la medida. Siempre que se pueda es muy aconsejable realizar este movimiento de alejamiento en dos fases. La primera alejar la herramienta de la zona comprometida, por ejemplo, si en Z podemos salir de manera vertical sin tropiezo alguno con ninguna brida o con la misma pieza, yo llevaría la herramienta hasta una altura Z(lo suficiente como para alejarnos de los elementos) y luego interpolaria ejes X y Y. Todo esto es válido en el caso de que la máquina sea una fresadora. Si la máquina es un torno, debemos ser mucho más cautos aún y tener en cuenta la herramienta que mecaniza y las que estan en el tambor de herramientas.

La estructura de un programa de CNC

Todos los programas deben identificarse por un nombre o un número. Todo programa de CNC está compuesto por líneas o bloques sucesivos, numerados o no. Normalmente la numeración de los bloques suele darse numerada de diez en diez para poder introducir a posteriori nuevos bloques intermedios sin alterar la numeración.
En el caso de algunos controles, los bloques no van numerados, por lo tanto la ejecución será secuencial (en el orden que se vayan encontrando los bloques).

martes, 10 de noviembre de 2009

El Lenguaje del control numérico

Cierto es que hay muchos tipos de control para realizar el mecanizado de una pieza. En cada uno de los diferentes controles, las funciones del control pueden diferir de un control a otro, de todas formas hay unas normas ISO, que indican cómo debe estructurarse un programa de control numérico. Es decir, marca las pautas a seguir en todo programa como puede ser el orden de los ejes en la programación, el avance, la declaración del decalaje, revoluciones, sentido de giro, etc... La manera de programar debe ser la misma para todos independientemente del tipo de control en el que estemos trabajando.
Aqui , en este blog, se utilizará un control numérico llamado FAGOR, pero como antes se ha comentado, el tipo de control no es lo importante. Más importante es el método.

Ejemplos con trigonometría y misceláneas

Os habréis preguntado.... ¿y que tiene que ver la trigonometría con un curso de CNC?. Pues lo tiene que ver todo. En muchas ocasiones cuando nos encontramos programando el mecanizado de una pieza, nos encontramos con la necesidad de saber el valor de un punto determinado, y tan sólo disponemos de valores de ángulos, y de alguna longitud, que directamente no nos comunica ningún resultado, pero indirectamente, mediante la trigonometría podemos conseguir la solución. Es en estos momentos cuando tenemos que recurrir a los cálculos trigonométricos.

Para muestra un botón.


Imaginad que os dicen que tenéis que desplazaros desde el punto A (X0,Y0) hasta el punto B(X ?, Y ?). Pero como os habréis dado cuenta, del punto B no tenemos ninguna coordenada. ¿Cómo podemos averiguar esas coordenadas?. Para empezar, echemos un vistazo al dibujo. Nos dicen que el ángulo del vértice B es de 60º y que la longitud de la hipotenusa es de 5. Pues bien fácil. Apliquemos algo de trigonometría. En este caso, se podría utilizar la fórmula del seno para averiguar la longitud del cateto b. Si mal no recuerdo el seno de 60º es 0,866, y también sé que el seno es la relación existente entre el cateto opuesto y la hipotenusa, por lo tatnto tengo que: 0,866 = b/5; b=5*0,866; b=4,33. Ya sabemos que la coordenada X del punto B es 4,33, o sea, B(X4.33,Y?). Tan sólo nos queda averiguar el valor del cateto a que se podría hacer por el teorema de pitágoras, pero como estamos hablando de trigonometría vamos a utilizar trigonometría. Utilizaremos la fórmula del coseno. El coseno de 60º es 0.5, por lo tanto: 0,5=a/5; a=5*0,5; a=2,5. Ya tenemos la coordenada Y del punto B. Ya sabemos que las coordenadas del punto B son B(X4.33,Y2.5). Un ejemplo sencillo e ilustrativo. En próximas entradas adjuntaré la tabla de valores para el seno, el coseno y la tangente, con una pequeña explicación de dónde vienen dichos valores.

Antes de empezar...¿Que tal un poquito de trigonometría?


Se podría decir sin temor a equivocarnos que la trigonometría es una de las ramas de la matemática que más se utiliza en muchos cálculos (Topografía, Mecánica, Física, Aeronáutica, etc...). Para el fin que nosotros la vamos a utilizar, nos basta con unos poquitos conceptos (seno, coseno y tangente), pero no por eso menos importantes.
En la figura de arriba, llamaremos seno del ángulo alfa de un triángulo rectángulo (el ángulo alfa es el que se encuentra en el lado del vértice A) a la relación existente entre el cateto opuesto a ese ángulo (cateto a) y la hipotenusa (c), o lo que es lo mismo sin (alfa) = a/c. El coseno del ángulo alfa seria la relación existente entre el cateto adyacente o contiguo al ángulo alfa (cateto b) y la hipotenusa (c), cos (alfa) = b/c. Por último la tangente es la relación existente entre el cateto opuesto entre el cateto adyacente, tg (alfa) = a/b. De momento para asimilar este concepto, lo dejamos aqui. En próximas entradas se ilustrará con algunos ejemplos.