8.4: Unidad 4: Lenguaje y Estructura CNC
- Page ID
- 153537
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)OBJETIVO
Después de completar esta unidad, deberías ser capaz de:
- Identificar las instrucciones de la lista de programas.
- Comprender el formato del programa
- Describir códigos de comandos de dirección de letras
- Describir definiciones de código de caracteres especiales.
- Comprender los códigos G & M.
Los programas CNC enumeran las instrucciones a realizar en el orden en que se escriben. Leen como un libro, de izquierda a derecha y de arriba hacia abajo. Cada oración en un programa CNC está escrita en una línea separada, llamada Bloque. Los bloques están dispuestos en una secuencia específica que promueve la seguridad, previsibilidad y legibilidad, por lo que es importante adherirse a una estructura de programa estándar.
Los bloques están dispuestos en el siguiente orden:
- Inicio del programa
- Herramienta de carga
- Husillo encendido
- Refrigerante encendido
- Rápido para colocar encima de la pieza
- Operación de mecanizado
- Refrigerante desactivado
- Husillo desactivado
- Mover a una posición segura
- Finalizar programa
Los pasos enumerados anteriormente representan el tipo más simple de programa CNC, donde solo se usa una herramienta y se realiza una operación. Los programas que utilizan múltiples herramientas repiten los pasos del dos al nueve para cada uno.
Tabla 3 y Tabla 4 en la sección G & M Códigos muestran los códigos G y M más comunes que deben ser memorizados si es posible.
Como cualquier idioma, el lenguaje del código G tiene reglas. Por ejemplo, algunos códigos son modales, es decir, no tienen que repetirse si no cambian entre bloques. Algunos códigos tienen diferentes significados dependiendo de cómo y dónde se utilicen.
Si bien estas reglas están cubiertas en este capítulo, no se preocupe por aprender cada matiz del idioma. Es el trabajo del trabajo del software CAD/CAM Post Processor formatear y escribir correctamente el programa CNC.
Formato del Programa
El programa en la Tabla 1: a continuación maquinas un contorno cuadrado y perfora un agujero.
Bloquear | Descripción | Propósito |
% O1234 (T1 0.25 MOLINO DE EXTREMO) G17 G20 G40 G49 G80 G90 | Inicio del programa. Número de programa (Nombre del programa). Descripción de la herramienta para el operador. Bloque de seguridad para asegurar que la máquina esté en modo seguro. | Programa de inicio |
T1 M6 S9200 M3 | Herramienta de Carga #1. Velocidad del Husillo 9200 RPM, En CW. | Herramienta de cambio |
G54 M8 G00 X-0.025 Y-0.275 G43 Z1.H1 Z0.1 G01 Z-0.1 F18. | Utilice Offset de Fixture #1. Refrigerante Encendido. Rápido por encima de la parte. Plano rápido a seguro, use Desplazamiento de Longitud de Herramienta #1. Plano rápido de alimentación. Movimiento de línea a profundidad de corte a 18 IPM. | Mover a la posición |
G41 Y0.1 D1 F36. Y2.025 X2.025 Y-0.025 X-0.025 G40 X-0.4 G00 Z1. | CDC Izquierda, Plomo en línea, Dia. Desplazamiento #1, 36 IPM. Movimiento de línea. Movimiento de línea. Movimiento de línea. Movimiento de línea. Apague los CDC con un movimiento de salida. Avión rápido a seguro. | Contorno de la máquina |
M5 M9 (TALADRO T2 0.25) T2 M6 S3820 M3 | Husillo Desconectado. Refrigerante desactivado. Descripción de la herramienta para el operador. Herramienta de Carga #2. Velocidad del Husillo 3820 RPM, En CW. | Herramienta de cambio |
M8 X1. Y1. G43 Z1.H2 Z0.25 | Refrigerante Encendido. Rápido por encima del agujero. Plano rápido a seguro, use Desplazamiento de Longitud de la Herramienta 2. Plano rápido de alimentación. | Mover a la posición |
G98 G81 Z-0.325 R0.1 F12. G80 Z1. | Ciclo de orificio de perforación (enlatado), Profundidad Z-.325, F12. Cancelar ciclo de perforación. Avión rápido a seguro. | Taladro |
M5 M9 G91 G28 Z0 G91 G28 X0 Y0 G90 M30 % | Husillo Desconectado. Refrigerante desactivado. Regresar a la máquina Posición de inicio en Z. Regresar a la máquina Posición inicial en XY. Restablecer al modo de posicionamiento absoluto (por seguridad). Restablecer el programa al principio. Fin del programa. | Fin del programa |
Códigos de comandos de dirección de letras
El bloque de comandos controla la máquina herramienta mediante el uso de comandos de dirección de letras. Algunos se utilizan más de una vez, y su significado cambia en función de qué código G aparece en el mismo bloque.
Los códigos son modales, lo que significa que permanecen vigentes hasta su cancelación o cambio, o no modales, lo que significa que solo son efectivos en el bloque actual. Como puede ver, muchas de las direcciones de las letras se eligen de manera lógica (T para herramienta, S para husillo, F para velocidad de avance, etc.).
La siguiente tabla enumera los códigos de comandos de dirección de letras más comunes.
Tabla 2: Códigos de comandos de dirección de letras
Variable | Descripción | Definiciones |
A | Posición absoluta o incremental del eje (eje de rotación alrededor del eje X) | A, B, C — Movimiento Rotativo de 4to/5to Eje Rotación alrededor del eje X, Y o Z respectivamente.El ángulo es en grados y precisión de hasta tres decimales. |
B | Posición absoluta o incremental del eje B (eje de rotación alrededor del eje Y) | Igual que A |
C | Posición absoluta o incremental del eje C (eje de rotación alrededor del eje Z) | Igual que B |
D | Define el diámetro o desplazamiento radial utilizado para la compensación de la fresa | Se utiliza para compensar el desgaste y la desviación del diámetro de la herramienta.D va acompañado de un número entero que es el mismo que el número de herramienta (T5 usa D5, etc.). No se utiliza punto decimal. Siempre se usa en conjunción con G41 o G42 y un movimiento XY (nunca un arco). Cuando se llama, el control lee el registro y compensa la trayectoria de herramienta izquierda (G41) o derecha (G42) por el valor en el registro. |
E | Velocidad de avance de precisión para roscar en tornos | |
F | Define la velocidad de avance | Establece la velocidad de avance al mecanizar líneas, arcos o ciclos de taladro.La velocidad de avance puede ser en Pulgadas por Minuto (modo G94) o Tiempo Inverso (modo G93). Las velocidades de avance pueden ser de hasta tres posiciones decimalesexactitud (para ciclos de toma) y requieren un punto decimal. |
G | Dirección para comandos preparatorios | Los comandos G a menudo le dicen al control qué tipo de movimiento se desea (por ejemplo, posicionamiento rápido, avance lineal, alimentación circular, ciclo fijo) o qué valor de desplazamiento usar. G02 X2.Y2.I.50J0. |
H | Define desfase de longitud de herramienta; Eje incremental correspondiente al eje C (por ejemplo, en un molino de giro) | Este código llama a un registro de desplazamiento de longitud de herramienta (TLO) en el control. El control combina los valores TLO y Desfase de fijación Z para saber dónde está la herramienta en relación con el dato de la pieza. Siempre va acompañado de un entero (H1, H2, etc.), G43 y coordenadas Z. |
I | Define el tamaño del arco InX axisfor los comandos de arco G02 o G03. También se utiliza como parámetro dentro de algunos ciclos fijos. | Para los movimientos de arco (G2/G3), esta es la distancia X incremental desde el punto de inicio del arco hasta el centro del arco. Ciertos ciclos de perforación también usan I como parámetro opcional. |
J | Define el tamaño del arco INy axisfor los comandos de arco G02 o G03. También se utiliza como parámetro dentro de algunos ciclos fijos. | Para los movimientos de arco (G2/G3), esta es la distancia Y incremental desde el punto de inicio del arco hasta el centro del arco. Ciertos ciclos de perforación también usan J como parámetro opcional. |
K | Define el tamaño del arco InZ axisfor los comandos de arco G02 o G03. También se utiliza como parámetro dentro de algunos ciclos fijos, igual a dirección L. | Para el movimiento de arco (G2/G3) esta es la distancia Z incremental desde el punto de inicio del arco hasta el centro del arco. En el plano G17, esta es la distancia Z incremental para movimientos helicoidales. Ciertos ciclos de perforación también usan J como parámetro opcional. |
L | Recuento de bucle de ciclo fijo; Especificación de qué registro editar usando G10 | Recuento de bucle de ciclo fijo: Define el número de repeticiones (“bucles”) de un ciclo fijo en cada posición.Se supone que es 1 a menos que esté programado con otro entero. A veces, la dirección K se usa en lugar de L. Con posicionamiento incremental (G91), una serie de agujeros igualmente espaciados se puede programar como un bucle en lugar de como posiciones individuales.G10 uso:especificaciónDe qué registro editar (desplazamientos de trabajo, desplazamientos de radio de herramienta, desplazamientos de longitud de herramienta, etc.). |
M | Función miscelánea | Siempre acompañado de un entero que determina su significado.Solo se permite un código M en cada bloque de código. Las definiciones ampliadas de los códigos M aparecen más adelante en este capítulo. |
N | Número de línea (bloque) en el programa; Número de parámetro del sistema que se va a cambiar usando G10 | Los números de bloque pueden hacer que el programa CNC sea más fácil de leer. Rara vez se requieren para programas generados por CAD/CAM sin subprogramas. Debido a que toman controlmemoriala mayoría de los programas 3D no utilizan números de bloque. Los números de bloque son enteros de hasta cinco caracteres de largo sin punto decimal. No pueden aparecer antes del carácter inicio/final de la cinta (%) y por lo general no aparecen antes de un comentario solo bloque. |
O | Nombre del programa | Los programas se almacenan en el control por su número de programa. Este es un número entero que está precedido por la letra O y no tiene decimales. |
P | Sirve como dirección de parámetro para varios códigos G y M | Dwell (delay) en segundos.Acompañado por G4 a menos que se use dentro de ciertos ciclos de perforación. |
Q | Incremento de picoteo en ciclos enlatados | La distancia de avance incremental por pasada en un ciclo de perforación de picoteo. |
R | Define el tamaño del radio del arco o define la altura de retracción en ciclos enlatados | Los arcos se pueden definir usando el radio de arco R o I, J, Kvectors. Los IJK son más confiables que los R, por lo que se recomienda usarlos en su lugar. Ris también utilizado por los ciclos de perforación como el valor Z del plano de retorno. |
S | Define la velocidad, ya sea la velocidad del husillo o la velocidad superficial según el modo | Velocidad del husillo en revoluciones por minuto (RPM). Es un valor entero sin decimal, y siempre se usa junto con M03 (Husillo en CW) o M04 (Husillo en CCW). |
T | Selección de herramientas | Selecciona la herramienta. Es un valor entero siempre acompañado de M6 (código de cambio de herramienta). |
U | Eje incremental correspondiente al eje X (normalmente solo controles del grupo de torno A) También define el tiempo de permanencia en algunas máquinas. | En estos controles, X y U obvian G90 y G91, respectivamente. En estos tornos, G90 es en cambio una dirección de ciclo fija para desbaste. |
V | Eje incremental correspondiente al eje Y | Hasta la década de 2000, la dirección V se usaba muy raramente, porque la mayoría de los tornos que usaban U y no tenían un eje Y, por lo que no usaban V. (Green et al 1996 ni siquiera enumeraban V en su tabla de direcciones.) Ese sigue siendo a menudo el caso, aunque la proliferación de herramientas de torno en vivo y mecanizado por torneado ha hecho que el uso de direcciones V sea menos raro de lo que solía ser (Smid2008 muestra un ejemplo). |
W | Eje incremental correspondiente al eje Z (normalmente solo controles del grupo de torno A) | En estos controles, Z y W obvian G90 y G91, respectivamente. En estos tornos, G90 es en cambio una dirección de ciclo fija para desbaste. |
X | Posición absoluta o incremental del eje X. | Datos de coordenadas para el eje X. Hasta cuatro lugares después del decimalestán permitidos y no se utilizan ceros finales. Las coordenadas son modales, por lo que no es necesario repetirlas en bloques posteriores si no cambian. |
Y | Posición absoluta o incremental del eje Y | Datos de coordenadas para el eje Y. G01 Y2.250 F20. |
Z | Posición absoluta o incremental del eje Z | Datos de coordenadas para el eje Z. |
Definiciones de código de caracteres especiales
La siguiente es una lista de caracteres especiales de uso común, su significado, uso y restricciones.
% — Inicio o Fin del Programa
Todos los programas comienzan y terminan con% en un bloque por sí mismo. Este código se llama carácter de rebobinado de cinta (un remanente de los días en que los programas se cargaron usando cintas de papel).
() — Comentarios
Los comentarios al operador deben ser todos en mayúsculas y encerrados entre paréntesis. La longitud máxima de un comentario es de 40 caracteres y todos los caracteres están en mayúscula.
(T02: MOLINO DE EXTREMO 5/8)
/— Eliminar bloque
Los códigos después de este carácter se ignoran si el interruptor de eliminación de bloques en el control está activado.
/M00
; — Fin del Bloque
Este carácter no es visible cuando el programa CNC se lee en un editor de texto (retorno de carro), pero sí aparece al final de cada bloque de código cuando el programa se muestra en el control de la máquina.
N8 Z0.750;
Códigos G y M
Los códigos G&M conforman la mayor parte de los contenidos del programa CNC. A continuación se aborda la definición de cada clase de código y los significados específicos de los códigos más importantes.
Códigos G
Los códigos que comienzan con G se llaman palabras preparatorias porque preparan la máquina para cierto tipo de movimiento.
Tabla 3: Código G
Código | Descripción |
G00 | Movimiento rápido. Se utiliza para posicionar la máquina para movimientos sin fresado. |
G01 | Movimiento de línea a una velocidad de avance especificada. |
G02 | Arco en sentido horario. |
G03 | Arco en sentido antihorario. |
G04 | Habitar. |
G28 | Regresar a la posición inicial de la máquina. |
G40 | Compensación del Diámetro de la Cortadora (CDC) desactivada. |
G41 | Compensación del Diámetro de la Cortadora (CDC) izquierda. |
G42 | Compensación del Diámetro de la Cortadora (CDC) derecha. |
G43 | Desfase de longitud de herramienta (TLO). |
G54 | Fixture Offset #1. |
G55 | Fixture Offset #2. |
G56 | Fixture Offset #3. |
G57 | Fixture Offset #4. |
G58 | Fixture Offset #5. |
G59 | Fixture Offset #6. |
G80 | Cancelar ciclo de perforación. |
G81 | Ciclo de perforación simple. |
G82 | Ciclo de perforación simple con permanencia. |
G83 | Ciclo de perforación Peck. |
G84 | Ciclo de golpecitos. |
G90 | Modo de programación de coordenadas absolutas. |
G91 | Modo de programación por coordenadas incrementales. |
G98 | Ciclo de perforación de retorno al punto inicial (R). |
G99 | Ciclo de perforación de retorno al plano de referencia (última altura Z) |
Códigos M
Los códigos que comienzan con M se llaman palabras misceláneas. Controlan las opciones auxiliares de la máquina como refrigerante y dirección del husillo. Solo puede aparecer un código M en cada bloque de código.
Tabla 4: Códigos M
Código | Descripción |
M00 | Parada del programa.Presione el botón de inicio del ciclo para continuar. |
M01 | Parada opcional. |
M02 | Fin del programa. |
M03 | Husillo en sentido horario. |
M04 | Husillo en sentido antihorario. |
M05 | Tope del husillo. |
M06 | Herramienta de cambio. |
M08 | Refrigerante encendido. |
M09 | Refrigerante desactivado. |
M30 | Finalice el programa y presione Ciclo Inicio para ejecutarlo de nuevo. |
Seleccionar definiciones de código G (ampliadas)
G00 — Movimiento rápido
Este código ordena a la máquina que se mueva lo más rápido posible hasta un punto especificado. Siempre se usa con una posición de coordenadas y es modal. A diferencia de G01, G00 no coordina los ejes para moverse en línea recta. Más bien, cada eje se mueve a su velocidad máxima hasta que se satisface. Esto da como resultado un movimiento como se muestra en la Figura 18, a continuación.
G 0 0 X 0 . Y0.