Beruflich Dokumente
Kultur Dokumente
Bueno, esto ya es amplio, en realidad los códigos para el CNC fueron creados para Máquinas
Industriales, los que vimos anteriormente, salieron de esta tabla, que ya está un poco más
completa, y cada máquina toma la parte de código que le interesa, el resto lo deja de lado, (si
tienes una máquina que trabaja en 2D... Para qué te sirven las instrucciones de otra que
trabaja en 3D?)
Comando Descripción
N Número de Secuencia
G Funciones Preparatorias
F Tasa de Alimentación
S Velocidad de Giro
T Número de Herramienta
M Funciones Misceláneas
Ahora comencemos con la descripción de cada comando o instrucción. En Gris, los comandos
que veremos primero, ya que son los más cortos, y a los otros les dedicaremos más tiempo, y
así no nos perdemos..
Tal como dice el título, Es el número de secuencia que identifica una línea de código de
trazado, mira como quedaría el código anterior...
N0000
N0010
N0020
N0030
N0040
N0050
N0060
N0070
N0080
N0090
N0100
N0110
N0120 M48
T01
X+01400Y+01600
X+01800Y+01600
X+02200Y+01600
X+02300Y+01600
X+01400Y+02000
X+01800Y+02000
T02
X+02100Y+02000
X+02300Y+02000
M30
Bueno, esto es sólo un ejemplo para que veas el uso que tiene. Para quienes nos dedicamos a
la programación, es importante saber en que línea de código se encuentra una determinada
instrucción, esto es con el fin de no perdernos cuando se trata de un código demasiado
extenso, pues esa es la única función que cumple, esto significa que no es de vital importancia
para la máquina, sino para quien programa.
Por otro lado, también suele utilizarse como un puntero, es decir, una vez termine el trazado
puede volver a repetir una parte de éste, sólo indicándole en que línea de código debe
comenzar, y hasta donde debe hacerlo, y aquí sí que cobra importancia. Por supuesto esto
queda a criterio de cada uno.
Los agrupé a los tres Ejes por que siguen, por así decirlo, la misma sintaxis, por ejemplo...
X50 Y40
Se indica primero el eje en el cual se desplaza y luego un valor numérico, que puede indicar la
cantidad de puntos a desplazarse, en nuestro caso, la orden sería... "desplázate 50 puntos
hacia el lado positivo de las X, y 40 puntos hacia el lado positivo de las Y".
Por si no notas la diferencia, en el primer caso te indica cuantos puntos debes desplazarte,
mientras que en el segundo, te indica hacia qué punto (coordenada) debes ir.
El tema es, cómo saber que tipo de desplazamiento debo realizar, si el primero o el segundo,
bueno, eso lo veremos luego, confía en mí...
X50 Y40
X-110
X-130 Y60
Y-220
Estos son desplazamientos en los ejes X,Y... Debes recordar que en un sistema de ejes
cartesianos, (como dicen los profes de matemáticas) tienes signos positivos y negativos, aquí
los signos indican eso justamente, hacia que lado ir, Algunos máquinas requieren que se
precisen los signos positivos, otras no, y como siempre, todo dependerá de la máquina.
Otras observaciones, como verás, el comando para cada eje, va separado por un espacio, otros
suelen utilizar una coma (,) y otros, ni si quiera eso., directamente se toma como separador, la
letra que identifica a la instrucción.
En la segunda línea del ejemplo anterior, se indica el comando para el eje X, pero nada para el
eje Y, y es por que el eje Y debe permanecer donde está (es decir, no habrá desplazamiento en
ese eje), algo muy similar ocurre en la última línea, sólo que en este caso es respecto al eje Y.
Igual que antes, algunas máquinas requieren sí o sí, que se le indique el par de comandos, y en
otras no es necesario.
Una más... En el siguiente ejemplo, podrás ver que se indican los valores para cada comando,
anteponiendo ceros a cada número, la cantidad de ceros depende de la cantidad máxima de
puntos que la máquina puede trazar (sería en realidad la resolución de la máquina, algo así
como... Puntos por Pulgada).
X+01800 Y+00200
Otra vez, todo dependerá de la forma en que la máquina realiza la lectura de estos comandos,
para algunas será necesario, para otras no. Veamos otras instrucciones.
Algunos comandos, que luego veremos más adelante, lo utilizan sin necesidad de especificarlo,
es como que la máquina tiene un registro en su memoria en donde se almacena este valor, y
cuando el comando se ejecuta, automáticamente toma este valor de la memoria, y cambia o
mantiene la velocidad indicada en ese registro.
Está referido al Husillo, la velocidad de giro de la fresadora, dependerá por lo general del
material de la pieza que estés tallando, grabando o fresando, no es lo mismo calar madera que
cobre o acero por ejemplo, la primera puede hacerse más rápido que la segunda y la tercera.
Por lo que sé, las máquinas industriales poseen un cabezal que les permite cambiar de
herramienta automáticamente, bueno según la instrucción o comando que se ejecute, el valor
que acompañe a T apuntará a una Herramienta en especial, y sólo a ella, por ejemplo, podría
ser algo así...
Ahora, vamos a lo nuestro, podrías asignarle el dámetro que tu quieras a cada valor de T, y así
tienes tu propia equivalencia, por ejemplo podría ser algo así...
Algo más, T01 sería equivalente a T1, te diste cuenta de eso verdad...?
Estos código, son utilizados para todo aquello que antes no se había tenido en cuenta, algunos
códigos controlan el flujo del programa, otros sin embargo, tienen funciones muy especiales,
por ejemplo, el encendido de la máquina, el calibrado cuando ésta se enciende, el sentido de
giro del mandril, el inicio o la repetición de un bloque de códigos, el control del rociador para
el enfriamiento de la herramienta y la pieza que se está trabajando, etc.
En fin, yo aquí me encontré con algunas muy interesantes, y las separé en esta pequeña
tabla...
Comando Descripción
M03 Inicio de la rotación del mandril en la dirección de las agujas del reloj.
M04 Inicio de la rotación del mandril en la dirección contraria a las agujas del reloj.
M30 Detención y rebobinado del programa. Detención de la rotación del mandril, del
movimiento de la herramienta y desconexión del flujo del enfriador; el control se prepara a
comenzar la lectura del inicio del programa una vez más. Todas las funciones de la máquina
(preparatorias, misceláneas, etc) vuelven a su estado por defecto (la condición en la cual se
encuentra la máquina al encenderla por primera vez.)
Igual que antes, la implementación de estos códigos depende de cada fabricante, es decir, de
nosotros.
Las funciones preparatorias, también conocidas como G-Codes o Códigos G, son las más
importantes en la programación CNC, ya que controlan el modo en que la máquina va a
realizar un trazado, o el modo en que va a desplazarse sobre la superficie de la pieza que está
trabajando.
Los posibles valores que acompañan a este comando, van de 00 a 99, y cada uno tiene una
función determinada, no voy a describirlos a todos, sino a los más importantes, o al menos
aquellos que considero de vital importancia, y que los puedes ver en esta tabla...
Comando Descripción
Uhhh... debemos saber primero que significa interpolación, veamos, según uno de mis
diccionarios de la lengua hispana...
Interpolación es el proceso mediante el cual, conocidos los valores que toma una función en
dos puntos (A,B), se determina con cierto grado de exactitud los valores de un tercer punto (C)
comprendido entre A y B.
Para aquellos a quienes les cuesta un poquitín interpretar la definición anterior, dicho en
entendible, sería algo así... Si conoces la ubicación del extremo (A) de una línea, y conoces la
ubicación del otro extremo (B), entonces es posible conocer cada punto (C) por los cuales
debes pasar para llegar desde A hasta B.
Bien, ahora que ya sabemos lo que significa interpolación, podemos comenzar con la
descripción de estos comandos. Si bien ambos son interpolaciones lineales o movimientos
lineales, la diferencia se encuentra en la velocidad de desplazamiento.
G00 es un movimiento rápido, en este caso no existe contacto entre la herramienta y la pieza
de trabajo, es decir se desplaza sin realizar corte alguno.
G01 es un movimiento lineal pero cortando el material, es decir que se está graficando, para
ello utiliza la velocidad programada en el registro F, el cual ya describimos anteriormente.
.: Interpolaciones Circulares o Movimientos Circulares (G02 y G03)
Lo único que indican estos comando es que el movimiento será circular, G02 en sentido
Horario, y G03 en sentido Anti-horario, y que el movimiento debe mantenerse constante a la
velocidad programada en el registro F.
Hay dos formas de realizar un Arco o un círculo, una es utilizando el Radio (R) y otra es
indicando el centro u origen de la curva por las coordenadas (I,J,K)
Estos 4 comandos también figuran en la tabla que vimos en la página anterior, así que aquí las
liquidamos...
Veamos la primera. Si el comando es G03 significa que el arco se trazará en sentido anti-
horario, y si el centro de la curva está dado por el Radio (R), hay dos posibilidades, -R o +R.
* Si el Radio es Negativo, el centro del Radio se encuentra del lado Izquierdo de la línea
imaginaria que une los puntos Inicial y Final de la curva, o sea, se trata de esto...
(figura 1)
(figura 2)
(figura 3)
Como verás, lo único que indica el signo, es de que lado se encuentra el centro del arco
* Si el Radio es Positivo, el centro del Radio se encuentra del lado Derecho de la línea
imaginaria que une los puntos Inicial y Final de la curva, mira la diferencia, es algo así...
(figura 4)
NOTA 1: En los dos ejemplos vistos anteriormente, el valor de R, es el mismo, lo único que
cambia es el signo, y fíjate que las curvas obtenidas son distintas, buena observación, no
crees...?
NOTA 2: Estos Arcos fueron trazados con el comando G03, es decir, se trazó en sentido anti-
horario. Si el comando fuese G02, el arco se trazaría al revés, esto es, el arco que ves en la
figura 3 se trazaría para el otro lado, y quedaría un arco similar al de la figura 4, pero al revés, y
el de la figura 4 quedaría igual al de la figura 3 pero y también al revés, es sólo una cuestión de
interpretación.
Bien, aquí terminamos con el trazado de la curva haciendo uso del comando R, ahora vamos a
ver otra forma de trazar una curva, pero con los comandos I,J y K
El comando K se utiliza cuando tu máquina trabaja en 3D, que no es nuestro caso, pero
también es válido lo que veremos para los otros dos.
Si conoces la ubicación del punto inicial y el punto final, lo único que necesitas para trazar una
curva es la ubicación del centro del radio, cuando utilizamos anteriormente el comando R la
ubicación del centro la obtenías por cálculo.
En este caso, la ubicación del radio está dada por las coordenadas I,J. El valor numérico que
acompañe a la letra I será la ubicación respecto del eje X, mientras que el valor que acompañe
a J será la ubicación respecto del eje Y.
Como verás, en este caso te estás ahorrando el cálculo para encontrar el centro de la curva,
por lo que ví, esta es la más utilizada.
Cuando trabajes en 2D, los planos X-Z (G18), Y-Z (G19) no existirán, sólo te quedarás con el
plano X-Y (G17).
A estos tres comandos, no les acompaña ningún valor que le indique de cuanto será la
compensación, sin embargo la máquina debe tener la capacidad suficiente para reconocer el
diámetro de la herramienta con la que está trabajando en el momento de aplicarla y así
calcular, de cuanto será la compensación, si recuerdas, anteriormente, habíamos visto los
comando del tipo T00, T01, T02, bueno, pues justamente este valor está cargado en la
memoria de la máquina, es decir, sabe perfectamente el diámetro de la herramienta que está
utilizando, o al menos debería saberlo...
Hasta donde yo se, Internamente una máquina trabaja con puntos, y la resolución de la misma
estará dada en Puntos por Pulgada (G70), o bien Puntos por Milímetros (G71), de allí surgirá
una equivalencia que luego será traducida en las dimensiones de las piezas que se estén
trabajando.
Según la información que encontré, estas son las dos medidas más utilizadas y estandarizadas
para las fresadoras, tornos, taladros etc., y creería que son las que deberíamos adoptar para
nuestra máquina, pero bueno, igual que antes, esto dependerá de cada fabricante.
No diré más de este par.
Es muy importante que comprendas estos dos comandos, ya que de ellos dependerá el modo
en que la máquina deberá desplazarse sobre cada eje.
Recuerdas cuando hablamos de los comando X,Y y Z, bueno los valores que acompañan a cada
comando son los desplazamientos sobre cada eje, ahora, la máquina debe tener siempre un
punto de referencia. Por lo general, el punto de referencia es la coordenada 0,0 también
conocida como punto de origen, o PuntoCero.
El comando G90 indica Modo Absoluto, es decir que todos los valores de las coordenadas X,Y
serán referidos a ese punto de origen.
El comando G91 indica Modo Incremental o Relativo, o sea, utilizará el PuntoCero sólo cuando
comience el trazado, de allí en más, el último punto, se convertirá en punto de origen para el
próximo desplazamiento.
Se habrá entendido...???
Bueno, lo aclaremos un poco más, mira estos dos gráficos, a pesar de que se trata del mismo,
las instrucciones de trazado serán distintas, en un caso lo haremos en Modo Absoluto (G90), y
en el otro lo haremos en Modo Incremental o Relativo (G91).
Desplazamiento Absoluto
Desplazamiento Incremental
N0030 G00 X0 Y0
N0010 G01 X5
N0020 X4 Y4
N0000 Dice algo así: G90 (los desplazamientos que siguen serán referidos al punto 0,0); G00 (el
desplazamiento será rápido, sin realizar cortes); se debe dirigir al punto X=4,Y=7 (a).
N0010 Dice algo así: G01 (el movimiento es realizando corte); se debe dirigir hasta el punto
X=9 (b).
N0020 Dice algo así: Continúa cortando hasta el punto X=13,Y=11 (c).
N0030 Dice algo así: G00 (Movimiento sin corte y rápido); desplazarse hasta el punto X=0,Y=0
(Regresa al punto de origen 0,0)
N0000 Dice algo así: G91 (los desplazamiento que siguen serán en modo incremental); G00 (el
desplazamiento será rápido, sin realizar cortes); se debe mover 4 puntos en el Eje X, y 7 puntos
en el Eje Y, (llega al punto a)
N0010 Dice algo así: G01 (el movimiento es realizando corte); debe moverse 5 puntos en el Eje
X, (alcanza el punto b)
N0020 Dice algo así: Desplazarse 4 puntos en el Eje X, y 4 puntos en el Eje Y (llega al punto c)
N0030 Dice algo así: G00 (el desplazamiento será rápido, sin realizar cortes); Desplazarse 13
puntos hacia atrás en el Eje X, y 11 puntos hacia atrás en el Eje Y (Regresa al punto de origen
0,0)
Aplausos para quien logró comprender. Hasta aquí todo lo que fue el código CNC, como verás,
hay mucho más, pero estos son los comandos que me parecieron más importantes, al menos
los que yo implementaría para mi máquina.
Ahora vamos a pasar a otro lenguaje, un poco más interesante, no se si más fácil pero es un
poco más práctico, y es el que utiliza la máquina que preparamos con mis alumnos, ahí nos
vemos... .: Trazadores o Plotters
Un Plotter es como una impresora, con la INMENSA diferencia que este realiza el trazado de
líneas, por medio de unas fibras, lápices, bolígrafos o elementos muy similares, llamadas
plumillas en AutoCAD, El cabezal de un Plotter puede tener varias de estas plumillas (cada una
con un color distinto), por lo que vi, algunos tienen cabezal rotativos, con la posibillidad de
cambiar de plumilla en cualquier momento. aquí tienes un mini-video de este tipo de
cabezales...
Bueno, no, hablando en serio, Los Arquitectos los utilizan para el trazado de los planos de sus
diseños, como sabrás, estos planos son inmensos, y una impresora común, no nos serviría para
esta tarea, pues, creería yo que ese fue uno de los motivos por los cuales fueron creados,
aunque nosotros utilizaremos sus lenguajes para otra cosa. Aquí tienes la foto de otro, aunque
este ya no tiene cabezal rotativo como el anterior, sino que tiene las fibras puestas en forma
vertical y descenderá la que corresponda al color de trazado, bueno, este tiene la pinta de ser
fabricado en casa...
Aquí hay que resaltar algo, cada plotter tiene sus propios drivers, y en ellos la forma en que se
controlará el movimiento de sus motores o bien la decodificación de una imagen para realizar
el trazado. Volvemos a lo de siempre, todo depende del fabricante, algunos liberaron su
código, otros no, pero nada impide que puedas controlarlos, en el mundo de la informática
todo es posible, y aquí nos encontramos nosotros...
Ahora bien, todos estos plotters, te permitirán imprimir la imagen en un archivo de texto, este
archivo contiene la información necesaria para que el plotter pueda trazarla, que algunos los
llaman trazadores virtuales, no se si será el nombre correcto o no, pero la idea es obtener este
archivo a como de lugar.
Una vez lo tengas, habrá que ver, qué información se encuentra dentro, o mejor dicho qué
lenguaje utiliza, y bueno, dependerá del plotter que estés utilizando, o más bien, del driver de
ese plotter.
En la Red de Redes, encontrarás varios, y te tocará elegir uno de ellos. El que yo describiré en
este apartado, es el que utilizo con mi máquina, nada impide que más adelante lo cambie, esto
seguramente me llevará a modificar el programa de control, que es el que veremos en la
sección de Programación. Pero sigamos.
Los archivos PLT, tienen una larga lista de comandos, entre ellos algunos muy específicos del
plotter utilizado, más que nada respecto a la configuración de la hoja de impresión, la
ubicación del punto inicial del trazado, las plumillas utilizadas, la ubicación del cabezal, el
calibrado del tamaño de la hoja, que algunos escalan la imagen según el papel de impresión,
etc.
La tabla que verás a continuación es una traducción de la información que encontré respecto a
este lenguaje gráfico. Sólo incluí las que más me interesaron...
Instrucción Función
PU Subir el lápiz (Pen Up).
CI Círculo.
Instrucción Función
SC Escala.
SP Selección de Lápiz.
Bueno, hay muchas más, pero estas son las que voy a describir a partir de ahora,
comenzamos...???
Aquí voy a tomar un ejemplo muy sencillo para describir la forma en que se escribe un bloque
de instrucciones. Cada bloque está formado por una o dos instrucciones de dos letras cada
una, que suele ser un mnemónico de los que vimos en las tablas anteriores, mira este
ejemplo...
La primera instrucción está referida a si se realiza el trazado o no, en este caso la instrucción es
PD (bajar el lápiz), eso significa que sí, se realizará trazado.
La segunda instrucción, está referida al modo de desplazamiento, que como ya vimos
anteriormente, puede ser en modo Absoluto (PA) o Relativo (PR), en este caso será
Desplazamiento o Posicionamiento Absoluto (PA)
Lo que sigue son dos números separados por una coma, el primer número es la coordenada
para el Eje X, el segundo para el Eje Y, estas coordenadas determinan el punto al cual debe
desplazarse, en nuestro ejemplo será hacia el punto X=1001,Y=566.
Finalmente, el signo ";" indica Fin de Bloque de Instrucción, igual que en el lenguaje C o C++.
Bien, ahora veamos como se inicia el código de trazado de una imagen cualquiera, mira esto...
.(;.I81;;17:.N;19:IN;SC;PU;RO0;IP;IW;VS15;VS15;VS15;VS15;VS15;
VS15;SP1;PU;PA0,0;SP1;LT;PA53,421;.....bla, bla, bla...
Todo aquello que ves en azul, vendrían a ser instrucciones de configuración del Trazador, de
como se va a realizar el trazado, el sistemas de coordenadas, el área de impresión, etc., etc.,
estas instrucciones aparecerán siempre, son las que encabezan cualquier código de trazado,
puede variar según el trazador o la forma en que se deba trazar una imagen, puede depender
de varios factores, pero sigamos...
Luego aparecen un par de instrucciones que ya conocemos, como verás, la primera es PU; lo
único que se hace con esta instrucción es levantar el lápiz. La que sigue, ya es un
desplazamiento PA0,0;, y según la instrucción, lo hará en Modo Absoluto hacia la coordenada
0,0, es decir, la punta del lápiz se dirige a la coordenada de origen.
Veamos ahora las dos que siguen, la primera de ellas SP1; es Select Pen 1 (Selección del Lápiz
1).
La Segunda es LT; (Line Type) que vendría a ser Tipo de línea, hay un par de números que
deberían acompañar a LT y que indican el tipo de línea a trazar, que podrían ser; línea llena,
sólo puntos, línea y punto (en sus distintas variedades), simples segmentos separados por un
espacio determinado (también en sus distintas variedades), etc. Por defecto cuando aparece
esta instrucción sóla, sin ningún número, significa que el trazado se hará con línea llena.
Luego aparece otro desplazamiento en Modo Absoluto PA53,421; hacia el punto X=53,Y=421.
Finalmente aparece .....bla, bla, bla... que en terminología mundana, significa que el código
continúa, jejeje...
... PDPA53,397,77,372,125,372,174,397,174,469;PUPA149,469;PDPA101,566;PUPA125,372;
PDPA149,397,149,445,101,518; ...
Ufff...!!!, se suponía que un bloque de trazado estaba formado por dos instrucciones (pares de
letras) y dos números (coordenadas X,Y), y que demonios es esto...???
Para que no se te frustren las intensiones de continuar, voy a tratar de explicarlo con más
detalle, sólo voy a tomar la primera parte de todo ese código, aquella que está en azul, ya
verás que para el resto, también será válido, ok...? aquí está...
PDPA53,397,77,372,125,372,174,397,174,469;
Vamos de nuevo...
PDPA es Bajar el lápiz y desplazarse en Modo Absoluto, primero hacia el punto 53,397, de allí ir
hacia el punto 77,372, luego a 125,372, de allí a 174,397 y finalmente hacia 174,469; y
obviamente, Fin de bloque de Instrucción ";"
Si lo analizas con un poco de detalle y de lógica, esa línea de código podría estar escrita de otra
forma, algo así...
PDPA53,397;PDPA77,372;PDPA125,372;PDPA174,397;PDPA174,469;
Y esto sí cumple con lo que dijimos anteriormente, pero lo podríamos mejorar, mira...
PDPA53,397;
PDPA77,372;
PDPA125,372;
PDPA174,397;
PDPA174,469;
Y si los drivers de nuestro trazador generan estos códigos SIEMPRE en MODO ABSOLUTO...???,
pues no haría falta que aparezca PA, a demás, si cada línea fuera un bloque de instrucciones,
tampoco sería necesario el ";" y entonces nuestro código resultaría de la siguiente forma...
PD53,397
PD77,372
PD125,372
PD174,397
PD174,469
Ok, hasta aquí hemos llegado con los códigos de los archivos PLT, te preguntarás, qué pasa con
el resto de las instrucciones...? y bueno, son muy similares a los códigos vistos anteriormente,
más adelante quizás le agregue el resto, por ahora quedamos aquí, respecto al trazado de
arcos, aunque hay instrucciones específicas para su trazado, el driver que yo utilizo, fragmenta
una curva en sus componentes lineales, algo así...
Y ya no es una curva, sino simples trazados lineales unidos entre sí, Se nota la diferencia...???,
bueno, como dije anteriormente, el resto lo veremos más adelante, cuando ya tenga más claro
en que consiste cada instrucción extraña que se presente, y te adelanto que ya me encontré
con dos...
Lo que toca ahora, es ver como hacer para obtener estos archivos, así que, lo que veremos de
aquí en más, será la configuración de un trazador en AutoCAD.
Me sigues...???
R-Luis...