G-code
El G-code, también conocido como RS-274, es el nombre que habitualmente recibe el lenguaje de programación más usado en control numérico (CN), el cual posee múltiples implementaciones, tales como Siemens Sinumeric, FANUC, Haas, Heidenhain o Mazak. Es usado principalmente en automatización, forma parte de la ingeniería asistida por computadora. Al G-code se le llama en ciertas ocasiones lenguaje de programación G.
G-code | ||
---|---|---|
? | ||
Información general | ||
Extensiones comunes | .gcode, .mpt, .mpf, .nc | |
Paradigma | Imperativa | |
Apareció en | Década de 1950 | |
Diseñado por | Instituto Tecnológico de Massachusetts | |
Última versión estable | (15 de septiembre de 1978 (42 años, 10 meses y 24 días)) | |
Implementaciones | ISO 6983, Siemens Sinumeric, FANUC, Haas, Heidenhain, Mazak... | |
En términos generales, G-code es un lenguaje mediante el cual las personas pueden decir a máquinas herramienta controladas por computadora qué hacer y cómo hacerlo. Esos "qué" y "cómo" están definidos mayormente por instrucciones sobre a dónde moverse, cuán rápido moverse y qué trayectoria seguir. Las máquinas típicas que son controladas con G-code son fresadoras, cortadoras, tornos e impresoras 3D.
Implementaciones
La primera implementación del control numérico se desarrolló en el Laboratorio de Servomecanismos del MIT a principio de la década de 1950. En las siguientes décadas se desarrollaron una gran cantidad de implementaciones de mano de multitud de organizaciones comerciales o no. El G-code se ha usado a menudo en estas implementaciones. La versión más común en Estados Unidos es la propuesta por Electronic Industries Alliance a principio de los años 1960. En febrero de 1980 se aprobó una revisión final con el nombre de RS274D. En todo el mundo, el estándar ISO 6983 es el más usado, aunque en algunos países europeos en concreto se utilizan a veces otros estándares como el DIN 66025 alemán o los PN-73M-55256, PN-93/M-55251 polacos.
Los distintos fabricantes de máquinas CNC han añadido todo tipo de extensiones y variaciones al lenguaje, por lo que los operadores de las máquinas deben conocer las peculiaridades concretas que el fabricante ha previsto para su uso.
Existe una versión de G-code conocida como BCL que aunque es considerado un estándar se usa sólo en unas pocas máquinas.
Desde la década de 1970 hasta la de 1990, muchos fabricantes de máquinas CNC intentaron deshacerse de todos los problemas de compatibilidad estandarizando los controladores de las herramientas, construidos por FANUC. Otra empresa con posición dominante en el mercado de los controladores CNC es Siemens, especialmente en Europa. Ya en la segunda década del siglo XXI, todas esas diferencias e incompatibilidades no causan grandes problemas puesto que el G-code es generado por aplicaciones CAD/CAM que son capaces de generar código adaptado a cada máquina específica.
Algunas máquinas CNC cuentan con una especie de programación "conversacional" consistente en un software parecido a un asistente que de algún modo enmascara el G-code o evita totalmente su uso. Algunos ejemplos son ProtoTRAK de Southwestern Industries, Mazatrol de Mazak, Ultimax de Hurco, Intuitive Programming System (IPS) de Haas, o CAPS de Mori Seiki.
G-code comenzó siendo un tipo de lenguaje bastante limitado que carecía de estructuras como búcles, operadores condicionales y variables declaradas por el usuario. Sin embargo, las implementaciones más recientes de G-code sí que incluyen tales estructuras, creando un lenguaje algo más parecido a lo que podría ser un lenguaje de alto nivel.
Códigos específicos
Los G-codes son conocidos también como códigos preparatorios, y se caracterizan por comenzar por la letra "G". Normalmente es un código que indica a la máquina qué operación debe realizar. Algunas de estas operaciones podrían ser:
Existen también otros tipos, y en general se pueden considerar los códigos como los registros de una computadora.
Referencias
Enlaces externos
- Tutorial de G-Code
- Visor de archivos en G-Code en línea
- The NIST RS274NGC Standard - Version 3 Aug 2000 also available as a
- http://museum.mit.edu/150/86 Has several links (including history of MIT Servo Lab)