Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Dominando la Programación CNC: Lenguaje, Estructura y Códigos G/M

OBJETIVO

Al completar esta unidad, deberías ser capaz de:

Los programas CNC listan instrucciones a ejecutar en el orden escrito. Se leen como un libro, izquierda a derecha y de arriba abajo. Cada frase en un programa CNC se escribe en una línea separada, llamada Bloque. Los bloques se organizan en una secuencia específica que promueve seguridad, predictibilidad y legibilidad, por lo que es importante adherirse a una estructura estándar.

Los bloques se organizan en el siguiente orden:

Los pasos arriba representan el tipo más simple de programa CNC, donde solo se usa una herramienta y una operación. Programas con múltiples herramientas repiten pasos 2 a 9 para cada una.

Las Tablas 3 y 4 en la sección Códigos G y M muestran los códigos G y M más comunes que deberían memorizarse si es posible.

Como cualquier lenguaje, el lenguaje G-code tiene reglas. Por ejemplo, algunos códigos son modales, es decir, permanecen en efecto hasta que se cancelan o cambian. Algunos tienen significados diferentes según cómo y dónde se usan.

Aunque estas reglas se cubren en este capítulo, no te preocupes por aprender cada matiz. Es trabajo del Post-Procesador del software CAD/CAM formatear y escribir correctamente el programa CNC.

FORMATO DEL PROGRAMA

El programa en Tabla 1 mecaniza un contorno cuadrado y taladra un orificio.

BloqueDescripciónPropósito
%
O1234
(T1 0.25 END MILL)
G17 G20 G40 G49 G80 G90
Inicio de programa.
Número de programa (Nombre).
Descripción de herramienta para operador.
Bloque de seguridad para asegurar modo seguro.
Iniciar Programa
T1 M6
S9200 M3
Cargar Herramienta #1.
Velocidad husillo 9200 RPM, sentido horario.
Cambio Herramienta
G54
M8
G00 X-0.025 Y-0.275
G43 Z1. H1
Z0.1
G01 Z-0.1 F18.
Usar Desplazamiento Fijación #1.
Refrigerante ON.
Posicionamiento rápido sobre pieza.
Rapido a plano seguro, usar TLO #1.
Rapido a plano de avance.
Movimiento lineal a profundidad de corte a 18 IPM.
Mover a Posición
G41 Y0.1 D1 F36.
Y2.025
X2.025
Y-0.025
X-0.025
G40 X-0.4
G00 Z1.
Compensación diámetro izq (CDC), entrada lineal, Offset Diámetro #1, 36 IPM.
Movimiento lineal.
Movimiento lineal.
Movimiento lineal.
Movimiento lineal.
Apaga CDC con movimiento de salida.
Rapido a plano seguro.
Mecanizar Contorno
M5
M9
(T2 0.25 DRILL)
T2 M6
S3820 M3
Husillo OFF.
Refrigerante OFF.
Descripción herramienta para operador.
Cargar Herramienta #2.
Velocidad 3820 RPM, horario.
Cambio Herramienta
M8
X1. Y1.
G43 Z1. H2
Z0.25
Refrigerante ON.
Rapido sobre orificio.
Rapido a plano seguro, usar TLO #2.
Rapido a plano de avance.
Mover a Posición
G98 G81 Z-0.325 R0.1 F12.
G80
Z1.
Ciclo taladrado (enlatado), Profundidad Z-.325, F12.
Cancela ciclo taladrado.
Rapido a plano seguro.
Taladrar Orificio
M5
M9
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%
Husillo OFF.
Refrigerante OFF.
Retorno a Home en Z.
Retorno a Home en XY.
Reset a modo posicionamiento absoluto (seguridad).
Reinicia programa al inicio.
Fin Programa.
Fin Programa

CÓDIGOS DE DIRECCIÓN POR LETRA (LETTER ADDRESS COMMANDS)

El bloque de comando controla la herramienta mediante códigos de dirección por letra. Algunos se usan más de una vez y su significado cambia según el código G en el mismo bloque.

Los códigos son modales (permanecen hasta cancelación/cambio) o no modales (efecto solo en el bloque actual). Muchos códigos se eligen lógicamente (T para herramienta, S para husillo, F para avance, etc.).

La tabla siguiente lista los códigos de dirección por letra más comunes.

Tabla 2: Códigos de Dirección por Letra

VariableDescripciónDefiniciones
APosición absoluta/incremental eje A (rotacional alrededor de X)A,B,C – Movimiento Rotativo 4º/5º eje. Rotación sobre X, Y, Z respectivamente. Ángulo en grados hasta 3 decimales. G01 A45.325 B90.
BPosición absoluta/incremental eje B (rotacional alrededor de Y)Igual que A
CPosición absoluta/incremental eje C (rotacional alrededor de Z)Igual que B
DDefine offset de diámetro o radial para compensación de cortadorCompensa desgaste y deflexión de diámetro. D va con entero igual al número de herramienta (T5 usa D5). Sin punto decimal. Siempre con G41/G42 y movimiento XY (nunca arco). Al llamarse, el control lee el registro y desplaza la trayectoria izq (G41) o der (G42) por el valor del registro. G01 G41 X2. D1
ETasa de avance de precisión para roscado en tornos
FDefine tasa de avanceEstablece avance al mecanizar líneas, arcos o ciclos taladrado. Avance en pulg/min (modo G94) o Tiempo Inverso (G93). Hasta 3 decimales (para ciclos roscado) y requiere punto decimal. G01 X2. Y0. F30.
GDirección para comandos preparatoriosLos G a menudo dicen al control qué movimiento se quiere (posicionamiento rápido, avance lineal, circular, ciclo fijo) u qué offset usar. G02 X2. Y2. I.50 J0.
HDefine offset de longitud de herramienta; eje incremental correspondiente a C (ej. torno-fresa)Llama registro TLO en control. Combina TLO y Offset Fijación Z para saber dónde está la herramienta respecto al datum. Siempre con entero (H1, H2), G43 y coordenada Z. G43 H1 Z2.
IDefine tamaño arco en eje X para G02/G03. También parámetro en ciclos fijos.Para arcos (G2/G3), distancia incremental X desde punto inicio al centro. Algunos ciclos taladrado usan I como parámetro opcional. G02 X.5 Y2.500 I0. J0.250
JDefine tamaño arco en eje Y para G02/G03. También parámetro en ciclos fijos.Para arcos, distancia incremental Y desde inicio al centro. Ciclos taladrado usan J opcional. G02 X.5 Y2.500 I0. J0.250
KDefine tamaño arco en eje Z para G02/G03. También parámetro en ciclos fijos, igual a L.Para arco (G2/G3), distancia incremental Z desde inicio al centro. En plano G17, distancia Z incremental para helicoidales. Ciclos taladrado usan J opcional. G18 G03 X.3 Z2.500 I0. K0.250
LCuenta de bucles en ciclo fijo; especificación de registro a editar con G10Cuenta bucles: define repeticiones de ciclo fijo en cada posición. Asumido 1 salvo que se programe otro entero. A veces K se usa en lugar de L. Con posicionamiento incremental (G91), serie de orificios equidistantes puede programarse como bucle. G10: especifica qué registro editar (offsets trabajo, radio herramienta, longitud herramienta, etc.).
MFunción misceláneaSiempre con entero que determina significado. Solo un M-code por bloque. Definiciones expandidas después. M08
NNúmero de línea (bloque) en programa; número de parámetro de sistema a cambiar con G10Números de bloque facilitan lectura. Raramente requeridos en programas CAD/CAM sin subprogramas. Ocupan memoria, la mayoría programas 3D no los usan. Enteros hasta 5 caracteres sin decimal. No aparecen antes de % y usualmente no antes de bloque solo comentario. N100 T02 M06
ONombre de programaProgramas se almacenan por número. Entero precedido por O sin decimales. O1234 (Ejercicio 1)
PDirección de parámetro para varios G y MPausa (dwell) en segundos. Con G4 salvo en ciclos taladrado. G4 P.1
QIncremento de picado en ciclos enlatadosDistancia incremental por pasada en ciclo picado. G83 X2. Y2. Z-.625 F20. R.2 Q.2 P9.
RDefine radio de arco o altura de retracción en ciclos enlatadosArcos definibles con radio R o vectores I,J,K. IJK más fiables que R, recomendado usarlos. R también usado en ciclos taladrado como plano retorno Z. G83 Z-.625 F20. R.2 Q.2 P9.
SDefine velocidad, ya sea husillo o velocidad de corte según modoVelocidad husillo en RPM. Entero sin decimal, siempre con M03 (horario) o M04 (antihorario). S2500 M03
TSelección de herramientaSelecciona herramienta. Entero siempre con M6 (código cambio). T01 M06
UEje incremental correspondiente a X (típicamente solo controles grupo A torno); también define tiempo de pausa en algunas máquinasEn estos controles, X y U obvian G90/G91. En estos tornos, G90 es dirección de ciclo fijo para desbaste.
VEje incremental correspondiente a YHasta 2000s, V rara vez usado porque tornos con U,W no tenían eje Y. Proliferación de herramientas vivas y torneado-fresado ha hecho V menos raro.
WEje incremental correspondiente a Z (típicamente solo controles grupo A torno)En estos controles, Z y W obvian G90/G91. En estos tornos, G90 es dirección de ciclo fijo para desbaste.
XPosición absoluta/incremental eje XDatos coordenada X. Hasta 4 decimales permitidos, ceros finales no usados. Coordenadas modales, no necesidad de repetir si no cambian. G01 X2.250 F20.
YPosición absoluta/incremental eje YDatos coordenada Y. G01 Y2.250 F20.
ZPosición absoluta/incremental eje ZDatos coordenada Z.

DEFINICIONES DE CÓDIGOS DE CARACTERES ESPECIALES

Lista de caracteres especiales comúnmente usados, significado, uso y restricciones.

CÓDIGOS G Y M

Los códigos G y M constituyen la mayor parte del programa CNC. La definición de cada clase y significados específicos de los más importantes se cubren a continuación.

Códigos G

Códigos que comienzan con G se llaman palabras preparatorias porque preparan la máquina para cierto tipo de movimiento.

Tabla 3: Códigos G

CódigoDescripción
G00Movimiento rápido. Para posicionar en movimientos sin mecanizado.
G01Movimiento lineal a avance especificado.
G02Arco horario.
G03Arco antihorario.
G04Pausa (Dwell).
G28Retorno a posición Home de máquina.
G40Compensación Diámetro Cortador (CDC) OFF.
G41CDC Izquierda.
G42CDC Derecha.
G43Compensación Longitud Herramienta (TLO).
G54Offset Fijación #1.
G55Offset Fijación #2.
G56Offset Fijación #3.
G57Offset Fijación #4.
G58Offset Fijación #5.
G59Offset Fijación #6.
G80Cancela ciclo taladrado.
G81Ciclo taladrado simple.
G82Ciclo taladrado simple con pausa.
G83Ciclo taladrado a picado (peck).
G84Ciclo roscado.
G90Modo programación coordenadas absolutas.
G91Modo programación coordenadas incrementales.
G98Retorno ciclo taladrado a punto inicial (R).
G99Retorno ciclo taladrado a plano referencia (última altura Z).

Códigos M

Códigos que comienzan con M son palabras misceláneas. Controlan opciones auxiliares como refrigerante y dirección husillo. Solo un M-code por bloque.

Tabla 4: Códigos M

CódigoDescripción
M00Parada programa. Presiona Ciclo Inicio para continuar.
M01Parada opcional.
M02Fin de programa.
M03Husillo horario.
M04Husillo antihorario.
M05Parada husillo.
M06Cambio herramienta.
M08Refrigerante ON.
M09Refrigerante OFF.
M30Fin programa y presiona Ciclo Inicio para repetir.

Definiciones Seleccionadas de Códigos G (Expandidas)

G00 – Movimiento Rápido (Rapid Move)

Este código ordena a la máquina moverse lo más rápido posible a un punto especificado. Siempre se usa con posición de coordenadas y es modal. A diferencia de G01, G00 no coordina ejes para moverse en línea recta. Cada eje se mueve a su velocidad máxima hasta satisfacerse. Resultado: movimiento como en Figura 1.

G00 X0. Y0.

Dominando la Programación CNC: Lenguaje, Estructura y Códigos G/M

Figura 1. Movimiento G00

Precaución: La velocidad rápida de algunas máquinas puede exceder 1. Un offset o movimiento incorrecto puede estrellar la máquina más rápido de lo que el operador puede pulsar parada de emergencia. Usa la anulación de avance rápido en la máquina al ejecutar un programa por primera vez.

Movimiento Lineal es Movimiento en Línea Recta:

El G-code trata de movimiento, y el más común en programas de piezas es movimiento lineal. El movimiento es modal: le dices al control qué tipo quieres con un G-code y recuerda hasta que le digas cambiar con otro G-code.

Palabra F = "F" de "Feedrate". Palabra S = "S" de "Spindle Speed", dirección en rpm.

Especificando Movimiento Lineal con X, Y, Z:

Especificar G00 o G01 no causa movimiento; solo dicen al control qué tipo se espera cuando finalmente le digas a dónde mover. Para movimiento real necesitas especificar destino con X, Y, Z. Para ir a cero de pieza: G00 X0 Y0 Z0. O G01 si quieres ir más lento: G01 X0 Y0 Z0 F40.

Movimiento interpolado: cuando especificamos múltiples coordenadas en una línea, significa que más de un eje se mueve simultáneamente. El control los mueve a la velocidad relativa exacta para que el cortador siga línea recta al destino a la velocidad de avance.

Si especificamos el mismo destino pero repartimos coordenadas en múltiples líneas, cada línea es un movimiento separado: G00 X0 Y0 (mueve a X0 Y0 manteniendo Z constante); Z0 (mueve a Z0 manteniendo X,Y). G00 y G01 son modales, solo se especifican al cambiar de modo.

Eje Z:

El concepto de movimientos interpolados plantea un tema interesante para el eje Z. A menudo es buena idea mover el eje de profundidad de corte por sí solo, no como movimiento coordinado con X e Y. Si vas a tener problema (colisión) al acercar el cortador a la pieza y fijación. Mover primero en X e Y y luego en Z, es más fácil juzgar si una colisión accidental está por ocurrir. También es menos probable golpear algún objeto aleatorio (como una abrazadera) si mantienes el cortador alto hasta estar directamente sobre donde empezar a cortar.

G02 y G03 – El Movimiento Circular es un Modo Iniciado:

G02 establece modo para arcos horarios. G03 para arcos antihorarios. Una vez establecido el modo G02/G03, los arcos se definen en G-code identificando sus 2 extremos y el centro, que debe estar equidistante de cada extremo. Los extremos son fáciles: el punto de control actual (ubicación al iniciar el bloque) establece uno. El otro por coordenadas XYZ. El centro se identifica comúnmente usando I, J, K para establecer offsets relativos desde el punto inicial del arco al centro.

EJEMPLO DE ARCO HORARIO:

Dominando la Programación CNC: Lenguaje, Estructura y Códigos G/M

Figura 2. Centro de un arco con IJK

Este arco empieza en X0 Y2. y termina en X2. Y0. Su centro está en X0 Y0. En G-code:

G02 (Modo arco horario)
X2 Y0 I0 J-2.0

El Centro Usando Radio "R":

El centro simplemente especificando el radio del círculo. Radio 2, así G-code: G02 X2 Y0 R2

G17/G18/G19 – Designación de Plano

Los arcos deben existir en un plano designado por G17 (XY), G18 (XZ) o G19 (YZ). G17 es el predeterminado.

Dominando la Programación CNC: Lenguaje, Estructura y Códigos G/M

Figura 3. Designación de Plano

G40/G41/G42 – Compensación Diámetro Cortador (CDC)

CDC es clave para mecanizado CNC de precisión, permitiendo compensar desgaste y deflexión de herramienta ordenando a la máquina desviarse izquierda (G41) o derecha (G42) de la trayectoria programada. G40 cancela compensación. La cantidad de offset se ingresa en registro D del control. El registro de desgaste es como una tabla a la que el control refiere en cada movimiento.

Tabla 5: Registro Offset Diámetro

Offset Diámetro HerramientaValor
D10.0125
D20.0000
D30.0000
D40.0000
D50.0000
D60.0000

El valor en registro D lo calcula el operador, monitoreando tamaño final de características, comparando con plano, y entrando la diferencia para mantener pieza dentro de especificaciones. Si no hay desviación, registro a cero.

G01 G41 D1 X1.0 Y.25 F40.

G43 – Compensación Longitud Herramienta

G43 activa compensación longitud herramienta. Siempre va con H-code y movimiento Z, donde H es el registro TLO a leer, y Z es la altura a ir en referencia al datum de pieza.

El TLO es como una tabla en el control:

Tabla 6: Offsets de Trabajo

Registro Longitud HerramientaZ
H110.236
H24.7510
H36.9652
H47.6841
H512.4483
H68.2250

El TLO se combina con el offset de fijación activo para que la máquina sepa dónde está la punta de la herramienta respecto al datum.

G43 H1 Z1.

G54 – Offset de Trabajo (Work Offset)

Los offsets de trabajo son registros de datos en el control que guardan la distancia de Home X,Y,Z al datum de pieza. Pueden pensarse como una tabla:

Tabla 7: Offset de Trabajo

Offset TrabajoXYZ
G5414.25676.65970.0000
G550.00000.00000.0000
G560.00000.00000.0000
G570.00000.00000.0000
G580.00000.00000.0000
G590.00000.00000.0000

Consejo: G54 usualmente para primera configuración. Offsets adicionales para mecanizar otras caras.

Los valores X e Y representan distancia de Home a datum XY. El valor Z es distancia del punto de referencia de herramienta (ej. tope bloque 1-2-3) al datum Z de pieza.

G54 X0. Y0.

EXAMEN DE LA UNIDAD

  1. Describe la lista de instrucciones del programa CNC.
  2. Todos los programas CNC comienzan y terminan con ¿qué?
  3. Describe los códigos de dirección por letra.
  4. Enumera tres códigos de caracteres especiales.
  5. Describe códigos G y M.
  6. Describe G00 G90 G54 X0 Y0.
  7. Describe G00 G90 G43 H1 Z1.
  8. ¿Cuál es la diferencia entre G00 y G01?
  9. Explica la diferencia entre G02 y G03.
  10. Describe las palabras F y S.

Tecnología Industrial

  1. Entendiendo las rectificadoras CNC de herramientas y cortadores: funciones, usos y beneficios
  2. Fundamentos de Programación de Microprocesadores
  3. Unidad 5: Operación CNC – Dominando Configuración y Control de Fresadora Haas
  4. Dominando el Mecanizado CNC: Control de Variables para Resultados Consistentes
  5. Domina la precisión en fresado CNC: Pasos probados para piezas exactas
  6. Servicios Premium de Mecanizado CNC y Fabricación de Herramientas en Portland, Oregon
  7. Prevención y gestión de colisiones en centros de mecanizado CNC de 5 ejes
  8. Mejorando Precisión y Exactitud de Herramientas de Máquina CNC: Guía Completa
  9. Preajustador y Medición de Herramientas CNC: Guía Esencial para Precisión y Eficiencia
  10. Entendiendo la estructura de un programa C: Guía para principiantes
  11. Estructura de Programa C#: Componentes Principales y Ejemplo Hello World